summaryrefslogtreecommitdiff
path: root/os/debian/rules
blob: b5d67670bd9a79f53e9828c77cf43db5e4edd7c1 (plain)
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
#!/usr/bin/make -f
# -*- makefile -*-
# Makefile to build the openttd debian package.

# Use debhelper default for all targets (but some are overridden below).
%:
	dh --parallel $@

DEB_HOST_GNU_TYPE=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_BUILD_GNU_TYPE=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

# This prevents linking uselessly to libicudata and silences a warning
# in the build process.
DEB_LDFLAGS_MAINT_APPEND="-Wl,-as-needed"

# Enable all hardening options (since openttd offers a network-listening
# service that handles untrusted data).
DEB_BUILD_MAINT_OPTIONS=hardening=+all

# Load buildflags (this uses dpkg-buildflags). Note that we don't export
# them, but instead pass them to ./configure explicitly.
include /usr/share/dpkg/buildflags.mk

# Pass custom options to configure. Since it's not autoconf but a custom
# script, some of the option names are slightly different. We also need
# to be explicit about the dependencies, in case we're not running in a
# clean build root.
override_dh_auto_configure:
	./configure $(CROSS) --prefix-dir=/usr --install-dir=debian/openttd --without-allegro --with-zlib --with-sdl --with-png --with-freetype --with-fontconfig --with-icu-sort --with-liblzo2 --with-lzma --without-xdg-basedir --without-iconv --disable-strip CFLAGS="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" CFLAGS_BUILD="$(CFLAGS) $(CPPFLAGS)" CXXFLAGS_BUILD="$(CXXFLAGS) $(CPPFLAGS)" LDFLAGS_BUILD="$(LDFLAGS)"

# Do some extra installation
override_dh_auto_install:
	$(MAKE) install DO_NOT_INSTALL_CHANGELOG=1 DO_NOT_INSTALL_LICENSE=1

# Don't do testing. Because the OpenTTD Makefile always does dependency
# generation (even on invalid targets), dh_auto_test thinks there is a
# "test" target, while there isn't.
override_dh_auto_test:

# Call mrproper. Again, dh_auto_clean thinks there is a distclean
# target, while there isn't.
override_dh_auto_clean:
	[ ! -f Makefile ] || $(MAKE) mrproper

# We want to strip the debug informatiton into the -dbg package.
override_dh_strip:
	dh_strip --dbg-package=openttd-dbg