Subversion Repositories

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

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

Rev 19 Rev 23
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
include /usr/share/dpatch/dpatch.make
14
include /usr/share/dpatch/dpatch.make
15
15
16
ifdef CCVER
16
ifdef CCVER
17
CC=gcc-$(CCVER)
17
CC=gcc-$(CCVER)
18
else
18
else
19
CC=gcc
19
CC=gcc
20
endif
20
endif
21
21
22
ifeq (,$(DEB_BUILD_ARCH))
22
ifeq (,$(DEB_BUILD_ARCH))
23
DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
23
DEB_BUILD_ARCH=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
24
endif
24
endif
25
25
26
CFLAGS_EXTRA = -g
26
CFLAGS_EXTRA = -g
27
CPPFLAGS_EXTRA = -DDEBIAN
27
CPPFLAGS_EXTRA = -DDEBIAN
28
28
29
ifdef SSP
29
ifdef SSP
30
SSP_FLAGS=-fstack-protector
30
SSP_FLAGS=-fstack-protector
31
endif
31
endif
32
32
33
CFARGSEXTRA = --with-cdebug
33
CFARGSEXTRA = --with-cdebug
34
34
35
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
35
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
36
CFARGSEXTRA += --without-copt
36
CFARGSEXTRA += --without-copt
37
else
37
else
38
CFARGSEXTRA += --with-copt
38
CFARGSEXTRA += --with-copt
39
endif
39
endif
40
40
41
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
41
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
42
CFARGSEXTRA += --with-rtldebug
42
CFARGSEXTRA += --with-rtldebug
43
else
43
else
44
CFARGSEXTRA += --without-rtldebug
44
CFARGSEXTRA += --without-rtldebug
45
endif
45
endif
46
46
47
CFLAGS_EXTRA += $(SSP_FLAGS)
47
CFLAGS_EXTRA += $(SSP_FLAGS)
48
# Temporary workaround for hppa linker issues
48
# Temporary workaround for hppa linker issues
49
ifeq ($(DEB_BUILD_ARCH),hppa)
49
ifeq ($(DEB_BUILD_ARCH),hppa)
50
CFLAGS_EXTRA += -ffunction-sections
50
CFLAGS_EXTRA += -ffunction-sections
51
endif
51
endif
52
52
53
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
53
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
54
	INSTALL_PROGRAM += -s
54
	INSTALL_PROGRAM += -s
55
endif
55
endif
56
56
57
EXTRA_ARGS=--with-security
57
EXTRA_ARGS=--with-security
58
58
59
DO_MACHINE_CODE=no
59
DO_MACHINE_CODE=no
60
ifeq ($(DEB_BUILD_ARCH),i386)
60
ifeq ($(DEB_BUILD_ARCH),i386)
61
DO_MACHINE_CODE=yes
61
DO_MACHINE_CODE=yes
62
endif
62
endif
63
ifeq ($(DEB_BUILD_ARCH),powerpc)
63
ifeq ($(DEB_BUILD_ARCH),powerpc)
64
DO_MACHINE_CODE=yes
64
DO_MACHINE_CODE=yes
65
endif
65
endif
66
ifeq ($(DEB_BUILD_ARCH),sparc)
66
ifeq ($(DEB_BUILD_ARCH),sparc)
67
DO_MACHINE_CODE=no
67
DO_MACHINE_CODE=no
68
endif
68
endif
69
69
70
ifeq ($(DO_MACHINE_CODE),yes)
70
ifeq ($(DO_MACHINE_CODE),yes)
71
MACHINE_OPTS=--with-machine-code
71
MACHINE_OPTS=--with-machine-code
72
else
72
else
73
MACHINE_OPTS=--without-machine-code
73
MACHINE_OPTS=--without-machine-code
74
endif
74
endif
75
75
76
DEBVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/Version: *\(.*\)-.*$$/\1/p')
76
DEBVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/Version: *\(.*\)-.*$$/\1/p')
77
MAJOR:=$(shell sed -ne 's/major://p' buildid.txt)
77
MAJOR:=$(shell sed -ne 's/major://p' buildid.txt)
78
MINOR:=$(shell sed -ne 's/minor://p' buildid.txt)
78
MINOR:=$(shell sed -ne 's/minor://p' buildid.txt)
79
BUILD:=$(shell sed -ne 's/build://p' buildid.txt)
79
BUILD:=$(shell sed -ne 's/build://p' buildid.txt)
80
PIKEV:=$(MAJOR).$(MINOR)
80
PIKEV:=$(MAJOR).$(MINOR)
81
VERSION:=$(MAJOR).$(MINOR).$(BUILD)
81
VERSION:=$(MAJOR).$(MINOR).$(BUILD)
82
PIKE:=pike$(PIKEV)
82
PIKE:=pike$(PIKEV)
83
83
84
ifneq ($(VERSION),$(DEBVERSION))
84
ifneq ($(VERSION),$(DEBVERSION))
85
$(error Version mismatch; buildid.txt: $(VERSION), debian/changelog: $(DEBVERSION))
85
$(error Version mismatch; buildid.txt: $(VERSION), debian/changelog: $(DEBVERSION))
86
endif
86
endif
87
87
88
CFARGS=$(CFARGSEXTRA) \
88
CFARGS=$(CFARGSEXTRA) \
89
       --with-cflags=\\'$(CFLAGS_EXTRA)\\' \
