Subversion Repositories

?revision_form?Rev ?revision_input??revision_submit??revision_endform?

Rev 122 | Rev 136 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 122 Rev 126
1
#!/usr/bin/make -f
1
#!/usr/bin/make -f
2
# Sample debian/rules that uses debhelper. 
2
# Sample debian/rules that uses debhelper. 
3
# GNU copyright 1997 by Joey Hess.
3
# GNU copyright 1997 by Joey Hess.
4
#
4
#
5
# This version is for a hypothetical package that builds an
5
# This version is for a hypothetical package that builds an
6
# architecture-dependant package, as well as an architecture-independent
6
# architecture-dependant package, as well as an architecture-independent
7
# package.
7
# package.
8
#
8
#
9
# $Id: rules,v 1.64 2006/08/05 15:49:18 grendel Exp $
9
# $Id: rules,v 1.64 2006/08/05 15:49:18 grendel Exp $
10
#
10
#
11
11
12
# Uncomment this to turn on verbose mode. 
12
# Uncomment this to turn on verbose mode. 
13
#export DH_VERBOSE=1
13
#export DH_VERBOSE=1
14
14
15
ifdef CCVER
15
ifdef CCVER
16
CC=gcc-$(CCVER)
16
CC=gcc-$(CCVER)
17
else
17
else
18
CC=gcc
18
CC=gcc
19
endif
19
endif
20
20
21
export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
21
export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
22
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
22
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
23
23
24
CFARGSEXTRA = --with-cdebug
24
CFARGSEXTRA = --with-cdebug
25
25
26
ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
26
ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
27
export CC=$(DEB_HOST_GNU_TYPE)-gcc
27
export CC=$(DEB_HOST_GNU_TYPE)-gcc
28
CFARGSEXTRA += --host=$(DEB_HOST_GNU_TYPE)
28
CFARGSEXTRA += --host=$(DEB_HOST_GNU_TYPE)
29
endif
29
endif
30
30
31
ifeq (,$(DEB_BUILD_ARCH))
31
ifeq (,$(DEB_BUILD_ARCH))
32
DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
32
DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
33
endif
33
endif
34
34
35
CFLAGS_EXTRA = -g
35
CFLAGS_EXTRA = -g
36
CPPFLAGS_EXTRA = -DDEBIAN
36
CPPFLAGS_EXTRA = -DDEBIAN
37
37
38
ifdef SSP
38
ifdef SSP
39
SSP_FLAGS=-fstack-protector
39
SSP_FLAGS=-fstack-protector
40
endif
40
endif
41
41
42
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
42
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
43
CFARGSEXTRA += --without-copt
43
CFARGSEXTRA += --without-copt
44
else
44
else
45
CFARGSEXTRA += --with-copt
45
CFARGSEXTRA += --with-copt
46
endif
46
endif
47
47
48
ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
48
ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
49
CFARGSEXTRA += --with-rtldebug
49
CFARGSEXTRA += --with-rtldebug
50
else
50
else
51
CFARGSEXTRA += --without-rtldebug
51
CFARGSEXTRA += --without-rtldebug
52
endif
52
endif
53
53
54
CFLAGS_EXTRA += $(SSP_FLAGS)
54
CFLAGS_EXTRA += $(SSP_FLAGS)
55
# Temporary workaround for hppa linker issues
55
# Temporary workaround for hppa linker issues
56
ifeq ($(DEB_BUILD_ARCH),hppa)
56
ifeq ($(DEB_BUILD_ARCH),hppa)
57
CFLAGS_EXTRA += -ffunction-sections
57
CFLAGS_EXTRA += -ffunction-sections
58
endif
58
endif
59
59
60
ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
60
ifeq (,$(filter nostrip,$(DEB_BUILD_OPTIONS)))
61
	INSTALL_PROGRAM += -s
61
	INSTALL_PROGRAM += -s
