From: Mike D. Lowis Date: Fri, 20 Apr 2012 18:10:04 +0000 (-0400) Subject: Cleaned up makefile and updated submodules X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=e2668bdff1757a3fd7a116c5e47cf8288f07395b;p=archive%2Fdlang.git Cleaned up makefile and updated submodules --- diff --git a/.gitmodules b/.gitmodules index f15f888..ce0e8e2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,5 +5,5 @@ path = deps/cork url = git://github.com/mikedlowis/cork.git [submodule "deps/parse-utils"] - path = deps/parse-utils - url = git://github.com/mikedlowis/parse-utils.git + path = deps/parse-utils + url = git://github.com/mikedlowis/parse-utils.git diff --git a/Makefile b/Makefile index f394261..be2219b 100644 --- a/Makefile +++ b/Makefile @@ -25,75 +25,78 @@ TEST_RUNNER = test_runner # File and Directory Settings #---------------------------- +# Root Directories SRC_ROOT = source/ RES_ROOT = res/ TESTS_ROOT = tests/ + +# File Extensions SRC_EXT = cpp RES_EXT = scm TEST_EXT = cpp -SRC_DIRS = $(call dlist, $(SRC_ROOT)) + +# Libraries to Link Against +LIBS = deps/parse-utils/libparseutils.a +TEST_LIBS = $(LIBS) \ + tools/UnitTest++/libUnitTest++.a + +# Source File Lists SRC_FILES = $(call flist, $(SRC_ROOT), $(SRC_EXT)) RES_FILES = $(call flist, $(RES_ROOT), $(RES_EXT)) TEST_FILES = $(call flist, $(TESTS_ROOT), $(TEST_EXT)) -# Object File List +# Object File Lists SRC_OBJS = $(SRC_FILES:%.$(SRC_EXT)=%.o) RES_OBJS = $(RES_FILES:%.$(RES_EXT)=%.o) TEST_OBJS = $(TEST_FILES:%.$(TEST_EXT)=%.o) # Include Directories -INC_DIRS = $(addprefix -I,$(SRC_DIRS)) \ +INC_DIRS = $(call incdirs, $(SRC_ROOT)) \ $(call incdirs, deps/parse-utils/source) \ $(call incdirs, tools/UnitTest++/src) -# Libraries to Link Against -LIBS = deps/parse-utils/libparseutils.a -TEST_LIBS = tools/UnitTest++/libUnitTest++.a \ - $(LIBS) - # Compiler and Linker Options #---------------------------- CXXFLAGS = $(INC_DIRS) -Wall -Werror # Build Rules #------------ -all: $(PROJ_NAME) test +all: release test + +release: $(PROJ_NAME) test: $(TEST_RUNNER) $(TEST_RUNNER) # Binaries -$(TEST_RUNNER): unit_test_pp parseutils $(SRC_OBJS) $(RES_OBJS) $(TEST_OBJS) - $(CXX) -o $@ $(TEST_OBJS) $(filter-out source/main.o,$(SRC_OBJS)) $(RES_OBJS) $(TEST_LIBS) - -$(PROJ_NAME): parseutils $(SRC_OBJS) $(RES_OBJS) +$(PROJ_NAME): parseutils $(SRC_OBJS) res/environment.o $(CXX) $(CXX_FLAGS) -o $@ $(SRC_OBJS) $(RES_OBJS) $(LIBS) -# Libraries -cork: - $(MAKE) -C deps/cork static +$(TEST_RUNNER): parseutils unit_test_pp $(SRC_OBJS) $(RES_OBJS) $(TEST_OBJS) + $(CXX) $(CXX_FLAGS) -o $@ $(filter-out source/main.o,$(SRC_OBJS)) $(RES_OBJS) $(TEST_OBJS) $(TEST_LIBS) +# Libraries parseutils: $(MAKE) -C deps/parse-utils static unit_test_pp: $(MAKE) -C tools/UnitTest++ -# Resources (Compiled Text Files) # Object Files $(SRC_OBJS): %.o : %.$(SRC_EXT) + $(TEST_OBJS): %.o : %.$(TEST_EXT) + $(RES_OBJS): %.o : %.$(RES_EXT) objcopy -I binary -O elf32-i386 -B i386 $< $@ -# Clean Task +# Cleanup clean: - -@$(MAKE) -C deps/cork clean - -@$(MAKE) -C deps/parse-utils clean - -@$(MAKE) -C tools/UnitTest++ clean - -@$(RM) $(SRC_OBJS) - -@$(RM) $(RES_OBJS) - -@$(RM) $(TEST_OBJS) - -@$(RM) $(TEST_RUNNER)* - -@$(RM) $(PROJ_NAME)* + $(MAKE) -C deps/parse-utils clean + $(MAKE) -C tools/UnitTest++ clean + $(RM) $(SRC_OBJS) + $(RM) $(RES_OBJS) + $(RM) $(TEST_OBJS) + $(RM) $(TEST_RUNNER)* + $(RM) $(PROJ_NAME)*