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 (,$(findstring noopt
,$(DEB_BUILD_OPTIONS
))) 
  31   export CXXFLAGS 
= -O0 
-g 
-Wall
 
  33   export CXXFLAGS 
= -O2 
-g 
-Wall
 
  40 DEB_BUILD_PROG
:=debuild 
--preserve-envvar PATH 
--preserve-envvar CCACHE_DIR 
-us 
-uc 
$(DEB_BUILD_PROG_OPTS
) 
  41 APT_DEBVER
=$(shell dpkg-parsechangelog |sed 
-n 
-e 
'/^Version:/s/^Version: //p' | sed 
-e 
's/\+.*$$//') 
  42 APT_CONFVER
=$(shell sed 
-n 
-e 
's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in
) 
  43 APT_CVSTAG
=$(shell echo 
"$(APT_DEBVER)" | sed 
-e 
's/^/v/' -e 
's/\./_/g') 
  45 # Determine the build directory to use 
  48 BUILD_POSSIBLE 
:= $(BUILD
) $(BASE
)/$(BUILD
) 
  50 BUILD_POSSIBLE 
:= $(BASE
) $(BASE
)/build-
$(shell uname 
-m
) $(BASE
)/build
 
  52 BUILDX
:= $(foreach i
,$(BUILD_POSSIBLE
),$(wildcard $(i
)/environment.mak
*)) 
  53 BUILDX
:= $(patsubst %/,%,$(firstword $(dir $(BUILDX
)))) 
  54 override BLD 
:= $(BUILDX
) 
  56 ifeq ($(words $(BLD
)),0) 
  57 override BLD 
:= .
/build
 
  60 # Rebuild configure.in to have the correct version from the change log 
  61 ifneq ($(APT_DEBVER
),$(APT_CONFVER
)) 
  62 ifneq ($(APT_DEBVER
),) 
  65         sed 
-e 
's/$(APT_CONFVER)/$(APT_DEBVER)/' $@ 
> $@.
$$$$ && mv 
$@.
$$$$ $@
 
  71 # APT Programs in apt-utils 
  72 APT_UTILS
=ftparchive sortpkgs extracttemplates
 
  74 # Uncomment this to turn on verbose mode. 
  77 # Find the libapt-pkg major version for use in other control files 
  78 export LIBAPTPKG_MAJOR
:=$(shell egrep 
'^MAJOR=' apt-pkg
/makefile |cut 
-d 
'=' -f 
2) 
  79 export LIBAPTINST_MAJOR
:=$(shell egrep 
'^MAJOR=' apt-inst
/makefile |cut 
-d 
'=' -f 
2) 
  81 # Determine which package we should provide in the control files 
  82 LIBAPTPKG_PROVIDE
=libapt-pkg
$(GLIBC_VER
)$(LIBSTDCPP_VER
)-$(LIBAPTPKG_MAJOR
) 
  83 LIBAPTINST_PROVIDE
=libapt-inst
$(GLIBC_VER
)$(LIBSTDCPP_VER
)-$(LIBAPTINST_MAJOR
) 
  85 debian
/shlibs.local
: apt-pkg
/makefile
 
  86         # We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and 
  87         # one for the rest of the packages. This ensures that each package gets 
  88         # the right overrides..  
  89         rm -rf 
$@ 
$@.apt 
$@.apt-utils
 
  90         echo 
"libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR)" > $@.apt
 
  92         echo 
"libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils
 
  93         echo 
"libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR)" >> $@.apt-utils
 
  95         echo 
"libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
 
  96         echo 
"libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
 
  98 build
: build
/build-stamp        
 
  99 build-doc
: build
/build-doc-stamp        
 
 101 # Note that this is unconditionally done first as part of loading environment.mak 
 102 # The true is needed to force make to reload environment.mak after running 
 103 # configure-stamp. Otherwise we can get stale or invalid, or missing config data. 
 104 build
/environment.mak
: build
/configure-stamp
 
 107 configure
: configure.in
 
 108 build
/configure-stamp
: configure
 
 111         cp COPYING debian
/copyright
 
 112         cd build 
&& CXXFLAGS
="$(confcxxflags)" ..
/configure 
$(confflags
) 
 115 build
/build-stamp
: build
/configure-stamp
 
 116         # Add here commands to compile the package. 
 120 build
/build-doc-stamp
: build
/configure-stamp
 
 121         # Add here commands to compile the package. 
 133         # Add here commands to clean up after the build process. 
 134         dh_clean debian
/copyright debian
/shlibs.local debian
/shlibs.local.apt debian
/shlibs.local.apt-utils
 
 136 binary-indep
: apt-doc libapt-pkg-doc
 
 137 # Build architecture-independent files here. 
 138 libapt-pkg-doc
