Bug fix: typos
[satune.git] / src / Makefile
1 include common.mk
2
3 PHONY += directories
4 MKDIR_P = mkdir -p
5 OBJ_DIR = bin
6
7 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) $(wildcard Serialize/*.cc) $(wildcard Interpreter/*.cc)
8
9 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) $(wildcard Serialize/*.c) $(wildcard Interpreter/*.c)
10
11 J_SOURCES := $(wildcard *.java)
12
13 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) $(wildcard Serialize/*.h) $(wildcard Interpreter/*.h)
14
15 OBJECTS := $(CPP_SOURCES:%.cc=$(OBJ_DIR)/%.o) $(C_SOURCES:%.c=$(OBJ_DIR)/%.o)
16
17 J_OBJECTS := $(J_SOURCES:%.java=$(OBJ_DIR)/%.class)
18
19 CFLAGS := -Wall -O0 -g
20 CXXFLAGS := -std=c++1y -pthread
21 CFLAGS += -IAST -IASTTransform -IASTAnalyses -IASTAnalyses/Polarity -IASTAnalyses/Order -IASTAnalyses/Encoding -ITranslator -ICollections -IBackend -I. -IEncoders -ITuner -ISerialize -IInterpreter -I$(JAVA_INC) -I$(JAVA_INC)/linux
22 LDFLAGS := -ldl -lrt -rdynamic -g
23 SHARED := -shared
24
25 # Mac OSX options
26 ifeq ($(UNAME), Darwin)
27 LDFLAGS := -ldl
28 SHARED := -Wl,-undefined,dynamic_lookup -dynamiclib
29 endif
30
31 MARKDOWN := ../docs/Markdown/Markdown.pl
32
33 all: directories ${OBJ_DIR}/$(LIB_SO) javaapi
34
35 directories: ${OBJ_DIR}
36
37 ${OBJ_DIR}:
38         ${MKDIR_P} ${OBJ_DIR}
39         ${MKDIR_P} ${OBJ_DIR}/AST
40         ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses
41         ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses/Order
42         ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses/Encoding
43         ${MKDIR_P} ${OBJ_DIR}/ASTAnalyses/Polarity
44         ${MKDIR_P} ${OBJ_DIR}/ASTTransform
45         ${MKDIR_P} ${OBJ_DIR}/Translator
46         ${MKDIR_P} ${OBJ_DIR}/Tuner
47         ${MKDIR_P} ${OBJ_DIR}/Collections
48         ${MKDIR_P} ${OBJ_DIR}/Backend
49         ${MKDIR_P} ${OBJ_DIR}/Encoders
50         ${MKDIR_P} ${OBJ_DIR}/Serialize
51         ${MKDIR_P} ${OBJ_DIR}/Interpreter
52
53 debug: CFLAGS += -DCONFIG_DEBUG
54 debug: all
55
56 test: all
57         make -C Test
58
59 PHONY += docs
60 docs: $(C_SOURCES) $(HEADERS)
61         doxygen
62
63 ${OBJ_DIR}/$(LIB_SO): $(OBJECTS)
64         $(CXX) -g $(SHARED) -o ${OBJ_DIR}/$(LIB_SO) $+ $(LDFLAGS)
65
66 ${OBJ_DIR}/%.o: %.cc
67         $(CXX) -fPIC -c $< -o $@ $(CFLAGS) -Wno-unused-variable $(CXXFLAGS)
68
69 ${OBJ_DIR}/%.o: %.c
70         $(CC) -fPIC -c $< -o $@ $(CFLAGS) -Wno-unused-variable
71
72 javaapi: $(J_OBJECTS)
73         
74 ${OBJ_DIR}/%.class: %.java
75         $(JAVAC) -d ${OBJ_DIR} $<
76
77 -include $(OBJECTS:%=$OBJ_DIR/.%.d)
78
79 PHONY += clean
80 clean:
81         rm -f *.o *.so
82         rm -rf $(OBJ_DIR)
83
84 PHONY += mrclean
85 mrclean: clean
86         rm -rf ../docs
87
88 PHONY += tags
89 tags:
90         ctags -R
91
92 tabbing:
93         uncrustify -c C.cfg --no-backup *.cc */*.cc */*/*.cc
94         uncrustify -c C.cfg --no-backup *.h */*.h */*/*.h
95
96 wc:
97         wc */*.cc */*.h *.cc *.h */*/*.cc */*/*.h
98
99 .PHONY: $(PHONY)