89
       --with-cflags=\\'$(CFLAGS_EXTRA)\\' \
90
       --with-cppflags=\\'$(CPPFLAGS_EXTRA)\\' \
90
       --with-cppflags=\\'$(CPPFLAGS_EXTRA)\\' \
91
       --with-bignums \
91
       --with-bignums \
92
       --with-gmp \
92
       --with-gmp \
93
       --with-poll \
93
       --with-poll \
94
       --with-zlib \
94
       --with-zlib \
95
       --with-freetype \
95
       --with-freetype \
96
       --without-ttflib \
96
       --without-ttflib \
97
       --with-libnettle \
97
       --with-libnettle \
98
       --without-sybase \
98
       --without-sybase \
99
       --without-java \
99
       --without-java \
100
       --with-odbc \
100
       --with-odbc \
101
       --with-sane \
101
       --with-sane \
102
       --with-postgres \
102
       --with-postgres \
103
       --with-postgres-include-dir=`pg_config --includedir` \
103
       --with-postgres-include-dir=`pg_config --includedir` \
104
       --with-libpq-dir=/usr/lib \
104
       --with-libpq-dir=/usr/lib \
105
       --with-perl \
105
       --with-perl \
106
       --without-ffmpeg \
106
       --without-ffmpeg \
107
       --without-fftw \
107
       --without-fftw \
108
       --without-libpdf \
108
       --without-libpdf \
109
       --without-libpanda \
109
       --without-libpanda \
110
       --without-GTK \
110
       --without-GTK \
111
       --without-GTK2 \
111
       --without-GTK2 \
112
       --without-bundles \
112
       --without-bundles \
113
       $(MACHINE_OPTS) $(EXTRA_ARGS)
113
       $(MACHINE_OPTS) $(EXTRA_ARGS)
