Subversion Repositories

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

Rev 292 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 magnus 1
#!/usr/bin/make -f
2
# Sample debian/rules that uses debhelper.
3
# GNU copyright 1997 by Joey Hess.
4
#
5
# This version is for a hypothetical package that builds an
6
# architecture-dependant package, as well as an architecture-independent
7
# package.
8
#
9
# $Id: rules,v 1.64 2006/08/05 15:49:18 grendel Exp $
10
#
11
 
12
# Uncomment this to turn on verbose mode.
13
#export DH_VERBOSE=1
41 magnus 14
 
2 magnus 15
ifdef CCVER
16
CC=gcc-$(CCVER)
17
else
18
CC=gcc
19
endif
20
 
94 holmgren 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)
23
 
149 holmgren 24
CFARGSEXTRA := --with-cdebug
94 holmgren 25
 
26
ifneq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
27
export CC=$(DEB_HOST_GNU_TYPE)-gcc
28
CFARGSEXTRA += --host=$(DEB_HOST_GNU_TYPE)
29
endif
30
 
149 holmgren 31
DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
32
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
2 magnus 33
 
71 holmgren 34
ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
12 magnus 35
CFARGSEXTRA += --without-copt
2 magnus 36
else
149 holmgren 37
  ifneq (,$(filter $(DEB_HOST_ARCH), i386))
38
    CFARGSEXTRA += --without-copt
39
    export DEB_CFLAGS_MAINT_STRIP := -O2 -O3
40
    export DEB_CFLAGS_MAINT_PREPEND := -O1
41
  else
42
    CFARGSEXTRA += --with-copt
43
  endif
2 magnus 44
endif
45
 
71 holmgren 46
ifneq (,$(filter debug,$(DEB_BUILD_OPTIONS)))
12 magnus 47
CFARGSEXTRA += --with-rtldebug
48
else
49
CFARGSEXTRA += --without-rtldebug
2 magnus 50
endif
51
 
52
# Temporary workaround for hppa linker issues
53
ifeq ($(DEB_BUILD_ARCH),hppa)
149 holmgren 54
export DEB_CFLAGS_MAINT_APPEND += -ffunction-sections
2 magnus 55
endif
56
 
198 holmgren 57
EXTRA_ARGS=
2 magnus 58
 
149 holmgren 59
export DEB_CPPFLAGS_MAINT_APPEND := -DDEBIAN
60
export DEB_LDFLAGS_MAINT_APPEND := -Wl,--as-needed
61
 
2 magnus 62
DO_MACHINE_CODE=no
149 holmgren 63
ifeq ($(DEB_HOST_ARCH),i386)
2 magnus 64
DO_MACHINE_CODE=yes
65
endif
149 holmgren 66
ifeq ($(DEB_HOST_ARCH),powerpc)
2 magnus 67
DO_MACHINE_CODE=yes
68
endif
69
ifeq ($(DEB_BUILD_ARCH),sparc)
70
DO_MACHINE_CODE=no
71
endif
72
 
73
ifeq ($(DO_MACHINE_CODE),yes)
74
MACHINE_OPTS=--with-machine-code
75
else
76
MACHINE_OPTS=--without-machine-code
77
endif
78
 
41 magnus 79
#DEBVERSION:=$(shell dpkg-parsechangelog | sed -ne 's/Version: *\(.*\)-.*$$/\1/p')
80
DEBVERSION:=$(shell dpkg-parsechangelog | grep "Version:" | cut -d" " -f2 | cut -d"-" -f1)
3 magnus 81
MAJOR:=$(shell sed -ne 's/major://p' buildid.txt)
82
MINOR:=$(shell sed -ne 's/minor://p' buildid.txt)
83
BUILD:=$(shell sed -ne 's/build://p' buildid.txt)
84
PIKEV:=$(MAJOR).$(MINOR)
85
VERSION:=$(MAJOR).$(MINOR).$(BUILD)
86
PIKE:=pike$(PIKEV)
87
 
88
ifneq ($(VERSION),$(DEBVERSION))
89
$(error Version mismatch; buildid.txt: $(VERSION), debian/changelog: $(DEBVERSION))
90
endif
91
 
149 holmgren 92
# --with-lib-path is just to stop configure from adding all the
93
# standard library directories with -L as well as -R to LDFLAGS
2 magnus 94
CFARGS=$(CFARGSEXTRA) \
149 holmgren 95
       --with-cflags='`dpkg-buildflags --get CFLAGS`' \
96
       --with-cppflags='`dpkg-buildflags --get CPPFLAGS`' \
