source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/makeso_nocint.gmk @ 117

Last change on this file since 117 was 117, checked in by moretto, 11 years ago

ESAF version compilable on mac OS

File size: 2.2 KB
Line 
1# ESAF : Euso Simulation and Analysis Framework
2# $Id: makeso_nocint.gmk,v 1.1 2006-05-08 19:15:33 naumov Exp $
3#
4# makeso_nocint.gmk --- disabled CINT
5#
6# Common part of GNUmakefile with shared libraries creation
7#
8# You can pass PACKAGES_EXCLUDE=name which will cause the build process to
9# ignore src/name.cc during build.
10
11PACKAGETMP := $(ESAFTMP)/$(PACKAGENAME)
12DUMMY := $(shell [ ! -d $(PACKAGETMP) ] && mkdir -p $(PACKAGETMP) )
13
14
15# Check if PACKAGES_EXCLUDE is given and print info
16ifdef PACKAGES_EXCLUDE
17PACKAGE_IGNORES := $(patsubst %,src/%.cc,$(PACKAGES_EXCLUDE))
18PACKAGE_IGNOREH := $(patsubst %,include/%.hh,$(PACKAGES_EXCLUDE))
19$(info INFO: Ignoring package $(PACKAGES_EXCLUDE)...)
20endif
21
22PACKAGES   := $(filter-out $(PACKAGE_IGNORES), $(wildcard src/*.cc))
23PACKAGEH   := $(filter-out $(wildcard include/*LinkDef.h) $(PACKAGE_IGNOREH),$(wildcard include/*.hh))
24PACKAGEO   := $(patsubst src/%.cc,$(PACKAGETMP)/%.o,$(PACKAGES))
25PACKAGEDEP := $(PACKAGEO:.o=.d)
26
27CXXFLAGS   += -I.
28# The documentation stuff
29ESAFDOC := $(ESAFINSTALL)/doc
30
31# The goal
32#PACKAGELIB := $(LIBDIR)/lib$(PACKAGENAME).so
33
34$(PACKAGELIB): $(PACKAGETMP)/obj.last
35        @echo Building $(@F)...
36        @$(CXX) --shared $(CXXFLAGS) $(PACKAGEDO) $(PACKAGEO) -L$(LIBDIR) -o $@
37
38$(PACKAGEDO):
39        @echo Compiling $(<F)
40        @$(CXX) -c $(CXXFLAGS) $< -o $@
41
42obj: $(PACKAGETMP)/obj.last
43
44lib: $(PACKAGELIB)
45
46dict: $(PACKAGELIB)
47
48# Touch the versioning file
49$(PACKAGETMP)/obj.last: $(PACKAGEO) $(PACKAGEDO)
50        @touch $@
51
52# Build objects
53$(PACKAGETMP)/%.o : src/%.cc
54        @echo Compiling $(<F)
55ifdef CPPVERBOSE
56        $(CXX) -c $(CXXFLAGS) $< -o $@
57else
58        @$(CXX) -c $(CXXFLAGS) $< -o $@
59endif
60
61clean:
62        @echo Cleaning up $(PACKAGENAME)
63        @rm -f $(PACKAGELIB)
64        @rm -rf $(PACKAGETMP)
65        @rm -f tags
66
67#dependencies
68$(PACKAGETMP)/%.d: src/%.cc
69        @echo Making dependency for file $< ...
70        @set -e; $(CXX) -MM $(CXXFLAGS) $< \
71                | sed 's!\($*\)\.o[ :]*!$(PACKAGETMP)/\1.o $@ : !g' > $@; \
72                [ -s $@ ] || rm -f $@
73
74ifneq ($(MAKECMDGOALS),clean)
75ifneq ($(PACKAGEDEP),)
76-include $(PACKAGEDEP)
77endif
78endif
79
80.PHONY: obj lib dict clean tags doc
81
82tags:
83#       @echo Creating tags file
84        @-ctags -l c++ -T -S -w src/*.cc include/*.hh
85
86doc:
87        @echo Creating documentation
88        @$(ESAFPACKAGES)/tools/MakeListOfClasses.pl $(PACKAGENAME) dummy $(ESAFDOC)
Note: See TracBrowser for help on using the repository browser.