From 5aa35ce8d7d8b1deb90669c8ac127317659a4a5e Mon Sep 17 00:00:00 2001 From: chrin Date: Thu, 8 Aug 2024 14:37:48 +0200 Subject: [PATCH] makfile for 1.20.1 for epics 7.0.7 --- .gitignore | 1 - makefile_rel_1.20-gcc-10.4.0 | 105 +++++++++++++++++++++++++++++++++ makefile_rel_1.20-gcc-4.7.4 | 104 ++++++++++++++++++++++++++++++++ makefile_rel_1.20-gcc-7.3.0 | 103 ++++++++++++++++++++++++++++++++ makefile_rel_1.21-gcc-6.3.0 | 105 +++++++++++++++++++++++++++++++++ makefile_rel_1.21-gcc-6.3.0.sh | 5 ++ makefile_rel_1.21-gcc-6.4.0 | 105 +++++++++++++++++++++++++++++++++ 7 files changed, 527 insertions(+), 1 deletion(-) create mode 100644 makefile_rel_1.20-gcc-10.4.0 create mode 100644 makefile_rel_1.20-gcc-4.7.4 create mode 100644 makefile_rel_1.20-gcc-7.3.0 create mode 100644 makefile_rel_1.21-gcc-6.3.0 create mode 100644 makefile_rel_1.21-gcc-6.3.0.sh create mode 100644 makefile_rel_1.21-gcc-6.4.0 diff --git a/.gitignore b/.gitignore index f2b0ba7..69ead15 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,4 @@ felix-cache readme.txt makefile_rel_1.1* makefile_rel_1.3* -makefile_rel_1.20* *.*.orig diff --git a/makefile_rel_1.20-gcc-10.4.0 b/makefile_rel_1.20-gcc-10.4.0 new file mode 100644 index 0000000..7c283b4 --- /dev/null +++ b/makefile_rel_1.20-gcc-10.4.0 @@ -0,0 +1,105 @@ +# +# Jan Chrin +# Version: July 2019 - Qt5 +# +# makefile to build mocha mex file +# printenv | grep MATLAB to reveal your MATLAB Directory +# +# +# local executables are built in ./${EPICS_HOST_ARCH}/$(MVER) +# where the MATLAB version is grepped from $(MATLAB) + +MATLAB_ROOT=${MATLAB} +MATLAB_VERSION=$(notdir $(MATLAB_ROOT)) + +##### CHANGE AS APPROPRIATE ################# +#Mocha Version to install +MOCHA_VERSION=mocha-1.20.1-gcc-10.4.0 +#CAFE version to link to +CAFE_VERSION=cafe-1.20.1-gcc-10.4.0 + +EPICS_BASE=${EPICS}/base-7.0.7 +#CAFE project base +CAFE_BASE=/opt/gfa/cafe +CAFE_MOCHA_BASE=${CAFE_BASE}/mocha +CAFE_CPP_BASE=$(CAFE_BASE)/cpp/$(CAFE_VERSION) +BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include + +CAFE_OBJS_DIR = $(CAFE_BASE)/cpp/$(CAFE_VERSION)/lib/$(EPICS_HOST_ARCH)/libcafe.a + +#if qt5 has libQt5Core.so link +#QT5_DIR= /opt/psi/Cafe/cafe-matlab/${MATLAB_VERSION}/libexec +QT5_DIR= ${MATLAB_ROOT}/bin/glnxa64 + +INSTALL_MOCHA_LIBDIR= $(CAFE_MOCHA_BASE)/$(MOCHA_VERSION)/lib/$(EPICS_HOST_ARCH)/$(MATLAB_VERSION) +############################################# + + +#First deteremine if we are on a 32/64 bit machine +#as mex file extensions are named differently +pattern64=x86_64 +pattern32=i386 + +PWD=$(shell pwd) + #hardware platform + HW=$(shell uname -i) + ifeq ($(pattern64),$(findstring $(pattern64), $(HW))) + MEXE=mexa64 + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa64 + else + ifeq ($(pattern32),$(findstring $(pattern32), $(HW))) + MEXE=mexglx + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa86 + endif + endif + +INSTALL_PATH?=$(INSTALL_MOCHA_LIBDIR) +OBJ_DIR= ${EPICS_HOST_ARCH}/$(MATLAB_VERSION) + +INCLUDEPATH_MOCHA += -I$(MATLAB_ROOT)/extern/include \ + -I$(CAFE_CPP_BASE)/include -I./ \ + -I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \ + -I$(EPICS_BASE)/include/compiler/gcc + +INCLUDEPATH_MACHINETTA += $(INCLUDEPATH_MOCHA) -I$(BOOST_BASE) -I$(BOOST_BASE)/boost + + +# linkage to qt5 required if cafe built with Qt5 +#-lboost_system -lboost_thread-mt +LIBS += -ldl -lca -lCom -lmx -lmex -lmat -lQt5Core -lQt5Xml +#LIBS += -lmx -lmex -lmat + +$(OBJ_DIR)/mocha.$(MEXE): mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o + mex CXXFLAGS='$(CXXFLAGS) -v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L${QT5_DIR} -Wl,-rpath,${QT5_DIR} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) \ + -outdir $(OBJ_DIR) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) + cp example.m $(OBJ_DIR) + cp scripts/*.m $(OBJ_DIR) + cp scripts/test.xml $(OBJ_DIR) + + +$(OBJ_DIR)/macchinettaSwitch.o: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + -c macchinettaSwitch.cpp $(INCLUDEPATH_MACHINETTA) 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' -outdir $(OBJ_DIR) + +install: $(OBJ_DIR)/mocha.$(MEXE) + mkdir -p $(INSTALL_PATH) + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(INSTALL_PATH) -output mocha.$(MEXE) $(INCLUDEPATH_MOCHA) \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' + + cp example.m $(INSTALL_PATH) + cp scripts/*.m $(INSTALL_PATH) + cp scripts/test.xml $(INSTALL_PATH) + +install_lib: $(OBJ_DIR)/libmacchinetta.so + mkdir -p $(INSTALL_PATH) + cp $(OBJ_DIR)/libmacchinetta.so $(INSTALL_PATH) + +clean: + rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so $(OBJ_DIR)/*.$(MEXE) + +print-% : ; @echo $* = $($*) diff --git a/makefile_rel_1.20-gcc-4.7.4 b/makefile_rel_1.20-gcc-4.7.4 new file mode 100644 index 0000000..21d7182 --- /dev/null +++ b/makefile_rel_1.20-gcc-4.7.4 @@ -0,0 +1,104 @@ +# +# Jan Chrin +# Version: July 2019 - Qt5 +# +# makefile to build mocha mex file +# printenv | grep MATLAB to reveal your MATLAB Directory +# +# +# local executables are built in ./${EPICS_HOST_ARCH}/$(MVER) +# where the MATLAB version is grepped from $(MATLAB) + +MATLAB_ROOT=${MATLAB} +MATLAB_VERSION=$(notdir $(MATLAB_ROOT)) + +##### CHANGE AS APPROPRIATE ################# +#Mocha Version to install +MOCHA_VERSION=mocha-1.20.1-gcc-4.7.4 +#CAFE version to link to +CAFE_VERSION=cafe-1.20.1-gcc-7.3.0 + +EPICS_BASE=${EPICS}/base-7.0.7 +#CAFE project base +CAFE_BASE=/opt/gfa/cafe +CAFE_MOCHA_BASE=${CAFE_BASE}/mocha +CAFE_CPP_BASE=$(CAFE_BASE)/cpp/$(CAFE_VERSION) +BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include + +CAFE_OBJS_DIR = $(CAFE_BASE)/cpp/$(CAFE_VERSION)/lib/$(EPICS_HOST_ARCH)/libcafe.a + +#if qt5 has libQt5Core.so link +#QT5_DIR= /opt/psi/Cafe/cafe-matlab/${MATLAB_VERSION}/libexec +QT5_DIR= ${MATLAB_ROOT}/bin/glnxa64 + +INSTALL_MOCHA_LIBDIR= $(CAFE_MOCHA_BASE)/$(MOCHA_VERSION)/lib/$(EPICS_HOST_ARCH)/$(MATLAB_VERSION) +############################################# + + +#First deteremine if we are on a 32/64 bit machine +#as mex file extensions are named differently +pattern64=x86_64 +pattern32=i386 + +PWD=$(shell pwd) + #hardware platform + HW=$(shell uname -i) + ifeq ($(pattern64),$(findstring $(pattern64), $(HW))) + MEXE=mexa64 + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa64 + else + ifeq ($(pattern32),$(findstring $(pattern32), $(HW))) + MEXE=mexglx + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa86 + endif + endif + +INSTALL_PATH?=$(INSTALL_MOCHA_LIBDIR) +OBJ_DIR= ${EPICS_HOST_ARCH}/$(MATLAB_VERSION) + +INCLUDEPATH_MOCHA += -I$(MATLAB_ROOT)/extern/include \ + -I$(CAFE_CPP_BASE)/include -I./ \ + -I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \ + -I$(EPICS_BASE)/include/compiler/gcc + +INCLUDEPATH_MACHINETTA += $(INCLUDEPATH_MOCHA) -I$(BOOST_BASE) -I$(BOOST_BASE)/boost + + +# linkage to qt5 required if cafe built with Qt5 +#-lboost_system -lboost_thread-mt +LIBS += -ldl -lca -lCom -lmx -lmex -lmat -lQt5Core -lQt5Xml +#LIBS += -lmx -lmex -lmat + +$(OBJ_DIR)/mocha.$(MEXE): mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o + mex CXXFLAGS='$(CXXFLAGS) -v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L${QT5_DIR} -Wl,-rpath,${QT5_DIR} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) \ + -outdir $(OBJ_DIR) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) + + + +$(OBJ_DIR)/macchinettaSwitch.o: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + -c macchinettaSwitch.cpp $(INCLUDEPATH_MACHINETTA) 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' -outdir $(OBJ_DIR) + +install: $(OBJ_DIR)/mocha.$(MEXE) + mkdir -p $(INSTALL_PATH) + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(INSTALL_PATH) -output mocha.$(MEXE) $(INCLUDEPATH_MOCHA) \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' + + cp example.m $(INSTALL_PATH) + cp scripts/monitorAction.m $(INSTALL_PATH) + cp scripts/pvtable.m $(INSTALL_PATH) + cp scripts/test.xml $(INSTALL_PATH) + +install_lib: $(OBJ_DIR)/libmacchinetta.so + mkdir -p $(INSTALL_PATH) + cp $(OBJ_DIR)/libmacchinetta.so $(INSTALL_PATH) + +clean: + rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so $(OBJ_DIR)/*.$(MEXE) + +print-% : ; @echo $* = $($*) diff --git a/makefile_rel_1.20-gcc-7.3.0 b/makefile_rel_1.20-gcc-7.3.0 new file mode 100644 index 0000000..1569ccc --- /dev/null +++ b/makefile_rel_1.20-gcc-7.3.0 @@ -0,0 +1,103 @@ +# +# Jan Chrin +# Version: July 2019 - Qt5 +# +# makefile to build mocha mex file +# printenv | grep MATLAB to reveal your MATLAB Directory +# +# +# local executables are built in ./${EPICS_HOST_ARCH}/$(MVER) +# where the MATLAB version is grepped from $(MATLAB) + +MATLAB_ROOT=${MATLAB} +MATLAB_VERSION=$(notdir $(MATLAB_ROOT)) + +##### CHANGE AS APPROPRIATE ################# +#Mocha Version to install +MOCHA_VERSION=mocha-1.20.1-gcc-7.3.0 +#CAFE version to link to +CAFE_VERSION=cafe-1.20.1-gcc-7.3.0 + +EPICS_BASE=${EPICS}/base-7.0.7 +#CAFE project base +CAFE_BASE=/opt/gfa/cafe +CAFE_MOCHA_BASE=${CAFE_BASE}/mocha +CAFE_CPP_BASE=$(CAFE_BASE)/cpp/$(CAFE_VERSION) +BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include + +CAFE_OBJS_DIR = $(CAFE_BASE)/cpp/$(CAFE_VERSION)/lib/$(EPICS_HOST_ARCH)/libcafe.a + +#if qt5 has libQt5Core.so link +#QT5_DIR= /opt/psi/Cafe/cafe-matlab/${MATLAB_VERSION}/libexec +QT5_DIR= ${MATLAB_ROOT}/bin/glnxa64 + +INSTALL_MOCHA_LIBDIR= $(CAFE_MOCHA_BASE)/$(MOCHA_VERSION)/lib/$(EPICS_HOST_ARCH)/$(MATLAB_VERSION) +############################################# + + +#First deteremine if we are on a 32/64 bit machine +#as mex file extensions are named differently +pattern64=x86_64 +pattern32=i386 + +PWD=$(shell pwd) + #hardware platform + HW=$(shell uname -i) + ifeq ($(pattern64),$(findstring $(pattern64), $(HW))) + MEXE=mexa64 + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa64 + else + ifeq ($(pattern32),$(findstring $(pattern32), $(HW))) + MEXE=mexglx + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa86 + endif + endif + +INSTALL_PATH?=$(INSTALL_MOCHA_LIBDIR) +OBJ_DIR= ${EPICS_HOST_ARCH}/$(MATLAB_VERSION) + +INCLUDEPATH_MOCHA += -I$(MATLAB_ROOT)/extern/include \ + -I$(CAFE_CPP_BASE)/include -I./ \ + -I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \ + -I$(EPICS_BASE)/include/compiler/gcc + +INCLUDEPATH_MACHINETTA += $(INCLUDEPATH_MOCHA) -I$(BOOST_BASE) -I$(BOOST_BASE)/boost + + +# linkage to qt5 required if cafe built with Qt5 +#-lboost_system -lboost_thread-mt +LIBS += -ldl -lca -lCom -lmx -lmex -lmat -lQt5Core -lQt5Xml +#LIBS += -lmx -lmex -lmat + +$(OBJ_DIR)/mocha.$(MEXE): mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o + mex CXXFLAGS='$(CXXFLAGS) -v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L${QT5_DIR} -Wl,-rpath,${QT5_DIR} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) \ + -outdir $(OBJ_DIR) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) + + + +$(OBJ_DIR)/macchinettaSwitch.o: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + -c macchinettaSwitch.cpp $(INCLUDEPATH_MACHINETTA) 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' -outdir $(OBJ_DIR) + +install: $(OBJ_DIR)/mocha.$(MEXE) + mkdir -p $(INSTALL_PATH) + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(INSTALL_PATH) -output mocha.$(MEXE) $(INCLUDEPATH_MOCHA) \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' + + cp example.m $(INSTALL_PATH) + cp scripts/*.m $(INSTALL_PATH) + cp scripts/test.xml $(INSTALL_PATH) + +install_lib: $(OBJ_DIR)/libmacchinetta.so + mkdir -p $(INSTALL_PATH) + cp $(OBJ_DIR)/libmacchinetta.so $(INSTALL_PATH) + +clean: + rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so $(OBJ_DIR)/*.$(MEXE) + +print-% : ; @echo $* = $($*) diff --git a/makefile_rel_1.21-gcc-6.3.0 b/makefile_rel_1.21-gcc-6.3.0 new file mode 100644 index 0000000..7a15a34 --- /dev/null +++ b/makefile_rel_1.21-gcc-6.3.0 @@ -0,0 +1,105 @@ +# +# Jan Chrin +# Version: July 2019 - Qt5 +# +# makefile to build mocha mex file +# printenv | grep MATLAB to reveal your MATLAB Directory +# +# +# local executables are built in ./${EPICS_HOST_ARCH}/$(MVER) +# where the MATLAB version is grepped from $(MATLAB) + +MATLAB_ROOT=${MATLAB} +MATLAB_VERSION=$(notdir $(MATLAB_ROOT)) + +##### CHANGE AS APPROPRIATE ################# +#Mocha Version to install +MOCHA_VERSION=mocha-1.21.0-gcc-6.3.0 +#CAFE version to link to +CAFE_VERSION=cafe-1.21.0-gcc-6.3.0 + +EPICS_BASE=${EPICS}/base-7.0.8 +#CAFE project base +CAFE_BASE=/opt/gfa/cafe +CAFE_MOCHA_BASE=${CAFE_BASE}/mocha +CAFE_CPP_BASE=$(CAFE_BASE)/cpp/$(CAFE_VERSION) +BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include + +CAFE_OBJS_DIR = $(CAFE_BASE)/cpp/$(CAFE_VERSION)/lib/$(EPICS_HOST_ARCH)/libcafe.a + +#if qt5 has libQt5Core.so link +#QT5_DIR= /opt/psi/Cafe/cafe-matlab/${MATLAB_VERSION}/libexec +QT5_DIR= ${MATLAB_ROOT}/bin/glnxa64 + +INSTALL_MOCHA_LIBDIR= $(CAFE_MOCHA_BASE)/$(MOCHA_VERSION)/lib/$(EPICS_HOST_ARCH)/$(MATLAB_VERSION) +############################################# + + +#First deteremine if we are on a 32/64 bit machine +#as mex file extensions are named differently +pattern64=x86_64 +pattern32=i386 + +PWD=$(shell pwd) + #hardware platform + HW=$(shell uname -i) + ifeq ($(pattern64),$(findstring $(pattern64), $(HW))) + MEXE=mexa64 + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa64 + else + ifeq ($(pattern32),$(findstring $(pattern32), $(HW))) + MEXE=mexglx + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa86 + endif + endif + +INSTALL_PATH?=$(INSTALL_MOCHA_LIBDIR) +OBJ_DIR= ${EPICS_HOST_ARCH}/$(MATLAB_VERSION) + +INCLUDEPATH_MOCHA += -I$(MATLAB_ROOT)/extern/include \ + -I$(CAFE_CPP_BASE)/include -I./ \ + -I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \ + -I$(EPICS_BASE)/include/compiler/gcc + +INCLUDEPATH_MACHINETTA += $(INCLUDEPATH_MOCHA) -I$(BOOST_BASE) -I$(BOOST_BASE)/boost + + +# linkage to qt5 required if cafe built with Qt5 +#-lboost_system -lboost_thread-mt +LIBS += -ldl -lca -lCom -lmx -lmex -lmat -lQt5Core -lQt5Xml +#LIBS += -lmx -lmex -lmat + +$(OBJ_DIR)/mocha.$(MEXE): mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o + mex CXXFLAGS='$(CXXFLAGS) -v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L${QT5_DIR} -Wl,-rpath,${QT5_DIR} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) \ + -outdir $(OBJ_DIR) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) + cp example.m $(OBJ_DIR) + cp scripts/*.m $(OBJ_DIR) + cp scripts/test.xml $(OBJ_DIR) + + +$(OBJ_DIR)/macchinettaSwitch.o: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + -c macchinettaSwitch.cpp $(INCLUDEPATH_MACHINETTA) 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' -outdir $(OBJ_DIR) + +install: $(OBJ_DIR)/mocha.$(MEXE) + mkdir -p $(INSTALL_PATH) + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(INSTALL_PATH) -output mocha.$(MEXE) $(INCLUDEPATH_MOCHA) \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' + + cp example.m $(INSTALL_PATH) + cp scripts/*.m $(INSTALL_PATH) + cp scripts/test.xml $(INSTALL_PATH) + +install_lib: $(OBJ_DIR)/libmacchinetta.so + mkdir -p $(INSTALL_PATH) + cp $(OBJ_DIR)/libmacchinetta.so $(INSTALL_PATH) + +clean: + rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so $(OBJ_DIR)/*.$(MEXE) + +print-% : ; @echo $* = $($*) diff --git a/makefile_rel_1.21-gcc-6.3.0.sh b/makefile_rel_1.21-gcc-6.3.0.sh new file mode 100644 index 0000000..ef14e7c --- /dev/null +++ b/makefile_rel_1.21-gcc-6.3.0.sh @@ -0,0 +1,5 @@ +module unload gcc +module load gcc/6.3.0 +echo "$1" +action=$1 +make -f makefile_rel_1.21-gcc-6.3.0 -s $action diff --git a/makefile_rel_1.21-gcc-6.4.0 b/makefile_rel_1.21-gcc-6.4.0 new file mode 100644 index 0000000..7a15a34 --- /dev/null +++ b/makefile_rel_1.21-gcc-6.4.0 @@ -0,0 +1,105 @@ +# +# Jan Chrin +# Version: July 2019 - Qt5 +# +# makefile to build mocha mex file +# printenv | grep MATLAB to reveal your MATLAB Directory +# +# +# local executables are built in ./${EPICS_HOST_ARCH}/$(MVER) +# where the MATLAB version is grepped from $(MATLAB) + +MATLAB_ROOT=${MATLAB} +MATLAB_VERSION=$(notdir $(MATLAB_ROOT)) + +##### CHANGE AS APPROPRIATE ################# +#Mocha Version to install +MOCHA_VERSION=mocha-1.21.0-gcc-6.3.0 +#CAFE version to link to +CAFE_VERSION=cafe-1.21.0-gcc-6.3.0 + +EPICS_BASE=${EPICS}/base-7.0.8 +#CAFE project base +CAFE_BASE=/opt/gfa/cafe +CAFE_MOCHA_BASE=${CAFE_BASE}/mocha +CAFE_CPP_BASE=$(CAFE_BASE)/cpp/$(CAFE_VERSION) +BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include + +CAFE_OBJS_DIR = $(CAFE_BASE)/cpp/$(CAFE_VERSION)/lib/$(EPICS_HOST_ARCH)/libcafe.a + +#if qt5 has libQt5Core.so link +#QT5_DIR= /opt/psi/Cafe/cafe-matlab/${MATLAB_VERSION}/libexec +QT5_DIR= ${MATLAB_ROOT}/bin/glnxa64 + +INSTALL_MOCHA_LIBDIR= $(CAFE_MOCHA_BASE)/$(MOCHA_VERSION)/lib/$(EPICS_HOST_ARCH)/$(MATLAB_VERSION) +############################################# + + +#First deteremine if we are on a 32/64 bit machine +#as mex file extensions are named differently +pattern64=x86_64 +pattern32=i386 + +PWD=$(shell pwd) + #hardware platform + HW=$(shell uname -i) + ifeq ($(pattern64),$(findstring $(pattern64), $(HW))) + MEXE=mexa64 + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa64 + else + ifeq ($(pattern32),$(findstring $(pattern32), $(HW))) + MEXE=mexglx + MATLAB_LIB = $(MATLAB_ROOT)/bin/glnxa86 + endif + endif + +INSTALL_PATH?=$(INSTALL_MOCHA_LIBDIR) +OBJ_DIR= ${EPICS_HOST_ARCH}/$(MATLAB_VERSION) + +INCLUDEPATH_MOCHA += -I$(MATLAB_ROOT)/extern/include \ + -I$(CAFE_CPP_BASE)/include -I./ \ + -I$(EPICS_BASE)/include -I$(EPICS_BASE)/include/os/Linux \ + -I$(EPICS_BASE)/include/compiler/gcc + +INCLUDEPATH_MACHINETTA += $(INCLUDEPATH_MOCHA) -I$(BOOST_BASE) -I$(BOOST_BASE)/boost + + +# linkage to qt5 required if cafe built with Qt5 +#-lboost_system -lboost_thread-mt +LIBS += -ldl -lca -lCom -lmx -lmex -lmat -lQt5Core -lQt5Xml +#LIBS += -lmx -lmex -lmat + +$(OBJ_DIR)/mocha.$(MEXE): mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o + mex CXXFLAGS='$(CXXFLAGS) -v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L${QT5_DIR} -Wl,-rpath,${QT5_DIR} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) \ + -outdir $(OBJ_DIR) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) + cp example.m $(OBJ_DIR) + cp scripts/*.m $(OBJ_DIR) + cp scripts/test.xml $(OBJ_DIR) + + +$(OBJ_DIR)/macchinettaSwitch.o: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + -c macchinettaSwitch.cpp $(INCLUDEPATH_MACHINETTA) 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' -outdir $(OBJ_DIR) + +install: $(OBJ_DIR)/mocha.$(MEXE) + mkdir -p $(INSTALL_PATH) + mex CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread -std=c++1z' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(INSTALL_PATH) -output mocha.$(MEXE) $(INCLUDEPATH_MOCHA) \ + 'LDFLAGS=-L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) $(LIBS)' + + cp example.m $(INSTALL_PATH) + cp scripts/*.m $(INSTALL_PATH) + cp scripts/test.xml $(INSTALL_PATH) + +install_lib: $(OBJ_DIR)/libmacchinetta.so + mkdir -p $(INSTALL_PATH) + cp $(OBJ_DIR)/libmacchinetta.so $(INSTALL_PATH) + +clean: + rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/*.so $(OBJ_DIR)/*.$(MEXE) + +print-% : ; @echo $* = $($*)