: build-doc debian
/shlibs.local
 
 144 # libapt-pkg-doc install 
 146         dh_installdocs 
-p
$@ 
$(BLD
)/docs
/cache
* $(BLD
)/docs
/design
* $(BLD
)/docs
/dpkg-tech
* \
 
 147                             $(BLD
)/docs
/files
* $(BLD
)/docs
/method
* \
 
 148                             doc
/libapt-pkg2_to_3.txt doc
/style.txt
 
 149         dh_installexamples 
-p
$@
 
 150 #       dh_installmenu -p$@ 
 151 #       dh_installinit -p$@ 
 152 #       dh_installcron -p$@ 
 155 #       dh_undocumented -p$@ 
 156         dh_installchangelogs 
-p
$@
 
 160 #       dh_suidregister -p$@ 
 162         dh_gencontrol 
-p
$@ 
-u 
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
) 
 174         dh_installdocs 
-p
$@ 
$(BLD
)/docs
/guide
*.text 
$(BLD
)/docs
/guide
*.html \
 
 175                        $(BLD
)/docs
/offline
*.text 
$(BLD
)/docs
/offline
*.html
 
 176         dh_installchangelogs 
-p
$@
 
 186 # Build architecture-dependent files here. 
 188 binary-arch
: apt libapt-pkg-dev apt-utils apt-transport-https
 
 189 apt
: build debian
/shlibs.local
 
 193         dh_installdirs 
-p
$@ 
/usr
/share
/bug
/$@ 
/usr
/share
/$@
 
 197         cp 
$(BLD
)/bin
/apt-
* debian
/$@
/usr
/bin
/ 
 199         # Remove the bits that are in apt-utils 
 200         rm $(addprefix debian
/$@
/usr
/bin
/apt-
,$(APT_UTILS
)) 
 202         # install the shared libs 
 203         find 
$(BLD
)/bin
/ -type f 
-name 
"libapt-pkg*.so.*" -exec cp 
-a 
"{}" debian
/$@
/usr
/lib
/ \
; 
 204         find 
$(BLD
)/bin
/ -type l 
-name 
"libapt-pkg*.so.*" -exec cp 
-a 
"{}" debian
/$@
/usr
/lib
/ \
; 
 206         cp 
