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