summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/contrib/Makefile
blob: f836f8e2e02fcce4f8d5abe77279a4d64dee9b2f (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
uname_S := $(shell uname -s)
PREFIX:=$(shell pwd)/install

all: lua sqlite sdl sdl-image freetype libpng pcre zlib

.PHONY: lua sqlite sdl sdl-image freetype libpng pcre zlib

# Only clean submodules we actually posses.  Some makefiles don't have
# 'distclean' target, so try both 'clean' and 'distclean', and discard
# any errors.
clean:
	rm -rf $(PREFIX)
	@for a in freetype libpng lua sdl sdl-image sqlite pcre zlib; do \
		if [ -f $$a/Makefile ] || [ -f $$a/makefile ] ; then \
			make -k -C $$a clean distclean 2> /dev/null; \
		fi \
	done

#
# Check for GNU Make >=3.80
#
eval_available :=
$(eval eval_available := T)
ifneq ($(eval_available),T)
ifneq (,$(findstring MINGW,$(uname_S)))
  $(error FreeType needs GNU Make 3.80 or later. Get this from http://prdownloads.sourceforge.net/mingw/make-3.81-MSYS-1.0.11-2.tar.bz2)
else
  $(error FreeType's build system needs GNU Make 3.80 or later)
endif
endif


#
# FreeType 2
#
freetype/objs/.libs/libfreetype.a: $(PREFIX)/lib/libz.a
	cd freetype && ./configure --prefix=$(PREFIX) --with-zlib=$(PREFIX) --enable-static --disable-shared $(CONFIGURE_FLAGS)
	@+$(MAKE) -C freetype

$(PREFIX)/lib/libfreetype.a: freetype/objs/.libs/libfreetype.a
	@$(MAKE) -C freetype install

freetype: $(PREFIX)/lib/libfreetype.a


#
# Lua
#
lua/src/liblua.a:
	@+$(MAKE) -C lua/src crawl_unix

$(PREFIX)/lib/liblua.a: lua/src/liblua.a
	@$(MAKE) -C lua/src install prefix=$(PREFIX)

lua: $(PREFIX)/lib/liblua.a


#
# SQLite
#
sqlite/libsqlite3.a:
	@+$(MAKE) -C sqlite

$(PREFIX)/lib/libsqlite3.a: sqlite/libsqlite3.a
	@$(MAKE) -C sqlite install prefix=$(PREFIX)

sqlite: $(PREFIX)/lib/libsqlite3.a


#
# PCRE
#
pcre/libpcre.a:
	@+$(MAKE) -C pcre

$(PREFIX)/lib/libpcre.a: pcre/libpcre.a
	@$(MAKE) -C pcre install prefix=$(PREFIX)

pcre: $(PREFIX)/lib/libpcre.a


#
# libpng
#
libpng/.libs/libpng.a: $(PREFIX)/lib/libz.a
	cd libpng && ./configure --prefix=$(PREFIX) --enable-static --disable-shared $(CONFIGURE_FLAGS) CPPFLAGS="-I$(PREFIX)/include" LDFLAGS="-L$(PREFIX)/lib"
	@+$(MAKE) -C libpng

$(PREFIX)/lib/libpng.a: libpng/.libs/libpng.a
	@$(MAKE) -C libpng install

libpng: $(PREFIX)/lib/libpng.a


#
# SDL
#
sdl/build/.libs/libSDL.a:
	cd sdl && ./configure --prefix=$(PREFIX) --enable-static --disable-shared
	@+$(MAKE) -C sdl

$(PREFIX)/lib/libSDL.a: sdl/build/.libs/libSDL.a
	@$(MAKE) -C sdl install
ifneq (,$(findstring MINGW,$(uname_S)))
#
# Very hackish fix for MinGW
	sed 's/-mwindows/-lwinmm -lpng -lz -mwindows/' install/bin/sdl-config > install/bin/sdl-config.fixed
	mv install/bin/sdl-config.fixed install/bin/sdl-config
	chmod 755 install/bin/sdl-config
endif

sdl: $(PREFIX)/lib/libSDL.a


#
# SDL_image
#
sdl-image/.libs/libSDL_image.a: $(PREFIX)/lib/libpng.a
	cd sdl-image && ./configure --prefix=$(PREFIX) --with-sdl-prefix=$(PREFIX) --enable-static --disable-shared --enable-bmp --enable-png $(CONFIGURE_FLAGS) LDFLAGS="-L$(PREFIX)/lib -lpng -lz" CPPFLAGS="-I$(PREFIX)/include"
	@+$(MAKE) -C sdl-image

$(PREFIX)/lib/libSDL_image.a: sdl-image/.libs/libSDL_image.a
	@$(MAKE) -C sdl-image install

sdl-image: $(PREFIX)/lib/libSDL_image.a


#
# zlib
#
zlib/libz.a:
	cd zlib && ./configure --prefix=$(PREFIX)
	@+$(MAKE) -C zlib

$(PREFIX)/lib/libz.a: zlib/libz.a
	@$(MAKE) -C zlib install

zlib: $(PREFIX)/lib/libz.a