summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/rltiles/makefile.unix
blob: 04c3900e1bd3a355fbc43da70c47db8e1104815b (plain) (blame)
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)