X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=blobdiff_plain;f=src%2FMakefile;h=f04c58faa517c09b503d66b1b8e702907038aa40;hp=366cfd53fd55d84ab07d376e7dd443bec2da5b5c;hb=60f06342cc7b827a73c228670bd27755401cdb4e;hpb=a60327c3c9d0f6ad9365aa042162a6c042a62402 diff --git a/src/Makefile b/src/Makefile index 366cfd5..f04c58f 100644 --- a/src/Makefile +++ b/src/Makefile @@ -4,14 +4,22 @@ PHONY += directories MKDIR_P = mkdir -p OBJ_DIR = bin -C_SOURCES := $(wildcard *.c) $(wildcard AST/*.c) $(wildcard Collections/*.c) $(wildcard Backend/*.c) $(wildcard Encoders/*.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) $(wildcard Serialize/*.cc) $(wildcard Interpreter/*.cc) -HEADERS := $(wildcard *.h) $(wildcard AST/*.h) $(wildcard Collections/*.h) $(wildcard Backend/*.h) $(wildcard Encoders/*.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) $(wildcard Serialize/*.c) $(wildcard Interpreter/*.c) + +J_SOURCES := $(wildcard *.java) + +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) OBJECTS := $(CPP_SOURCES:%.cc=$(OBJ_DIR)/%.o) $(C_SOURCES:%.c=$(OBJ_DIR)/%.o) -CFLAGS += -IAST -ICollections -IBackend -I. -IEncoders -LDFLAGS := -ldl -lrt -rdynamic +J_OBJECTS := $(J_SOURCES:%.java=$(OBJ_DIR)/%.class) + +CFLAGS := -Wall -O0 -g +CXXFLAGS := -std=c++1y -pthread +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 +LDFLAGS := -ldl -lrt -rdynamic -g SHARED := -shared # Mac OSX options @@ -22,30 +30,50 @@ endif MARKDOWN := ../docs/Markdown/Markdown.pl -all: directories $(LIB_SO) +all: directories ${OBJ_DIR}/$(LIB_SO) javaapi directories: ${OBJ_DIR} ${OBJ_DIR}: ${MKDIR_P} ${OBJ_DIR} ${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 + ${MKDIR_P} ${OBJ_DIR}/Serialize + ${MKDIR_P} ${OBJ_DIR}/Interpreter debug: CFLAGS += -DCONFIG_DEBUG debug: all +test: all + make -C Test + PHONY += docs docs: $(C_SOURCES) $(HEADERS) doxygen -$(LIB_SO): $(OBJECTS) - $(CC) -g $(SHARED) -o ${OBJ_DIR}/$(LIB_SO) $+ $(LDFLAGS) +${OBJ_DIR}/$(LIB_SO): $(OBJECTS) + $(CXX) -g $(SHARED) -o ${OBJ_DIR}/$(LIB_SO) $+ $(LDFLAGS) + +${OBJ_DIR}/%.o: %.cc + $(CXX) -fPIC -c $< -o $@ $(CFLAGS) -Wno-unused-variable $(CXXFLAGS) ${OBJ_DIR}/%.o: %.c $(CC) -fPIC -c $< -o $@ $(CFLAGS) -Wno-unused-variable +javaapi: $(J_OBJECTS) + +${OBJ_DIR}/%.class: %.java + $(JAVAC) -d ${OBJ_DIR} $< + -include $(OBJECTS:%=$OBJ_DIR/.%.d) PHONY += clean @@ -55,18 +83,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 *.h */*.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)