Geant4 Cross Reference |
1 # 1 # 2 # ------ GNU/LINUX ------ Intel icc 19 2 # ------ GNU/LINUX ------ Intel icc 19.x.x and higher 3 # 3 # 4 ifeq ($(G4SYSTEM),Linux-icc) 4 ifeq ($(G4SYSTEM),Linux-icc) 5 CXX := icc 5 CXX := icc 6 CXXFLAGS := -W -Wall -ansi -pedantic -Wno-n 6 CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long 7 CXXFLAGS += -Wwrite-strings -Wpointer-arith 7 CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual 8 CXXFLAGS += -Wno-variadic-macros -Wshadow - 8 CXXFLAGS += -Wno-variadic-macros -Wshadow -pipe 9 CXXFLAGS += -fp-model precise -diag-disable 9 CXXFLAGS += -fp-model precise -diag-disable=10441 10 CPPFLAGS += -std=c++17 10 CPPFLAGS += -std=c++17 11 CXXFLAGS += -std=c++17 11 CXXFLAGS += -std=c++17 12 G4USE_STD17 := 1 12 G4USE_STD17 := 1 13 ifdef G4MULTITHREADED 13 ifdef G4MULTITHREADED 14 CXXFLAGS += -ftls-model=initial-exec -pthr 14 CXXFLAGS += -ftls-model=initial-exec -pthread 15 endif 15 endif 16 ifdef G4OPTIMISE 16 ifdef G4OPTIMISE 17 CXXFLAGS += -O3 17 CXXFLAGS += -O3 18 FCFLAGS := -O3 18 FCFLAGS := -O3 19 CCFLAGS := -O3 19 CCFLAGS := -O3 20 else 20 else 21 ifdef G4DEBUG 21 ifdef G4DEBUG 22 CXXFLAGS += -g 22 CXXFLAGS += -g 23 FCFLAGS := -g 23 FCFLAGS := -g 24 CCFLAGS := -g 24 CCFLAGS := -g 25 endif 25 endif 26 endif 26 endif 27 ifdef G4PROFILE 27 ifdef G4PROFILE 28 CXXFLAGS += -qp 28 CXXFLAGS += -qp 29 FCFLAGS += -qp 29 FCFLAGS += -qp 30 CCFLAGS += -pg 30 CCFLAGS += -pg 31 endif 31 endif 32 ifdef G4LIB_BUILD_SHARED 32 ifdef G4LIB_BUILD_SHARED 33 CXXFLAGS += -fPIC 33 CXXFLAGS += -fPIC 34 FCFLAGS += -fPIC 34 FCFLAGS += -fPIC 35 CCFLAGS += -fPIC 35 CCFLAGS += -fPIC 36 endif 36 endif 37 G4RUNPATHOPTION := -Wl,-rpath -Wl, 37 G4RUNPATHOPTION := -Wl,-rpath -Wl, 38 G4STATIC_MODE += -Wl,--whole-archive 38 G4STATIC_MODE += -Wl,--whole-archive 39 G4NOSTATIC_MODE += -Wl,--no-whole-archive 39 G4NOSTATIC_MODE += -Wl,--no-whole-archive 40 CC := icc 40 CC := icc 41 FC := ifort 41 FC := ifort 42 FCFLAGS += -noautomatic -assume nobscc -assu 42 FCFLAGS += -noautomatic -assume nobscc -assume no2underscores 43 FCLIBS := -lg2c -lnsl 43 FCLIBS := -lg2c -lnsl 44 AR := ar r 44 AR := ar r 45 ECHO := /bin/echo -e 45 ECHO := /bin/echo -e 46 SHEXT := so 46 SHEXT := so 47 LOADLIBS += -limf 47 LOADLIBS += -limf 48 ifndef X11FLAGS 48 ifndef X11FLAGS 49 X11FLAGS := -I/usr/include/X11/extensions 49 X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11 50 endif 50 endif 51 ifndef X11LIBS 51 ifndef X11LIBS 52 X11LIBS := -L/usr/lib -lXmu -lXt -lXext 52 X11LIBS := -L/usr/lib -lXmu -lXt -lXext -lX11 -lSM -lICE 53 endif 53 endif 54 ifndef XMFLAGS 54 ifndef XMFLAGS 55 XMFLAGS := -I/usr/include 55 XMFLAGS := -I/usr/include 56 endif 56 endif 57 ifndef XMLIBS 57 ifndef XMLIBS 58 XMLIBS := -lXm -lXpm 58 XMLIBS := -lXm -lXpm 59 endif 59 endif 60 ifndef XAWFLAGS 60 ifndef XAWFLAGS 61 XAWFLAGS := -I/usr/include 61 XAWFLAGS := -I/usr/include 62 endif 62 endif 63 ifndef XAWLIBS 63 ifndef XAWLIBS 64 XAWLIBS := -lXaw 64 XAWLIBS := -lXaw 65 endif 65 endif 66 DLDLIBS := -ldl 66 DLDLIBS := -ldl 67 ifndef OGLFLAGS 67 ifndef OGLFLAGS 68 OGLFLAGS := -I$(OGLHOME)/include 68 OGLFLAGS := -I$(OGLHOME)/include 69 endif 69 endif 70 ifndef OGLHOME 70 ifndef OGLHOME 71 OGLHOME := /usr 71 OGLHOME := /usr 72 endif 72 endif 73 ifndef OGLLIBS 73 ifndef OGLLIBS 74 OGLLIBS := -L$(OGLHOME)/lib -lGL 74 OGLLIBS := -L$(OGLHOME)/lib -lGL 75 endif 75 endif 76 76 77 # ---- QT Setup block ------------------------ 77 # ---- QT Setup block ------------------------------------------------------- 78 78 79 ifndef QTHOME 79 ifndef QTHOME 80 QTHOME := /usr 80 QTHOME := /usr 81 endif 81 endif 82 ifndef QTMOC 82 ifndef QTMOC 83 QTMOC := $(QTHOME)/bin/moc 83 QTMOC := $(QTHOME)/bin/moc 84 endif 84 endif 85 85 86 ifndef QT_VERSION 86 ifndef QT_VERSION 87 QT_VERSION := 5 87 QT_VERSION := 5 88 endif 88 endif 89 89 90 ifndef QTFLAGS << 90 ifeq ($(QT_VERSION),5) 91 QTFLAGS := -I $(QTHOME)/include -I$(QTHO << 91 ifndef QTFLAGS # Qt5 92 QTFLAGS += -I $(QTHOME)/include/QtCore << 92 QTFLAGS := -I $(QTHOME)/include -I$(QTHOME)/include/Qt 93 QTFLAGS += -I $(QTHOME)/include/QtGui << 93 QTFLAGS += -I $(QTHOME)/include/QtCore 94 QTFLAGS += -I $(QTHOME)/include/QtWidget << 94 QTFLAGS += -I $(QTHOME)/include/QtGui 95 QTFLAGS += -I $(QTHOME)/include/QtOpenGL << 95 QTFLAGS += -I $(QTHOME)/include/QtWidgets 96 QTFLAGS += -I $(QTHOME)/include/Qt3DCore << 96 QTFLAGS += -I $(QTHOME)/include/QtOpenGL 97 QTFLAGS += -I $(QTHOME)/include/Qt3DExtr << 97 QTFLAGS += -I $(QTHOME)/include/Qt3DCore 98 QTFLAGS += -I $(QTHOME)/include/Qt3DRend << 98 QTFLAGS += -I $(QTHOME)/include/Qt3DExtras 99 ifeq ($(QT_VERSION),6) << 99 QTFLAGS += -I $(QTHOME)/include/Qt3DRender 100 QTFLAGS += -I $(QTHOME)/include/QtOpen << 100 QTFLAGS += -I $(QTHOME)/include/QtPrintSupport >> 101 endif >> 102 else # Qt4 >> 103 ifndef QTFLAGS >> 104 QTFLAGS := -I$(QTHOME)/include -I$(QTHOME)/include/Qt >> 105 QTFLAGS += -I$(QTHOME)/include/QtCore >> 106 QTFLAGS += -I$(QTHOME)/include/QtGui >> 107 QTFLAGS += -I$(QTHOME)/include/QtOpenGL 101 endif 108 endif 102 endif 109 endif 103 ifndef QTLIBPATH 110 ifndef QTLIBPATH 104 QTLIBPATH := $(QTHOME)/lib 111 QTLIBPATH := $(QTHOME)/lib 105 QT_SEARCH_LIB := $(shell ls $(QTLIBPATH)/ 112 QT_SEARCH_LIB := $(shell ls $(QTLIBPATH)/qt$(QT_VERSION)/libq* 2>/dev/null | wc -l ) 106 ifneq ($(QT_SEARCH_LIB),0) 113 ifneq ($(QT_SEARCH_LIB),0) 107 QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSIO 114 QTLIBPATH := $(QTHOME)/lib/qt$(QT_VERSION) 108 endif 115 endif 109 endif 116 endif 110 ifeq ($(QT_VERSION),5) # Qt5 << 117 ifeq ($(QT_VERSION),5) 111 ifndef QTLIBS << 118 ifndef QTLIBS # Qt5 112 QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQ << 119 QTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5PrintSupport 113 endif 120 endif 114 ifndef QT3DLIBS 121 ifndef QT3DLIBS 115 QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQ << 122 QT3DLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt53DCore -lQt53DExtras -lQt53DRender -lQt5PrintSupport 116 endif 123 endif 117 ifndef GLQTLIBS 124 ifndef GLQTLIBS 118 GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQ << 125 GLQTLIBS := -L$(QTLIBPATH) -lQt5Core -lQt5Gui -lQt5Widgets -lQt5OpenGL -lQt5PrintSupport 119 endif 126 endif 120 else # Qt6 << 127 else # Qt4 121 ifndef QTLIBS 128 ifndef QTLIBS 122 QTLIBS := -L$(QTLIBPATH) -lQt6Core -lQ << 129 QTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui 123 endif << 124 ifndef QT3DLIBS << 125 QT3DLIBS := -L$(QTLIBPATH) -lQt6Core -lQ << 126 endif 130 endif 127 ifndef GLQTLIBS 131 ifndef GLQTLIBS 128 GLQTLIBS := -L$(QTLIBPATH) -lQt6Core -lQ << 132 GLQTLIBS := -L$(QTLIBPATH) -lQtCore -lQtGui -lQtOpenGL 129 endif 133 endif 130 endif 134 endif 131 135 132 #--------------------------------------------- 136 #---------------------------------------------------------------------------- 133 137 134 define build-granular-shared-lib 138 define build-granular-shared-lib 135 @libdir=`(cd $(@D);/bin/pwd)`; \ 139 @libdir=`(cd $(@D);/bin/pwd)`; \ 136 cd $(G4TMPDIR); \ 140 cd $(G4TMPDIR); \ 137 $(CXX) -diag-disable=10441 -Wl,-soname,$( 141 $(CXX) -diag-disable=10441 -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) *.o 138 endef 142 endef 139 define build-global-shared-lib 143 define build-global-shared-lib 140 @libdir=`(cd $(@D);/bin/pwd)`; \ 144 @libdir=`(cd $(@D);/bin/pwd)`; \ 141 cd $(G4TMP)/$(G4SYSTEM); \ 145 cd $(G4TMP)/$(G4SYSTEM); \ 142 $(CXX) -diag-disable=10441 -Wl,-soname,$( 146 $(CXX) -diag-disable=10441 -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) \ 143 $(foreach dir,$(SUBLIBS),$ 147 $(foreach dir,$(SUBLIBS),$(dir)/*.o); 144 endef 148 endef 145 149 146 endif 150 endif