From 3a2ff3c8d44af357dfed8d4b0f6967df36f415b7 Mon Sep 17 00:00:00 2001 From: chrin Date: Tue, 26 Sep 2017 08:36:12 +0200 Subject: [PATCH] mocha-1.3.0-final-2 --- .gitignore | 1 + makefile | 2 +- makefile_rel_1.3 | 124 ++++++++++++++++++++++++++++++++++++++ makefile_rel_1.3_win.make | 70 +++++++++++++++++++++ 4 files changed, 196 insertions(+), 1 deletion(-) create mode 100644 makefile_rel_1.3 create mode 100644 makefile_rel_1.3_win.make diff --git a/.gitignore b/.gitignore index 1318aa7..bf668b9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *~ *.bak SL6-x86_64 +windows-x64 felix-cache diff --git a/makefile b/makefile index b5a1cf6..c05c996 120000 --- a/makefile +++ b/makefile @@ -1 +1 @@ -makefile_rel_2014_1.3 \ No newline at end of file +makefile_rel_1.3 \ No newline at end of file diff --git a/makefile_rel_1.3 b/makefile_rel_1.3 new file mode 100644 index 0000000..20d5217 --- /dev/null +++ b/makefile_rel_1.3 @@ -0,0 +1,124 @@ +# +# Jan Chrin +# New Version: June 2016 +# +# makefile to build mocha mex file +# printenv | grep MATLAB to reveal your MATLAB Directory +# +# e.g. on sf-lc we have +# MATLAB=/afs/psi.ch/sys/linux/opt/matlab/2015a.x86_64 +# +# 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.3.0-final-2 +#CAFE version to link to +CAFE_VERSION=cafe-1.3.0-final-2 + + + +EPICS_BASE=${EPICS}/base +#CAFE project base +CAFE_BASE=/opt/gfa/cafe +CAFE_MOCHA_BASE=${CAFE_BASE}/mocha +#CAFE_CPP_BASE=/afs/psi.ch/project/cafe/gitlab/CAFE/cpp +CAFE_CPP_BASE=$(CAFE_BASE)/cpp/$(CAFE_VERSION) + + +BOOST_BASE=${CAFE_BASE}/boost/boost_1_61_0/include +BOOST_LIB=/afs/psi.ch/project/zeromq/devl/mate/deps/boost/lib + +QT_LIB=/usr/lib64 + +INSTALL_MOCHA_LIBDIR= $(CAFE_MOCHA_BASE)/$(MOCHA_VERSION)/lib/$(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 + + +INCLUDEPATH_MACHINETTA += $(INCLUDEPATH_MOCHA) -I$(BOOST_BASE) -I$(BOOST_BASE)/boost + + +LIB_DIR += \ + -L$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \ + -Wl,-rpath,$(EPICS_BASE)/lib/${EPICS_HOST_ARCH} \ + -L$(MATLAB_LIB) -Wl,-rpath,$(MATLAB_LIB) \ + -L$(CAFE_CPP_BASE) \ + -Wl,-rpath,$(CAFE_CPP_BASE) \ + -L$(QT_LIB) -Wl,-rpath,$(QT_LIB) + + +LIBS += -ldl -lca -lCom -lmx -lmex -lmat -lQtCore -lQtXml + +LIB_INSTALL = $(LIB_DIR) -L$(INSTALL_PATH) -Wl,-rpath,$(INSTALL_PATH) + +LIB_LOCAL = $(LIB_DIR) + + +CAFE_OBJS_DIR = $(CAFE_BASE)/cpp/$(CAFE_VERSION)/lib/libcafe.a + +# MATLAB Versions 2014 onwards, use +# LDFLAGS='$(LIB_LOCAL) $(LIBS) instead of $(LIB_LOCAL) $(LIBS) +# LDFLAGS='$(LIB_LOCAL) $(LIBS) instead of $(LIB_INSTALL) $(LIBS) + + +$(OBJ_DIR)/mocha.$(MEXE): mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o + mex -largeArrayDims GCC='/usr/bin/gcc' CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(OBJ_DIR) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) \ + LDFLAGS='$(LIB_LOCAL) $(LIBS)' + + +$(OBJ_DIR)/macchinettaSwitch.o: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + mex GCC='/usr/bin/g++' CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread' \ + -largeArrayDims -c macchinettaSwitch.cpp $(INCLUDEPATH_MACHINETTA) -outdir $(OBJ_DIR) + + +install: $(OBJ_DIR)/mocha.$(MEXE) + mkdir -p $(INSTALL_PATH) + mex -largeArrayDims GCC='/usr/bin/gcc' CXXFLAGS='-v -largeArrayDims -ansi -fexceptions -fPIC -fno-omit-frame-pointer -pthread' \ + mocha.cpp $(OBJ_DIR)/macchinettaSwitch.o $(CAFE_OBJS_DIR) -outdir $(INSTALL_PATH) -output mocha.$(MEXE) \ + $(INCLUDEPATH_MOCHA) \ + LDFLAGS='$(LIB_INSTALL) $(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) + diff --git a/makefile_rel_1.3_win.make b/makefile_rel_1.3_win.make new file mode 100644 index 0000000..38c712c --- /dev/null +++ b/makefile_rel_1.3_win.make @@ -0,0 +1,70 @@ +MATLAB_ROOT=C:\'Program Files'\MATLAB\R2016b_x64 +MEXE=mexw64 +#c:\local\boost_1_62_0\ + +INCLUDES = -IC:\CAFE\CAFE\cpp\include -IC:\CAFE\CAFE\cpp -IC:\local\boost_1_62_0 \ +-IC:\local\boost_1_62_0\boost -IC:\epics\base-3.14.12.5\include -IC:\epics\base-3.14.12.5\include\os\WIN32 \ +-I"C:\Program Files\MATLAB\R2016b_x64\extern\include" \ +-Ic:\Qt\qt-4.8.6-x64-msvc2010\include -Ic:\Qt\qt-4.8.6-x64-msvc2010\include\QtCore -Ic:\Qt\qt-4.8.6-msvc2010\include\QtXml + +CXX=cl +CXXFLAGS = /W4 /EHsc +OUTPUT_OPTION = /o $@ +LIB_LOCAL = C:\epics\base-3.14.12.5\lib\windows-x64\Com.lib C:\epics\base-3.14.12.5\lib\windows-x64\ca.lib \ +C:\CAFE\CAFE\cpp\cafe.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_thread-vc100-mt-1_62.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_system-vc100-mt-1_62.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_chrono-vc100-mt-1_62.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-1_62.lib \ +C:\Qt\Qt-4.8.6-msvc2010\lib\QtCore4.lib C:\Qt\tq-4.8.6-msvc2010\lib\QtXml4.lib +#"C:\Program Files\MATLAB\R2016b_x64\extern\lib\win64\microsoft\libmat.lib" \ +#"C:\Program Files\MATLAB\R2016b_x64\extern\lib\win64\microsoft\libmex.lib" \ +#"C:\Program Files\MATLAB\R2016b_x64\extern\lib\win64\microsoft\libmx.lib" + +LIB_CAFE=C:\CAFE\CAFE\cpp\cafe.lib +LIB_BOOST =C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-1_62.lib + +LIB_BOOST2=C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-s-1_62.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_thread-vc100-mt-s-1_62.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_system-vc100-mt-s-1_62.lib \ +C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_chrono-vc100-mt-s-1_62.lib + +#LIB_BOOST2=C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_thread-vc100-mt-s-1_62.lib \ +#C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_system-vc100-mt-s-1_62.lib \ +#C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-s-1_62.lib \ +#C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_chrono-vc100-mt-s-1_62.lib + +#LIB_BOOST=C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_thread-vc100-mt-1_62.lib \ +#C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_system-vc100-mt-1_62.lib \ +#C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_date_time-vc100-mt-1_62.lib \ +#C:\local\boost_1_62_0\lib64-msvc-10.0\libboost_chrono-vc100-mt-1_62.lib + +LIB_QT=C:\Qt\Qt-4.8.6-x64-msvc2010\lib\QtCore4.lib C:\Qt\qt-4.8.6-x64-msvc2010\lib\QtXml4.lib + +LIB_EPICS=C:\epics\base-3.14.12.5\lib\windows-x64\Com.lib C:\epics\base-3.14.12.5\lib\windows-x64\ca.lib + +OBJ_DIR=windows-x64 + +CAFE_OBJS = C:\CAFE\CAFE\cpp\src\cafeCache.obj C:\CAFE\CAFE\cpp\src\cafeGroup.obj C:\CAFE\CAFE\cpp\src\cafe.obj C:\CAFE\CAFE\cpp\src\cafeVectors.obj \ + C:\CAFE\CAFE\cpp\src\cafeXML.obj C:\CAFE\CAFE\cpp\src\callbackHandlerCreate.obj C:\CAFE\CAFE\cpp\src\callbackHandlerMonitor.obj \ + C:\CAFE\CAFE\cpp\src\conduitGroup.obj C:\CAFE\CAFE\cpp\src\conduit.obj \ + C:\CAFE\CAFE\cpp\src\connectCallbacks.obj C:\CAFE\CAFE\cpp\src\connectGroup.obj \ + C:\CAFE\CAFE\cpp\src\connect.obj C:\CAFE\CAFE\cpp\src\exceptionsHelper.obj C:\CAFE\CAFE\cpp\src\granules.obj C:\CAFE\CAFE\cpp\src\handleHelper.obj \ + C:\CAFE\CAFE\cpp\src\helper.obj \ + C:\CAFE\CAFE\cpp\src\loadCollectionXMLParser.obj C:\CAFE\CAFE\cpp\src\loadGroupXMLParser.obj C:\CAFE\CAFE\cpp\src\methodCallbacks.obj \ + C:\CAFE\CAFE\cpp\src\policyHelper.obj \ + C:\CAFE\CAFE\cpp\src\restorePVGroupXMLParser.obj C:\CAFE\CAFE\cpp\src\transpose.obj + +#\NODEFAULTLIB +$(OBJ_DIR)\mocha.$(MEXE): mocha.cpp $(OBJ_DIR)\macchinettaSwitch.obj + "C:\Program Files\MATLAB\R2016b_x64\bin\win64\mex" -v COMPFLAGS="$(COMPFLAGS) -Wall" mocha.cpp $(OBJ_DIR)/macchinettaSwitch.obj -DDB_TEXT_GLBLSOURCE -DMSCC -DWIN32 -DWIN64 -largeArrayDims $(INCLUDES) $(LIB_EPICS) $(LIB_CAFE) $(LIB_BOOST) $(LIB_BOOST2) $(LIB_QT) \ + -outdir $(OBJ_DIR) -output mocha.$(MEXE) + +$(OBJ_DIR)\macchinettaSwitch.obj: macchinettaSwitch.cpp macchinettaHelper.h \ + macchinetta.h containerMochaccino.h + "C:\Program Files\MATLAB\R2016b_x64\bin\win64\mex" -largeArrayDims \ + -c macchinettaSwitch.cpp $(INCLUDES) -outdir $(OBJ_DIR) + +clean: + rm -f $(OBJ_DIR)/*.obj $(OBJ_DIR)/*.$(MEXE) +