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