# Makefile for win32 platforms with mingw under msys or linux TARGET = sdlpal.exe TEST_TARGET = sdlpal-tests.exe HOST = TEST_CCFLAGS = GENERATED = -DPAL_HAS_GIT_REVISION $(shell ../scripts/gengitrev) DEPFLAGS = -MT $@ -MMD -MP -MF $*.Td 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) CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp) RCFILES = $(wildcard ./sdlpal.rc) OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(RCFILES:.rc=.o) DEPFILES = $(CFILES:.c=.d) $(CPPFILES:.cpp=.d) TEST_CPPFILES = $(wildcard ../tests/*.cpp) TEST_OBJFILES = $(TEST_CPPFILES:.cpp=.o) override CCFLAGS += `sdl2-config --cflags` -g -msse2 -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS $(TEST_CCFLAGS) $(GENERATED) CXXFLAGS = $(CCFLAGS) -std=c++11 CFLAGS = $(CCFLAGS) -std=gnu99 LDFLAGS = `sdl2-config --libs` -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 POSTCOMPILE = @mv -f $*.Td $*.d && touch $@ .PHONY : all clean check all: $(TARGET) $(TARGET): $(OBJFILES) @echo [LD] $@ @$(HOST)g++ $^ -o $@ $(LDFLAGS) gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc %.d @echo [CC] $< @$(HOST)g++ $(DEPFLAGS) $(TEST_CXXFLAGS) -c $< -o $@ $(POSTCOMPILE) %.o: %.c %.d @echo [CC] $< @$(HOST)gcc $(DEPFLAGS) $(CFLAGS) -c $< -o $@ $(POSTCOMPILE) %.o: %.cpp %.d @echo [CC] $< @$(HOST)g++ $(DEPFLAGS) $(CXXFLAGS) -c $< -o $@ $(POSTCOMPILE) %.o: %.rc @echo [RES] $^ @$(HOST)windres -i $^ -o $@ $(TEST_TARGET): $(OBJFILES) $(TEST_OBJFILES) gtest-all.o @echo [LD] $@ @$(HOST)g++ $^ -o $@ $(LDFLAGS) -pthread clean: -rm -f $(TARGET) $(TEST_TARGET) $(OBJFILES) $(TEST_OBJFILES) $(DEPFILES) %.d: ; .PRECIOUS: %.d -include $(DEPFILES) check: TEST_CCFLAGS = -DUNIT_TEST=1 -isystem $(GTEST_DIR)/include check: $(TEST_TARGET) @echo [EXEC] $(TEST_TARGET) @chmod +x $(TEST_TARGET) @exec $(TEST_TARGET)