Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
<== Date ==> <== Thread ==>

Subject: RE: Problem resolving symbols during build.
From: "Mark Rivers" <rivers@cars.uchicago.edu>
To: "Walters, M \(Malcolm\)" <M.Walters@diamond.ac.uk>, <tech-talk@aps.anl.gov>
Date: Thu, 27 Apr 2006 07:29:40 -0500
Mike,
 
Here is one way I have done it.  Define myApp_Common_LIBS, then myApp_ARCH_LIBS, then combine them for each architecture with _Common_LIBS last.
 
CARSApp_Common_LIBS += CARS
CARSApp_Common_LIBS += mca 
CARSApp_Common_LIBS += calc
CARSApp_Common_LIBS += sscan
CARSApp_Common_LIBS += autosave
CARSApp_Common_LIBS += optics
CARSApp_Common_LIBS += vme
CARSApp_Common_LIBS += std
CARSApp_Common_LIBS += love
CARSApp_Common_LIBS += ip
CARSApp_Common_LIBS += brukerCCD marCCD roperCCD
CARSApp_Common_LIBS += Acs Ims Mclennan Newport Faulhaber Parker softMotor motorSimSupport motor
CARSApp_Common_LIBS += asyn
CARSApp_Common_LIBS += seq pv
CARSApp_Common_LIBS += $(EPICS_BASE_IOC_LIBS)
 
CARSApp_vxWorks_LIBS += allenBradley
CARSApp_vxWorks_LIBS += mcaSIS
CARSApp_vxWorks_LIBS += mcaCanberra
CARSApp_vxWorks_LIBS += ip330
CARSApp_vxWorks_LIBS += ipUnidig
CARSApp_vxWorks_LIBS += dac128V
CARSApp_vxWorks_LIBS += quadEM
CARSApp_vxWorks_LIBS += camac devCamac
CARSApp_vxWorks_LIBS += dxp handelSrc
CARSApp_vxWorks_LIBS += oms
CARSApp_vxWorks_LIBS += TyGSOctal Ipac
CARSApp_vxWorks_LIBS += vxStats

#The following adds support from base/src/vxWorks
CARSApp_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
 
CARSApp_Linux_LIBS += dxp handelSrc
CARSApp_Linux_LIBS += mcaCanberra
 
CARSApp_cygwin32_LIBS += dxp handelSrc
 
CARSApp_WIN32_LIBS    += dxp handelSrc
 
CARSApp_LIBS_DEFAULT  = $(CARSApp_Common_LIBS)
CARSApp_LIBS_vxWorks  = $(CARSApp_vxWorks_LIBS)  $(CARSApp_Common_LIBS)
CARSApp_LIBS_Linux    = $(CARSApp_Linux_LIBS)    $(CARSApp_Common_LIBS)
CARSApp_LIBS_cygwin32 = $(CARSApp_cygwin32_LIBS) $(CARSApp_Common_LIBS)
CARSApp_LIBS_WIN32    = $(CARSApp_WIN32_LIBS)    $(CARSApp_Common_LIBS)
CARSApp_SYS_LIBS_Linux    += net pcap
CARSApp_SYS_LIBS_cygwin32 += rpc DLPORTIO
CARSApp_LIBS_WIN32        += DLPORTIO


________________________________

From: Walters, M (Malcolm) [mailto:M.Walters@diamond.ac.uk]
Sent: Thu 4/27/2006 5:33 AM
To: tech-talk@aps.anl.gov
Subject: Problem resolving symbols during build.



I have a small problem resolving symbols when trying to build an ioc for
multiple architectures under R3.14.7. I am building an ioc under both
VxWorks and Linux.

Since the VxWorks version uses a real hardware I only want to link
certain libraries for one architecture i.e.

        BL06I-MO-IOC-02_LIBS_vxWorks += drvIK320
        BL06I-MO-IOC-02_LIBS_vxWorks += oms

However on linking, various symbols are left undefined. These all come
from the EPICS_BASE_IOC_LIBS. Although I have

        BL06I-MO-IOC-02_LIBS += $(EPICS_BASE_IOC_LIBS)

at the end of my Makefile this ends up before the libraries above. The
reason for this is that the architecture specific terms are always
appended to the main ones. e.g.

        ifneq ($(strip $(USR_LIBS_$(OS_CLASS))),)
        USR_LIBS += $(subst -nil-,,$(USR_LIBS_$(OS_CLASS)))
        else
        ifdef USR_LIBS_DEFAULT
        USR_LIBS += $(USR_LIBS_DEFAULT)
        endif
        endif

As a workaround I can include the base libraries for each architecture
individually i.e.

        BL06I-MO-IOC-02_LIBS_vxWorks += $(EPICS_BASE_IOC_LIBS)
        BL06I-MO-IOC-02_LIBS_Linux += $(EPICS_BASE_IOC_LIBS)

Is there a better way of doing this?

Malcolm

Malcolm Walters
01235 778557
Diamond Light Source Ltd.
Rutherford Appleton Laboratory,
Chilton, Didcot, Oxfordshire OX11 0QX
Malcolm.Walters@diamond.ac.uk


Navigate by Date:
Prev: Problem resolving symbols during build. Walters, M (Malcolm)
Next: Sequencer intro needed ! Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
Navigate by Thread:
Prev: Problem resolving symbols during build. Walters, M (Malcolm)
Next: Sequencer intro needed ! Emmanuel Mayssat
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  <20062007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·