$(BLD
)/bin
/methods
/* debian
/$@
/usr
/lib
/apt
/methods
/ 
 207         # https has its own package 
 208         rm debian
/$@
/usr
/lib
/apt
/methods
/https
 
 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
 
 214         cp debian
/apt.logrotate debian
/$@
/etc
/logrotate.d
/apt
 
 216         cp share
/debian-archive.gpg debian
/$@
/usr
/share
/$@
 
 217         cp debian
/apt.conf.autoremove debian
/$@
/etc
/apt
/apt.conf.d
/01autoremove
 
 218 #       head -n 500 ChangeLog > debian/ChangeLog 
 220         # make rosetta happy and remove pot files in po/ (but leave stuff 
 221         # in po/domains/* untouched) and cp *.po into each domain dir 
 225         dh_installexamples 
-p
$@ 
$(BLD
)/docs
/examples
/* 
 229         dh_installchangelogs 
-p
$@
 
 233         dh_makeshlibs 
-p
$@ 
-m
$(LIBAPTPKG_MAJOR
) -V 
'$(LIBAPTPKG_PROVIDE)' 
 235         dh_shlibdeps 
-p
$@ 
-l
`pwd`/debian
/apt
/usr
/lib
:`pwd`/debian
/$@
/usr
/lib 
-- -Ldebian
/shlibs.local.apt
 
 236         dh_gencontrol 
-p
$@ 
-u 
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
) 
 240 libapt-pkg-dev
: build debian
/shlibs.local
 
 246 # libapt-pkg-dev install 
 248         cp 
-a 
$(BLD
)/bin
/libapt-pkg
*.so debian
/libapt-pkg-dev
/usr
/lib
/ 
 249         cp 
-a 
$(BLD
)/bin
/libapt-inst
*.so debian
/libapt-pkg-dev
/usr
/lib
/ 
 250 #       ln -s libapt-pkg.so.$(LIBAPTPKG_MAJOR) debian/libapt-pkg-dev/usr/lib/libapt-pkg.so 
 251         cp 
$(BLD
)/include/apt-pkg
/*.h debian
/libapt-pkg-dev
/usr
/include/apt-pkg
/ 
 254 #       dh_installmenu -p$@ 
 255 #       dh_installinit -p$@ 
 256 #       dh_installcron -p$@ 
 259         dh_installchangelogs 
-p
$@
 
 263 #       dh_suidregister -p$@ 
 265         dh_gencontrol 
-p
$@ 
-u 
-Vlibapt-pkg
:provides
=$(LIBAPTPKG_PROVIDE
) -Vlibapt-inst
:provides
=$(LIBAPTINST_PROVIDE
) 
 269 apt-utils
: build debian
/shlibs.local
 
 275         # install the shared libs 
 276         find 
$(BLD
)/bin
/ -type f 
-name 
"libapt-inst*.so.*" -exec cp 
-a 
"{}" debian
/$@
/usr
/lib
/ \
; 
 277         find 
$(BLD
)/bin
/ -type l 
-name 
"libapt-inst*.so.*" -exec cp 
-a 
"{}" debian
/$@
/usr
/lib
/ \
; 
 279         cp 
$(addprefix $(BLD
)/bin
/apt-
,$(APT_UTILS
)) debian
/$@
/usr
/bin
/ 
 281         dh_installexamples 
-p
$@
 
 283         # Install the man pages.. 
 286         dh_installchangelogs 
-p
$@
 
 290         dh_makeshlibs 
-m
$(LIBAPTINST_MAJOR
) -V 
'$(LIBAPTINST_PROVIDE)' -p
$@
 
 292         dh_shlibdeps 
-p
$@ 
-l
`pwd`/debian
/apt
/usr
/lib
:`pwd`/debian
/$@
/usr
/lib 
-- -Ldebian
/shlibs.local.apt-utils
 
 293         dh_gencontrol 
-p
$@ 
-u 
-Vlibapt-inst
:provides
=$(LIBAPTINST_PROVIDE
) 
 297 apt-transport-https
: build debian
/shlibs.local libapt-pkg-dev
 
 304         mkdir 
-p debian
/$@
/usr
/lib
/apt
/methods
 
 305         cp 
$(BLD
)/bin
/methods
/https debian
/$@
/usr
/lib
/apt
/methods
 
 308         dh_installexamples 
-p
$@
 
 310         # Install the man pages.. 
 313         dh_installchangelogs 
-p
$@
 
 318         dh_shlibdeps 
-p
$@ 
-l
`pwd`/debian
/apt
/usr
/lib
:`pwd`/debian
/$@
/usr
/lib 
 
 324         @echo 
>&2 'source and diff are obsolete - use dpkg-source -b'; false
 
 331 # Update from CVS and then configure for build 
 332 super-l33ch
: l33ch Makefile.in
 
 337 l33ch-stamp
: super-l33ch
 
 341         -find 
-name Makefile.in 
-print0 | xargs 
-0r 
rm -f
 
 342         find 
-name ChangeLog | xargs 
rm -f
 
 345 binary
: binary-indep binary-arch
 
 346 .PHONY
: build 
clean binary-indep binary-arch binary debian
/shlibs.local
 
 349 # Done by the uploader. 
 351 #edit debian/changelog 
 352 # configure.in has the version automatically updated now. 
 354 # debian/rules cvs-build 
 356 CVS_BUILDDIR
=apt-
$(APT_DEBVER
) 
 357 CVS_ROOT
=$(shell cat CVS
/Root
) 
 358 CVS_MODULE
=$(shell cat CVS
/Repository
) 
 360         rm -rf debian
/cvs-build
 
 361         mkdir 
-p debian
/cvs-build
 
 362         (cd debian
/cvs-build
;cvs 
-d 
$(CVS_ROOT
) export -r
$(APT_CVSTAG
) -d apt-
$(APT_DEBVER
) $(CVS_MODULE
)) 
 363         $(MAKE
) -C debian
/cvs-build
/$(CVS_BUILDDIR
) startup doc
 
 364         (cd debian
/cvs-build
/$(CVS_BUILDDIR
);$(DEB_BUILD_PROG
)) 
 367         -mkdir 
-p ..
/upload-
$(APT_DEBVER
) 
 368         cp 
`find debian/cvs-build -maxdepth 1 -type f` ..
/upload-
$(APT_DEBVER
) 
 371         rm -rf debian
/arch-build
 
 372         mkdir 
-p debian
/arch-build
/apt-
$(APT_DEBVER
) 
 373         tar -c 
--exclude
=arch-build 
--no-recursion 
-f 
- `bzr inventory` | 
(cd debian
/arch-build
/$(PKG
)-$(APT_DEBVER
);tar xf 
-) 
 374         $(MAKE
) -C debian
/arch-build
/apt-
$(APT_DEBVER
) startup doc
 
 375         (cd debian
/arch-build
/apt-
$(APT_DEBVER
); $(DEB_BUILD_PROG
); dpkg-genchanges 
-S 
> ..
/apt_
$(APT_DEBVER
)_source.changes
)