PAR: includes from previously enabled PARfiles
[u/mrichter/AliRoot.git] / cmake / PARfiles / Makefile.in
1 # Makefile for @PARMODULE@ -- automatically generated
2
3 # Include this file from the ROOT installed on the system where we are using the PARfile
4 include $(shell root-config --etcdir)/Makefile.arch
5
6 # Name of this module
7 PAR_MODULE := @PARMODULE@
8
9 # This module depends on the following libraries
10 PAR_LIBDEPS := @PARLIBDEPS@
11
12 # Current OS
13 OS := $(shell uname)
14
15 # Include paths: take into consideration "extra includes" (manually entered by users) and includes
16 # from other previously enabled PARfiles
17 PAR_EXTRAINCLUDES = @PAREXTRAINCLUDES@
18 PAR_INCLUDES = -I. $(addprefix -I../,$(ALICE_PARFILES_ENABLED)) $(addprefix -I,$(PAR_EXTRAINCLUDES)) -I$(ALICE_ROOT)/include -I$(ALICE_PHYSICS)/include -I$(shell root-config --incdir)
19 ifneq ($(FASTJET),)
20         PAR_INCLUDES += -I$(FASTJET)/include
21 endif
22
23 # Get C++ flags form ROOT
24 PAR_CXXFLAGS = $(CXXFLAGS) $(PAR_INCLUDES)
25
26 #¬†Get linker flags from ROOT
27 PAR_SOFLAGS = $(SOFLAGS) $(LDFLAGS)
28 ifeq ($(OS),Darwin)
29         # Only on OS X
30         PAR_SOFLAGS += -undefined dynamic_lookup
31 endif
32
33 # Get some ROOT build flags from the current installation
34 ROOT_DEFINES += $(shell root-config --features | grep -q xml && echo '-DWITHXML')
35 ROOT_DEFINES += $(shell root-config --features | grep -q alien && echo '-DWITHALIEN')
36 ifneq ($(FASTJET),)
37         ROOT_DEFINES += -DHAVE_FASTJET
38 endif
39
40 SRCS := @PARSOURCES_FLAT@
41 HDRS := @PARHEADERS_FLAT@
42
43 DHDR := $(PAR_MODULE)LinkDef.h
44
45 SRCS += G__$(PAR_MODULE).cxx
46 OBJS := $(SRCS:.cxx=.o)
47
48 COLM := \033[35m
49 COLC := \033[36m
50 COLG := \033[32m
51 COLZ := \033[m
52
53 # Multiplatform echo. Interprets escapes. Use it with $(call ECHO,"<message>")
54 ECHO = printf $(1)"\n"
55
56 # Default rule (it's the first one, "all" is just a convention)
57 all: lib$(PAR_MODULE).rootmap lib$(PAR_MODULE).so
58         @$(call ECHO,"[$(COLM)$(PAR_MODULE)$(COLZ)] $(COLG)PARfile built successfully$(COLZ)")
59
60 # Abstract rule to compile classes to objects
61 %.o: %.cxx %.h
62         @$(call ECHO,"[$(COLM)$(PAR_MODULE)$(COLZ)] compiling $(COLC)$<$(COLZ)")
63         @$(CXX) $(PAR_CXXFLAGS) -c $< -o $@
64
65 # Generate library from objects
66 lib$(PAR_MODULE).so: $(OBJS)
67         @$(call ECHO,"[$(COLM)$(PAR_MODULE)$(COLZ)] building shared library")
68         @$(LD) $(PAR_SOFLAGS) $^ -o $@ $(EXPLLINKLIBS)
69
70 # Generate dictionary (rule broken up to accommodate parallel builds)
71 G__$(PAR_MODULE).h: G__$(PAR_MODULE).cxx
72
73 G__$(PAR_MODULE).cxx: $(HDRS) $(DHDR)
74         @$(call ECHO,"[$(COLM)$(PAR_MODULE)$(COLZ)] generating dictionary")
75         @rootcint -f $@ -c -p $(ROOT_DEFINES) $(PAR_INCLUDES) $^
76
77 # Generate rootmap (for automatic loading of libraries)
78 lib$(PAR_MODULE).rootmap: lib$(PAR_MODULE).so
79         @$(call ECHO,"[$(COLM)$(PAR_MODULE)$(COLZ)] generating rootmap")
80         @rlibmap -o $@ -l lib$(PAR_MODULE) -d $(PAR_LIBDEPS) -c $(DHDR)
81
82 # Delete all
83 clean:
84         rm -f $(OBJS) *.so G__$(PAR_MODULE).* *.rootmap