summaryrefslogtreecommitdiff
path: root/debian/rules
blob: c3231e449fed0bf29f87349ff0c48e0d9ca6ec06 (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
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2003 Jeff Bailey <jbailey@debian.org>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2, or (at
# your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.

DEB_DESTDIR = $(CURDIR)/debian/tmp
DEB_DESTDIR_UDEB = $(CURDIR)/debian/tmp-udeb

ifeq (,$(filter stage1 stage2 stage3,$(DEB_BUILD_PROFILES)))
CONFIGURE_ARGS = --disable-profile --enable-static-progs='ext2fs,iso9660fs'
else
CONFIGURE_ARGS = \
		 --disable-ncursesw \
		 --without-libbz2 \
		 --without-libz \
		 --without-parted
# Skip some checks because they expect
# a working glibc causing a circular dependency.
# TODO: rather disable the corresponding features in configure.ac
export ac_cv_lib_pciaccess_pci_system_init=no
  ifneq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
export ac_cv_search_clnt_create=no
export ac_cv_func_file_exec_file_name=no
export ac_cv_func_exec_exec_file_name=no
export ac_cv_func__hurd_exec_file_name=no
export LEX=:
export YACC=:
export MIG=:
  endif
endif
CONFIGURE_ARGS_deb =
CONFIGURE_ARGS_udeb = --without-libdaemon --without-libbz2
SUID_PROGRAMS = /bin/ids /bin/login /bin/ps-hurd /usr/bin/w-hurd

DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

INSTALL_in := $(wildcard debian/*.install.in)
INSTALL_generated := $(patsubst %.in,%,$(INSTALL_in))

BUILT_USING := $(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W libc0.3-dev libparted-dev zlib1g-dev libbz2-dev uuid-dev libblkid-dev)

%:
	dh $@ -Bbuild-deb --with autotools_dev,autoreconf

override_dh_auto_configure:
	dh_auto_configure -Bbuild-deb -- $(CONFIGURE_ARGS) $(CONFIGURE_ARGS_deb) $(shell dpkg-buildflags --export=configure)
ifeq (,$(filter stage1 stage2 stage3 noudeb,$(DEB_BUILD_PROFILES)))
	dh_auto_configure -Bbuild-udeb -- $(CONFIGURE_ARGS) $(CONFIGURE_ARGS_udeb) $(shell dpkg-buildflags --export=configure)
endif

override_dh_auto_build:
ifneq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
	:
  ifneq (,$(filter stage2,$(DEB_BUILD_PROFILES)))
	$(MAKE) -C build-deb/libihash libihash.a
  endif
else
  ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES)))
	dh_auto_build -Bbuild-udeb
  endif
	dh_auto_build -Bbuild-deb
	cd build-deb/doc && make && makeinfo --html --split=chapter ../../doc/hurd.texi
  ifeq (,$(filter stage3,$(DEB_BUILD_PROFILES)))
	$(MAKE) -C libdde-linux26 BUILDDIR=$(CURDIR)/build-deb LDFLAGS=
  endif
endif

override_dh_auto_clean:
	dh_auto_clean -Bbuild-deb
ifeq (,$(filter stage1 stage2 stage3 noudeb,$(DEB_BUILD_PROFILES)))
	dh_auto_clean -Bbuild-udeb
endif
	$(MAKE) -C libdde-linux26 cleanall
	rm -f $$(find libdde-linux26 -name \*.d)
	rm -fr libdde-linux26/build
	rm -fr libdde-linux26/lib/src/gen_crc32table libdde-linux26/lib/src/crc32table.h libdde-linux26/lib/src/timeconst.h
	rm -f $(INSTALL_generated)

override_dh_auto_install:
ifneq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
	$(MAKE) -Cbuild-deb prefix=$(DEB_DESTDIR) install-headers no_deps=t
  ifneq (,$(filter stage2,$(DEB_BUILD_PROFILES)))
	$(MAKE) -Cbuild-deb/libihash libdir=$(DEB_DESTDIR)/lib/$(DEB_HOST_MULTIARCH) $(DEB_DESTDIR)/lib/$(DEB_HOST_MULTIARCH)/libihash.a
  endif
else
	dh_auto_install -Bbuild-deb -- prefix=$(DEB_DESTDIR) libdir=$(DEB_DESTDIR)/lib/$(DEB_HOST_MULTIARCH) libexecdir=$(DEB_DESTDIR)/lib/hurd sysconfdir=$(DEB_DESTDIR)/etc localstatedir=$(DEB_DESTDIR)/var XKB_BASE=$(DEB_DESTDIR)/usr/share/X11/xkb
ifeq (,$(filter noudeb,$(DEB_BUILD_PROFILES)))
	dh_auto_install -Bbuild-udeb -- prefix=$(DEB_DESTDIR_UDEB) libdir=$(DEB_DESTDIR_UDEB)/lib libexecdir=$(DEB_DESTDIR_UDEB)/lib/hurd sysconfdir=$(DEB_DESTDIR_UDEB)/etc localstatedir=$(DEB_DESTDIR_UDEB)/var XKB_BASE=$(DEB_DESTDIR_UDEB)/usr/share/X11/xkb
endif
  ifeq (,$(filter stage3,$(DEB_BUILD_PROFILES)))
	$(MAKE) -C libdde-linux26 INSTALLDIR=$(CURDIR)/debian/tmp/usr/share/libdde_linux26/build/include install
  endif

	# runsystem is managed by update-alternatives
	mv debian/tmp/lib/hurd/runsystem debian/tmp/lib/hurd/runsystem.gnu

	# move away fakeroot, ps, uptime, vmstat and w to not conflict with the
	# ones  from other packages
	mkdir -p debian/tmp/usr/bin
	mv debian/tmp/bin/fakeroot debian/tmp/usr/bin/fakeroot-hurd
	mv debian/tmp/bin/ps debian/tmp/bin/ps-hurd
	mv debian/tmp/bin/uptime debian/tmp/usr/bin/uptime-hurd
	mv debian/tmp/bin/vmstat debian/tmp/usr/bin/vmstat-hurd
	mv debian/tmp/bin/w debian/tmp/usr/bin/w-hurd
ifeq (,$(filter stage1 stage2 stage3 noudeb,$(DEB_BUILD_PROFILES)))
	mkdir -p debian/tmp-udeb/usr/bin
	mv debian/tmp-udeb/bin/ps debian/tmp-udeb/bin/ps-hurd
	mv debian/tmp-udeb/bin/uptime debian/tmp-udeb/usr/bin/uptime-hurd
	mv debian/tmp-udeb/bin/vmstat debian/tmp-udeb/usr/bin/vmstat-hurd
	mv debian/tmp-udeb/bin/w debian/tmp-udeb/usr/bin/w-hurd
endif

	# move away halt and reboot to not conflict with sysvinit
	# (they will be handled as alternatives)
	mv debian/tmp/sbin/halt debian/tmp/sbin/halt-hurd
	mv debian/tmp/sbin/reboot debian/tmp/sbin/reboot-hurd

	# remove PIC static libraries
	rm -f debian/tmp/lib/$(DEB_HOST_MULTIARCH)/*_pic.a
	rm -f debian/tmp-udeb/lib/*_pic.a
endif

override_dh_install: $(INSTALL_generated)
	dh_install $(addprefix -p,$(filter %-udeb,$(shell dh_listpackages))) --sourcedir=debian/tmp-udeb
	dh_install --remaining-packages --list-missing --sourcedir=debian/tmp
ifeq (,$(filter stage1 stage2 stage3 noudeb,$(DEB_BUILD_PROFILES)))
	mkdir -p debian/hurd-udeb/usr/share/lintian/overrides
	install -p -m644 debian/hurd-udeb.lintian-overrides debian/hurd-udeb/usr/share/lintian/overrides/hurd-udeb
endif

override_dh_installinit:
	dh_installinit -phurd --name=hurd-console
	dh_installinit --remaining-packages

override_dh_installchangelogs:
	dh_installchangelogs -XChangeLog

override_dh_strip:
ifeq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
	dh_strip -phurd-libs0.3 -phurd --dbg-package=hurd-dbg
endif
	dh_strip --remaining-packages

override_dh_fixperms:
	dh_fixperms
ifeq (,$(filter stage1 stage2,$(DEB_BUILD_PROFILES)))
	chmod u+s $(patsubst %,$(CURDIR)/debian/hurd%,$(SUID_PROGRAMS))
endif

override_dh_makeshlibs:
	dh_makeshlibs -phurd-libs0.3 --add-udeb=hurd-libs0.3-udeb
	dh_makeshlibs --remaining-packages -Xusr/lib/hurd/

override_dh_gencontrol:
	dh_gencontrol -- -V"built-using=$(BUILT_USING)"

override_dh_clean:
	dh_clean
	rm -rf debian/tmp-udeb

debian/%.install: debian/%.install.in
	cat $^ | sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' > $@
	[ ! -x $< ] || chmod +x $@