From da7d6c32c080678dc672f7c6e680c11569f46eda Mon Sep 17 00:00:00 2001 From: joey Date: Fri, 3 Sep 1999 21:12:04 +0000 Subject: r265: * It turns out it's possible to set up make variables that are specific to a single target of a Makefile. This works tremendously well with DH_OPTIONS: no need to put "-i" or "-pfoo" after every debhelper command anymore. * debhelper.1: mentioned above technique. * examples/rules.multi: use the above method to get rid of -i's and -a's. * examples/rules.multi2: new file, example of a multi-binary package that works for arch-indep and arch-dependant packages, and also allows building of single binary packages independntly, via binary- targets. It accomplishes all this using only one list of debhelper commands. * examples/*: removed source and diff targets. They've been obsolete for 2 years -- or is it 3? No need for a nice error message on failure anymore. --- examples/rules | 61 +++++++++++++++++++----- examples/rules.indep | 51 ++++++++++++++------ examples/rules.multi | 128 ++++++++++++++++++++++++++++++++++++-------------- examples/rules.multi2 | 96 +++++++++++++++++++++++++++++++++++++ 4 files changed, 273 insertions(+), 63 deletions(-) create mode 100755 examples/rules.multi2 (limited to 'examples') diff --git a/examples/rules b/examples/rules index e6ebf0b0..926c38c6 100755 --- a/examples/rules +++ b/examples/rules @@ -1,41 +1,78 @@ #!/usr/bin/make -f -# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This is the debhelper compatability version to use. +export DH_COMPAT=1 build: build-stamp build-stamp: dh_testdir - # Add here commands to compile the pacckage. + + # Add here commands to compile the package. #$(MAKE) + touch build-stamp clean: dh_testdir dh_testroot - dh_cleantmp + rm -f build-stamp install-stamp + # Add here commands to clean up after the build process. + #-$(MAKE) clean #-$(MAKE) distclean - rm -f build-stamp + + dh_clean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp. + #$(MAKE) prefix=`pwd`/debian/tmp/usr install + + touch install-stamp # Build architecture-independent files here. -binary-indep: build - # We have nothing to do by default. +binary-indep: build install +# We have nothing to do by default. # Build architecture-dependent files here. -binary-arch: build +binary-arch: build install +# dh_testversion dh_testdir dh_testroot - dh_cleantmp - # Add here commands to install the files into debian/tmp - #$(MAKE) PREFIX=debian/tmp install dh_installdocs dh_installexamples dh_installmenu +# dh_installemacsen +# dh_installpam +# dh_installinit + dh_installcron dh_installmanpages + dh_installinfo +# dh_undocumented dh_installchangelogs + dh_link + dh_strip dh_compress - dh_installdebfiles dh_fixperms + # You may want to make some executables suid here. + dh_suidregister +# dh_makeshlibs + dh_installdeb +# dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums dh_builddeb binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary +.PHONY: build clean binary-indep binary-arch binary install diff --git a/examples/rules.indep b/examples/rules.indep index a257a197..55802f31 100755 --- a/examples/rules.indep +++ b/examples/rules.indep @@ -1,56 +1,77 @@ #!/usr/bin/make -f -# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. -# This version is for packages that are architecure independant. +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. +# +# This version is for packages that are architecture independent. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +# This is the debhelper compatability version to use. +export DH_COMPAT=1 + build: build-stamp build-stamp: dh_testdir - # Add here commands to compile the pacckage. + + # Add here commands to compile the package. #$(MAKE) + touch build-stamp clean: dh_testdir dh_testroot - rm -f build-stamp + rm -f build-stamp install-stamp + # Add here commands to clean up after the build process. + #-$(MAKE) clean #-$(MAKE) distclean + dh_clean -# Build architecture-independent files here. -binary-indep: build +install: install-stamp +install-stamp: build-stamp dh_testdir dh_testroot - dh_clean + dh_clean -k dh_installdirs - # Add here commands to install the files into debian/tmp - #$(MAKE) PREFIX=debian/tmp install + + # Add here commands to install the package into debian/tmp. + #$(MAKE) prefix=`pwd`/debian/tmp/usr install + + touch install-stamp + +# Build architecture-independent files here. +binary-indep: build install +# dh_testversion + dh_testdir + dh_testroot dh_installdocs dh_installexamples dh_installmenu +# dh_installemacsen +# dh_installpam # dh_installinit dh_installcron # dh_installmanpages + dh_installinfo # dh_undocumented dh_installchangelogs + dh_link dh_compress dh_fixperms + # You may want to make some executables suid here. dh_suidregister dh_installdeb +# dh_perl dh_gencontrol - dh_du dh_md5sums dh_builddeb # Build architecture-dependent files here. -binary-arch: build +binary-arch: build install # We have nothing to do by default. -source diff: - @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false - binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary +.PHONY: build clean binary-indep binary-arch binary install diff --git a/examples/rules.multi b/examples/rules.multi index 118737cb..6c6c406c 100755 --- a/examples/rules.multi +++ b/examples/rules.multi @@ -1,60 +1,116 @@ #!/usr/bin/make -f -# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 by Joey Hess. +# # This version is for a hypothetical package that builds an -# architecture-dependant package, as well as an architecture-independant +# architecture-dependant package, as well as an architecture-independent # package. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 +# This is the debhelper compatability version to use. +export DH_COMPAT=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + build: build-stamp build-stamp: dh_testdir - # Add here commands to compile the pacckage. + + # Add here commands to compile the package. #$(MAKE) + touch build-stamp clean: dh_testdir dh_testroot - rm -f build-stamp - dh_clean + rm -f build-stamp install-stamp + # Add here commands to clean up after the build process. + #-$(MAKE) clean #-$(MAKE) distclean + dh_clean + +install: install-stamp +install-stamp: DH_OPTIONS= +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp. + #$(MAKE) prefix=`pwd`/debian/tmp/usr install + + dh_movefiles + touch install-stamp + # Build architecture-independent files here. -binary-indep: build - dh_testdir -i - dh_testroot -i - dh_clean -i - # Add here commands to install the files into debian/tmp - #$(MAKE) PREFIX=debian/tmp install - dh_installdocs -i - dh_installexamples -i - dh_installmenu -i -# dh_installmanpages -i - dh_installchangelogs -i - dh_compress -i - dh_installdebfiles -i - dh_fixperms -i - dh_builddeb -i +# Pass -i to all debhelper commands in this target to reduce clutter. +binary-indep: DH_OPTIONS="-i" +binary-indep: build install + # Need this version of debhelper for DH_OPTIONS to work. + dh_testversion 1.1.17 + dh_testdir + dh_testroot + dh_installdocs + dh_installexamples + dh_installmenu +# dh_installemacsen +# dh_installpam +# dh_installinit + dh_installcron +# dh_installmanpages + dh_installinfo +# dh_undocumented + dh_installchangelogs + dh_link + dh_compress + dh_fixperms + # You may want to make some executables suid here. + dh_suidregister + dh_installdeb +# dh_perl + dh_gencontrol + dh_md5sums + dh_builddeb # Build architecture-dependent files here. -binary-arch: build - dh_testdir -a - dh_testroot -a - dh_clean -a - # Add here commands to install the files into debian/tmp - #$(MAKE) PREFIX=debian/tmp install - dh_installdocs -a - dh_installexamples -a - dh_installmenu -a - dh_installmanpages -a - dh_installchangelogs -a - dh_compress -a - dh_installdebfiles -a - dh_fixperms -a - dh_builddeb -a +# Pass -a to all debhelper commands in this target to reduce clutter. +binary-indep: DH_OPTIONS="-a" +binary-arch: build install + # Need this version of debhelper for DH_OPTIONS to work. + dh_testversion 1.1.17 + dh_testdir + dh_testroot + dh_installdocs + dh_installexamples + dh_installmenu +# dh_installemacsen +# dh_installpam +# dh_installinit + dh_installcron +# dh_installmanpages + dh_installinfo +# dh_undocumented + dh_installchangelogs + dh_strip + dh_link + dh_compress + dh_fixperms + # You may want to make some executables suid here. + dh_suidregister + dh_installdeb +# dh_makeshlibs +# dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary +.PHONY: build clean binary-indep binary-arch binary install diff --git a/examples/rules.multi2 b/examples/rules.multi2 new file mode 100755 index 00000000..30c9b41d --- /dev/null +++ b/examples/rules.multi2 @@ -0,0 +1,96 @@ +#!/usr/bin/make -f +# Sample debian/rules that uses debhelper. +# GNU copyright 1997 to 1999 by Joey Hess. +# +# This version is for a multibinary package. It also allows you to build any +# of the binary packages independantly, via binary- targets. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# This is the debhelper compatability version to use. +export DH_COMPAT=1 + +# This has to be exported to make some magic below work. +export DH_OPTIONS + +build: build-stamp +build-stamp: + dh_testdir + + # Add here commands to compile the package. + #$(MAKE) + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp install-stamp + + # Add here commands to clean up after the build process. + #-$(MAKE) clean + #-$(MAKE) distclean + + dh_clean + +install: DH_OPTIONS= +install: + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp. + #$(MAKE) prefix=`pwd`/debian/tmp/usr install + + dh_movefiles + touch install-stamp + +# This single target is used to build all the packages, all at once, or +# one at a time. So keep in mind: any options passed to commands here will +# affect _all_ packages. Anything you want to only affect one package +# should be put in another target, such as the install target. +binary-common: + # Need this version of debhelper for DH_OPTIONS to work. + dh_testversion 1.1.17 + dh_testdir + dh_testroot + dh_installdocs + dh_installexamples + dh_installmenu +# dh_installemacsen +# dh_installpam +# dh_installinit + dh_installcron +# dh_installmanpages + dh_installinfo +# dh_undocumented + dh_installchangelogs + dh_link + dh_compress + dh_fixperms + dh_suidregister +# dh_makeshlibs + dh_installdeb +# dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture independant packages using the common target. +# (Comment this out if you have none to build.) +binary-indep: DH_OPTIONS=-i +binary-arch: build install binary-common + +# Build architecture dependant packages using the common target. +binary-arch: DH_OPTIONS=-a +binary-arch: build install binary-common + +# Any other binary targets build just one binary package at a time. +binary-%: build install + make -f debian/rules binary-common DH_OPTIONS=-p$* + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install -- cgit v1.2.3