#libraries ifeq ($(OS),Windows_NT) LIBS+=-lmingw32 endif LIBS+=-lSDLmain -lSDL #flags CXXFLAGS+=-std=c++11 $(addprefix -I,$(INCLUDES)) ifeq ($(shell uname), Linux) #read data about the current install CXXFLAGS+=$(shell sdl-config --cflags --static-libs) endif #source CXXSRC=$(wildcard *.cpp) CSRC=$(wildcard *.c) #objects OBJDIR=obj OBJ+=$(addprefix $(OBJDIR)/,$(CXXSRC:.cpp=.o)) OBJ+=$(addprefix $(OBJDIR)/,$(CSRC:.c=.o)) #output OUTDIR=../out OUT=$(addprefix $(OUTDIR)/,Hearts) #targets all: $(OBJ) $(OUT) $(CXX) $(CXXFLAGS) -o $(OUT) $(OBJ) $(LIBS) $(OBJ): | $(OBJDIR) $(OUT): | $(OUTDIR) $(OBJDIR): mkdir $(OBJDIR) $(OUTDIR): mkdir $(OUTDIR) $(OBJDIR)/%.o: %.cpp $(CXX) $(CXXFLAGS) -c -o $@ $< clean: ifeq ($(OS),Windows_NT) $(RM) *.o *.a *.exe else ifeq ($(shell uname), Linux) find . -type f -name '*.o' -exec rm -f -r -v {} \; find . -type f -name '*.a' -exec rm -f -r -v {} \; rm -f -v $(OUT) endif rebuild: clean all