1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
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)
|