1# BUILD SETTINGS ########################################### 2 3ifneq ($(filter Msys Cygwin, $(shell uname -o)), ) 4 PLATFORM := WIN32 5else 6 PLATFORM := UNIX 7endif 8 9TARGET := opentyrian 10 11############################################################ 12 13STRIP := strip 14 15SDL_CONFIG := sdl-config 16 17SRCS := $(wildcard src/*.c) 18OBJS := $(SRCS:src/%.c=obj/%.o) 19 20# FLAGS #################################################### 21 22EXTRA_CFLAGS += -MMD -pedantic -Wall -Wextra -Wno-missing-field-initializers 23ifeq ($(WITH_NETWORK), true) 24 EXTRA_CFLAGS += -DWITH_NETWORK 25endif 26 27EXTRA_LDLIBS += -lm 28 29SDL_CFLAGS := $(shell $(SDL_CONFIG) --cflags) 30SDL_LDLIBS := $(shell $(SDL_CONFIG) --libs) 31ifeq ($(WITH_NETWORK), true) 32 SDL_LDLIBS += -lSDL_net 33endif 34 35ALL_CFLAGS += -std=c99 -I./src -DTARGET_$(PLATFORM) $(EXTRA_CFLAGS) $(SDL_CFLAGS) $(CFLAGS) 36ALL_LDFLAGS += $(LDFLAGS) 37LDLIBS += $(EXTRA_LDLIBS) $(SDL_LDLIBS) 38 39# RULES #################################################### 40 41.PHONY : all release clean 42 43all : $(TARGET) 44 45release : all 46 $(STRIP) $(TARGET) 47 48clean : 49 rm -rf obj/* 50 rm -f $(TARGET) 51 52ifneq ($(MAKECMDGOALS), clean) 53 -include $(OBJS:.o=.d) 54endif 55 56$(TARGET) : $(OBJS) 57 $(CC) -o $@ $(ALL_LDFLAGS) $^ $(LDLIBS) 58 59obj/%.o : src/%.c 60 @mkdir -p "$(dir $@)" 61 $(CC) -c -o $@ $(ALL_CFLAGS) $< 62 63