]>
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 | |
f347de98 | 43 | MODULES:=PDF PYTHIA PYTHIA6 GEANT321 MINICERN STEER HIJING\ |
44 | TGeant3 PHOS TRD TPC ZDC MUON PMD FMD TOF ITS \ | |
45 | CASTOR RICH START STRUCT EVGEN RALICE ALIFAST \ | |
46 | THijing CONTAINERS MEVSIM TMEVSIM THbtp HBTP | |
47 | ################################################################## | |
efaab2ef | 48 | |
49 | MODULES += ALIROOT | |
50 | ||
51 | MODDIRS := MODULES | |
52 | ||
f347de98 | 53 | |
54 | ############################################################# | |
55 | # | |
56 | # Default include dirs for | |
57 | # C++, Fortran, Cint, and dependencies | |
58 | # The module directory will be added by each module | |
59 | # | |
60 | ||
efaab2ef | 61 | CXXFLAGS += $(patsubst %,-I%,$(ALICE_ROOT)) |
f347de98 | 62 | CXXFLAGS += -I$(ALICE_ROOT)/include |
efaab2ef | 63 | CXXFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include) |
64 | ||
65 | FFLAGS += $(patsubst %,-I%,$(ALICE_ROOT)) | |
f347de98 | 66 | FFLAGS += -I$(ALICE_ROOT)/include |
efaab2ef | 67 | FFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include) |
68 | ||
69 | CINTFLAGS += $(patsubst %,-I%,$(ALICE_ROOT)) | |
f347de98 | 70 | CINTFLAGS += -I$(ALICE_ROOT)/include |
efaab2ef | 71 | CINTFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include) |
72 | ||
73 | DEPINC += $(patsubst %,-I%,$(ALICE_ROOT)) | |
f347de98 | 74 | DEPINC += -I$(ALICE_ROOT)/include |
efaab2ef | 75 | DEPINC += $(patsubst %,-I%,$(ROOTSYS)/include) |
f347de98 | 76 | ############################################################# |
efaab2ef | 77 | |
78 | ||
f347de98 | 79 | ############################################################# |
80 | # | |
81 | # Libraries to link binaries against | |
82 | # Libraries will be linked againstSHLIB | |
efaab2ef | 83 | LIBS := $(ROOTLIBS) $(SYSLIBS) $(GLIBS) |
f347de98 | 84 | ############################################################# |
efaab2ef | 85 | |
86 | ||
87 | # default target | |
88 | default: alilibs aliroot | |
89 | ||
f347de98 | 90 | |
91 | ############################################################# | |
92 | # | |
93 | # Each module will add to this | |
94 | ||
efaab2ef | 95 | ALLLIBS := |
96 | ALLEXECS := | |
97 | INCLUDEFILES := | |
98 | BINLIBS := | |
f347de98 | 99 | EXPORTFILES := |
100 | ############################################################# | |
efaab2ef | 101 | |
102 | BINLIBDIRS := -L$(ALICE_ROOT)/$(LIBPATH) | |
103 | ||
104 | .PHONY: alilibs aliroot makedistr | |
105 | ||
106 | #Dependencies of module.mk files | |
107 | ||
108 | include build/module.dep | |
109 | ||
f347de98 | 110 | ############################################################# |
111 | # | |
112 | # Check if module.mk is present for the library | |
efaab2ef | 113 | %.mk: |
114 | @echo "***** Creating $@ file *****"; | |
115 | share/alibtool mkmodule $(patsubst %/module.mk,%,$@) > $@; | |
f347de98 | 116 | ############################################################# |
117 | ||
118 | # ************************************************************************** | |
119 | # | |
120 | # If cleaning, do not include | |
121 | # dependencies or module.mk files. | |
efaab2ef | 122 | |
efaab2ef | 123 | ifneq ($(findstring clean,$(MAKECMDGOALS)),clean) |
124 | ||
f347de98 | 125 | ############################################################# |
126 | # | |
127 | # Include the modules | |
efaab2ef | 128 | include $(patsubst %,%/module.mk,$(MODULES)) |
f347de98 | 129 | ############################################################# |
efaab2ef | 130 | |
f347de98 | 131 | ############################################################# |
132 | # | |
133 | # include dependencies if not making them! | |
efaab2ef | 134 | ifneq ($(MAKECMDGOALS),depend) |
135 | include $(INCLUDEFILES) | |
136 | endif | |
f347de98 | 137 | ############################################################# |
efaab2ef | 138 | |
139 | endif | |
f347de98 | 140 | # ************************************************************************** |
141 | ||
efaab2ef | 142 | |
143 | # targets | |
144 | ||
145 | aliroot: $(BINPATH) $(ALLEXECS) bin | |
146 | ||
147 | ||
148 | alilibs: $(LIBPATH) $(ALLLIBS) lib | |
149 | ||
150 | # Single Makefile "distribution": Makefile + modules + mkdepend scripts | |
151 | makedistr: $(MODULES) | |
152 | tar -cvf MakeDistr.tar $(patsubst %,%/*.pkg,$(MODULES)) \ | |
153 | Makefile create build/* | |
154 | ||
155 | all: aliroot | |
156 | ||
f347de98 | 157 | depend: $(INCLUDEFILES) |
efaab2ef | 158 | |
159 | debug: | |
160 | @echo "***** Entering DEBUG mode. *****" | |
161 | @(export ALIDEBUG=YES && $(MAKE) -f Makefile.flat ) | |
162 | lib: | |
163 | @mkdir lib | |
164 | @mkdir lib/tgt_$(ALICE_TARGET) | |
165 | ||
166 | bin: | |
167 | @mkdir bin | |
168 | @mkdir bin/tgt_$(ALICE_TARGET) | |
169 | ||
170 | $(MODULES): | |
171 | @echo "***** Making $@ *****" | |
172 | mkdir -p $@ | |
173 | ||
174 | $(BINPATH): | |
175 | @echo "***** Making $@ *****" | |
176 | mkdir -p $@ | |
177 | ||
178 | $(LIBPATH): | |
179 | @echo "***** Making $@ *****" | |
180 | mkdir -p $@ | |
181 | ||
182 | ||
f347de98 | 183 | cleanall: clean-modules |
efaab2ef | 184 | @echo "***** Cleaning up everything ****" |
185 | rm -rf $(patsubst %,%/module.mk,$(MODULES)) | |
186 | rm -rf $(patsubst %,%/tgt_$(ALICE_TARGET),$(MODULES)) | |
187 | rm -rf lib/tgt_$(ALICE_TARGET) | |
188 | rm -rf bin/tgt_$(ALICE_TARGET) | |
f347de98 | 189 | rm -rf $(EXPORTDIR) |
efaab2ef | 190 | |
f347de98 | 191 | clean: clean-modules clean-objects clean-libs clean-bins clean-ditcs |
efaab2ef | 192 | |
f347de98 | 193 | clead-dicts: |
194 | @echo "***** Cleaning up G__ files *****" | |
195 | rm -rf */tgt_$(ALICE_TARGET)/G__* | |
efaab2ef | 196 | clean-modules: |
197 | @echo "***** Cleaning up module.mk files *****" | |
198 | rm -rf $(patsubst %,%/module.mk,$(MODULES)) | |
199 | ||
200 | clean-depend: | |
201 | @echo "***** Cleaning up dependencies *****" | |
202 | rm -rf */tgt_$(ALICE_TARGET)/*.d | |
203 | rm -rf */tgt_$(ALICE_TARGET)/*/*.d | |
204 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*.d | |
205 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*/*.d | |
206 | ||
207 | clean-objects: | |
208 | @echo "***** Cleaning up .o files *****" | |
209 | rm -rf */tgt_$(ALICE_TARGET)/*.o | |
210 | rm -rf */tgt_$(ALICE_TARGET)/*/*.o | |
211 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*.o | |
212 | rm -rf */tgt_$(ALICE_TARGET)/*/*/*/*.o | |
213 | ||
214 | clean-libs: | |
215 | @echo "***** Cleaning up library files *****" | |
216 | rm -rf lib/tgt_$(ALICE_TARGET)/* | |
217 | ||
218 | clean-bins: | |
219 | @echo "***** Cleaning up binary files *****" | |
220 | rm -rf bin/tgt_$(ALICE_TARGET) | |
221 | ||
222 | ||
223 | ||
224 | ||
225 | ||
226 | ||
227 |