More code towards graph
[satune.git] / src / Makefile
index a5408beb76b1fb787d90eb8940288c3a112ca2b6..e099994e89c59b1445a63c705e84609cc6615a5a 100644 (file)
@@ -4,13 +4,16 @@ PHONY += directories
 MKDIR_P = mkdir -p
 OBJ_DIR = bin
 
-C_SOURCES := set.c mutableset.c element.c function.c order.c table.c predicate.c boolean.c csolver.c structs.c constraint.c inc_solver.c
+CPP_SOURCES := $(wildcard *.cc) $(wildcard AST/*.cc) $(wildcard ASTTransform/*.cc) $(wildcard Translator/*.cc) $(wildcard ASTAnalyses/*.cc) $(wildcard ASTAnalyses/Order/*.cc) $(wildcard ASTAnalyses/Encoding/*.cc) $(wildcard ASTAnalyses/Polarity/*.cc) $(wildcard Tuner/*.cc) $(wildcard Collections/*.cc) $(wildcard Backend/*.cc) $(wildcard Encoders/*.cc)
 
-TABBING_H := boolean.h classlist.h common.h config.h constraint.h csolver.h element.h function.h inc_solver.h mutableset.h mymemory.h ops.h order.h predicate.h set.h solver_interface.h structs.h table.h
+C_SOURCES := $(wildcard *.c) $(wildcard AST/*.c) $(wildcard ASTTransform/*.c) $(wildcard Translator/*.c) $(wildcard ASTAnalyses/*.c) $(wildcard ASTAnalyses/Order/*.c) $(wildcard ASTAnalyses/Encoding/*.c) $(wildcard ASTAnalyses/Polarity/*.c) $(wildcard Tuner/*.c) $(wildcard Collections/*.c) $(wildcard Backend/*.c) $(wildcard Encoders/*.c)
+
+HEADERS := $(wildcard *.h) $(wildcard AST/*.h) $(wildcard ASTTransform/*.h) $(wildcard Translator/*.h) $(wildcard ASTAnalyses/*.h) $(wildcard ASTAnalyses/Order/*.h) $(wildcard ASTAnalyses/Encoding/*.h) $(wildcard ASTAnalyses/Polarity/*.h) $(wildcard Tuner/*.h) $(wildcard Collections/*.h) $(wildcard Backend/*.h) $(wildcard Encoders/*.h)
 
 OBJECTS := $(CPP_SOURCES:%.cc=$(OBJ_DIR)/%.o) $(C_SOURCES:%.c=$(OBJ_DIR)/%.o)
 
-CPPFLAGS += -Iinclude -I.
+CFLAGS := -Wall -g -O0
+CFLAGS += -IAST -IASTTransform -IASTAnalyses -IASTAnalyses/Polarity -IASTAnalyses/Order -IASTAnalyses/Encoding -ITranslator -ICollections -IBackend -I. -IEncoders -ITuner
 LDFLAGS := -ldl -lrt -rdynamic
 SHARED := -shared
 
@@ -22,31 +25,42 @@ endif
 
 MARKDOWN := ../docs/Markdown/Markdown.pl
 
-all: directories $(LIB_SO)
+all: directories ${OBJ_DIR}/$(LIB_SO)
 
 directories: ${OBJ_DIR}
 
 ${OBJ_DIR}:
        ${MKDIR_P} ${OBJ_DIR}
-
-debug: CPPFLAGS += -DCONFIG_DEBUG
+       ${MKDIR_P} ${OBJ_DIR}/AST
+       ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses
+       ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses/Order
+       ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses/Encoding
+       ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses/Polarity
+       ${MKDIR_P} ${OBJ_DIR}/ASTTransform
+       ${MKDIR_P} ${OBJ_DIR}/Translator
+       ${MKDIR_P} ${OBJ_DIR}/Tuner
+       ${MKDIR_P} ${OBJ_DIR}/Collections
+       ${MKDIR_P} ${OBJ_DIR}/Backend
+       ${MKDIR_P} ${OBJ_DIR}/Encoders
+
+debug: CFLAGS += -DCONFIG_DEBUG
 debug: all
 
+test: all
+       make -C Test
+
 PHONY += docs
-docs: *.c *.cc *.h
+docs: $(C_SOURCES) $(HEADERS)
        doxygen
 
-$(LIB_SO): $(OBJECTS)
-       $(CXX) -g $(SHARED) -o $(LIB_SO) $+ $(LDFLAGS)
-
-${OBJ_DIR}/%.o: %.c
-       $(CC) -fPIC -c $< -o $@ $(CPPFLAGS) -Wno-unused-variable
+${OBJ_DIR}/$(LIB_SO): $(OBJECTS)
+       $(CXX) -g $(SHARED) -o ${OBJ_DIR}/$(LIB_SO) $+ $(LDFLAGS)
 
 ${OBJ_DIR}/%.o: %.cc
-       $(CXX) -MMD -MF $@.d -o $@ -fPIC -c $< $(CPPFLAGS)
+       $(CXX) -fPIC -c $< -o $@ $(CFLAGS) -Wno-unused-variable
 
-%.pdf: %.dot
-       dot -Tpdf $< -o $@
+${OBJ_DIR}/%.o: %.c
+       $(CC) -fPIC -c $< -o $@ $(CFLAGS) -Wno-unused-variable
 
 -include $(OBJECTS:%=$OBJ_DIR/.%.d)
 
@@ -57,18 +71,17 @@ clean:
 
 PHONY += mrclean
 mrclean: clean
-       rm -rf docs
+       rm -rf ../docs
 
 PHONY += tags
 tags:
        ctags -R
 
 tabbing:
-       uncrustify -c C.cfg --no-backup *.c
-       uncrustify -c C.cfg --no-backup $(TABBING_H)
+       uncrustify -c C.cfg --no-backup *.cc */*.cc */*/*.cc
+       uncrustify -c C.cfg --no-backup *.h */*.h */*/*.h
 
-.PHONY: $(PHONY)
+wc:
+       wc */*.cc */*.h *.cc *.h */*/*.cc */*/*.h
 
-# A 1-inch margin PDF generated by 'pandoc'
-%.pdf: %.md
-       pandoc -o $@ $< -V header-includes='\usepackage[margin=1in]{geometry}'
+.PHONY: $(PHONY)