uname_S := $(shell uname -s) ifneq (,$(findstring MINGW,$(uname_S))) LDFLAGS += -lmingw32 endif ifndef CROSSHOST LDFLAGS += -L../contrib/install/lib endif SDL_CFLAGS := -I../contrib/install/include/SDL $(shell pkg-config sdl --cflags 2> /dev/null) SDL_LDFLAGS := $(shell pkg-config sdl --libs 2> /dev/null || echo "-lSDL -lSDLmain") PNG_INCLUDE := $(shell pkg-config libpng --cflags 2> /dev/null) PNG_LIB := $(shell pkg-config libpng --libs 2> /dev/null || echo "-lpng -lz") CFLAGS := -I../contrib/install/include $(SDL_CFLAGS) $(PNG_INCLUDE) LDFLAGS += $(SDL_LDFLAGS) -lSDL_image $(PNG_LIB) ifneq (,$(findstring MINGW,$(uname_S))) LDFLAGS += -lgdi32 -lwinmm endif ifeq ($(uname_S),Darwin) LDFLAGS += -framework AppKit -framework AudioUnit -framework Carbon -framework IOKit -framework OpenGL endif ifeq ($(uname_S),Linux) LDFLAGS += -ldl -lpthread endif # Attempt to use a full compiler name, to make # distcc builds work nicely. LMACH := $(shell gcc -dumpmachine)- ifeq ($(LMACH),-) LMACH := endif ifeq ($(shell which $(LMACH)gcc 2> /dev/null),) LMACH := endif CXX = $(LMACH)g++ ifdef ARCHS CF_ARCHS := $(patsubst %,-arch %,$(ARCHS)) CXX += $(CF_ARCHS) endif DELETE = rm -f TOOLDIR := tool TILEGEN := $(TOOLDIR)/tilegen.elf INPUTS := main dngn player gui INPUTFILES := $(INPUTS:%=dc-%.txt) HEADERS := $(INPUTS:%=tiledef-%.h) HTML := $(INPUTS:%=tile-%.html) SOURCE := $(INPUTS:%=tiledef-%.cc) IMAGES := $(INPUTS:%=%.png) ifneq ($(findstring $(MAKEFLAGS),s),s) ifndef V QUIET_CXX = @echo ' ' CXX $@; QUIET_GEN = @echo ' ' GEN $*; QUIET_LINK = @echo ' ' LINK $@; export V endif endif BASE_OBJECTS := tile_colour.o tile.o tile_page.o tile_list_processor.o main.o OBJECTS := $(BASE_OBJECTS:%=$(TOOLDIR)/%) all: $(TILEGEN) $(HEADERS) $(SOURCE) $(IMAGES) tiledef-%.h tiledef-%.cc %.png: dc-%.txt $(TILEGEN) $(QUIET_GEN)$(TILEGEN) $< # dc-foo.txt files which are included by other dc-foo.txt files. include makefile.dc clean: $(DELETE) $(HEADERS) $(OBJECTS) $(TILEGEN) $(SOURCE) $(IMAGES) $(HTML) distclean: clean %.o: %.cc $(QUIET_CXX)$(CXX) $(CFLAGS) -c $< -o $@ $(TILEGEN): $(OBJECTS) $(QUIET_LINK)$(CXX) $(OBJECTS) -o $@ $(LDFLAGS)