-OPT_FLAGS=-O6 -DPOPCOUNT_TABLE -DHAS_NATIVE_POPCOUNT -fno-PIC
-INC_FLAGS=-I./libcds/includes/ -I.
-CFLAGS= $(INC_FLAGS) $(OPT_FLAGS)
-CXXFLAGS= -std=c++0x $(INC_FLAGS) $(OPT_FLAGS)
-CC=g++
-
-LIBCDS_A=libcds/lib/libcds.a
-OBJECTS_TCO= TextCollection/TextCollection.o \
- TextCollection/TextCollectionBuilder.o \
- TextCollection/RLCSABuilder.o \
- TextCollection/FMIndex.o \
- TextCollection/FMIndexBuilder.o \
- TextCollection/Tools.o \
- TextCollection/TextStorage.o \
- TextCollection/Query.o \
- TextCollection/EditDistance.o \
- TextCollection/ResultSet.o
-
-OBJECTS_XMLTREE=XMLTree.o XMLTreeBuilder.o bp.o darray.o bpcore.o
-
-LIBRLCSA_TCA=TextCollection/incbwt/rlcsa.a
-LIBLZTRIE_TCA=TextCollection/lzindex/lztrie.a
-LIBSWCSA_TCA=TextCollection/swcsa/swcsa.a
-
-all: depend libcds text_collection XMLTree
-
-XMLTree: $(OBJECTS_XMLTREE) $(LIBCDS_A) $(OBJECTS_TCO) \
- $(LIBRLCSA_TCA) $(LIBLZTRIE_TCA) $(LIBSWCSA_TCA)
- @echo [XMLTree]
- @cp libcds/lib/libcds.a XMLTree.a
- @rm -rf .objs
- @mkdir .objs
- @cd .objs; ar x ../$(LIBRLCSA_TCA); ar x ../$(LIBLZTRIE_TCA); ar x ../$(LIBSWCSA_TCA)
- @ar rcs XMLTree.a $(OBJECTS_XMLTREE) $(OBJECTS_TCO) .objs/*.o
- @rm -rf .objs
-
-%o: %c
- @echo [C] $@
- @$(CC) -c $(CFLAGS) $< -o $@
+INC_FLAGS=-I.. -I../libcds/includes/ -I.
+
+ifeq ($(POPCOUNT), 1)
+ POPCOUNT_FLAG=-DHAS_NATIVE_POPCOUNT -mpopcnt
+else
+ POPCOUNT_FLAG=
+endif
+
+ifeq ($(VERBOSE), true)
+ HIDE=
+else
+ HIDE=@
+endif
+
+ifeq ($(DEBUG), true)
+ OPT_FLAGS=-O0 -g $(POPCOUNT_FLAG) -static
+else
+ OPT_FLAGS=-O3 $(POPCOUNT_FLAG) -static
+endif
+
+ifeq ($(PROFILE), true)
+ PROF_FLAGS=-pg -g
+else
+ PROF_FLAGS=
+endif
+
+
+CXXFLAGS=-std=c++0x $(INC_FLAGS) $(OPT_FLAGS) $(PROF_FLAGS)
+CXX=g++
+
+#OBJECTS_XMLTREE=XMLTree.o XMLTreeBuilder.o
+#XMLTREE_A=libXMLTree.a
+OBJECTS_XMLTREE=bit-vector.o xml-tree.o xml-tree-builder.o
+XMLTREE_A=libxml-tree.a
+
+
+
+all: depend $(XMLTREE_A)
+
+$(XMLTREE_A): $(OBJECTS_XMLTREE)
+ @echo [Link] $@
+ $(HIDE) ar rcs $@ $(OBJECTS_XMLTREE)
%o: %cpp
@echo [C++] $@
- @$(CC) -c $(CXXFLAGS) $< -o $@
-
-text_collection:
- @echo [DEPENDENCY] $@
- @make -s -C TextCollection/
+ $(HIDE) $(CXX) -c $(CXXFLAGS) $< -o $@
-libcds:
- @echo [DEPENDENCY] $@
- @make -s -C libcds/
depend:
@echo [DEPEND]
- @(gcc -MM *.c; g++ -MM -std=c++0x *.cpp) > $@
+ $(HIDE) ($(CXX) -MM $(CXXFLAGS) *.cpp) > $@
clean:
@echo [CLEAN]
- @rm -f *.[oa] depend
+ $(HIDE) rm -f *.[oa] depend
-include depend
-