97
       --with-ldflags='`dpkg-buildflags --get LDFLAGS`' \
98
       --prefix=/usr \
2 magnus 99
       --with-bignums \
100
       --with-gmp \
101
       --with-poll \
102
       --with-zlib \
103
       --with-freetype \
3 magnus 104
       --without-ttflib \
2 magnus 105
       --with-libnettle \
106
       --without-sybase \
3 magnus 107
       --without-java \
2 magnus 108
       --with-odbc \
109
       --with-sane \
110
       --with-postgres \
12 magnus 111
       --with-postgres-include-dir=`pg_config --includedir` \
2 magnus 112
       --with-libpq-dir=/usr/lib \
292 magnus 113
       --with-sass \
294 magnus 114
       --with-sqlite \
115
       --without-com \
2 magnus 116
       --without-ffmpeg \
12 magnus 117
       --without-fftw \
2 magnus 118
       --without-libpdf \
3 magnus 119
       --without-libpanda \
2 magnus 120
       --without-GTK \
285 holmgren 121
       --without-GTK2 \
12 magnus 122
       --without-bundles \
41 magnus 123
       --without-oracle \
124
       --without-dvb \
125
       --disable-rpath \
294 magnus 126
       --without-vcdiff \
127
       --without-zxid \
41 magnus 128
       --disable-smartlink_binary \
3 magnus 129
       $(MACHINE_OPTS) $(EXTRA_ARGS)
2 magnus 130
 
113 holmgren 131
include_prefix=/usr/include/pike$(PIKEV)/pike
84 holmgren 132
lib_prefix=/usr/lib/pike$(PIKEV)
2 magnus 133
 
105 holmgren 134
MODULE_PACKAGES=$(shell dh_listpackages -a -N $(PIKE)-core)
3 magnus 135
#{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}.
136
#usr/lib/pike/*/modules/Sql.pmod/{module,Sql,rsql,sql_*}.*
137
 
294 magnus 138
excluded_modules:=FSEvents Ssleay Mird Msql msql PDF Ffmpeg Oracle oracle sybase DVB Java TTF Gnome GTK GDK GTKSupport ZXID COM.so VCDiff
3 magnus 139
# This is tricky. Note that it's only possible for an exclusion to match the last
140
# component specified in an .install file or on the command line, and below.
244 holmgren 141
DH_EXCLUDE:=$(addprefix -X,$(excluded_modules) README NEWS LICENSE CONTRIBUTING Makefile)
3 magnus 142
DH_ALREADY=`for p in $(MODULE_PACKAGES); do \
84 holmgren 143
	      find debian/$$p/usr/lib/pike?.?/* -type f -printf "-X%P "; done`
3 magnus 144
 
145
TMP=$(CURDIR)/debian/tmp
146
 
12 magnus 147
#export CFLAGS CC PIKE VERSION
148
export CC
2 magnus 149
 
275 holmgren 150
configure: configure-stamp
151
configure-stamp:
152
	dh_autoreconf src/run_autoconfig
153
	$(MAKE) force_configure CONFIGUREARGS="$(CFARGS)"
154
	touch configure-stamp
155
 
2 magnus 156
build-arch: build-arch-stamp
275 holmgren 157
build-arch-stamp: configure
2 magnus 158
	dh_testdir
275 holmgren 159
	$(MAKE) compile
2 magnus 160
	touch build-arch-stamp
161
 
162
build-indep: build-indep-stamp
275 holmgren 163
build-indep-stamp: configure
2 magnus 164
	dh_testdir
275 holmgren 165
	$(MAKE) documentation
2 magnus 166
	touch build-indep-stamp
167
 
268 holmgren 168
build: build-arch build-indep
2 magnus 169
 
122 holmgren 170
clean:
2 magnus 171
	dh_testdir
172
	dh_testroot
12 magnus 173
	$(MAKE) distclean
2 magnus 174
	rm -rf refdoc/modref refdoc/traditional_manual
275 holmgren 175
	dh_autoreconf_clean
122 holmgren 176
	dh_clean
2 magnus 177
 
3 magnus 178
install: build-arch
2 magnus 179
	dh_testdir
180
	dh_testroot
229 holmgren 181
	dh_prep
3 magnus 182
	$(MAKE) INSTALLARGS=--traditional \
183
		buildroot=$(TMP) \
41 magnus 184
		prefix=/usr \
185
		man_prefix=/usr/share/man \
186
		lib_prefix="$(lib_prefix)" \
3 magnus 187
		include_prefix="$(include_prefix)" \
2 magnus 188
		pike_name=/usr/bin/$(PIKE) \
