1 | # config.gmk |
---|
2 | |
---|
3 | # $Id: config.gmk 2998 2011-10-26 19:02:43Z mabl $ |
---|
4 | # |
---|
5 | # This part of Makefile set some variables based on the settings in Rules |
---|
6 | # |
---|
7 | |
---|
8 | ifndef CONFIG_DONE |
---|
9 | |
---|
10 | # Transform ESAFINSTALL from relative to absolute path |
---|
11 | ESAFINSTALL := $(realpath $(ESAFINSTALL)) |
---|
12 | |
---|
13 | include $(ESAFINSTALL)/Rules |
---|
14 | |
---|
15 | # architecture |
---|
16 | ARCH=$(shell uname -m) |
---|
17 | # @echo "ARCH=$(ARCH)" |
---|
18 | |
---|
19 | # Load compiler settings, this supports several levels of granularity: |
---|
20 | # 1. Try to load platform specific settings |
---|
21 | # 2. Try to load compiler specific settings |
---|
22 | # 3. Try to load compiler and platform specific settings |
---|
23 | |
---|
24 | -include $(ESAFINSTALL)/platform/config.$(ARCH) |
---|
25 | -include $(ESAFINSTALL)/platform/config.$(COMPILER) |
---|
26 | -include $(ESAFINSTALL)/platform/config.$(ARCH)$(COMPILER) |
---|
27 | |
---|
28 | |
---|
29 | ifndef CC_DONE |
---|
30 | $(error Could not find platform/ configuration files for you compiler "$(COMPILER)" and arch "$(ARCH)") |
---|
31 | endif |
---|
32 | |
---|
33 | #_Compiler independent settings_________________________________________________ |
---|
34 | |
---|
35 | CXXFLAGS += -DESAFARCH=$(ARCH) |
---|
36 | CXXFLAGS += -DESAFCXX='$(CPP) v$(CXX_VER)' |
---|
37 | |
---|
38 | #_______________________________________________________________________________ |
---|
39 | |
---|
40 | # cern libraries |
---|
41 | ifdef USE_SLAST77 |
---|
42 | CERNLIBS +=$(shell cernlib mathlib pawlib) |
---|
43 | CERNLIBS += -L${CERN}/${CERN_LEVEL}/lib |
---|
44 | LDFLAGS += $(CERNLIBS) |
---|
45 | endif |
---|
46 | ifdef ROOTSYS |
---|
47 | ROOTCFLAGS := $(shell root-config --cflags) |
---|
48 | ROOTLIBS := $(shell root-config --libs) |
---|
49 | ROOTGLIBS := $(shell root-config --glibs) |
---|
50 | |
---|
51 | EXTRAROOTLIBS := Geom GeomPainter Minuit Ged Thread Spectrum |
---|
52 | |
---|
53 | CXXFLAGS += -fPIC |
---|
54 | CXXFLAGS += $(ROOTCFLAGS) |
---|
55 | LDFLAGS += $(ROOTGLIBS) $(patsubst %,-l%, $(EXTRAROOTLIBS)) |
---|
56 | else |
---|
57 | $(error root not configured properly) |
---|
58 | endif |
---|
59 | |
---|
60 | |
---|
61 | ifeq ($(USE_GUI),1) |
---|
62 | $(info Building with GUI ACTIVATED) |
---|
63 | CXXFLAGS += -DUSE_GUI |
---|
64 | else |
---|
65 | $(info Building with GUI DISABLED) |
---|
66 | endif |
---|
67 | |
---|
68 | ifeq ($(USE_VISUALIZATION),1) |
---|
69 | $(info Building with visualizations ACTIVATED) |
---|
70 | CXXFLAGS += -DUSE_VISUALIZATION |
---|
71 | else |
---|
72 | $(info Building with visualizations DISABLED) |
---|
73 | endif |
---|
74 | |
---|
75 | |
---|
76 | # Temporary Directory |
---|
77 | ESAFTMPALL := $(ESAFTMP)/ESAFTMP.$(shell whoami) |
---|
78 | ESAFTMP := $(ESAFTMPALL)/$(ARCH) |
---|
79 | DUMMY := $(shell [ ! -d $(ESAFTMP) ] && mkdir -p $(ESAFTMP) ) |
---|
80 | |
---|
81 | ifeq ($(VERBOSE_COMPILING),1) |
---|
82 | CPPVERBOSE = 1 |
---|
83 | endif |
---|
84 | |
---|
85 | |
---|
86 | CPPFLAGS := $(CXXFLAGS) |
---|
87 | endif |
---|
88 | |
---|
89 | # Library Directory |
---|
90 | LIBDIR = $(ESAFINSTALL)/lib/$(ARCH) |
---|
91 | |
---|
92 | # Binary Directory |
---|
93 | BINDIR = $(ESAFINSTALL)/bin/$(ARCH) |
---|
94 | SIMUTARGET = $(BINDIR)/Simu |
---|
95 | RECOTARGET = $(BINDIR)/Reco |
---|
96 | |
---|
97 | # Output Directory |
---|
98 | OUTPUTDIR = $(ESAFINSTALL)/output |
---|
99 | |
---|
100 | # Tmp directory |
---|
101 | TMPDIR = $(ESAFINSTALL)/tmp |
---|
102 | |
---|
103 | # Packages Directory |
---|
104 | ESAFPACKAGES = $(ESAFINSTALL)/packages |
---|
105 | |
---|
106 | #tmp directory |
---|
107 | PACKAGETMP := $(ESAFTMP)/$(PACKAGENAME) |
---|
108 | |
---|
109 | #inlude dir (macro support) |
---|
110 | INCLUDEDIR = $(ESAFINSTALL)/include |
---|
111 | |
---|
112 | # The documentation stuff |
---|
113 | ESAFDOC := $(ESAFINSTALL)/doc |
---|
114 | |
---|
115 | #library prefix |
---|
116 | LIBPREFIX := |
---|
117 | |
---|
118 | # The goal |
---|
119 | PACKAGELIB := $(LIBDIR)/lib$(LIBPREFIX)$(PACKAGENAME).so |
---|
120 | |
---|
121 | #rlibmap |
---|
122 | ELIBMAP:=$(ROOTSYS)/bin/rlibmap |
---|
123 | |
---|
124 | # .rootmap position |
---|
125 | ESAFMAP:=$(ESAFINSTALL)/.rootmap |
---|
126 | |
---|
127 | PACKAGELIBDEP:=$(ROOTLIBDEP:%=$(ROOTSYS)/lib/lib%.so) |
---|
128 | PACKAGELIBDEP+=$(ESAFLIBDEP:%=$(LIBDIR)/lib%.so) |
---|
129 | |
---|
130 | ifndef CONFIG_DONE |
---|
131 | DUMMY := $(shell [ ! -d $(BINDIR) ] && mkdir -p $(BINDIR) ) |
---|
132 | DUMMY := $(shell [ ! -d $(OUTPUTDIR) ] && mkdir -p $(OUTPUTDIR) ) |
---|
133 | DUMMY := $(shell [ ! -d $(LIBDIR) ] && mkdir -p $(LIBDIR) ) |
---|
134 | DUMMY := $(shell [ ! -d $(TMPDIR) ] && mkdir -p $(TMPDIR) ) |
---|
135 | ifeq ($(MAKECMDGOALS),includes) |
---|
136 | DUMMY := $(shell [ ! -d $(INCLUDEDIR) ] && mkdir -p $(INCLUDEDIR) ) |
---|
137 | endif |
---|
138 | CONFIG_DONE = 1 |
---|
139 | |
---|
140 | export CONFIG_DONE CPP CXX F77 CXXFLAGS FFLAGS LDFLAGS CERNLIBS ESAFTMP ARCH ESAFTMPALL CPPVERBOSE |
---|
141 | export BINDIR SIMUTARGET RECOTARGET OUTPUTDIR INCLUDEDIR ESAFPACKAGES PACKAGETMP ESAFDOC LIBPREFIX PACKAGELIB |
---|
142 | export ELIBMAP ESAFMAP PACKAGELIBDEP USE_VISUALIZATION USE_GUI |
---|
143 | endif # CONFIG_DONE |
---|
144 | |
---|
145 | |
---|