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)/ConverterMotion INSTALL_BIN = $(INSTALL_BIN_HARDCOPY) INSTALL_LINK_LOCATION = $(INSTALL_LOCATION_BIN)/$(EPICS_HOST_ARCH) #============================= # Build the IOC application PROD_IOC += psConverterMotion # psConverterMotion.dbd will be created and installed DBD += psConverterMotion.dbd # Add all the support libraries needed by this IOC psConverterMotion_LIBS += motorNewportSupport psConverterMotion_LIBS += std psConverterMotion_LIBS += busy psConverterMotion_LIBS += calc autosave psConverterMotion_LIBS += sscan psConverterMotion_LIBS += scanProgress psConverterMotion_LIBS += asyn psConverterMotion_LIBS += devIocStats psConverterMotion_LIBS += motor psConverterMotion_LIBS += Newport # psConverterMotion_registerRecordDeviceDriver.cpp derives from psConverterMotion.dbd psConverterMotion_SRCS += psConverterMotion_registerRecordDeviceDriver.cpp # Build the main IOC entry point on workstation OSs. psConverterMotion_SRCS_DEFAULT += psConverterMotionMain.cpp psConverterMotion_SRCS_vxWorks += -nil- # NOTE: To build SNL programs, SNCSEQ must be defined # in the /configure/RELEASE file ifneq ($(SNCSEQ),) # Build sncExample into motorNewportSupport psConverterMotion_SNCFLAGS += +r psConverterMotion_LIBS += seq pv endif # Finally link to the EPICS Base libraries psConverterMotion_LIBS += $(EPICS_BASE_IOC_LIBS) #=========================== # # #============================= # Build the analysis application #=========================== # PROD_IOC_Linux += analyzeConverterScan analyzeConverterScan_SRCS_DEFAULT += analyzeConverterScan.cpp analyzeConverterScan_SRCS += FileNameFinder.cpp analyzeConverterScan_SRCS += LogableMainFrame.cpp analyzeConverterScan_SRCS += LogEntryFrame.cpp analyzeConverterScan_SRCS += ScanMainFrame.cpp analyzeConverterScan_SRCS += ScanStream.cpp analyzeConverterScan_SRCS += Scan.cpp analyzeConverterScan_SRCS += ScanCombo.cpp analyzeConverterScan_SRCS += OverviewMainFrame.cpp analyzeConverterScan_SRCS += OverviewFrame.cpp analyzeConverterScan_SRCS += AnalysisMainFrame.cpp analyzeConverterScan_SRCS += AnalysisFrame.cpp analyzeConverterScan_SRCS += GraphAnalyzer.cpp analyzeConverterScan_SRCS += ScanDetector.cpp analyzeConverterScan_SRCS += ScanFile.cpp analyzeConverterScan_SRCS += ScanPlot.cpp analyzeConverterScan_SRCS += ScanCorrection.cpp analyzeConverterScan_SRCS += ScanPositioner.cpp analyzeConverterScan_SRCS += TwoWireGraphAnalyzer.cpp analyzeConverterScan_SRCS += AnalysisFrameDict.cpp analyzeConverterScan_SRCS += AnalysisMainFrameDict.cpp analyzeConverterScan_SRCS += GraphAnalyzerDict.cpp analyzeConverterScan_SRCS += LogableMainFrameDict.cpp analyzeConverterScan_SRCS += LogEntryFrameDict.cpp analyzeConverterScan_SRCS += OverviewFrameDict.cpp analyzeConverterScan_SRCS += OverviewMainFrameDict.cpp analyzeConverterScan_SRCS += ScanDetectorDict.cpp analyzeConverterScan_SRCS += ScanStreamDict.cpp analyzeConverterScan_SRCS += ScanDict.cpp analyzeConverterScan_SRCS += ScanComboDict.cpp analyzeConverterScan_SRCS += ScanFileDict.cpp analyzeConverterScan_SRCS += ScanMainFrameDict.cpp analyzeConverterScan_SRCS += ScanPositionerDict.cpp analyzeConverterScan_SRCS += ScanCorrectionDict.cpp # ROOT PCM files will be installed where the binaries go BIN_INSTALLS += AnalysisFrameDict_rdict.pcm BIN_INSTALLS += AnalysisMainFrameDict_rdict.pcm BIN_INSTALLS += GraphAnalyzerDict_rdict.pcm BIN_INSTALLS += LogableMainFrameDict_rdict.pcm BIN_INSTALLS += LogEntryFrameDict_rdict.pcm BIN_INSTALLS += OverviewFrameDict_rdict.pcm BIN_INSTALLS += OverviewMainFrameDict_rdict.pcm BIN_INSTALLS += ScanDetectorDict_rdict.pcm BIN_INSTALLS += ScanStreamDict_rdict.pcm BIN_INSTALLS += ScanDict_rdict.pcm BIN_INSTALLS += ScanComboDict_rdict.pcm BIN_INSTALLS += ScanFileDict_rdict.pcm BIN_INSTALLS += ScanMainFrameDict_rdict.pcm BIN_INSTALLS += ScanPositionerDict_rdict.pcm BIN_INSTALLS += ScanCorrectionDict_rdict.pcm ROOT_LIBRIRIES = $(filter -l%, $(shell $(ROOT)/bin/root-config --glibs) ) ROOT_LIBS_ONLY = $(subst -l, , $(ROOT_LIBRIRIES) ) analyzeConverterScan_SYS_LIBS_Linux += $(ROOT_LIBS_ONLY) analyzeConverterScan_SYS_LIBS_Linux += GX11TTF GX11 analyzeConverterScan_SYS_LIBS_Linux += boost_iostreams boost_filesystem boost_system boost_program_options analyzeConverterScan_SYS_LIBS_Linux += cpp elog xml++-2.6 analyzeConverterScan_CFLAGS += -D$(ACCEL_ARCH) analyzeConverterScan_CXXFLAGS += -D$(ACCEL_ARCH) analyzeConverterScan_CPPFLAGS += -D$(ACCEL_ARCH) analyzeConverterScan_LDFLAGS += $(shell $(ROOT)/bin/root-config --cflags) analyzeConverterScan_LDFLAGS += -L$(shell $(ROOT)/bin/root-config --libdir) -Wl,-rpath=$(shell $(ROOT)/bin/root-config --libdir) -Wl,-R$(shell $(ROOT)/bin/root-config --libdir) analyzeConverterScan_LDFLAGS += -L$(ELOG)/lib/$(ACCEL_ARCH) -L$(CPPLIB)/lib/$(ACCEL_ARCH) -L$(CURLPP)/lib -L$(LIBXMLPP)/lib analyzeConverterScan_LDFLAGS += -Wl,-s -Wl,--rpath=$(ELOG)/lib/$(ACCEL_ARCH) analyzeConverterScan_LDFLAGS += -Wl,--rpath=$(CPPLIB)/lib/$(ACCEL_ARCH) analyzeConverterScan_LDFLAGS += -Wl,--rpath=$(CURLPP)/lib analyzeConverterScan_LDFLAGS += -Wl,--rpath=$(LIBXMLPP)/lib #=========================== $(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 $<"