Geant4 Cross Reference |
1 # 1 # 2 # ------ macOS ------ << 2 # ------ MacOS-X ------ 3 # macOS, Apple << 3 # MacOS 10.7 clang-3.0 4 # 4 # 5 # Original author: Gabriele Cosmo - CERN 5 # Original author: Gabriele Cosmo - CERN 6 # 6 # 7 ifeq ($(G4SYSTEM),Darwin-clang) 7 ifeq ($(G4SYSTEM),Darwin-clang) 8 CXX := clang++ << 8 CXX := clang 9 CXXFLAGS := -Wall -Wno-non-virtual-dtor -Wn << 9 CXXFLAGS := -Wall -pedantic -Wno-non-virtual-dtor -Wno-long-long 10 CXXFLAGS += -Wwrite-strings -Wpointer-arith << 10 CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -pipe 11 CXXFLAGS += -Wno-variadic-macros -Wshadow - << 12 CXXFLAGS += -fno-trapping-math -ftree-vecto << 13 CPPFLAGS += -DGL_SILENCE_DEPRECATION << 14 CPPFLAGS += -std=c++17 << 15 CXXFLAGS += -std=c++17 << 16 G4USE_STD17 := 1 << 17 ifdef G4MULTITHREADED << 18 CXXFLAGS += -ftls-model=initial-exec -pthr << 19 endif << 20 ifdef G4OPTIMISE 11 ifdef G4OPTIMISE 21 CXXFLAGS += -O3 << 12 CXXFLAGS += -O2 22 FCFLAGS := -O3 << 13 FCFLAGS := -O2 23 CCFLAGS := -O3 << 14 CCFLAGS := -O2 24 else 15 else 25 ifdef G4DEBUG 16 ifdef G4DEBUG 26 CXXFLAGS += -g 17 CXXFLAGS += -g 27 FCFLAGS := -g 18 FCFLAGS := -g 28 CCFLAGS := -g 19 CCFLAGS := -g 29 endif 20 endif 30 endif 21 endif 31 ifdef G4PROFILE 22 ifdef G4PROFILE 32 CXXFLAGS += -pg 23 CXXFLAGS += -pg 33 FCFLAGS += -pg 24 FCFLAGS += -pg 34 CCFLAGS += -pg 25 CCFLAGS += -pg 35 endif 26 endif 36 ifdef G4OPTDEBUG 27 ifdef G4OPTDEBUG 37 CXXFLAGS += -O2 -g 28 CXXFLAGS += -O2 -g 38 FCFLAGS += -O2 -g 29 FCFLAGS += -O2 -g 39 CCFLAGS += -O2 -g 30 CCFLAGS += -O2 -g 40 endif 31 endif 41 G4RUNPATHOPTION := -Wl,-rpath, << 42 # G4STATIC_MODE += -Wl,-force_load << 43 FC := gfortran 32 FC := gfortran 44 FCFLAGS += -fno-automatic -fno-backslash -fn 33 FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore 45 LDFLAGS += -bind_at_load 34 LDFLAGS += -bind_at_load 46 FCLIBS := -lg2c -lnsl 35 FCLIBS := -lg2c -lnsl 47 SHEXT := dylib 36 SHEXT := dylib 48 LOADLIBS += -lm << 37 LOADLIBS += -lm -lstdc++ 49 ifndef X11FLAGS 38 ifndef X11FLAGS 50 X11FLAGS := -I/usr/X11/include << 39 X11FLAGS := -I/usr/X11R6/include/X11/extensions -I/usr/X11R6/include/X11 51 endif 40 endif 52 ifndef X11LIBS 41 ifndef X11LIBS 53 X11LIBS := -L/usr/X11/lib -lXmu -lXt -l << 42 X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lXi -lSM -lICE 54 endif 43 endif 55 ifndef XMFLAGS 44 ifndef XMFLAGS 56 XMFLAGS := -I/usr/local/include << 45 XMFLAGS := -I/sw/include 57 # XMFLAGS := -I/usr/X11/include # << 46 # XMFLAGS := -I/usr/X11R6/include ##### some installations. 58 endif 47 endif 59 ifndef XMLIBS 48 ifndef XMLIBS 60 XMLIBS := -L/usr/local/lib -lXm -lXpm << 49 XMLIBS := -L/sw/lib -lXm -lXpm 61 # XMLIBS := -L/usr/X11/lib -lXm -lXpm # << 50 # XMLIBS := -L/usr/X11R6/lib -lXm -lXpm ##### some installations. 62 endif 51 endif 63 ifndef XAWFLAGS 52 ifndef XAWFLAGS 64 XAWFLAGS := -I/usr/local/include << 53 XAWFLAGS := -I/sw/include 65 # XAWFLAGS := -I/usr/X11/include # << 54 # XAWFLAGS := -I/usr/X11R6/include ##### some installations. 66 endif 55 endif 67 ifndef XAWLIBS 56 ifndef XAWLIBS 68 XAWLIBS := -lXaw 57 XAWLIBS := -lXaw 69 endif 58 endif 70 DLDLIBS := -ldl 59 DLDLIBS := -ldl 71 ifndef OGLHOME 60 ifndef OGLHOME 72 OGLHOME := /usr/X11 << 61 OGLHOME := /usr/X11R6 73 endif 62 endif 74 ifndef OGLFLAGS 63 ifndef OGLFLAGS 75 OGLFLAGS := -I$(OGLHOME)/include 64 OGLFLAGS := -I$(OGLHOME)/include 76 endif 65 endif 77 ifndef OGLLIBS 66 ifndef OGLLIBS 78 OGLPATH := $(shell test -f /Library/Frame << 67 QTGLPATH := $(shell test -f /System/Library/Frameworks/OpenGL.framework/OpenGL && echo "/System/Library/Frameworks/OpenGL.framework") 79 ifneq ($(OGLPATH),/Library/Frameworks/Open << 68 ifeq ($(QTGLPATH),/System/Library/Frameworks/OpenGL.framework) 80 OGLPATH := $(shell test -f /System/Libr << 69 OGLLIBS := -F/System/Library/Frameworks -framework OpenGL -framework AGL 81 endif << 70 ifeq ($(G4VIS_USE_OPENGLX),1) 82 ifneq ($(OGLPATH),) << 71 OGLLIBS += -L$(OGLHOME)/lib -lGLU -lGL 83 OGLLIBS := -F$(OGLPATH)/.. -framework Op << 72 endif 84 else 73 else 85 OGLLIBS := -L$(OGLHOME)/lib -lGL << 74 OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL 86 endif 75 endif 87 endif 76 endif 88 77 89 # ---- Qt Setup block ------------------------ 78 # ---- Qt Setup block ------------------------------------------------------- 90 79 91 ifndef QTHOME 80 ifndef QTHOME 92 QTHOME := /Library/Frameworks 81 QTHOME := /Library/Frameworks 93 endif 82 endif 94 ifndef QT_VERSION << 83 ifndef QTMOC 95 QT_VERSION := 5 << 84 ifeq ($(QTHOME),/Library/Frameworks) 96 endif << 97 ifeq ($(QTHOME),/Library/Frameworks) << 98 ifndef QTMOC << 99 QTMOC := /usr/bin/moc 85 QTMOC := /usr/bin/moc >> 86 else >> 87 QTMOC := $(QTHOME)/bin/moc 100 endif 88 endif 101 ifndef QTFLAGS << 89 endif 102 QTFLAGS := -I $(QTHOME)/QtCore.framewo << 90 ifndef QTFLAGS 103 QTFLAGS += -I $(QTHOME)/QtGui.framewor << 91 QTFLAGS := -I $(QTHOME)/QtCore.framework/Headers 104 QTFLAGS += -I $(QTHOME)/QtWidgets.fram << 92 QTFLAGS += -I $(QTHOME)/QtGui.framework/Headers 105 QTFLAGS += -I $(QTHOME)/QtOpenGL.frame << 93 QTFLAGS += -I $(QTHOME)/QtOpenGL.framework/Headers 106 QTFLAGS += -I $(QTHOME)/Qt3DCore.frame << 94 QTFLAGS += -I $(QTHOME)/include/Qt -I$(QTHOME)/include 107 QTFLAGS += -I $(QTHOME)/Qt3DExtras.fra << 95 endif 108 QTFLAGS += -I $(QTHOME)/Qt3DRender.fra << 96 ifndef QTLIBPATH 109 ifeq ($(QT_VERSION),6) << 97 ifeq ($(QTHOME),/Library/Frameworks) 110 QTFLAGS += -I $(QTHOME)/QtOpenGLWidg << 111 endif << 112 QTFLAGS += -I $(QTHOME)/include/Qt -I$ << 113 endif << 114 ifndef QTLIBPATH << 115 QTLPATH := $(QTHOME) 98 QTLPATH := $(QTHOME) >> 99 else >> 100 QTLPATH := $(QTHOME)/lib 116 endif 101 endif 117 QTLIBPATH := -F$(QTLPATH) 102 QTLIBPATH := -F$(QTLPATH) 118 QT_AS_FRAMEWORK := $(shell test -d $(QTLPA << 103 endif 119 ifndef QTLIBS << 104 120 ifdef QT_AS_FRAMEWORK << 105 QT_AS_FRAMEWORK := $(shell test -d $(QTLPATH)/QtCore.framework && echo yes) 121 QTLIBS := $(QTLIBPATH) -framework Q << 106 122 else << 107 ifndef QTLIBS 123 QTLIBS := -L$(QTLPATH) -lQtCore -lQ << 108 ifdef QT_AS_FRAMEWORK 124 endif << 109 QTLIBS := $(QTLIBPATH) -framework QtCore -framework QtGui 125 endif << 110 else 126 ifndef QT3DLIBS << 111 QTLIBS := -L$(QTLPATH) -lQtCore -lQtGui 127 ifdef QT_AS_FRAMEWORK << 128 QT3DLIBS := $(QTLIBPATH) -framework Q << 129 QT3DLIBS += -framework QtWidgets -fra << 130 else << 131 QT3DLIBS := -L$(QTLPATH) -lQtCore -lQ << 132 QT3DLIBS += -lQtWidgets -lQt3DCore -l << 133 endif << 134 endif << 135 ifndef GLQTLIBS << 136 ifdef QT_AS_FRAMEWORK << 137 GLQTLIBS := $(QTLIBPATH) -framework Q << 138 ifeq ($(QT_VERSION),6) << 139 GLQTLIBS += -framework QtOpenGLWidge << 140 endif << 141 else << 142 GLQTLIBS := -L$(QTLPATH) -lQtCore -lQ << 143 ifeq ($(QT_VERSION),6) << 144 GLQTLIBS += -lQtOpenGLWidgets << 145 endif << 146 endif << 147 endif << 148 else << 149 ifndef QTMOC << 150 QTMOC := $(QTHOME)/bin/moc << 151 endif << 152 QTLPATH := $(QTHOME)/lib << 153 ifndef QTFLAGS << 154 QTFLAGS := -I $(QTLPATH)/QtCore.framew << 155 QTFLAGS += -I $(QTLPATH)/QtGui.framewo << 156 QTFLAGS += -I $(QTLPATH)/QtWidgets.fra << 157 QTFLAGS += -I $(QTLPATH)/QtOpenGL.fram << 158 QTFLAGS += -I $(QTLPATH)/Qt3DCore.fram << 159 QTFLAGS += -I $(QTLPATH)/Qt3DExtras.fr << 160 QTFLAGS += -I $(QTLPATH)/Qt3DRender.fr << 161 QTFLAGS += -I $(QTHOME)/include/Qt -I$ << 162 ifeq ($(QT_VERSION),6) << 163 QTFLAGS += -I $(QTHOME)/QtOpenGLWidg << 164 endif << 165 endif << 166 ifndef QTLIBS << 167 QTLIBS := -F$(QTLPATH) -framework Qt << 168 QTLIBS += -framework QtWidgets << 169 endif << 170 ifndef QT3DLIBS << 171 QT3DLIBS := -F$(QTLPATH) -framework << 172 QT3DLIBS += -framework QtWidgets << 173 QT3DLIBS += -framework Qt3DCore -fra << 174 endif 112 endif 175 ifndef GLQTLIBS << 113 endif 176 GLQTLIBS := -F$(QTLPATH) -framework Q << 114 ifndef GLQTLIBS 177 GLQTLIBS += -framework QtWidgets << 115 ifdef QT_AS_FRAMEWORK >> 116 GLQTLIBS := $(QTLIBPATH) -framework QtCore -framework QtGui 178 GLQTLIBS += -framework QtOpenGL 117 GLQTLIBS += -framework QtOpenGL 179 ifeq ($(QT_VERSION),6) << 118 else 180 GLQTLIBS += -framework QtOpenGLWidget << 119 GLQTLIBS := -L$(QTLPATH) -lQtCore -lQtGui -lQtOpenGL 181 endif << 182 endif 120 endif 183 endif 121 endif 184 122 185 #------ Wt Setup block ----------------------- 123 #------ Wt Setup block ------------------------------------------------------ 186 124 187 ifndef WTHOME 125 ifndef WTHOME 188 WTHOME := /usr 126 WTHOME := /usr 189 endif 127 endif 190 WTFLAGS := -I$(WTHOME)/include/boost -I$(WTH 128 WTFLAGS := -I$(WTHOME)/include/boost -I$(WTHOME)/include -DQT_NO_KEYWORDS 191 WTLIBS := -L$(WTHOME)/lib -lwt -lwtext -lwt 129 WTLIBS := -L$(WTHOME)/lib -lwt -lwtext -lwthttp -lboost_signals -L/usr/lib -lz -lssl -lcrypto 192 130 193 #--------------------------------------------- 131 #---------------------------------------------------------------------------- 194 132 195 define build-granular-shared-lib 133 define build-granular-shared-lib 196 @libdir=`(cd $(@D);/bin/pwd)`; \ 134 @libdir=`(cd $(@D);/bin/pwd)`; \ 197 cd $(G4TMPDIR); \ 135 cd $(G4TMPDIR); \ 198 $(CXX) -Wl,-w -dynamiclib -single_module << 136 $(CXX) -dynamiclib -single_module -undefined dynamic_lookup \ 199 -o $$libdir/$(@F) $(INTYLIBS) *.o 137 -o $$libdir/$(@F) $(INTYLIBS) *.o 200 endef 138 endef 201 define build-global-shared-lib 139 define build-global-shared-lib 202 @libdir=`(cd $(@D);/bin/pwd)`; \ 140 @libdir=`(cd $(@D);/bin/pwd)`; \ 203 cd $(G4TMP)/$(G4SYSTEM); \ 141 cd $(G4TMP)/$(G4SYSTEM); \ 204 $(CXX) -Wl,-w -dynamiclib -single_module << 142 $(CXX) -dynamiclib -single_module -undefined dynamic_lookup \ 205 -o $$libdir/$(@F) $(INTYLIBS) $(forea 143 -o $$libdir/$(@F) $(INTYLIBS) $(foreach dir,$(SUBLIBS),$(dir)/*.o); 206 endef 144 endef 207 145 208 endif 146 endif