TOP=../.. # Install is redefined to created the soft links to executables. .PHONY: SoftLinks all: install install: buildInstall SoftLinks include $(TOP)/configure/CONFIG #---------------------------------------- # ADD MACRO DEFINITIONS AFTER THIS LINE #============================= # Build 64-bit application EPICS_HOST_ARCH = linux-x86_64 # Accelerator divisions notation for 64-bit ACCEL_ARCH = rhel-9-x86_64 # Setup ROOT ROOT = /gapps/root/${EPICS_OSNAME}/${EPICS_ROOT_VERSION} USR_INCLUDES += -I$(shell $(ROOT)/bin/root-config --incdir) # ELOG stuff ELOG = /cs/certified/apps/eloglib/3.0 CPPLIB = /cs/certified/apps/cpplib/3.20.4 CURLPP = /usr/csite/pubtools/curlpp LIBXMLPP = /usr/csite/pubtools/libxml++ USR_INCLUDES += -I$(ELOG)/inc -I$(CPPLIB)/inc USR_CXXFLAGS += -D$(subst -,_,$(ACCEL_ARCH) ) -D_REENTRANT -Wall USR_LDFLAGS += -Bstatic # Because of the PCM files of ROOT, we intall the executables and the PCM files into a subdirectory in bin, # then we make the links to the executable. INSTALL_BIN_HARDCOPY = $(INSTALL_LOCATION_BIN)/$(EPICS_HOST_ARCH)/CollimatorMotion INSTALL_BIN = $(INSTALL_BIN_HARDCOPY) INSTALL_LINK_LOCATION = $(INSTALL_LOCATION_BIN)/$(EPICS_HOST_ARCH) #============================= # Build the IOC application PROD_IOC = collimatorMotion # collimatorMotion.dbd will be created and installed DBD += collimatorMotion.dbd ## Add all the support libraries needed by this IOC collimatorMotion_LIBS += motorNewportSupport collimatorMotion_LIBS += std collimatorMotion_LIBS += busy collimatorMotion_LIBS += calc autosave collimatorMotion_LIBS += sscan collimatorMotion_LIBS += scanProgress collimatorMotion_LIBS += asyn collimatorMotion_LIBS += devIocStats collimatorMotion_LIBS += motor collimatorMotion_LIBS += Newport # collimatorMotion_registerRecordDeviceDriver.cpp derives from collimatorMotion.dbd collimatorMotion_SRCS += collimatorMotion_registerRecordDeviceDriver.cpp # Build the main IOC entry point on workstation OSs. collimatorMotion_SRCS_DEFAULT += collimatorMotionMain.cpp collimatorMotion_SRCS_vxWorks += -nil- # NOTE: To build SNL programs, SNCSEQ must be defined # in the /configure/RELEASE file ifneq ($(SNCSEQ),) # Build sncExample into motorNewportSupport collimatorMotion_SNCFLAGS += +r collimatorMotion_LIBS += seq pv endif # Finally link to the EPICS Base libraries collimatorMotion_LIBS += $(EPICS_BASE_IOC_LIBS) #=========================== # #============================= # Build the analysis application #=========================== # PROD_IOC_Linux = analyzeCollimatorScan analyzeCollimatorScan_SRCS_DEFAULT += analyzeCollimatorScan.cpp analyzeCollimatorScan_SRCS += FileNameFinder.cpp analyzeCollimatorScan_SRCS += LogableMainFrame.cpp analyzeCollimatorScan_SRCS += LogEntryFrame.cpp analyzeCollimatorScan_SRCS += ScanMainFrame.cpp analyzeCollimatorScan_SRCS += ScanStream.cpp analyzeCollimatorScan_SRCS += Scan.cpp analyzeCollimatorScan_SRCS += ScanCombo.cpp analyzeCollimatorScan_SRCS += OverviewMainFrame.cpp analyzeCollimatorScan_SRCS += OverviewFrame.cpp analyzeCollimatorScan_SRCS += AnalysisMainFrame.cpp analyzeCollimatorScan_SRCS += AnalysisFrame.cpp analyzeCollimatorScan_SRCS += GraphAnalyzer.cpp analyzeCollimatorScan_SRCS += ScanDetector.cpp analyzeCollimatorScan_SRCS += ScanFile.cpp analyzeCollimatorScan_SRCS += ScanPlot.cpp analyzeCollimatorScan_SRCS += ScanCorrection.cpp analyzeCollimatorScan_SRCS += ScanPositioner.cpp analyzeCollimatorScan_SRCS += CollimatorGraphAnalyzer.cpp analyzeCollimatorScan_SRCS += AnalysisFrameDict.cpp analyzeCollimatorScan_SRCS += AnalysisMainFrameDict.cpp analyzeCollimatorScan_SRCS += GraphAnalyzerDict.cpp analyzeCollimatorScan_SRCS += LogableMainFrameDict.cpp analyzeCollimatorScan_SRCS += LogEntryFrameDict.cpp analyzeCollimatorScan_SRCS += OverviewFrameDict.cpp analyzeCollimatorScan_SRCS += OverviewMainFrameDict.cpp analyzeCollimatorScan_SRCS += ScanDetectorDict.cpp analyzeCollimatorScan_SRCS += ScanStreamDict.cpp analyzeCollimatorScan_SRCS += ScanDict.cpp analyzeCollimatorScan_SRCS += ScanComboDict.cpp analyzeCollimatorScan_SRCS += ScanFileDict.cpp analyzeCollimatorScan_SRCS += ScanPlotDict.cpp analyzeCollimatorScan_SRCS += ScanMainFrameDict.cpp analyzeCollimatorScan_SRCS += ScanPositionerDict.cpp analyzeCollimatorScan_SRCS += ScanCorrectionDict.cpp # ROOT PCM files will be installed where the binaries go BIN_INSTALLS += AnalysisFrameDict_rdict.pcm BIN_INSTALLS += LogableMainFrameDict_rdict.pcm BIN_INSTALLS += OverviewMainFrameDict_rdict.pcm BIN_INSTALLS += ScanDetectorDict_rdict.pcm BIN_INSTALLS += ScanMainFrameDict_rdict.pcm BIN_INSTALLS += ScanStreamDict_rdict.pcm BIN_INSTALLS += AnalysisMainFrameDict_rdict.pcm BIN_INSTALLS += LogEntryFrameDict_rdict.pcm BIN_INSTALLS += ScanComboDict_rdict.pcm BIN_INSTALLS += ScanDict_rdict.pcm BIN_INSTALLS += ScanPlotDict_rdict.pcm BIN_INSTALLS += GraphAnalyzerDict_rdict.pcm BIN_INSTALLS += OverviewFrameDict_rdict.pcm BIN_INSTALLS += ScanCorrectionDict_rdict.pcm BIN_INSTALLS += ScanFileDict_rdict.pcm BIN_INSTALLS += ScanPositionerDict_rdict.pcm ROOT_LIBRIRIES = $(filter -l%, $(shell $(ROOT)/bin/root-config --glibs) ) ROOT_LIBS_ONLY = $(subst -l, , $(ROOT_LIBRIRIES) ) analyzeCollimatorScan_SYS_LIBS_Linux += $(ROOT_LIBS_ONLY) analyzeCollimatorScan_SYS_LIBS_Linux += GX11TTF GX11 analyzeCollimatorScan_SYS_LIBS_Linux += boost_iostreams boost_filesystem boost_system boost_program_options analyzeCollimatorScan_SYS_LIBS_Linux += cpp elog xml++-2.6 analyzeCollimatorScan_CFLAGS += -D$(ACCEL_ARCH) analyzeCollimatorScan_CXXFLAGS += -D$(ACCEL_ARCH) analyzeCollimatorScan_CPPFLAGS += -D$(ACCEL_ARCH) analyzeCollimatorScan_LDFLAGS += $(shell $(ROOT)/bin/root-config --cflags) analyzeCollimatorScan_LDFLAGS += -L$(shell $(ROOT)/bin/root-config --libdir) -Wl,-rpath=$(shell $(ROOT)/bin/root-config --libdir) -Wl,-R$(shell $(ROOT)/bin/root-config --libdir) analyzeCollimatorScan_LDFLAGS += -L$(ELOG)/lib/$(ACCEL_ARCH) -L$(CPPLIB)/lib/$(ACCEL_ARCH) -L$(CURLPP)/lib -L$(LIBXMLPP)/lib analyzeCollimatorScan_LDFLAGS += -Wl,-s -Wl,--rpath=$(ELOG)/lib/$(ACCEL_ARCH) analyzeCollimatorScan_LDFLAGS += -Wl,--rpath=$(CPPLIB)/lib/$(ACCEL_ARCH) analyzeCollimatorScan_LDFLAGS += -Wl,--rpath=$(CURLPP)/lib analyzeCollimatorScan_LDFLAGS += -Wl,--rpath=$(LIBXMLPP)/lib #=========================== # # Script # # SCRIPTS += analyzeScan.csh #================================= $(INSTALL_LINK_LOCATION)/$(PROD_IOC) : $(INSTALL_BIN_HARDCOPY)/$(PROD_IOC) ln -sf $< $(INSTALL_LINK_LOCATION)/ $(INSTALL_LINK_LOCATION)/$(PROD_IOC_Linux) : $(INSTALL_BIN_HARDCOPY)/$(PROD_IOC_Linux) ln -sf $< $(INSTALL_LINK_LOCATION)/ SoftLinks: $(INSTALL_LINK_LOCATION)/$(PROD_IOC) $(INSTALL_LINK_LOCATION)/$(PROD_IOC_Linux) #=========================== include $(TOP)/configure/RULES #---------------------------------------- # ADD RULES AFTER THIS LINE %Dict.cpp : ../%.hh ../%LinkDef.h tcsh -c "source $(ROOT)/bin/thisroot.csh $(ROOT); $(ROOT)/bin/rootcint -f $@ -c $<"