62
endif
62
endif
63
63
64
EXTRA_ARGS=--with-security
64
EXTRA_ARGS=--with-security
65
65
66
DO_MACHINE_CODE=no
66
DO_MACHINE_CODE=no
67
ifeq ($(DEB_BUILD_ARCH),i386)
67
ifeq ($(DEB_BUILD_ARCH),i386)
68
DO_MACHINE_CODE=yes
68
DO_MACHINE_CODE=yes
69
endif
69
endif
70
ifeq ($(DEB_BUILD_ARCH),powerpc)
70
ifeq ($(DEB_BUILD_ARCH),powerpc)
71
DO_MACHINE_CODE=yes
71
DO_MACHINE_CODE=yes
72
endif
72
endif
73
ifeq ($(DEB_BUILD_ARCH),sparc)
73
ifeq ($(DEB_BUILD_ARCH),sparc)
74
DO_MACHINE_CODE=no
74
DO_MACHINE_CODE=no
75
endif
75
endif
76
76
77
ifeq ($(DO_MACHINE_CODE),yes)
77
ifeq ($(DO_MACHINE_CODE),yes)
78
MACHINE_OPTS=--with-machine-code
78
MACHINE_OPTS=--with-machine-code
79
else
79
else
80
MACHINE_OPTS=--without-machine-code
80
MACHINE_OPTS=--without-machine-code
81
endif
81
endif
82
82
83
#DEBVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/Version: *\(.*\)-.*$$/\1/p')
83
#DEBVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/Version: *\(.*\)-.*$$/\1/p')
84
DEBVERSION:=$(shell dpkg-parsechangelog | grep "Version:" | cut -d" " -f2 | cut -d"-" -f1)
84
DEBVERSION:=$(shell dpkg-parsechangelog | grep "Version:" | cut -d" " -f2 | cut -d"-" -f1)
85
MAJOR:=$(shell sed -ne 's/major://p' buildid.txt)
85
MAJOR:=$(shell sed -ne 's/major://p' buildid.txt)
86
MINOR:=$(shell sed -ne 's/minor://p' buildid.txt)
86
MINOR:=$(shell sed -ne 's/minor://p' buildid.txt)
87
BUILD:=$(shell sed -ne 's/build://p' buildid.txt)
87
BUILD:=$(shell sed -ne 's/build://p' buildid.txt)
88
PIKEV:=$(MAJOR).$(MINOR)
88
PIKEV:=$(MAJOR).$(MINOR)
89
VERSION:=$(MAJOR).$(MINOR).$(BUILD)
89
VERSION:=$(MAJOR).$(MINOR).$(BUILD)
90
PIKE:=pike$(PIKEV)
90
PIKE:=pike$(PIKEV)
91
91
92
ifneq ($(VERSION),$(DEBVERSION))
92
ifneq ($(VERSION),$(DEBVERSION))
93
$(error Version mismatch; buildid.txt: $(VERSION), debian/changelog: $(DEBVERSION))
93
$(error Version mismatch; buildid.txt: $(VERSION), debian/changelog: $(DEBVERSION))
94
endif
94
endif
95
95
96
CFARGS=$(CFARGSEXTRA) \
96
CFARGS=$(CFARGSEXTRA) \
97
       --with-cflags='$(CFLAGS_EXTRA)' \
97
       --with-cflags='$(CFLAGS_EXTRA)' \
98
       --with-cppflags='$(CPPFLAGS_EXTRA)' \
98
       --with-cppflags='$(CPPFLAGS_EXTRA)' \
99
       --with-bignums \
99
       --with-bignums \
100
       --with-gmp \
100
       --with-gmp \
101
       --with-poll \
101
       --with-poll \
102
       --with-zlib \
102
       --with-zlib \
103
       --with-freetype \
103
       --with-freetype \
104
       --without-ttflib \
104
       --without-ttflib \
105
       --with-libnettle \
105
       --with-libnettle \
106
       --without-sybase \
106
       --without-sybase \
107
       --without-java \
107
       --without-java \
108
       --with-odbc \
108
       --with-odbc \
109
       --with-sane \
109
       --with-sane \
110
       --with-postgres \
110
       --with-postgres \
111
       --with-postgres-include-dir=`pg_config --includedir` \
111
       --with-postgres-include-dir=`pg_config --includedir` \
112
       --with-libpq-dir=/usr/lib \
112
       --with-libpq-dir=/usr/lib \
113
       --without-ffmpeg \
113
       --without-ffmpeg \
114
       --without-fftw \
114
       --without-fftw \
115
       --without-libpdf \
115
       --without-libpdf \
116
       --without-libpanda \
116
       --without-libpanda \
117
       --without-GTK \
117
       --without-GTK \
118
       --with-GTK2 \
118
       --with-GTK2 \
119
       --without-bundles \
119
       --without-bundles \
120
       --without-oracle \
120
       --without-oracle \
121
       --without-dvb \
121
       --without-dvb \
122
       --with-sqlite \
122
       --with-sqlite \
123
       --disable-rpath \
123
       --disable-rpath \
124
       --disable-smartlink_binary \
124
       --disable-smartlink_binary \
