Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # General makefile for generic unix & linux platforms
  2. TARGET = sdlpal
  3. TEST_TARGET = ./sdlpal-tests
  4. HOST =
  5. TEST_CCFLAGS =
  6. GTEST_DIR = ../3rd/googletest/googletest
  7. CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../liboggvorbis/src/*.c) $(wildcard ../*.c)
  8. CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
  9. OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o)
  10. TEST_CPPFILES = $(wildcard ../tests/*.cpp)
  11. TEST_OBJFILES = $(TEST_CPPFILES:.cpp=.o)
  12. CCFLAGS = `sdl2-config --cflags` -g -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS $(TEST_CCFLAGS)
  13. CXXFLAGS = $(CCFLAGS) -std=c++11 `fltk-config --cxxflags`
  14. CFLAGS = $(CCFLAGS) -std=gnu99 `fltk-config --cflags`
  15. LDFLAGS = `sdl2-config --libs` `fltk-config --ldflags` -lstdc++ -lm
  16. TEST_CXXFLAGS += -isystem $(GTEST_DIR)/include -I $(GTEST_DIR) -g -Wall -Wextra -pthread
  17. .PHONY : all clean check
  18. all: $(TARGET)
  19. $(TARGET): $(OBJFILES)
  20. $(HOST)gcc $^ -o $@ $(LDFLAGS)
  21. gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc
  22. $(HOST)g++ $(TEST_CXXFLAGS) -c $< -o $@
  23. %.o: %.c
  24. $(HOST)gcc $(CFLAGS) -c $< -o $@
  25. %.o: %.cpp
  26. $(HOST)g++ $(CXXFLAGS) -c $< -o $@
  27. $(TEST_TARGET): $(OBJFILES) $(TEST_OBJFILES) gtest-all.o
  28. $(HOST)g++ $^ -o $@ $(LDFLAGS) -lpthread
  29. clean:
  30. -rm -f $(TARGET) $(TEST_TARGET) *.o ../*.o ../adplug/*.o ../libmad/*.o ../liboggvorbis/src/*.o ../tests/*.o
  31. check: TEST_CCFLAGS = -DUNIT_TEST=1 -isystem $(GTEST_DIR)/include
  32. check: $(TEST_TARGET)
  33. chmod +x $(TEST_TARGET)
  34. exec $(TEST_TARGET)