114
114
115
include_prefix=/usr/include/pike/$(VERSION)
115
include_prefix=/usr/include/pike/$(VERSION)
116
lib_prefix=/usr/lib/pike/$(VERSION)
116
lib_prefix=/usr/lib/pike/$(VERSION)
117
117
118
MODULE_PACKAGES=$(shell dh_listpackages -a -N $(PIKE)-core -N $(PIKE)-dev)
118
MODULE_PACKAGES=$(shell dh_listpackages -a -N $(PIKE)-core -N $(PIKE)-dev)
119
#{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}.
119
#{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}.
120
#usr/lib/pike/*/modules/Sql.pmod/{module,Sql,rsql,sql_*}.*
120
#usr/lib/pike/*/modules/Sql.pmod/{module,Sql,rsql,sql_*}.*
121
121
122
excluded_modules:=Ssleay Mird Msql msql PDF Ffmpeg Oracle oracle sybase Gnome GTK GDK DVB Java TTF
122
excluded_modules:=Ssleay Mird Msql msql PDF Ffmpeg Oracle oracle sybase Gnome GTK GDK DVB Java TTF
123
# This is tricky. Note that it's only possible for an exclusion to match the last
123
# This is tricky. Note that it's only possible for an exclusion to match the last
124
# component specified in an .install file or on the command line, and below.
124
# component specified in an .install file or on the command line, and below.
125
DH_EXCLUDE:=$(addprefix -X,$(excluded_modules))
125
DH_EXCLUDE:=$(addprefix -X,$(excluded_modules))
126
DH_ALREADY=`for p in $(MODULE_PACKAGES); do \
126
DH_ALREADY=`for p in $(MODULE_PACKAGES); do \
127
	      find debian/$$p/usr/lib/pike/*/* -type f -printf "-X%P "; done`
127
	      find debian/$$p/usr/lib/pike/*/* -type f -printf "-X%P "; done`
128
128
129
TMP=$(CURDIR)/debian/tmp
129
TMP=$(CURDIR)/debian/tmp
130
130
131
#export CFLAGS CC PIKE VERSION
131
#export CFLAGS CC PIKE VERSION
132
export CC
132
export CC
133
133
134
build-arch: build-arch-stamp
134
build-arch: build-arch-stamp
135
build-arch-stamp: $(DPATCH_STAMPFN)
135
build-arch-stamp: $(DPATCH_STAMPFN)
136
	dh_testdir
136
	dh_testdir
137
137
138
	# Add here command to compile/build the package.
138
	# Add here command to compile/build the package.
139
	$(MAKE) compile CONFIGUREARGS="$(CFARGS)"
139
	$(MAKE) compile CONFIGUREARGS="$(CFARGS)"
140
	touch build-arch-stamp
140
	touch build-arch-stamp
141
141
142
build-indep: build-indep-stamp
142
build-indep: build-indep-stamp
143
build-indep-stamp: $(DPATCH_STAMPFN)
143
build-indep-stamp: $(DPATCH_STAMPFN)
144
	dh_testdir
144
	dh_testdir
145
145
146
	# Add here command to compile/build the arch indep package.
146
	# Add here command to compile/build the arch indep package.
147
	$(MAKE) documentation CONFIGUREARGS="$(CFARGS)"
147
	$(MAKE) documentation CONFIGUREARGS="$(CFARGS)"
148
	touch build-indep-stamp
148
	touch build-indep-stamp
149
149
150
build: build-arch
150
build: build-arch
151
151
152
clean: clean-patched unpatch
152
clean: clean-patched unpatch
153
	dh_clean
153
	dh_clean
154
154
155
clean-patched:
155
clean-patched:
156
	dh_testdir
156
	dh_testdir
157
	dh_testroot
157
	dh_testroot
158
	rm -f build-stamp build-arch-stamp build-indep-stamp configure-stamp
158
	rm -f build-stamp build-arch-stamp build-indep-stamp configure-stamp
159
159
160
	# Add here commands to clean up after the build process.
160
	# Add here commands to clean up after the build process.
161
	$(MAKE) distclean
161
	$(MAKE) distclean
162
	rm -rf refdoc/modref refdoc/traditional_manual
162
	rm -rf refdoc/modref refdoc/traditional_manual
163
163
164
install: DH_OPTIONS=
164
install: DH_OPTIONS=
165
install: build-arch
165
install: build-arch
166
	dh_testdir
166
	dh_testdir
167
	dh_testroot
167
	dh_testroot
168
	dh_clean -k
168
	dh_clean -k
169
169
170
	$(MAKE) INSTALLARGS=--traditional \
170
	$(MAKE) INSTALLARGS=--traditional \
171
		buildroot=$(TMP) \
171
		buildroot=$(TMP) \
172
	        prefix=/usr \
172
	        prefix=/usr \
173
	        man_prefix=/usr/share/man \
173
	        man_prefix=/usr/share/man \
174
	        lib_prefix="$(lib_prefix)" \
174
	        lib_prefix="$(lib_prefix)" \
175
		include_prefix="$(include_prefix)" \
175
		include_prefix="$(include_prefix)" \
176
		pike_name=/usr/bin/$(PIKE) \
176
		pike_name=/usr/bin/$(PIKE) \
177
	        install_nodoc
177
	        install_nodoc
178
178
179
#	Some cleaning
179
#	Some cleaning
180
	find "$(TMP)$(lib_prefix)" -name '.autodoc' -type f -exec rm -f '{}' ';'
180
	find "$(TMP)$(lib_prefix)" -name '.autodoc' -type f -exec rm -f '{}' ';'
181
181
182
	install -d -m755 $(TMP)/usr/share/pixmaps
182
	install -d -m755 $(TMP)/usr/share/pixmaps
183
	install -m644 debian/pike.xpm $(TMP)/usr/share/pixmaps/$(PIKE).xpm
183
	install -m644 debian/pike.xpm $(TMP)/usr/share/pixmaps/$(PIKE).xpm
184
	mv $(TMP)/usr/bin/pike $(TMP)/usr/bin/$(PIKE)
184
	mv $(TMP)/usr/bin/pike $(TMP)/usr/bin/$(PIKE)
185
	mv $(TMP)/usr/share/man/man1/pike.1 $(TMP)/usr/share/man/man1/$(PIKE).1
185
	mv $(TMP)/usr/share/man/man1/pike.1 $(TMP)/usr/share/man/man1/$(PIKE).1
186
186
187
#	Fix permissions and shebang lines
187
#	Fix permissions and shebang lines
188
	-for f in `find $(TMP)/usr/bin $(TMP)/usr/lib -type f`; do \
188
	-for f in `find $(TMP)/usr/bin $(TMP)/usr/lib -type f`; do \
189
	  if file $$f | grep -q "script"; then \
189
	  if file $$f | grep -q "script"; then \
190
	    chmod a+x $$f; \
190
	    chmod a+x $$f; \
191
	    sed -ri -e 's@#!.*NOMODULE@#!/usr/bin/$(PIKE)@' \
191
	    sed -ri -e 's@#!.*NOMODULE@#!/usr/bin/$(PIKE)@' \
192
	            -e 's@#! */usr/local/bin/pike@#!/usr/bin/$(PIKE)@' \
192
	            -e 's@#! */usr/local/bin/pike@#!/usr/bin/$(PIKE)@' \
193
	            -e 's@#! */usr/bin/env.*pike@#!/usr/bin/$(PIKE)@' \
193
	            -e 's@#! */usr/bin/env.*pike@#!/usr/bin/$(PIKE)@' \
194
	        $$f; \
194
	        $$f; \
195
	  fi; \
195
	  fi; \
196
	done
196
	done
197
197
198
#	Don't install our own specs file - the ordinary one is not that bad really
198
#	Don't install our own specs file - the ordinary one is not that bad really
199
#	sed -e 's/@PIKEVERSION@/$(VERSION)/g' \
199
#	sed -e 's/@PIKEVERSION@/$(VERSION)/g' \
200
	    -e 's;@CONFIGURE_ARGS@;$(CFARGS);g' \
200
	    -e 's;@CONFIGURE_ARGS@;$(CFARGS);g' \
201
	    debian/specs.in > $(TMP)$(include_prefix)/specs
201
	    debian/specs.in > $(TMP)$(include_prefix)/specs
202
202
203
#	Install pike-config
203
#	Install pike-config
204
	sed -e "s#@CFLAGS@#-I$(include_prefix)#;s/@LDFLAGS@//" \
204
	sed -e "s#@CFLAGS@#-I$(include_prefix)#;s/@LDFLAGS@//" \
205
	    -e "s/@MAJOR@/$(MAJOR)/;s/@MINOR@/$(MINOR)/;s/@BUILD@/$(BUILD)/" \
205
	    -e "s/@MAJOR@/$(MAJOR)/;s/@MINOR@/$(MINOR)/;s/@BUILD@/$(BUILD)/" \
206
	    debian/pike-config.in > $(TMP)/usr/bin/$(PIKE)-config
206
	    debian/pike-config.in > $(TMP)/usr/bin/$(PIKE)-config
207
207
208
# 	# pike -x module fix
208
# 	# pike -x module fix
209
	sed -i -e 's;\$$(MODULE_BASE)/dynamic_module_makefile;\$$(PIKE_SRC_DIR)/dynamic_module_makefile;g' \
209
	sed -i -e 's;\$$(MODULE_BASE)/dynamic_module_makefile;\$$(PIKE_SRC_DIR)/dynamic_module_makefile;g' \
210
		$(TMP)$(include_prefix)/dynamic_module_makefile
210
		$(TMP)$(include_prefix)/dynamic_module_makefile
211
211
212
# Build architecture-independent files here.
212
# Build architecture-independent files here.
213
# Pass -i to all debhelper commands in this target to reduce clutter.
213
# Pass -i to all debhelper commands in this target to reduce clutter.
214
binary-indep: build-indep
214
binary-indep: build-indep
215
	dh_testdir -i
215
	dh_testdir -i
216
	dh_testroot -i
216
	dh_testroot -i
217
	# install the docs
217
	# install the docs
218
	dh_install -p$(PIKE)-manual refdoc/traditional_manual/* usr/share/doc/$(PIKE)-doc/html/manual
218
	dh_install -p$(PIKE)-manual refdoc/traditional_manual/* usr/share/doc/$(PIKE)-doc/html/manual
219
	dh_install -p$(PIKE)-reference refdoc/modref/* usr/share/doc/$(PIKE)-doc/html/reference
219
	dh_install -p$(PIKE)-reference refdoc/modref/* usr/share/doc/$(PIKE)-doc/html/reference
220
	dh_install -i -N$(PIKE)-manual -N$(PIKE)-reference --sourcedir=$(TMP)
220
	dh_install -i -N$(PIKE)-manual -N$(PIKE)-reference --sourcedir=$(TMP)
221
	dh_installdocs -i
221
	dh_installdocs -i
222
	dh_installchangelogs -i -k CHANGES
222
	dh_installchangelogs -i -k CHANGES
223
	dh_link -i
223
	dh_link -i
224
	dh_compress -i
224
	dh_compress -i
225
	dh_fixperms -i
225
	dh_fixperms -i
226
	dh_installdeb -i
226
	dh_installdeb -i
227
	dh_gencontrol -i
227
	dh_gencontrol -i
228
	dh_md5sums -i
228
	dh_md5sums -i
229
	dh_builddeb -i
229
	dh_builddeb -i
230
230
231
# Build architecture-dependent files here.
231
# Build architecture-dependent files here.
232
binary-arch: build-arch install
232
binary-arch: build-arch install
233
	dh_testdir -a
233
	dh_testdir -a
234
	dh_testroot -a
234
	dh_testroot -a
235
#	dh_installdebconf -a
235
#	dh_installdebconf -a
236
	dh_install -a -N$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE)
236
	dh_install -a -N$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE)
237
	dh_install -p$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE) $(DH_ALREADY)
237
	dh_install -p$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE) $(DH_ALREADY)
238
	for p in $(MODULE_PACKAGES) $(PIKE)-dev; do \
238
	for p in $(MODULE_PACKAGES) $(PIKE)-dev; do \
239
		dh_link -p$$p usr/share/doc/$(PIKE)-core usr/share/doc/$$p; \
239
		dh_link -p$$p usr/share/doc/$(PIKE)-core usr/share/doc/$$p; \
240
	done
240
	done
241
	dh_installdocs -a
241
	dh_installdocs -a
242
	dh_installmenu -a
242
	dh_installmenu -a
243
#	dh_installman -a
243
#	dh_installman -a
244
	dh_installchangelogs -a -k CHANGES
244
	dh_installchangelogs -a -k CHANGES
245
	dh_strip -a
245
	dh_strip -a
246
	dh_compress -a
246
	dh_compress -a
247
	dh_fixperms -a -X/run_autoconfig -X/precompile.sh -X/smartlink -X/fixdepends.sh -X/install_module -X/mktestsuite
247
	dh_fixperms -a -X/run_autoconfig -X/precompile.sh -X/smartlink -X/fixdepends.sh -X/install_module -X/mktestsuite
248
	dh_installdeb -a
248
	dh_installdeb -a
249
	dh_shlibdeps -a
249
	dh_shlibdeps -a
250
	dh_gencontrol -a
250
	dh_gencontrol -a
251
	dh_md5sums -a
251
	dh_md5sums -a
252
	dh_builddeb -a
252
	dh_builddeb -a
253
253
254
binary: binary-indep binary-arch
254
binary: binary-indep binary-arch
255
.PHONY: build clean binary-indep binary-arch binary install configure
255
.PHONY: build clean binary-indep binary-arch binary install configure