2 # Made with the aid of dh_make, by Craig Small
3 # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
4 # Some lines taken from debmake, by Christoph Lameter.
5 # $Id: rules,v 1.68 2004/05/30 18:21:43 mdz Exp $
7 # LD_LIBRARY_PATH=pwd/debian/apt/usr/lib dh_shlibdeps -papt
8 # dpkg: /home/jgg/work/apt2/debian/apt/usr/lib/libapt-pkg.so.2.9 not found.
10 # For the deb builder, you can run 'debian/rules cvs-build', which does all
11 # steps nescessary to produce a proper source tarball with the CVS/ removed.
12 # It builds in debian/cvs-build/apt-<VER>/, and places files in
13 # debian/cvs-build/. Optionally, you can run 'debian/rules cvs-mkul' to
14 # create ../upload-<VER>, with all the files needed to be uploaded placed
17 export DEB_HOST_GNU_TYPE ?
= $(shell dpkg-architecture
-qDEB_HOST_GNU_TYPE
)
18 export DEB_BUILD_GNU_TYPE ?
= $(shell dpkg-architecture
-qDEB_BUILD_GNU_TYPE
)
20 # apt can be build from the same source on debian and ubuntu
21 DIST
= $(shell lsb_release
-i
-s
)
23 # FOR AUTOCONF 2.52 AND NEWER ONLY
24 ifeq ($(DEB_BUILD_GNU_TYPE
), $(DEB_HOST_GNU_TYPE
))
25 confflags
+= --build
$(DEB_HOST_GNU_TYPE
)
27 confflags
+= --build
$(DEB_BUILD_GNU_TYPE
) --host
$(DEB_HOST_GNU_TYPE
)
31 -include build
/environment.mak
33 ifneq (,$(findstring noopt
,$(DEB_BUILD_OPTIONS
)))
34 export CXXFLAGS
= -O0
-g
-Wall
36 export CXXFLAGS
= -O2
-g
-Wall
42 DEB_BUILD_PROG
:=debuild
--preserve-envvar PATH
--preserve-envvar CCACHE_DIR
-us
-uc
$(DEB_BUILD_PROG_OPTS
)
43 APT_DEBVER
=$(shell dpkg-parsechangelog |sed
-n
-e
'/^Version:/s/^Version: //p')
44 APT_CONFVER
=$(shell sed
-n
-e
's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in
)
45 APT_CVSTAG
=$(shell echo
"$(APT_DEBVER)" | sed
-e
's/^/v/' -e
's/\./_/g')
47 # Determine the build directory to use
50 BUILD_POSSIBLE
:= $(BUILD
) $(BASE
)/$(BUILD
)
52 BUILD_POSSIBLE
:= $(BASE
) $(BASE
)/build-
$(shell uname
-m
) $(BASE
)/build
54 BUILDX
:= $(foreach i
,$(BUILD_POSSIBLE
),$(wildcard $(i
)/environment.mak
*))
55 BUILDX
:= $(patsubst %/,%,$(firstword $(dir $(BUILDX
))))
56 override BLD
:= $(BUILDX
)
58 ifeq ($(words $(BLD
)),0)
59 override BLD
:= .
/build
62 # Rebuild configure.in to have the correct version from the change log
63 ifneq ($(APT_DEBVER
),$(APT_CONFVER
))
64 ifneq ($(APT_DEBVER
),)
67 sed
-e
's/$(APT_CONFVER)/$(APT_DEBVER)/' $@
> $@.
$$$$ && mv
$@.
$$$$ $@
73 # APT Programs in apt-utils
74 APT_UTILS
=ftparchive sortpkgs extracttemplates
76 # Uncomment this to turn on verbose mode.
79 # Find the libapt-pkg major version for use in other control files
80 export LIBAPTPKG_MAJOR
:=$(shell egrep
'^MAJOR=' apt-pkg
/makefile |cut
-d
'=' -f
2)
81 export LIBAPTINST_MAJOR
:=$(shell egrep
'^MAJOR=' apt-inst
/makefile |cut
-d
'=' -f
2)
83 # Determine which package we should provide in the control files
84 LIBAPTPKG_PROVIDE
=libapt-pkg
$(GLIBC_VER
)$(LIBSTDCPP_VER
)-$(LIBAPTPKG_MAJOR
)
85 LIBAPTINST_PROVIDE
=libapt-inst
$(GLIBC_VER
)$(LIBSTDCPP_VER
)-$(LIBAPTINST_MAJOR
)
87 debian
/shlibs.local
: apt-pkg
/makefile
88 # We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and
89 # one for the rest of the packages. This ensures that each package gets
90 # the right overrides..
91 rm -rf
$@
$@.apt
$@.apt-utils
92 echo
"libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR)" > $@.apt
94 echo
"libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils
95 echo
"libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR)" >> $@.apt-utils
97 echo
"libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
98 echo
"libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
100 build
: build
/build-stamp
101 build-doc
: build
/build-doc-stamp
103 # Note that this is unconditionally done first as part of loading environment.mak
104 # The true is needed to force make to reload environment.mak after running
105 # configure-stamp. Otherwise we can get stale or invalid, or missing config data.
106 build
/environment.mak
: build
/configure-stamp
109 configure
: configure.in
110 build
/configure-stamp
: configure
113 cp COPYING debian
/copyright
114 cd build
&& CXXFLAGS
="$(confcxxflags)" ..
/configure
$(confflags
)
117 build
/build-stamp
: build
/configure-stamp patch
118 # Add here commands to compile the package.
122 build
/build-doc-stamp
: build
/configure-stamp
123 # Add here commands to compile the package.
135 # Add here commands to clean up after the build process.
136 dh_clean debian
/copyright debian
/shlibs.local debian
/shlibs.local.apt debian
/shlibs.local.apt-utils
138 binary-indep
: apt-doc libapt-pkg-doc
139 # Build architecture-independent files here.
140 libapt-pkg-doc
: build-doc debian
/shlibs.local
146 # libapt-pkg-doc install
148 dh_installdocs
-p
$@
$(BLD
)/docs
/cache
* $(BLD
)/docs
/design
* $(BLD
)/docs
/dpkg-tech
* \
149 $(BLD
)/docs
/files
* $(BLD
)/docs
/method
* \
150 doc
/libapt-pkg2_to_3.txt doc
/style.txt
151 dh_installexamples
-p
$@
152 # dh_installmenu -p$@
153 # dh_installinit -p$@
154 # dh_installcron -p$@
157 # dh_undocumented -p$@
158 dh_installchangelogs
-p
$@
162 # dh_suidregister -p$@
164 dh_gencontrol
-p
$@
-u
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
)
176 dh_installdocs
-p
$@
$(BLD
)/docs
/guide
*.text
$(BLD
)/docs
/guide
*.html \
177 $(BLD
)/docs
/offline
*.text
$(BLD
)/docs
/offline
*.html
178 dh_installchangelogs
-p
$@
188 # Build architecture-dependent files here.
190 binary-arch
: apt libapt-pkg-dev apt-utils
191 apt
: build debian
/shlibs.local
195 dh_installdirs
-p
$@
/usr
/share
/bug
/$@
/usr
/share
/$@
199 cp
$(BLD
)/bin
/apt-
* debian
/$@
/usr
/bin
/
201 # Remove the bits that are in apt-utils
202 rm $(addprefix debian
/$@
/usr
/bin
/apt-
,$(APT_UTILS
))
204 # install the shared libs
205 find
$(BLD
)/bin
/ -type f
-name
"libapt-pkg*.so.*" -exec cp
-a
"{}" debian
/$@
/usr
/lib
/ \
;
206 find
$(BLD
)/bin
/ -type l
-name
"libapt-pkg*.so.*" -exec cp
-a
"{}" debian
/$@
/usr
/lib
/ \
;
208 cp
$(BLD
)/bin
/methods
/* debian
/$@
/usr
/lib
/apt
/methods
/
210 cp
$(BLD
)/scripts
/dselect
/* debian
/$@
/usr
/lib
/dpkg
/methods
/apt
/
211 cp
-r
$(BLD
)/locale debian
/$@
/usr
/share
/
213 cp debian
/bugscript debian
/$@
/usr
/share
/bug
/apt
/script
215 cp share
/debian-archive.gpg debian
/$@
/usr
/share
/$@
217 # head -n 500 ChangeLog > debian/ChangeLog
219 dh_installexamples
-p
$@
$(BLD
)/docs
/examples
/*
223 dh_installchangelogs
-p
$@
227 dh_makeshlibs
-p
$@
-m
$(LIBAPTPKG_MAJOR
) -V
'$(LIBAPTPKG_PROVIDE)'
229 dh_shlibdeps
-p
$@
-l
`pwd`/debian
/apt
/usr
/lib
:`pwd`/debian
/$@
/usr
/lib
-- -Ldebian
/shlibs.local.apt
230 dh_gencontrol
-p
$@
-u
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
)
234 libapt-pkg-dev
: build debian
/shlibs.local
240 # libapt-pkg-dev install
242 cp
-a
$(BLD
)/bin
/libapt-pkg
*.so debian
/libapt-pkg-dev
/usr
/lib
/
243 cp
-a
$(BLD
)/bin
/libapt-inst
*.so debian
/libapt-pkg-dev
/usr
/lib
/
244 # ln -s libapt-pkg.so.$(LIBAPTPKG_MAJOR) debian/libapt-pkg-dev/usr/lib/libapt-pkg.so
245 cp
$(BLD
)/include/apt-pkg
/*.h debian
/libapt-pkg-dev
/usr
/include/apt-pkg
/
248 # dh_installmenu -p$@
249 # dh_installinit -p$@
250 # dh_installcron -p$@
253 dh_installchangelogs
-p
$@
257 # dh_suidregister -p$@
259 dh_gencontrol
-p
$@
-u
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
) -Vlibapt-inst
:provides
=$(LIBAPTINST_PROVIDE
)
263 apt-utils
: build debian
/shlibs.local
269 # install the shared libs
270 find
$(BLD
)/bin
/ -type f
-name
"libapt-inst*.so.*" -exec cp
-a
"{}" debian
/$@
/usr
/lib
/ \
;
271 find
$(BLD
)/bin
/ -type l
-name
"libapt-inst*.so.*" -exec cp
-a
"{}" debian
/$@
/usr
/lib
/ \
;
273 cp
$(addprefix $(BLD
)/bin
/apt-
,$(APT_UTILS
)) debian
/$@
/usr
/bin
/
276 # Install the man pages..
279 dh_installchangelogs
-p
$@
283 dh_makeshlibs
-m
$(LIBAPTINST_MAJOR
) -V
'$(LIBAPTINST_PROVIDE)' -p
$@
285 dh_shlibdeps
-p
$@
-l
`pwd`/debian
/apt
/usr
/lib
:`pwd`/debian
/$@
/usr
/lib
-- -Ldebian
/shlibs.local.apt-utils
286 dh_gencontrol
-p
$@
-u
-Vlibapt-inst
:provides
=$(LIBAPTINST_PROVIDE
)
291 @echo
>&2 'source and diff are obsolete - use dpkg-source -b'; false
298 # Update from CVS and then configure for build
299 super-l33ch
: l33ch Makefile.in
304 l33ch-stamp
: super-l33ch
308 -find
-name Makefile.in
-print0 | xargs
-0r
rm -f
309 find
-name ChangeLog | xargs
rm -f
312 binary
: binary-indep binary-arch
313 .PHONY
: build
clean binary-indep binary-arch binary debian
/shlibs.local
316 # Done by the uploader.
318 #edit debian/changelog
319 # configure.in has the version automatically updated now.
321 # debian/rules cvs-build
323 CVS_BUILDDIR
=apt-
$(APT_DEBVER
)
324 CVS_ROOT
=$(shell cat CVS
/Root
)
325 CVS_MODULE
=$(shell cat CVS
/Repository
)
327 rm -rf debian
/cvs-build
328 mkdir
-p debian
/cvs-build
329 (cd debian
/cvs-build
;cvs
-d
$(CVS_ROOT
) export -r
$(APT_CVSTAG
) -d apt-
$(APT_DEBVER
) $(CVS_MODULE
))
330 $(MAKE
) -C debian
/cvs-build
/$(CVS_BUILDDIR
) startup doc
331 (cd debian
/cvs-build
/$(CVS_BUILDDIR
);$(DEB_BUILD_PROG
))
334 -mkdir
-p ..
/upload-
$(APT_DEBVER
)
335 cp
`find debian/cvs-build -maxdepth 1 -type f` ..
/upload-
$(APT_DEBVER
)
339 cp debian
/patches
/00list.
$(DIST
) debian
/patches
/00list
344 cp debian
/patches
/00list.
$(DIST
) debian
/patches
/00list
346 rm -rf patch-stamp debian
/patched
349 rm -rf debian
/arch-build
350 mkdir
-p debian
/arch-build
/apt-
$(APT_DEBVER
)
351 baz inventory
-s | xargs cp
-a
--parents
--target
=debian
/arch-build
/apt-
$(APT_DEBVER
)
352 $(MAKE
) -C debian
/arch-build
/apt-
$(APT_DEBVER
) startup doc
353 (cd debian
/arch-build
/apt-
$(APT_DEBVER
); $(DEB_BUILD_PROG
))