Clean-up makefile
[SXSI/XMLTree.git] / Makefile
1 OPT_FLAGS=-O6 -DPOPCOUNT_TABLE -DHAS_NATIVE_POPCOUNT 
2 INC_FLAGS=-I./libcds/includes/ -I.
3 CFLAGS= $(INC_FLAGS) $(OPT_FLAGS)
4 CXXFLAGS= -std=c++0x $(INC_FLAGS) $(OPT_FLAGS)
5 CC=g++
6
7 LIBCDS_A=libcds/lib/libcds.a 
8 OBJECTS_TCO= TextCollection/TextCollection.o \
9              TextCollection/TextCollectionBuilder.o \
10              TextCollection/RLCSABuilder.o \
11              TextCollection/FMIndex.o \
12              TextCollection/FMIndexBuilder.o \
13              TextCollection/Tools.o \
14              TextCollection/TextStorage.o \
15              TextCollection/Query.o \
16              TextCollection/EditDistance.o \
17              TextCollection/ResultSet.o
18
19 OBJECTS_XMLTREE=XMLTree.o XMLTreeBuilder.o bp.o darray.o bpcore.o
20
21 LIBRLCSA_TCA=TextCollection/incbwt/rlcsa.a
22 LIBLZTRIE_TCA=TextCollection/lzindex/lztrie.a
23 LIBSWCSA_TCA=TextCollection/swcsa/swcsa.a
24
25 all: depend libcds text_collection XMLTree
26
27 XMLTree: $(OBJECTS_XMLTREE) $(LIBCDS_A) $(OBJECTS_TCO) \
28          $(LIBRLCSA_TCA) $(LIBLZTRIE_TCA) $(LIBSWCSA_TCA)
29         @echo [XMLTree]
30         @cp libcds/lib/libcds.a XMLTree.a
31         @rm -rf .objs
32         @mkdir .objs
33         @cd .objs; ar x ../$(LIBRLCSA_TCA); ar x ../$(LIBLZTRIE_TCA); ar x ../$(LIBSWCSA_TCA)
34         @ar rcs XMLTree.a $(OBJECTS_XMLTREE) $(OBJECTS_TCO) .objs/*.o
35         @rm -rf .objs
36
37 %o: %c
38         @echo [C] $@
39         @$(CC) -c $(CFLAGS) $< -o $@
40
41 %o: %cpp
42         @echo [C++] $@
43         @$(CC) -c $(CXXFLAGS)  $< -o $@
44
45 text_collection:
46         @echo [DEPENDENCY] $@
47         @make -s -C TextCollection/
48
49 libcds:
50         @echo [DEPENDENCY] $@
51         @make -s -C libcds/
52
53 depend:
54         @echo [DEPEND]
55         @(gcc -MM *.c; g++ -MM -std=c++0x *.cpp) > $@
56
57 clean:
58         @echo [CLEAN]
59         @rm -f *.[oa] depend
60
61 -include depend
62