]>
Commit | Line | Data |
---|---|---|
efaab2ef | 1 | # Top level Makefile for AliRoot System |
2 | # | |
3 | # Author: Jan-Erik Revsbech (revsbech@fys.ku.dk) | |
4 | # Developed on idea of Boris Polichtchouk (Boris.Polichtchouk@cern.ch), 15/4/2001 | |
5 | ||
6 | ||
7 | ##### include general path/location macros ##### | |
8 | override ALICE_ROOT=$(shell pwd) | |
9 | ||
10 | include build/Makefile.config | |
f347de98 | 11 | ################################################################## |
12 | # | |
13 | # Where to install libraries and binaries | |
14 | # and common header files | |
efaab2ef | 15 | |
efaab2ef | 16 | LIBPATH=lib/tgt_$(ALICE_TARGET) |
17 | BINPATH=bin/tgt_$(ALICE_TARGET) | |
f347de98 | 18 | EXPORTDIR = $(ALICE_ROOT)/include |
19 | ################################################################## | |
efaab2ef | 20 | |
f347de98 | 21 | ################################################################## |
22 | # include machine dependent macros | |
efaab2ef | 23 | |
efaab2ef | 24 | include build/Makefile.$(ALICE_TARGET) |
f347de98 | 25 | ################################################################## |
26 | ||
27 | ################################################################## | |
28 | # | |
29 | # Check if called with debug | |
efaab2ef | 30 | |
efaab2ef | 31 | ifeq ($(ALIDEBUG),YES) |
32 | override ALICE_TARGET:=$(ALICE_TARGET)DEBUG | |
33 | FFLAGS := -g $(filter-out -O%,$(FFLAGS)) | |
34 | CXXFLAGS := -g $(filter-out -O%,$(CXXLAGS)) | |
35 | CFLAGS := -g $(filter-out -O%,$(CLAGS)) | |
36 | endif | |
f347de98 | 37 | ################################################################## |
efaab2ef | 38 | |
f347de98 | 39 | ################################################################## |
efaab2ef | 40 | # |
f347de98 | 41 | # Modules to build |
efaab2ef | 42 | |
896cb507 | 43 | # COMMENTED OUT FOR TEST PURPOSES |
f347de98 | 44 | MODULES:=PDF PYTHIA PYTHIA6 GEANT321 MINICERN STEER HIJING\ |
45 | TGeant3 PHOS TRD TPC ZDC MUON PMD FMD TOF ITS \ | |
46 | CASTOR RICH START STRUCT EVGEN RALICE ALIFAST \ | |
1cd01d78 | 47 | THijing CONTAINERS MEVSIM TMEVSIM THbtp HBTP EMCAL |
896cb507 | 48 | |
49 | # MODULES:=STEER HBTP PHOS | |
50 | ||
f347de98 | 51 | ################################################################## |
efaab2ef | 52 | |
53 | MODULES += ALIROOT | |
54 | ||
55 | MODDIRS := MODULES | |
56 | ||
f347de98 | 57 | |
58 | ############################################################# | |
59 | # | |
60 | # Default include dirs for | |
61 | # C++, Fortran, Cint, and dependencies | |
62 | # The module directory will be added by each module | |
63 | # | |
64 | ||
efaab2ef | 65 | CXXFLAGS += $(patsubst %,-I%,$(ALICE_ROOT)) |
f347de98 | 66 | CXXFLAGS += -I$(ALICE_ROOT)/include |
efaab2ef | 67 | CXXFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include) |
68 | ||
69 | FFLAGS += $(patsubst %,-I%,$(ALICE_ROOT)) | |
f347de98 | 70 | FFLAGS += -I$(ALICE_ROOT)/include |
efaab2ef | 71 | FFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include) |
72 | ||
73 | CINTFLAGS += $(patsubst %,-I%,$(ALICE_ROOT)) | |
f347de98 | 74 | CINTFLAGS += -I$(ALICE_ROOT)/include |
efaab2ef | 75 | CINTFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include) |
76 | ||
77 | DEPINC += $(patsubst %,-I%,$(ALICE_ROOT)) | |
f347de98 | 78 | DEPINC += -I$(ALICE_ROOT)/include |
efaab2ef | 79 | DEPINC += $(patsubst %,-I%,$(ROOTSYS)/include) |
f347de98 | 80 | ############################################################# |
efaab2ef | 81 | |
82 | ||
f347de98 | 83 | ############################################################# |
84 | # | |
85 | # Libraries to link binaries against | |
86 | # Libraries will be linked againstSHLIB | |
efaab2ef | 87 | LIBS := $(ROOTLIBS) $(SYSLIBS) $(GLIBS) |
f347de98 | 88 | ############################################################# |
efaab2ef | 89 | |
90 | ||
91 | # default target | |
92 | default: alilibs aliroot | |
93 | ||
f347de98 | 94 | |
95 | ############################################################# | |
96 | # | |
97 | # Each module will add to this | |
98 | ||
efaab2ef | 99 | ALLLIBS := |
100 | ALLEXECS := | |
101 | INCLUDEFILES := | |
102 | BINLIBS := | |
f347de98 | 103 | EXPORTFILES := |
104 | ############################################################# | |
efaab2ef | 105 | |
106 | BINLIBDIRS := -L$(ALICE_ROOT)/$(LIBPATH) | |
107 | ||
896cb507 | 108 | .PHONY: alilibs aliroot makedistr headers |
efaab2ef | 109 | |
110 | #Dependencies of module.mk files | |
111 | ||
112 | include build/module.dep | |
113 | ||
f347de98 | 114 | ############################################################# |
115 | # | |
116 | # Check if module.mk is present for the library | |
efaab2ef | 117 | %.mk: |
118 | @echo "***** Creating $@ file *****"; | |
896cb507 | 119 | @share/alibtool mkmodule $(patsubst %/module.mk,%,$@) > $@; |
f347de98 | 120 | ############################################################# |
121 | ||
122 | # ************************************************************************** | |
123 | # | |
124 | # If cleaning, do not include | |
125 | # dependencies or module.mk files. | |
efaab2ef | 126 | |
efaab2ef | 127 | ifneq ($(findstring clean,$(MAKECMDGOALS)),clean) |
128 | ||
896cb507 | 129 | # If makeing modules, not not include |
130 | # anything | |
131 | ||
132 | ifneq ($(findstring modules,$(MAKECMDGOALS)),modules) | |
133 | ||
134 | ||
f347de98 | 135 | ############################################################# |
136 | # | |
137 | # Include the modules | |
efaab2ef | 138 | include $(patsubst %,%/module.mk,$(MODULES)) |
f347de98 | 139 | ############################################################# |
efaab2ef | 140 | |
f347de98 | 141 | ############################################################# |
142 | # | |
143 | # include dependencies if not making them! | |
efaab2ef | 144 | ifneq ($(MAKECMDGOALS),depend) |
145 | include $(INCLUDEFILES) | |
146 | endif | |
f347de98 | 147 | ############################################################# |
efaab2ef | 148 | |
896cb507 | 149 | endif |
efaab2ef | 150 | endif |
f347de98 | 151 | # ************************************************************************** |
152 | ||
efaab2ef | 153 | |
154 | # targets | |
155 | ||
896cb507 | 156 | modules: $(patsubst %,%/module.mk,$(MODULES)) |
157 | ||
158 | aliroot: $(BINPATH) $(ALLEXECS) alilibs bin headers | |
efaab2ef | 159 | |
896cb507 | 160 | headers: $(EXPORTFILES) |
efaab2ef | 161 | |
896cb507 | 162 | alilibs: $(LIBPATH) $(ALLLIBS) lib headers modules |
efaab2ef | 163 | |
164 | # Single Makefile "distribution": Makefile + modules + mkdepend scripts | |
165 | makedistr: $(MODULES) | |
166 | tar -cvf MakeDistr.tar $(patsubst %,%/*.pkg,$(MODULES)) \ | |
167 | Makefile create build/* | |
168 | ||
169 | all: aliroot | |
170 | ||
f347de98 | 171 | depend: $(INCLUDEFILES) |
efaab2ef | 172 | |
173 | debug: | |
174 | @echo "***** Entering DEBUG mode. *****" | |
175 | @(export ALIDEBUG=YES && $(MAKE) -f Makefile.flat ) | |
176 | lib: | |
177 | @mkdir lib | |
178 | @mkdir lib/tgt_$(ALICE_TARGET) | |
179 | ||
180 | bin: | |
181 | @mkdir bin | |
182 | @mkdir bin/tgt_$(ALICE_TARGET) | |
183 | ||
184 | $(MODULES): | |
185 | @echo "***** Making $@ *****" | |
186 | mkdir -p $@ | |
187 | ||
188 | $(BINPATH): | |
189 | @echo "***** Making $@ *****" | |
190 | mkdir -p $@ | |
191 | ||
192 | $(LIBPATH): | |
193 | @echo "***** Making $@ *****" | |
194 | mkdir -p $@ | |
195 | ||
196 | ||
f347de98 | 197 | cleanall: clean-modules |
efaab2ef | 198 | @echo "***** Cleaning up everything ****" |
199 | rm -rf $(patsubst %,%/module.mk,$(MODULES)) | |
200 | rm -rf $(patsubst %,%/tgt_$(ALICE_TARGET),$(MODULES)) | |
201 | rm -rf lib/tgt_$(ALICE_TARGET) | |
202 | rm -rf bin/tgt_$(ALICE_TARGET) | |
f347de98 | 203 | rm -rf $(EXPORTDIR) |
efaab2ef | 204 | |
f347de98 | 205 | clean: clean-modules clean-objects clean-libs clean-bins clean-ditcs |
efaab2ef | 206 | |
896cb507 | 207 | clean-dicts: |
f347de98 | 208 | @echo "***** Cleaning up G__ files *****" |
209 | rm -rf */tgt_$(ALICE_TARGET)/G__* | |
efaab2ef | 210 | clean-modules: |
211 | @echo "***** Cleaning up module.mk files *****" | |
212 | rm -rf $(patsubst %,%/module.mk,$(MODULES)) | |
213 | ||
214 | clean-depend: | |
215 | @echo "***** Cleaning up dependencies *****" | |
216 | rm -rf */tgt_$(ALICE_TARGET)/*.d | |
217 | rm -rf */tgt_$(ALICE_TARGET)/*/*.d | |
218 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*.d | |
219 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*/*.d | |
220 | ||
221 | clean-objects: | |
222 | @echo "***** Cleaning up .o files *****" | |
223 | rm -rf */tgt_$(ALICE_TARGET)/*.o | |
224 | rm -rf */tgt_$(ALICE_TARGET)/*/*.o | |
225 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*.o | |
226 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*/*.o | |
227 | ||
228 | clean-libs: | |
229 | @echo "***** Cleaning up library files *****" | |
230 | rm -rf lib/tgt_$(ALICE_TARGET)/* | |
231 | ||
232 | clean-bins: | |
233 | @echo "***** Cleaning up binary files *****" | |
234 | rm -rf bin/tgt_$(ALICE_TARGET) | |
235 | ||
236 | ||
237 | ||
238 | ||
239 | ||
240 | ||
241 |