1 # Top level Makefile for AliRoot System
3 # Author: Jan-Erik Revsbech (revsbech@fys.ku.dk)
4 # Developed on idea of Boris Polichtchouk (Boris.Polichtchouk@cern.ch), 15/4/2001
7 ##### include general path/location macros #####
8 override ALICE_ROOT=$(shell pwd)
10 include build/Makefile.config
11 ##################################################################
13 # Where to install libraries and binaries
14 # and common header files
16 LIBPATH=lib/tgt_$(ALICE_TARGET)
17 BINPATH=bin/tgt_$(ALICE_TARGET)
18 EXPORTDIR = $(ALICE_ROOT)/include
19 ##################################################################
21 ##################################################################
22 # include machine dependent macros
24 include build/Makefile.$(ALICE_TARGET)
25 ##################################################################
27 ##################################################################
29 # Check if called with debug
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))
37 ##################################################################
39 ##################################################################
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 ##################################################################
54 #############################################################
56 # Default include dirs for
57 # C++, Fortran, Cint, and dependencies
58 # The module directory will be added by each module
61 CXXFLAGS += $(patsubst %,-I%,$(ALICE_ROOT))
62 CXXFLAGS += -I$(ALICE_ROOT)/include
63 CXXFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include)
65 FFLAGS += $(patsubst %,-I%,$(ALICE_ROOT))
66 FFLAGS += -I$(ALICE_ROOT)/include
67 FFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include)
69 CINTFLAGS += $(patsubst %,-I%,$(ALICE_ROOT))
70 CINTFLAGS += -I$(ALICE_ROOT)/include
71 CINTFLAGS += $(patsubst %,-I%,$(ROOTSYS)/include)
73 DEPINC += $(patsubst %,-I%,$(ALICE_ROOT))
74 DEPINC += -I$(ALICE_ROOT)/include
75 DEPINC += $(patsubst %,-I%,$(ROOTSYS)/include)
76 #############################################################
79 #############################################################
81 # Libraries to link binaries against
82 # Libraries will be linked againstSHLIB
83 LIBS := $(ROOTLIBS) $(SYSLIBS) $(GLIBS)
84 #############################################################
88 default: alilibs aliroot
91 #############################################################
93 # Each module will add to this
100 #############################################################
102 BINLIBDIRS := -L$(ALICE_ROOT)/$(LIBPATH)
104 .PHONY: alilibs aliroot makedistr
106 #Dependencies of module.mk files
108 include build/module.dep
110 #############################################################
112 # Check if module.mk is present for the library
114 @echo "***** Creating $@ file *****";
115 share/alibtool mkmodule $(patsubst %/module.mk,%,$@) > $@;
116 #############################################################
118 # **************************************************************************
120 # If cleaning, do not include
121 # dependencies or module.mk files.
123 ifneq ($(findstring clean,$(MAKECMDGOALS)),clean)
125 #############################################################
127 # Include the modules
128 include $(patsubst %,%/module.mk,$(MODULES))
129 #############################################################
131 #############################################################
133 # include dependencies if not making them!
134 ifneq ($(MAKECMDGOALS),depend)
135 include $(INCLUDEFILES)
137 #############################################################
140 # **************************************************************************
145 aliroot: $(BINPATH) $(ALLEXECS) bin
148 alilibs: $(LIBPATH) $(ALLLIBS) lib
150 # Single Makefile "distribution": Makefile + modules + mkdepend scripts
151 makedistr: $(MODULES)
152 tar -cvf MakeDistr.tar $(patsubst %,%/*.pkg,$(MODULES)) \
153 Makefile create build/*
157 depend: $(INCLUDEFILES)
160 @echo "***** Entering DEBUG mode. *****"
161 @(export ALIDEBUG=YES && $(MAKE) -f Makefile.flat )
164 @mkdir lib/tgt_$(ALICE_TARGET)
168 @mkdir bin/tgt_$(ALICE_TARGET)
171 @echo "***** Making $@ *****"
175 @echo "***** Making $@ *****"
179 @echo "***** Making $@ *****"
183 cleanall: clean-modules
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)
191 clean: clean-modules clean-objects clean-libs clean-bins clean-ditcs
194 @echo "***** Cleaning up G__ files *****"
195 rm -rf */tgt_$(ALICE_TARGET)/G__*
197 @echo "***** Cleaning up module.mk files *****"
198 rm -rf $(patsubst %,%/module.mk,$(MODULES))
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
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
215 @echo "***** Cleaning up library files *****"
216 rm -rf lib/tgt_$(ALICE_TARGET)/*
219 @echo "***** Cleaning up binary files *****"
220 rm -rf bin/tgt_$(ALICE_TARGET)