change Darwin to macosx.
[u/mrichter/AliRoot.git] / HLT / Makefile.rules
1 #$Id$
2 ################################
3 # Makefile.rules for HLT code. #
4 #                              #
5 # Author: Anders Vestbo,       #
6 #         Constantin Loizides  #                    
7 ################################
8
9 #----------------------------------------------------
10 # !!! Dont change anything here                 !!!
11 # !!! and if you have to send a mail to authors !!!
12 #----------------------------------------------------
13
14 DEFSTR = -Dno_root
15 OBJDIR = lib_alone
16 INCLUDES = -I$(ALIHLT_TOPDIR)/src -I$(ALIHLT_TOPDIR)/hough -I$(ALIHLT_TOPDIR)/comp -I$(ALIHLT_TOPDIR)/misc -I$(ALIHLT_TOPDIR)/trigger -I$(ALIHLT_TOPDIR)/kalman
17
18 ifeq ($(ALIHLT_USEPACKAGE),ROOT) 
19 INCLUDES += -I$(ROOTSYS)/include 
20 DEFSTR = -Duse_root
21 OBJDIR = lib_ROOT
22 ROOTSTR := $(shell $(ROOTSYS)/bin/root -n -b -q  | grep Version | cut -b 17-25 | cut -d" " -f1)
23 DEFSTR += -DROOTVERSION=\"$(ROOTSTR)\" 
24 endif
25
26 ifeq ($(ALIHLT_USEPACKAGE),ALIROOT)
27 INCLUDES += -I$(ROOTSYS)/include -I$(ALICE_ROOT)/include/ -I$(ALICE_ROOT)/TPC -I$(ALICE_ROOT)/CONTAINERS -I$(ALICE_ROOT)/STEER
28 DEFSTR = -Duse_aliroot -Duse_root
29 ifeq ($(USENEWIO),1)
30 DEFSTR += -Duse_newio
31 endif
32 OBJDIR = lib
33 ROOTSTR := $(shell $(ROOTSYS)/bin/root -n -b -q  | grep Version | cut -b 17-25 | cut -d" " -f1)
34 DEFSTR += -DROOTVERSION=\"$(ROOTSTR)\" 
35 ifeq ($(USECVS),1)
36 ALIROOTSTR := $(shell if test -n "`cd $(ALICE_ROOT)/STEER/ && cvs stat AliRun.cxx | grep "Sticky Tag" | grep none`"; then echo HEAD; else cd $(ALICE_ROOT)/STEER/ && cvs stat AliRun.cxx | grep "Sticky Tag" | cut -b 18- | cut -d" " -f1; fi)
37 DEFSTR += -Duse_cvs
38 else
39 ALIROOTSTR = "Unknown"
40 endif
41 DEFSTR += -DALIROOTVERSION=\"$(ALIROOTSTR)\"
42 ifeq ($(ALIROOTST),HEAD)
43 DEFSTR += -Duse_reconstruction
44 endif
45 endif
46
47 ifeq ($(DOMC),1)
48 DEFSTR += -Ddo_mc
49 endif
50
51 ifeq ($(USEROWHOUGH),1)
52 DEFSTR += -DROWHOUGHPARAMS
53 endif
54
55 ifneq ($(NOLOGGING),1)
56 DEFSTR += -Duse_logging
57 ifdef ALIHLT_MLUCDIR
58 INCLUDES += -I$(ALIHLT_MLUCDIR)/include
59 else
60 INCLUDES += -I/prog/alice/level3/kip/MLUC/include
61 endif
62 endif
63
64 DEFSTR += -D$(ARCH) $(EXTRADEF)
65
66 DICT  = $(MODNAME)Cint-$(ALIHLT_USEPACKAGE).cxx
67 DICTH = $(MODNAME)Cint-$(ALIHLT_USEPACKAGE).h
68 DICTO = $(OBJDIR)/$(MODNAME)Cint-$(ALIHLT_USEPACKAGE).o
69
70 ifndef OBJS
71 ifeq ($(OBJDIR),lib_alone)
72 HDRS = $(SRCS:.cxx=.h) 
73 OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS))
74 else
75 HDRS = $(SRCS:.cxx=.h) $(MODNAME)LinkDef.h
76 OBJS = $(patsubst %.cxx,$(OBJDIR)/%.o,$(SRCS)) $(DICTO)
77 endif
78 endif
79
80 STATICOBJS = $(patsubst %.o,%.sto,$(OBJS))
81
82 ALIHLT_LIBSO  = $(ALIHLT_LIBDIR)/lib$(MODNAME).so
83 ALIHLT_DYLIB  = $(ALIHLT_LIBDIR)/lib$(MODNAME).dylib
84 ALIHLT_STATIC = $(ALIHLT_LIBDIR)/lib$(MODNAME).a
85
86 #Default Target
87 default: so
88
89 libs: so static
90
91 so: $(OBJDIR) $(ALIHLT_LIBDIR) $(ALIHLT_LIBSO) 
92
93 static: $(OBJDIR) $(ALIHLT_LIBDIR) $(ALIHLT_STATIC)
94
95 $(ALIHLT_LIBSO): $(OBJS)
96 ifeq ($(ARCH),macosx)
97         $(LD) $(DYFLAGS) $^ $(LDFLAGS) -o $(ALIHLT_DYLIB)
98 endif
99         $(LD) $(SOFLAGS) $^ $(LDFLAGS) -o $@
100
101 $(ALIHLT_STATIC): $(STATICOBJS)
102         $(LDSTATIC) $(STATICFLAGS) $@ $^ 
103
104 $(DICT): $(HDRS)
105         @echo "Generating dictionary..."
106         rootcint -f $(DICT) -c $(CINTCXXFLAGS) $(INCLUDES) \
107                     $(DEFSTR) -include AliL3StandardIncludes.h $(HDRS)
108
109 $(OBJDIR)/%.o: %.cxx 
110         $(CXX) $(CXXFLAGS) $(DEFSTR) -c $(INCLUDES) -o $@ $<
111
112 $(OBJDIR)/%.sto: %.cxx 
113         $(CXX) $(PROFILEFLAGS) $(CXXFLAGS) $(DEFSTR) -c $(INCLUDES) -o $@ $<
114
115 $(OBJDIR): 
116         test ! -e $(OBJDIR) && mkdir -p $(OBJDIR)
117
118 $(ALIHLT_LIBDIR):
119         test ! -e $(ALIHLT_LIBDIR) && mkdir -p $(ALIHLT_LIBDIR)
120
121 help:
122         cat $(ALIHLT_TOPDIR)/doc/README
123
124 print:
125         @echo "MODNAME           = $(MODNAME)" 
126         @echo "ALIHLT_BASEDIR    = $(ALIHLT_BASEDIR)"
127         @echo "ALIHLT_TOPDIR     = $(ALIHLT_TOPDIR)"
128         @echo "ALIHLT_MLUCDIR    = $(ALIHLT_MLUCDIR)"
129         @echo "ALIHLT_USEPACKAGE = $(ALIHLT_USEPACKAGE)"
130         @echo "ALIHLT_USENEWIO   = $(ALIHLT_USENEWIO)"
131         @echo "ALIHLT_NOLOGGING  = $(ALIHLT_NOLOGGING)"
132         @echo "ALIHLT_DOMC       = $(ALIHLT_DOMC)"
133         @echo "ALIHLT_ALIDETECT  = $(ALIHLT_ALIDETECT)"
134         @echo "ALIHLT_ROWHOUGH   = $(ALIHLT_ROWHOUGH)"
135         @echo "ROOTSTR           = $(ROOTSTR)"
136         @echo "ALIROOTSTR        = $(ALIROOTSTR)"
137
138 printall: print
139         @echo "ALIHLT_LIBSO      = $(ALIHLT_LIBSO)"
140         @echo "DEFSTR            = $(DEFSTR)"
141         @echo "OBJDIR            = $(OBJDIR)"
142         @echo "INCLUDES          = $(INCLUDES)"
143         @echo "SRCS              = $(SRCS)"
144         @echo "HRDS              = $(HDRS)"
145         @echo "OBJS              = $(OBJS)"
146
147 clean:
148         rm -f $(OBJDIR)/*.o $(OBJDIR)/*.sto
149         rm -f $(DICT) $(DICTH) 
150         rm -rf $(OBJDIR)
151
152 cleanlib:
153         rm -f $(ALIHLT_LIBSO) $(ALIHLT_DYLIB) $(ALIHLT_STATIC)
154
155 realclean: clean cleanlib
156
157
158 .phony: help print printall clean so realclean
159