debian.rules 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/make -f
  2. package=dpkg
  3. version=1.2.11
  4. archi=$(shell dpkg --print-architecture)
  5. DIR:=$(shell pwd)
  6. build:
  7. $(checkdir)
  8. ./configure --prefix=/usr
  9. $(MAKE)
  10. touch build
  11. clean:
  12. $(checkdir)
  13. -rm -f build
  14. -$(MAKE) -i distclean
  15. -rm -rf debian-tmp* *~ *.orig ./#*# tmp.*
  16. -rm -f config.cache config.status config.h install config.log
  17. find -name '*~' -print0 | xargs -r0 rm --
  18. binary:
  19. #checkroot build
  20. -rm -rf debian-tmp
  21. mkdir debian-tmp debian-tmp/DEBIAN
  22. install -d debian-tmp/usr/doc/{copyright,dpkg}
  23. cp debian.preinst debian-tmp/DEBIAN/preinst
  24. if file main/dpkg | grep -q ELF; then \
  25. if [ $(archi) = i386 ]; then \
  26. sed -e '5s/=/ (>= 5.2.18-2)/' <debian.control >tmp.control ; \
  27. sed -e 's/^# i386elf: //' <debian.preinst \
  28. >debian-tmp/DEBIAN/preinst ; \
  29. else \
  30. sed -e '5s/=//' <debian.control >tmp.control ; \
  31. fi ; \
  32. else \
  33. cp debian.controlaout tmp.control ; \
  34. fi
  35. sed -e '2s/=/$(version)/; 3s/=/$(archi)/' tmp.control >debian-tmp/DEBIAN/control
  36. cp debian.prerm debian-tmp/DEBIAN/prerm
  37. cp debian.postinst debian-tmp/DEBIAN/postinst
  38. chmod +x debian-tmp/DEBIAN/{postinst,prerm,preinst}
  39. $(MAKE) prefix=$(DIR)/debian-tmp/usr \
  40. datadir=$(DIR)/debian-tmp/var/lib/dpkg \
  41. etcdir=$(DIR)/debian-tmp/etc \
  42. install
  43. gzip -9 debian-tmp/usr/info/guidelines.info*
  44. cp debian.README debian-tmp/usr/doc/copyright/dpkg
  45. cp TODO debian-tmp/usr/doc/dpkg/WISHLIST
  46. touch debian-tmp/var/lib/dpkg/{status,available}
  47. chown -R root.root debian-tmp
  48. chmod -R g-ws debian-tmp
  49. cd debian-tmp && \
  50. tar cf ../../$(package)-$(version).$(archi).nondebbin.tar usr var && \
  51. gzip -9vf ../../$(package)-$(version).$(archi).nondebbin.tar
  52. mv debian-tmp/usr/bin/dpkg-deb{,.dist}
  53. rm debian-tmp/var/lib/dpkg/{status,available}
  54. set -e; if file main/dpkg | grep -q ELF; then \
  55. dpkg-deb --build --new debian-tmp ; \
  56. mv debian-tmp.deb ../dpkg-$(version)elf.$(archi).deb ; \
  57. mv ../dpkg-$(version).$(archi).nondebbin.tar.gz \
  58. ../dpkg-$(version)elf.$(archi).nondebbin.tar.gz ; \
  59. else \
  60. dpkg-deb --build --old debian-tmp ; \
  61. mv debian-tmp.deb ../dpkg-$(version).$(archi).deb ; \
  62. fi
  63. define checkdir
  64. test -f include/dpkg.h
  65. endef
  66. source: clean
  67. chmod +x debian.rules
  68. cd .. && \
  69. tar cf $(package)-$(version).tar $(package)-$(version) && \
  70. gzip -9vf $(package)-$(version).tar
  71. diff:
  72. @echo '((( no diff - this package is a Debian special )))'
  73. checkroot:
  74. $(checkdir)
  75. test root = "`whoami`"
  76. .PHONY: binary source diff clean checkroot