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 # FOR AUTOCONF 2.52 AND NEWER ONLY
21 ifeq ($(DEB_BUILD_GNU_TYPE
), $(DEB_HOST_GNU_TYPE
))
22 confflags
+= --build
$(DEB_HOST_GNU_TYPE
)
24 confflags
+= --build
$(DEB_BUILD_GNU_TYPE
) --host
$(DEB_HOST_GNU_TYPE
)
28 -include build
/environment.mak
30 ifneq (,$(shell which dpkg-buildflags
))
31 export CXXFLAGS
= $(shell dpkg-buildflags
--get CXXFLAGS
)
33 ifneq (,$(findstring noopt
,$(DEB_BUILD_OPTIONS
)))
34 export CXXFLAGS
= -O0
-g
-Wall
36 export CXXFLAGS
= -O2
-g
-Wall
44 DEB_BUILD_PROG
:=debuild
--preserve-envvar PATH
--preserve-envvar CCACHE_DIR
-us
-uc
$(DEB_BUILD_PROG_OPTS
)
45 APT_DEBVER
=$(shell dpkg-parsechangelog |sed
-n
-e
'/^Version:/s/^Version: //p' | sed
-e
's/\+.*$$//')
46 APT_CONFVER
=$(shell sed
-n
-e
's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in
)
47 APT_CVSTAG
=$(shell echo
"$(APT_DEBVER)" | sed
-e
's/^/v/' -e
's/\./_/g')
49 # Determine the build directory to use
52 BUILD_POSSIBLE
:= $(BUILD
) $(BASE
)/$(BUILD
)
54 BUILD_POSSIBLE
:= $(BASE
) $(BASE
)/build-
$(shell uname
--machine
) $(BASE
)/build
56 BUILDX
:= $(foreach i
,$(BUILD_POSSIBLE
),$(wildcard $(i
)/environment.mak
*))
57 BUILDX
:= $(patsubst %/,%,$(firstword $(dir $(BUILDX
))))
58 override BLD
:= $(BUILDX
)
60 ifeq ($(words $(BLD
)),0)
61 override BLD
:= .
/build
64 # Rebuild configure.in to have the correct version from the change log
65 ifneq ($(APT_DEBVER
),$(APT_CONFVER
))
66 ifneq ($(APT_DEBVER
),)
69 sed
-e
's/$(APT_CONFVER)/$(APT_DEBVER)/' $@
> $@.
$$$$ && mv
$@.
$$$$ $@
75 # APT Programs in apt-utils
76 APT_UTILS
=ftparchive sortpkgs extracttemplates
78 # Uncomment this to turn on verbose mode.
81 # Find the libapt-pkg major version for use in other control files
82 include buildlib
/libversion.mak
84 # Determine which package we should provide in the control files
85 LIBAPTPKG_PROVIDE
=libapt-pkg
$(LIBAPTPKG_MAJOR
)
86 LIBAPTINST_PROVIDE
=libapt-inst
$(LIBAPTINST_MAJOR
)
88 debian
/shlibs.local
: apt-pkg
/makefile
89 # We have 3 shlibs.local files: One for 'apt', one for 'apt-utils' and
90 # one for the rest of the packages. This ensures that each package gets
91 # the right overrides…
92 rm -rf
$@
$@.apt
$@.apt-utils
93 echo
"libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt
95 echo
"libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils
96 echo
"libapt-inst $(LIBAPTINST_MAJOR)" >> $@.apt-utils
98 echo
"libapt-pkg $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
99 echo
"libapt-inst $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
101 build
: build
/build-stamp
102 build-doc
: build
/build-doc-stamp
104 # Note that this is unconditionally done first as part of loading environment.mak
105 # The true is needed to force make to reload environment.mak after running
106 # configure-stamp. Otherwise we can get stale or invalid, or missing config data.
107 build
/environment.mak
: build
/configure-stamp
110 configure
: configure.in
111 build
/configure-stamp
: configure
114 cp COPYING debian
/copyright
115 cd build
&& CXXFLAGS
="$(confcxxflags)" ..
/configure
$(confflags
)
118 build
/build-stamp
: build
/configure-stamp
119 # Add here commands to compile the package.
123 build
/build-doc-stamp
: build
/configure-stamp
124 # Add here commands to compile the package.
131 [ ! -f Makefile
] ||
$(MAKE
) clean distclean
134 # Add here commands to clean up after the build process.
135 dh_clean debian
/copyright debian
/shlibs.local debian
/shlibs.local.apt debian
/shlibs.local.apt-utils
137 binary-indep
: apt-doc libapt-pkg-doc
138 # Build architecture-independent files here.
139 libapt-pkg-doc
: build-doc debian
/shlibs.local
145 # libapt-pkg-doc install
147 dh_installdocs
-p
$@
$(BLD
)/docs
/design
* \
148 $(BLD
)/docs
/dpkg-tech
* \
150 $(BLD
)/docs
/method
* \
151 doc
/libapt-pkg2_to_3.txt \
153 $(BLD
)/doc
/doxygen
/html
154 dh_installexamples
-p
$@
156 dh_installchangelogs
-p
$@
161 dh_gencontrol
-p
$@
-u
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
)
173 dh_installdocs
-p
$@
$(BLD
)/docs
/guide
*.text \
174 $(BLD
)/docs
/guide
*.html \
175 $(BLD
)/docs
/offline
*.text \
176 $(BLD
)/docs
/offline
*.html
177 dh_installchangelogs
-p
$@
187 # Build architecture-dependent files here.
189 binary-arch
: apt libapt-pkg-dev apt-utils apt-transport-https
190 apt_MANPAGES
= apt-cache apt-cdrom apt-config apt-get apt-key apt-mark apt-secure apt apt.conf apt_preferences sources.list
191 apt
: build build-doc debian
/shlibs.local
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
/
209 # https has its own package
210 rm debian
/$@
/usr
/lib
/apt
/methods
/https
212 cp
$(BLD
)/scripts
/dselect
/* debian
/$@
/usr
/lib
/dpkg
/methods
/apt
/
213 cp
-r
$(BLD
)/locale debian
/$@
/usr
/share
/
215 cp debian
/bugscript debian
/$@
/usr
/share
/bug
/apt
/script
216 cp debian
/apt.logrotate debian
/$@
/etc
/logrotate.d
/apt
218 cp debian
/apt.conf.autoremove debian
/$@
/etc
/apt
/apt.conf.d
/01autoremove
220 # copy lintian override
221 cp share
/lintian-overrides debian
/$@
/usr
/share
/lintian
/overrides
/apt
223 # make rosetta happy and remove pot files in po/ (but leave stuff
224 # in po/domains/* untouched) and cp *.po into each domain dir
228 dh_installexamples
-p
$@
$(BLD
)/docs
/examples
/*
229 dh_installman
-p
$@
$(wildcard $(patsubst %,doc
/%.
[158],$(apt_MANPAGES
)) $(patsubst %,doc
/*/%.
*.
[158],$(apt_MANPAGES
)))
232 dh_installchangelogs
-p
$@
236 dh_makeshlibs
-p
$@
--major
=$(LIBAPTPKG_MAJOR
) --version-info
='$(LIBAPTPKG_PROVIDE)'
238 dh_shlibdeps
-p
$@
-l
$(CURDIR
)/debian
/apt
/usr
/lib
:$(CURDIR
)/debian
/$@
/usr
/lib
-- -Ldebian
/shlibs.local.apt
239 dh_gencontrol
-p
$@
-u
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
)
243 libapt-pkg-dev
: build debian
/shlibs.local
249 # libapt-pkg-dev install
251 cp
-a
$(BLD
)/bin
/libapt-pkg
*.so debian
/libapt-pkg-dev
/usr
/lib
/
252 cp
-a
$(BLD
)/bin
/libapt-inst
*.so debian
/libapt-pkg-dev
/usr
/lib
/
253 # ln -s libapt-pkg.so.$(LIBAPTPKG_MAJOR) debian/libapt-pkg-dev/usr/lib/libapt-pkg.so
254 cp
$(BLD
)/include/apt-pkg
/*.h debian
/libapt-pkg-dev
/usr
/include/apt-pkg
/
258 dh_installchangelogs
-p
$@
263 dh_gencontrol
-p
$@
-u
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
) -Vlibapt-inst
:provides
=$(LIBAPTINST_PROVIDE
)
267 apt-utils_MANPAGES
= apt-sortpkgs apt-ftparchive apt-extracttemplates
268 apt-utils
: build debian
/shlibs.local
274 # install the shared libs
275 find
$(BLD
)/bin
/ -type f
-name
"libapt-inst*.so.*" -exec cp
-a
"{}" debian
/$@
/usr
/lib
/ \
;
276 find
$(BLD
)/bin
/ -type l
-name
"libapt-inst*.so.*" -exec cp
-a
"{}" debian
/$@
/usr
/lib
/ \
;
278 cp
$(addprefix $(BLD
)/bin
/apt-
,$(APT_UTILS
)) debian
/$@
/usr
/bin
/
280 dh_installexamples
-p
$@
282 # Install the man pages..
283 dh_installman
-p
$@
$(wildcard $(patsubst %,doc
/%.
[158],$(apt-utils_MANPAGES
)) $(patsubst %,doc
/*/%.
*.
[158],$(apt-utils_MANPAGES
)))
285 dh_installchangelogs
-p
$@
289 dh_makeshlibs
-p
$@
--major
=$(LIBAPTINST_MAJOR
) --version-info
='$(LIBAPTINST_PROVIDE)'
291 dh_shlibdeps
-p
$@
-l
$(CURDIR
)/debian
/apt
/usr
/lib
:$(CURDIR
)/debian
/$@
/usr
/lib
-- -Ldebian
/shlibs.local.apt-utils
292 dh_gencontrol
-p
$@
-u
-Vlibapt-inst
:provides
=$(LIBAPTINST_PROVIDE
)
296 apt-transport-https
: build debian
/shlibs.local libapt-pkg-dev
303 mkdir
--parents debian
/$@
/usr
/lib
/apt
/methods
304 cp
$(BLD
)/bin
/methods
/https debian
/$@
/usr
/lib
/apt
/methods
306 dh_installdocs
-p
$@ debian
/apt-transport-https.README
307 dh_installexamples
-p
$@
309 # Install the man pages..
312 dh_installchangelogs
-p
$@
317 dh_shlibdeps
-p
$@
-l
$(CURDIR
)/debian
/apt
/usr
/lib
:$(CURDIR
)/debian
/$@
/usr
/lib
326 -find .
-name Makefile.in
-print0 | xargs
--null
--no-run-if-empty
-- rm -f
327 find
-name ChangeLog | xargs
rm -f
330 binary
: binary-indep binary-arch
331 .PHONY
: build
clean binary-indep binary-arch binary debian
/shlibs.local