|
@@ -6,12 +6,15 @@ TEST_TARGET = sdlpal-tests.exe
|
|
HOST =
|
|
HOST =
|
|
TEST_CCFLAGS =
|
|
TEST_CCFLAGS =
|
|
|
|
|
|
|
|
+DEPFLAGS = -MT $@ -MMD -MP -MF $*.Td
|
|
|
|
+
|
|
GTEST_DIR = ../3rd/googletest/googletest
|
|
GTEST_DIR = ../3rd/googletest/googletest
|
|
|
|
|
|
CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../liboggvorbis/src/*.c) $(wildcard ../*.c) $(wildcard ../native_midi/*.c) $(wildcard ../win32/*.c)
|
|
CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../liboggvorbis/src/*.c) $(wildcard ../*.c) $(wildcard ../native_midi/*.c) $(wildcard ../win32/*.c)
|
|
CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
|
|
CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
|
|
RCFILES = $(wildcard ./sdlpal.rc)
|
|
RCFILES = $(wildcard ./sdlpal.rc)
|
|
OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(RCFILES:.rc=.o)
|
|
OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(RCFILES:.rc=.o)
|
|
|
|
+DEPFILES = $(CFILES:.c=.d) $(CPPFILES:.cpp=.d)
|
|
TEST_CPPFILES = $(wildcard ../tests/*.cpp)
|
|
TEST_CPPFILES = $(wildcard ../tests/*.cpp)
|
|
TEST_OBJFILES = $(TEST_CPPFILES:.cpp=.o)
|
|
TEST_OBJFILES = $(TEST_CPPFILES:.cpp=.o)
|
|
|
|
|
|
@@ -21,6 +24,8 @@ CFLAGS = $(CCFLAGS) -std=gnu99
|
|
LDFLAGS = -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -lwinmm -lole32 -loleaut32 -limm32 -lcomctl32 -luuid -ldxguid -lversion -static -static-libgcc -static-libstdc++
|
|
LDFLAGS = -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -lwinmm -lole32 -loleaut32 -limm32 -lcomctl32 -luuid -ldxguid -lversion -static -static-libgcc -static-libstdc++
|
|
TEST_CXXFLAGS += -isystem $(GTEST_DIR)/include -I $(GTEST_DIR) -g -Wall -Wextra -pthread
|
|
TEST_CXXFLAGS += -isystem $(GTEST_DIR)/include -I $(GTEST_DIR) -g -Wall -Wextra -pthread
|
|
|
|
|
|
|
|
+POSTCOMPILE = @move /Y $(subst /,\,$*).Td $(subst /,\,$*).d > NUL 2>&1 && type NUL >> $(subst /,\,$@)
|
|
|
|
+
|
|
.PHONY : all clean check
|
|
.PHONY : all clean check
|
|
|
|
|
|
all: $(TARGET)
|
|
all: $(TARGET)
|
|
@@ -29,17 +34,20 @@ $(TARGET): $(OBJFILES)
|
|
@echo [LD] $@
|
|
@echo [LD] $@
|
|
@$(HOST)g++ $^ -o $@ $(LDFLAGS)
|
|
@$(HOST)g++ $^ -o $@ $(LDFLAGS)
|
|
|
|
|
|
-gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc
|
|
|
|
- @echo [CC] $^
|
|
|
|
- @$(HOST)g++ $(TEST_CXXFLAGS) -c $^ -o $@
|
|
|
|
|
|
+gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc %.d
|
|
|
|
+ @echo [CC] $<
|
|
|
|
+ @$(HOST)g++ $(DEPFLAGS) $(TEST_CXXFLAGS) -c $< -o $@
|
|
|
|
+ $(POSTCOMPILE)
|
|
|
|
|
|
-%.o: %.c
|
|
|
|
- @echo [CC] $^
|
|
|
|
- @$(HOST)gcc $(CFLAGS) -c $^ -o $@
|
|
|
|
|
|
+%.o: %.c %.d
|
|
|
|
+ @echo [CC] $<
|
|
|
|
+ @$(HOST)gcc $(DEPFLAGS) $(CFLAGS) -c $< -o $@
|
|
|
|
+ $(POSTCOMPILE)
|
|
|
|
|
|
-%.o: %.cpp
|
|
|
|
- @echo [CC] $^
|
|
|
|
- @$(HOST)g++ $(CXXFLAGS) -c $^ -o $@
|
|
|
|
|
|
+%.o: %.cpp %.d
|
|
|
|
+ @echo [CC] $<
|
|
|
|
+ @$(HOST)g++ $(DEPFLAGS) $(CXXFLAGS) -c $< -o $@
|
|
|
|
+ $(POSTCOMPILE)
|
|
|
|
|
|
%.o: %.rc
|
|
%.o: %.rc
|
|
@echo [RES] $^
|
|
@echo [RES] $^
|
|
@@ -50,7 +58,12 @@ $(TEST_TARGET): $(OBJFILES) $(TEST_OBJFILES) gtest-all.o
|
|
@$(HOST)g++ $^ -o $@ $(LDFLAGS) -pthread
|
|
@$(HOST)g++ $^ -o $@ $(LDFLAGS) -pthread
|
|
|
|
|
|
clean:
|
|
clean:
|
|
- -del /Q $(subst /,\,$(TARGET)) $(subst /,\,$(TEST_TARGET)) $(subst /,\,$(OBJFILES)) $(subst /,\,$(TEST_OBJFILES))
|
|
|
|
|
|
+ -del /Q $(subst /,\,$(TARGET)) $(subst /,\,$(TEST_TARGET)) $(subst /,\,$(OBJFILES)) $(subst /,\,$(TEST_OBJFILES)) $(subst /,\,$(DEPFILES))
|
|
|
|
+
|
|
|
|
+%.d: ;
|
|
|
|
+.PRECIOUS: %.d
|
|
|
|
+
|
|
|
|
+-include $(DEPFILES)
|
|
|
|
|
|
check: TEST_CCFLAGS = -DUNIT_TEST=1 -isystem $(GTEST_DIR)/include
|
|
check: TEST_CCFLAGS = -DUNIT_TEST=1 -isystem $(GTEST_DIR)/include
|
|
check: $(TEST_TARGET)
|
|
check: $(TEST_TARGET)
|