-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile_geant4
82 lines (70 loc) · 2.4 KB
/
Makefile_geant4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
SHELL=/bin/bash
ifndef GEANT4_VERSION
GEANT4_VERSION = 10.02.p02
endif
MAJOR_VERSION = $(shell echo $(GEANT4_VERSION) | awk -F. '{print $$1}')
MINOR_VERSION = $(shell echo $(GEANT4_VERSION) | awk -F. '{print $$2}' | sed 's/^0*//')
SUBMINOR_VERSION = $(shell echo $(GEANT4_VERSION) | awk -F. '{print $$3}' | sed 's/p//' | sed 's/^0*//')
TARFILE = geant4.$(GEANT4_VERSION).tar.gz
G4DIR = geant4.$(GEANT4_VERSION)
which_cmake3 := $(shell which cmake3)
find_cmake3 := $(findstring cmake3, $(which_cmake3))
ifeq (,$(find_cmake3))
CMAKE = cmake
else
CMAKE = cmake3
endif
include $(BUILD_SCRIPTS)/geant4_version.mk
all: $(G4DIR)/.make_install_done
$(TARFILE):
wget --no-verbose http://cern.ch/geant4-data/releases/$(TARFILE)
$(G4DIR)/.untar_done: $(TARFILE)
tar zxf $(TARFILE)
date > $@
$(G4DIR)/.patch_done: $(G4DIR)/.untar_done
cd $(G4DIR)/cmake/Templates ; \
patch geant4make-skeleton.in \
< $(BUILD_SCRIPTS)/patches/geant4/geant4make-skeleton.in.patch
cd $(G4DIR)/cmake/Modules ; \
if [[ $(MAJOR_VERSION) -le 9 || $(MAJOR_VERSION) -eq 10 && $(MINOR_VERSION) -lt 4 ]]; \
then patch Geant4ToolchainBackwardCompatibility.cmake \
< $(BUILD_SCRIPTS)/patches/geant4/Geant4ToolchainBackwardCompatibility.cmake.patch; \
fi
ifeq ($(GEANT4_EQ_10_04), true)
patch $(G4DIR)/config/sys/Linux-g++.gmk \
< $(BUILD_SCRIPTS)/patches/geant4/Linux-g++.gmk.patch
endif
date > $@
$(G4DIR)/.configure_done: $(G4DIR)/.patch_done
mkdir -p $(G4DIR)/build
cd $(G4DIR)/build ; $(CMAKE) \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_DATADIR=../data \
-DCMAKE_INSTALL_PREFIX=.. \
-DGEANT4_BUILD_MULTITHREADED=ON \
-DGEANT4_INSTALL_DATA=ON \
-DGEANT4_USE_GDML=ON \
-DGEANT4_USE_NETWORKDAWN=ON \
-DGEANT4_USE_OPENGL_X11=ON \
-DGEANT4_USE_RAYTRACER_X11=ON \
-DGEANT4_USE_XM=ON \
-DGEANT4_USE_QT=ON \
-DXERCESC_ROOT_DIR=$(XERCESCROOT) \
..
date > $@
$(G4DIR)/.make_done: $(G4DIR)/.configure_done
cd $(G4DIR)/build ; make $(GEANT4_MAKE_OPTIONS)
date > $@
$(G4DIR)/.make_install_done: $(G4DIR)/.make_done
cd $(G4DIR)/build ; make install
if [[ $(MAJOR_VERSION) -eq 10 && $(MINOR_VERSION) -gt 4 ]]; \
then cd $(G4DIR); ln -s data share ; \
fi
date > $@
help:
@echo CMAKE = $(CMAKE)
@echo G4DIR = $(G4DIR)
@echo TARFILE = $(TARFILE)
@echo MAJOR_VERSION = /$(MAJOR_VERSION)/
@echo MINOR_VERSION = /$(MINOR_VERSION)/
@echo SUBMINOR_VERSION = /$(SUBMINOR_VERSION)/