125
       $(MACHINE_OPTS) $(EXTRA_ARGS)
125
       $(MACHINE_OPTS) $(EXTRA_ARGS)
126
126
127
include_prefix=/usr/include/pike$(PIKEV)/pike
127
include_prefix=/usr/include/pike$(PIKEV)/pike
128
lib_prefix=/usr/lib/pike$(PIKEV)
128
lib_prefix=/usr/lib/pike$(PIKEV)
129
129
130
MODULE_PACKAGES=$(shell dh_listpackages -a -N $(PIKE)-core)
130
MODULE_PACKAGES=$(shell dh_listpackages -a -N $(PIKE)-core)
131
#{ADT,Array,Audio,Cache,Calendar,Calendar_I,COM,Colors,CommonLog,Crypto,Debug,Filesystem,Error,Float,Function,Geography,Getopt,Gettext,Gmp,Graphics,Gz,HTTPAccept,Int,Kerberos,Languages,Local,Locale,Mapping,Math,MIME,Mird,Multiset,Nettle,Parser,Pike,Pipe,Process,Program,Protocols,Regexp,Remote,SSL,Shuffler,Standards,Stdio,String,System,Thread,Tools,Unicode,Web,Yabu,Yp,_ADT,_Charset,_Roxen,___Gz,___MIME,___Math,___Mird,___Regexp,___Yp,____Charset,__builtin*,spider}.
131
#{ADT,Array,Audio,Cache,Calendar,Calendar_I,COM,Colors,CommonLog,Crypto,Debug,Filesystem,Error,Float,Function,Geography,Getopt,Gettext,Gmp,Graphics,Gz,HTTPAccept,Int,Kerberos,Languages,Local,Locale,Mapping,Math,MIME,Mird,Multiset,Nettle,Parser,Pike,Pipe,Process,Program,Protocols,Regexp,Remote,SSL,Shuffler,Standards,Stdio,String,System,Thread,Tools,Unicode,Web,Yabu,Yp,_ADT,_Charset,_Roxen,___Gz,___MIME,___Math,___Mird,___Regexp,___Yp,____Charset,__builtin*,spider}.
132
#usr/lib/pike/*/modules/Sql.pmod/{module,Sql,rsql,sql_*}.*
132
#usr/lib/pike/*/modules/Sql.pmod/{module,Sql,rsql,sql_*}.*
133
133
134
excluded_modules:=Ssleay Mird Msql msql PDF Ffmpeg Oracle oracle sybase DVB Java TTF PV.pike Gnome GDK GTKSupport
134
excluded_modules:=Ssleay Mird Msql msql PDF Ffmpeg Oracle oracle sybase DVB Java TTF PV.pike Gnome GDK GTKSupport
135
# This is tricky. Note that it's only possible for an exclusion to match the last
135
# This is tricky. Note that it's only possible for an exclusion to match the last
136
# component specified in an .install file or on the command line, and below.
136
# component specified in an .install file or on the command line, and below.
137
DH_EXCLUDE:=$(addprefix -X,$(excluded_modules))
137
DH_EXCLUDE:=$(addprefix -X,$(excluded_modules))
138
DH_ALREADY=`for p in $(MODULE_PACKAGES); do \
138
DH_ALREADY=`for p in $(MODULE_PACKAGES); do \
139
	      find debian/$$p/usr/lib/pike?.?/* -type f -printf "-X%P "; done`
139
	      find debian/$$p/usr/lib/pike?.?/* -type f -printf "-X%P "; done`
140
140
141
TMP=$(CURDIR)/debian/tmp
141
TMP=$(CURDIR)/debian/tmp
142
142
143
#export CFLAGS CC PIKE VERSION
143
#export CFLAGS CC PIKE VERSION
144
export CC
144
export CC
145
145
146
build-arch: build-arch-stamp
146
build-arch: build-arch-stamp
147
build-arch-stamp:
147
build-arch-stamp:
148
	dh_testdir
148
	dh_testdir
149
	$(MAKE) compile CONFIGUREARGS="$(CFARGS)"
149
	$(MAKE) compile CONFIGUREARGS="$(CFARGS)"
150
	touch build-arch-stamp
150
	touch build-arch-stamp
151
151
152
build-indep: build-indep-stamp
152
build-indep: build-indep-stamp
153
build-indep-stamp:
153
build-indep-stamp:
154
	dh_testdir
154
	dh_testdir
155
	$(MAKE) documentation CONFIGUREARGS="$(CFARGS)"
155
	$(MAKE) documentation CONFIGUREARGS="$(CFARGS)"
156
	touch build-indep-stamp
156
	touch build-indep-stamp
157
157
158
build: build-arch
158
build: build-arch
159
159
160
clean:
160
clean:
161
	dh_testdir
161
	dh_testdir
162
	dh_testroot
162
	dh_testroot
163
	rm -f build-stamp build-arch-stamp build-indep-stamp configure-stamp
163
	rm -f build-stamp build-arch-stamp build-indep-stamp configure-stamp
164
	$(MAKE) distclean
164
	$(MAKE) distclean
165
	rm -rf refdoc/modref refdoc/traditional_manual
165
	rm -rf refdoc/modref refdoc/traditional_manual
166
	dh_clean
166
	dh_clean
167
167
168
install: DH_OPTIONS=
168
install: DH_OPTIONS=
169
install: build-arch
169
install: build-arch
170
	dh_testdir
170
	dh_testdir
171
	dh_testroot
171
	dh_testroot
172
	dh_clean -k
172
	dh_clean -k
173
	$(MAKE) INSTALLARGS=--traditional \
173
	$(MAKE) INSTALLARGS=--traditional \
174
		buildroot=$(TMP) \
174
		buildroot=$(TMP) \
175
		prefix=/usr \
175
		prefix=/usr \
176
		man_prefix=/usr/share/man \
176
		man_prefix=/usr/share/man \
177
		lib_prefix="$(lib_prefix)" \
177
		lib_prefix="$(lib_prefix)" \
178
		include_prefix="$(include_prefix)" \
178
		include_prefix="$(include_prefix)" \
179
		pike_name=/usr/bin/$(PIKE) \
179
		pike_name=/usr/bin/$(PIKE) \
180
		install_nodoc
180
		install_nodoc
181
181
182
#	Some cleaning
182
#	Some cleaning
183
	find "$(TMP)$(lib_prefix)" -name '.autodoc' -type f -exec rm -f '{}' ';'
183
	find "$(TMP)$(lib_prefix)" -name '.autodoc' -type f -exec rm -f '{}' ';'
184
184
185
	install -d -m755 $(TMP)/usr/share/pixmaps
185
	install -d -m755 $(TMP)/usr/share/pixmaps
186
	install -m644 debian/pike.xpm $(TMP)/usr/share/pixmaps/$(PIKE).xpm
186
	install -m644 debian/pike.xpm $(TMP)/usr/share/pixmaps/$(PIKE).xpm
187
	mv $(TMP)/usr/bin/pike $(TMP)/usr/bin/$(PIKE)
187
	mv $(TMP)/usr/bin/pike $(TMP)/usr/bin/$(PIKE)
188
	mv $(TMP)/usr/share/man/man1/pike.1 $(TMP)/usr/share/man/man1/$(PIKE).1
188
	mv $(TMP)/usr/share/man/man1/pike.1 $(TMP)/usr/share/man/man1/$(PIKE).1
189
189
190
#	Simply strip exec permissions and shebangs from all pike scripts.
190
#	Simply strip exec permissions and shebangs from all pike scripts.
191
	find $(TMP)/usr -name *.p* -type f \
191
	find $(TMP)/usr -name *.p* -type f \
192
		-exec chmod a-x '{}' + \
192
		-exec chmod a-x '{}' + \
193
		-exec sed -ri -e '1!b;/^#!/d' '{}' +
193
		-exec sed -ri -e '1!b;/^#!/d' '{}' +
194
194
195
#	Install our own, simpler specs file.
195
#	Install our own, simpler specs file.
196
	sed -e "s;@include_prefix@;$(include_prefix);g" \
196
	sed -e "s;@include_prefix@;$(include_prefix);g" \
197
	    -e "s;@CONFIGURE_ARGS@;$(CFARGS);g" \
197
	    -e "s;@CONFIGURE_ARGS@;$(CFARGS);g" \
198
	    debian/specs.in > $(TMP)$(include_prefix)/specs
198
	    debian/specs.in > $(TMP)$(include_prefix)/specs
199
199
200
#	Fix precompike.pike
200
#	Fix precompike.pike
201
	sed -i -e "s%\.\./lib%$(lib_prefix)%" $(TMP)$(include_prefix)/precompile.pike
201
	sed -i -e "s%\.\./lib%$(lib_prefix)%" $(TMP)$(include_prefix)/precompile.pike
202
202
203
# 	# pike -x module fix
203
# 	# pike -x module fix
204
#	sed -i -e 's;\$$(MODULE_BASE)/dynamic_module_makefile;\$$(PIKE_SRC_DIR)/modules/dynamic_module_makefile;g' \
204
#	sed -i -e 's;\$$(MODULE_BASE)/dynamic_module_makefile;\$$(PIKE_SRC_DIR)/modules/dynamic_module_makefile;g' \
205
#		$(TMP)$(include_prefix)/modules/dynamic_module_makefile
205
#		$(TMP)$(include_prefix)/modules/dynamic_module_makefile
206
206
207
# Build architecture-independent files here.
207
# Build architecture-independent files here.
208
# Pass -i to all debhelper commands in this target to reduce clutter.
208
# Pass -i to all debhelper commands in this target to reduce clutter.
209
binary-indep: build-indep
209
binary-indep: build-indep
210
	dh_testdir -i
210
	dh_testdir -i
211
	dh_testroot -i
211
	dh_testroot -i
212
	# install the docs
212
	# install the docs
213
	dh_install -p$(PIKE)-manual refdoc/traditional_manual/* usr/share/doc/$(PIKE)-doc/html/manual
213
	dh_install -p$(PIKE)-manual refdoc/traditional_manual/* usr/share/doc/$(PIKE)-doc/html/manual
214
	dh_install -p$(PIKE)-reference refdoc/modref/* usr/share/doc/$(PIKE)-doc/html/reference
214
	dh_install -p$(PIKE)-reference refdoc/modref/* usr/share/doc/$(PIKE)-doc/html/reference
215
	dh_install -i -N$(PIKE)-manual -N$(PIKE)-reference --sourcedir=$(TMP)
215
	dh_install -i -N$(PIKE)-manual -N$(PIKE)-reference --sourcedir=$(TMP)
216
	dh_installdocs -i
216
	dh_installdocs -i
217
	dh_installchangelogs -i -k CHANGES
217
	dh_installchangelogs -i -k CHANGES
218
	dh_link -i
218
	dh_link -i
219
	dh_compress -i
219
	dh_compress -i
220
	dh_fixperms -i
220
	dh_fixperms -i
221
	dh_installdeb -i
221
	dh_installdeb -i
222
	dh_gencontrol -i
222
	dh_gencontrol -i
223
	dh_md5sums -i
223
	dh_md5sums -i
224
	dh_builddeb -i
224
	dh_builddeb -i
225
225
226
# Build architecture-dependent files here.
226
# Build architecture-dependent files here.
227
binary-arch: build-arch install
227
binary-arch: build-arch install
228
	dh_testdir -a
228
	dh_testdir -a
229
	dh_testroot -a
229
	dh_testroot -a
230
	dh_install -a -N$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE)
230
	dh_install -a -N$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE)
231
	dh_install -p$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE) $(DH_ALREADY)
231
	dh_install -p$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE) $(DH_ALREADY)
232
	for p in $(MODULE_PACKAGES) $(PIKE)-dev; do \
232
	for p in $(MODULE_PACKAGES) $(PIKE)-dev; do \
233
		dh_link -p$$p usr/share/doc/$(PIKE)-core usr/share/doc/$$p; \
233
		dh_link -p$$p usr/share/doc/$(PIKE)-core usr/share/doc/$$p; \
234
	done
234
	done
235
	dh_installdocs -a
235
	dh_installdocs -a
236
	dh_installmenu -a
236
	dh_installmenu -a
237
	dh_installchangelogs -a -k CHANGES
237
	dh_installchangelogs -a -k CHANGES
238
	dh_strip -a
238
	dh_strip -a
239
	dh_compress -a
239
	dh_compress -a
240
	dh_fixperms -a -X/run_autoconfig -X/precompile.sh -X/smartlink -X/fixdepends.sh -X/install_module -X/mktestsuite
240
	dh_fixperms -a -X/run_autoconfig -X/precompile.sh -X/smartlink -X/fixdepends.sh -X/install_module -X/mktestsuite
241
	dh_installdeb -a
241
	dh_installdeb -a
242
	dh_shlibdeps -a
242
	dh_shlibdeps -a
243
	dh_gencontrol -a
243
	dh_gencontrol -a
244
	dh_md5sums -a
244
	dh_md5sums -a
245
	dh_builddeb -a
245
	dh_builddeb -a
246
246
247
binary: binary-indep binary-arch
247
binary: binary-indep binary-arch
248
.PHONY: build clean binary-indep binary-arch binary install configure
248
.PHONY: build clean binary-indep binary-arch binary install configure