123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- #!/usr/bin/make -f
- # -*- makefile -*-
- # 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
- export PACKAGE=tor
- include /usr/share/dpatch/dpatch.make
- # These are used for cross-compiling and for saving the configure script
- # from having to guess our platform (since we know it already)
- #
- # See /usr/share/doc/autotools-dev/README.Debian.gz which suggests
- # this way of passing --build and --host. Also see the thread on
- # debian-devel './configure in debian/rules' from February/March 2006,
- # starting with <43FF212C.5020800@xs4all.nl> by Pjotr Kourzanov.
- export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
- export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
- ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
- confflags += --build $(DEB_HOST_GNU_TYPE)
- else
- confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
- endif
- CFLAGS ?= -Wall -g
- LOCALHOST_IP ?= $(shell getent hosts localhost | awk '{print $$1}')
- # Do not optimize the build with "noopt"
- ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
- CFLAGS += -O0
- else
- CFLAGS += -O2
- endif
- # Do not strip the binary with "nostrip"
- #ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
- # INSTALL_PROGRAM += -s
- #endif
- # Prevent the unit tests from being run with "nocheck"
- ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
- RUN_TEST = no
- endif
- ifneq (,$(findstring notest,$(DEB_BUILD_OPTIONS)))
- RUN_TEST = no
- endif
- # Support passing of parallel=<n> in build options
- ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- MAKEFLAGS += -j$(NUMJOBS)
- endif
- CONF_OPTIONS =
- # build against libdmalloc4 - it better be installed
- ifneq (,$(findstring with-dmalloc,$(DEB_BUILD_OPTIONS)))
- CONF_OPTIONS += --with-dmalloc
- endif
- # allow building with --enable-openbsd-malloc
- ifneq (,$(findstring enable-openbsd-malloc,$(DEB_BUILD_OPTIONS)))
- CONF_OPTIONS += --enable-openbsd-malloc
- endif
- configure: patch-stamp
- config.status: configure
- # clean up test.h stuff. XXX - expected to no longer be needed after tor-0.2.2.4-alpha
- rm -f src/test/test.h.orig
- ! [ -e src/test/test.h ] || mv src/test/test.h src/test/test.h.orig
- cp debian/src-test-test.h src/test/test.h
- @if [ "$(LOCALHOST_IP)" != "127.0.0.1" ]; then echo; echo; echo; echo; echo; echo "######################################################################"; echo "WARNING: This system does not think localhost is 127.0.0.1. Will ignore result of testsuite. Please fix your system/chroot."; echo "######################################################################"; echo; echo; echo; echo; echo "Note: 'getent hosts localhost' should return '127.0.0.1 localhost'"; echo; fi
- dh_testdir
- CFLAGS="$(CFLAGS)" ./configure \
- $(confflags) \
- --prefix=/usr \
- --mandir=\$${prefix}/share/man \
- --infodir=\$${prefix}/share/info \
- --localstatedir=/var \
- --sysconfdir=/etc \
- $(CONF_OPTIONS)
- build: build-stamp
- build-stamp: config.status
- dh_testdir
- ! [ debian/micro-revision.i ] || cp debian/micro-revision.i src/or/micro-revision.i
- $(MAKE)
- @echo
- @echo
- # Running unit tests
- @if [ "$(RUN_TEST)" != "no" ]; then \
- if [ "$(LOCALHOST_IP)" != "127.0.0.1" ]; then \
- echo; echo; echo "######################################################################"; echo "WARNING: This system does not think localhost is 127.0.0.1. Will ignore result of testsuite. Please fix your system/chroot."; echo "######################################################################"; echo; echo; \
- echo "make check || true"; \
- make check || true; \
- else \
- echo "make check"; \
- make check; \
- fi; \
- else \
- echo; echo; echo "Skipping unittests"; echo; \
- fi
- @echo
- # XXX
- # So, gs-gpl on s390 is broken (#457568) and fails to properly build
- # .pdf files from .fig files using fig2dev. Therefore we ship them
- # until this bug is fixed.
- #
- # of course we can always give it a try
- #
- # the hexdumps were built using something like
- # perl -e 'while (<>) { print unpack ("H*", $_); }' interaction.pdf | fold > hexdump-interaction.pdf
- #
- # And it fails on a bunch of other archs too.
- cd doc/design-paper; \
- fig2dev -L pdf cell-struct.fig cell-struct.pdf || \
- ( echo "** Using shipped pdf file because fig2dev failed"; \
- perl -e 'while (<>) { chomp; print pack ("H*", $$_); }' ../../debian/hexdump-cell-struct.pdf > cell-struct.pdf ); \
- fig2dev -L pdf interaction.fig interaction.pdf || \
- ( echo "** Using shipped pdf file because fig2dev failed"; \
- perl -e 'while (<>) { chomp; print pack ("H*", $$_); }' ../../debian/hexdump-interaction.pdf > interaction.pdf ); \
- # XXX ends
- make -C doc/design-paper tor-design.ps tor-design.pdf
- touch build-stamp
- clean: unpatch
- dh_testdir
- dh_testroot
- rm -f build-stamp
- rm -f src/common/common_sha1.i src/or/or_sha1.i
- rm -f src/or/micro-revision.i
- [ ! -f Makefile ] || $(MAKE) distclean
- # clean up test.h stuff. XXX - expected to no longer be needed after tor-0.2.2.4-alpha
- rm -f src/test/test.h
- ! [ -e src/test/test.h.orig ] || mv src/test/test.h.orig src/test/test.h
- # Normally the .deb wouldn't ship with a ../.git
- if [ -d .git ] && which git >/dev/null; then \
- echo "\"`git rev-parse --short=16 HEAD`\"" > "debian/micro-revision.i" ; \
- fi
- dh_clean
- install: build
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
- $(MAKE) install DESTDIR=$(CURDIR)/debian/tor
- # move tor to where it belongs
- mv $(CURDIR)/debian/tor/etc/tor/torrc.sample $(CURDIR)/debian/tor/etc/tor/torrc
- mv $(CURDIR)/debian/tor/usr/bin/tor $(CURDIR)/debian/tor/usr/sbin/tor
- install -d $(CURDIR)/debian/tor/usr/share/man/man8
- mv $(CURDIR)/debian/tor/usr/share/man/man1/tor.1 $(CURDIR)/debian/tor/usr/share/man/man8/tor.8
- install -m 755 contrib/torify $(CURDIR)/debian/tor/usr/bin
- install -m 644 contrib/torify.1 $(CURDIR)/debian/tor/usr/share/man/man1
- install -m 644 contrib/tor-tsocks.conf $(CURDIR)/debian/tor/etc/tor
- install -m 644 debian/tor.lintian-override $(CURDIR)/debian/tor/usr/share/lintian/overrides/tor
- install -d -m 755 $(CURDIR)/debian/tor/usr/share/doc/tor/spec
- for i in doc/spec/*txt; do \
- install -m 644 $$i $(CURDIR)/debian/tor/usr/share/doc/tor/spec || exit 1; \
- done
- dh_link usr/share/man/man8/tor.8 usr/share/man/man5/torrc.5
- rm -f $(CURDIR)/debian/tor/usr/bin/tor-control.py
- # tor-dbg doc dir
- install -d -m 755 $(CURDIR)/debian/tor-dbg/usr/share/doc
- ln -s tor $(CURDIR)/debian/tor-dbg/usr/share/doc/tor-dbg
- # tor-geoip
- mv $(CURDIR)/debian/tor/usr/share/tor/geoip $(CURDIR)/debian/tor-geoipdb/usr/share/tor
- rmdir $(CURDIR)/debian/tor/usr/share/tor || true
- install -d -m 755 $(CURDIR)/debian/tor-geoipdb/usr/share/doc/tor-geoipdb
- ln -s ../tor/changelog.gz $(CURDIR)/debian/tor-geoipdb/usr/share/doc/tor-geoipdb
- ln -s ../tor/changelog.Debian.gz $(CURDIR)/debian/tor-geoipdb/usr/share/doc/tor-geoipdb
- install -m 644 debian/tor-geoipdb.lintian-override $(CURDIR)/debian/tor-geoipdb/usr/share/lintian/overrides/tor-geoipdb
- # Must not depend on anything. This is to be called by
- # binary-arch/binary-indep
- # in another 'make' thread.
- binary-common:
- dh_testdir
- dh_testroot
- dh_installchangelogs --package=tor ChangeLog
- dh_installdocs
- dh_installexamples
- dh_installlogrotate
- dh_installinit
- dh_installman
- dh_link
- dh_strip --dbg-package=tor-dbg
- dh_compress
- dh_fixperms
- dh_installdeb
- dh_shlibdeps
- dh_gencontrol
- dh_md5sums
- dh_builddeb
- # Build architecture independant packages using the common target.
- binary-indep: install
- $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
- # Build architecture dependant packages using the common target.
- binary-arch: install
- $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
- @if [ "$(LOCALHOST_IP)" != "127.0.0.1" ]; then echo; echo; echo; echo; echo; echo "######################################################################"; echo "WARNING: This system does not think localhost is 127.0.0.1. Result of testsuite has been ignored. Please fix your system/chroot."; echo "######################################################################"; echo; echo; echo; echo; echo "Note: 'getent hosts localhost' should return '127.0.0.1 localhost'"; echo; fi
- binary: binary-indep binary-arch
- .PHONY: build clean binary-common binary-indep binary-arch binary install
|