41 magnus 189
		install_nodoc
2 magnus 190
 
3 magnus 191
#	Some cleaning
192
	find "$(TMP)$(lib_prefix)" -name '.autodoc' -type f -exec rm -f '{}' ';'
2 magnus 193
 
3 magnus 194
	install -d -m755 $(TMP)/usr/share/pixmaps
195
	install -m644 debian/pike.xpm $(TMP)/usr/share/pixmaps/$(PIKE).xpm
196
	mv $(TMP)/usr/bin/pike $(TMP)/usr/bin/$(PIKE)
197
	mv $(TMP)/usr/share/man/man1/pike.1 $(TMP)/usr/share/man/man1/$(PIKE).1
2 magnus 198
 
64 holmgren 199
#	Simply strip exec permissions and shebangs from all pike scripts.
244 holmgren 200
	find $(TMP)/usr -type f '(' -name '*.p*' -o -name '*.h' ')' \
201
		-execdir chmod -x '{}' + \
202
		-execdir sed -rsi -e '1!b;/^#!/d' '{}' +
2 magnus 203
 
84 holmgren 204
#	Install our own, simpler specs file.
205
	sed -e "s;@include_prefix@;$(include_prefix);g" \
206
	    -e "s;@CONFIGURE_ARGS@;$(CFARGS);g" \
12 magnus 207
	    debian/specs.in > $(TMP)$(include_prefix)/specs
2 magnus 208
 
84 holmgren 209
#	Fix precompike.pike
210
	sed -i -e "s%\.\./lib%$(lib_prefix)%" $(TMP)$(include_prefix)/precompile.pike
211
 
3 magnus 212
# 	# pike -x module fix
45 holmgren 213
#	sed -i -e 's;\$$(MODULE_BASE)/dynamic_module_makefile;\$$(PIKE_SRC_DIR)/modules/dynamic_module_makefile;g' \
214
#		$(TMP)$(include_prefix)/modules/dynamic_module_makefile
2 magnus 215
 
216
# Build architecture-independent files here.
217
# Pass -i to all debhelper commands in this target to reduce clutter.
3 magnus 218
binary-indep: build-indep
2 magnus 219
	dh_testdir -i
220
	dh_testroot -i
3 magnus 221
	# install the docs
240 holmgren 222
	dh_install -p$(PIKE)-doc -Ximages refdoc/traditional_manual/* usr/share/doc/$(PIKE)-doc/html/manual
223
	dh_install -p$(PIKE)-doc refdoc/modref/* usr/share/doc/$(PIKE)-doc/html/reference
224
	dh_link -p$(PIKE)-doc usr/share/doc/$(PIKE)-doc/html/reference/images usr/share/doc/$(PIKE)-doc/html/manual/images
225
	dh_install -i
2 magnus 226
	dh_installdocs -i
12 magnus 227
	dh_installchangelogs -i -k CHANGES
200 holmgren 228
	dh_lintian -i
2 magnus 229
	dh_compress -i
230
	dh_fixperms -i
231
	dh_installdeb -i
232
	dh_gencontrol -i
233
	dh_md5sums -i
234
	dh_builddeb -i
235
 
236
# Build architecture-dependent files here.
237
binary-arch: build-arch install
238
	dh_testdir -a
239
	dh_testroot -a
12 magnus 240
	dh_install -a -N$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE)
3 magnus 241
	dh_install -p$(PIKE)-core --sourcedir=debian/tmp $(DH_EXCLUDE) $(DH_ALREADY)
149 holmgren 242
	for p in $(MODULE_PACKAGES); do \
243
		sed "s/#PACKAGE#/$$p/" debian/prerm-snippet >> debian/$$p.prerm.debhelper; \
3 magnus 244
	done
200 holmgren 245
	dh_installdocs -a --link-doc=$(PIKE)-core
3 magnus 246
	dh_installmenu -a
12 magnus 247
	dh_installchangelogs -a -k CHANGES
200 holmgren 248
	dh_lintian -a
249
	dh_link -a
2 magnus 250
	dh_strip -a
251
	dh_compress -a
3 magnus 252
	dh_fixperms -a -X/run_autoconfig -X/precompile.sh -X/smartlink -X/fixdepends.sh -X/install_module -X/mktestsuite
2 magnus 253
	dh_installdeb -a
254
	dh_shlibdeps -a
255
	dh_gencontrol -a
256
	dh_md5sums -a
257
	dh_builddeb -a
258
 
259
binary: binary-indep binary-arch
268 holmgren 260
.PHONY: build clean build-indep build-arch binary binary-indep binary-arch install configure