CONFIG ?= config.default -include $(CONFIG) BINARY ?= maxr SDL_CONFIG ?= sdl-config ifndef CFLAGS_SDL CFLAGS_SDL := $(shell $(SDL_CONFIG) --cflags) endif ifndef LDFLAGS_SDL LDFLAGS_SDL := $(shell $(SDL_CONFIG) --libs) endif CFLAGS += $(CFLAGS_SDL) CCFLAGS += $(CFLAGS) CXXFLAGS += $(CFLAGS) LDFLAGS += $(LDFLAGS_SDL) LDFLAGS += -lSDL_mixer LDFLAGS += -lSDL_net SRCS := $(wildcard *.c) SRCS += $(wildcard *.cpp) DEPS = $(filter %.d, $(SRCS:.c=.d) $(SRCS:.cpp=.d)) OBJS = $(filter %.o, $(SRCS:.c=.o) $(SRCS:.cpp=.o)) .SUFFIXES: .SUFFIXES: .c .cpp .d .o Q ?= @ all: $(BINARY) ifndef NO_DEPS depend: $(DEPS) ifeq ($(findstring $(MAKECMDGOALS), clean depend deinstall distclean),) -include $(DEPS) endif endif $(BINARY): $(OBJS) @echo '===> LD $@' $(Q)$(CXX) $(CFLAGS) $(OBJS) $(LDFLAGS) -o $@ .c.o: @echo '===> CC $<' $(Q)$(CC) $(CCFLAGS) -c $< -o $@ .cpp.o: @echo '===> CXX $<' $(Q)$(CXX) $(CXXFLAGS) -c $< -o $@ .c.d: @echo '===> DEP $<' $(Q)$(CC) $(CCFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@ .cpp.d: @echo '===> DEP $<' $(Q)$(CXX) $(CXXFLAGS) -MM $< | sed 's#^$(@F:%.d=%.o):#$@ $(@:%.d=%.o):#' > $@ clean distclean: @echo '===> CLEAN' $(Q)rm -fr $(DEPS) $(OBJS) $(BINARY)