summaryrefslogtreecommitdiffstats
path: root/debian/rules
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules174
1 files changed, 174 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..8e388be
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,174 @@
+#!/usr/bin/make -f
+
+CC =gcc
+CPPFLAGS :=$(shell dpkg-buildflags --get CPPFLAGS)
+CFLAGS :=-Wall $(shell dpkg-buildflags --get CFLAGS) $(CPPFLAGS)
+LDFLAGS :=$(shell dpkg-buildflags --get LDFLAGS)
+HOST_CPU := $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
+TEST =test
+TEST_OPTS =
+OPTS =NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core \
+ mandir=/usr/share/man htmldir=/usr/share/doc/git/html \
+ INSTALLDIRS=vendor \
+ SANE_TOOL_PATH= INSTALL=install TAR=tar \
+ NO_CROSS_DIRECTORY_HARDLINKS=1 NO_INSTALL_HARDLINKS=1 \
+ NO_PERL_CPAN_FALLBACKS=1 \
+ PYTHON_PATH=/usr/bin/python3 \
+ DEFAULT_PAGER=pager DEFAULT_EDITOR=editor \
+ CC='$(CC)' CFLAGS='$(CFLAGS)' LDFLAGS='$(LDFLAGS)' \
+ HOST_CPU='$(HOST_CPU)'
+DOCS =html
+DOC_OPTS =prefix=/usr htmldir=/usr/share/doc/git/html \
+ ASCIIDOC8=1 ASCIIDOC_NO_ROFF=1
+
+# https://wiki.debian.org/ReproducibleBuilds/TimestampsInDocumentationGeneratedByAsciidoc
+DOC_OPTS += ASCIIDOC='TZ=UTC asciidoc'
+
+ifeq (,$(findstring terse,$(DEB_BUILD_OPTIONS)))
+ OPTS += V=1
+ DOC_OPTS += V=1
+ TEST_OPTS = --verbose
+endif
+ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
+ TEST =
+endif
+ifneq (,$(findstring nodoc,$(DEB_BUILD_OPTIONS)))
+ DOCS =
+endif
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ MAKEFLAGS += -j$(NUMJOBS)
+ # Setting this with a pattern-specific rule prevents -O from
+ # affecting the top-level make, which would break realtime build
+ # output (unless dh is run as +dh, which causes other problems).
+ %: MAKEFLAGS += -O
+endif
+ifneq (,$(shell dpkg-query -f '$${Version}' -W libpcre2-dev))
+ OPTS += USE_LIBPCRE2=1
+else
+ OPTS += USE_LIBPCRE1=1
+endif
+
+TMP = $(CURDIR)/debian/tmp
+GIT = $(CURDIR)/debian/git
+
+%:
+ dh $@ --with apache2 --without autoreconf
+
+override_dh_auto_configure:
+
+build-stamp:
+ -$(CC) -v
+ $(MAKE) all $(OPTS)
+ touch $@
+
+override_dh_auto_build-arch: build-stamp
+ $(MAKE) -C contrib/subtree all $(OPTS)
+ ln -s contrib/subtree/git-subtree
+
+override_dh_auto_test-arch:
+ test -z '$(TEST)' || \
+ GIT_SKIP_TESTS="t9128 t9167" \
+ GIT_TEST_OPTS='$(TEST_OPTS)' $(MAKE) $(TEST) $(OPTS)
+ test -z '$(TEST)' || \
+ GIT_TEST_OPTS='$(TEST_OPTS)' \
+ $(MAKE) -C t \
+ t9128-git-svn-cmd-branch.sh \
+ t9167-git-svn-cmd-branch-subproject.sh \
+ $(OPTS) || :
+ test -z '$(TEST)' || \
+ GIT_TEST_OPTS='$(TEST_OPTS)' $(MAKE) -C contrib/subtree $(TEST) $(OPTS)
+
+override_dh_auto_build-indep: build-stamp
+ # git-man, git-doc
+ $(MAKE) -CDocumentation man $(DOCS) $(DOC_OPTS)
+ # git-mediawiki
+ $(MAKE) -Ccontrib/mw-to-git all $(OPTS)
+
+override_dh_auto_test-indep:
+
+override_dh_auto_clean:
+ $(MAKE) -C contrib/mw-to-git clean $(OPTS)
+ $(MAKE) -C contrib/subtree clean $(OPTS)
+ $(MAKE) clean $(OPTS)
+ rm -f git-subtree
+
+override_dh_clean:
+ dh_clean -Xmailinfo.c.orig
+
+override_dh_auto_install-arch:
+ # git
+ DESTDIR='$(GIT)' $(MAKE) install $(OPTS)
+ DESTDIR='$(GIT)' $(MAKE) -C contrib/subtree install $(OPTS)
+ install -d -m0755 '$(GIT)'/var/lib/git
+ rm -rf '$(GIT)'/usr/share/man
+ # don't include arch, cvs, p4, svn, email, gui tools, and gitk program
+ for i in git-archimport git-cvs git-p4 git-svn git-send-email \
+ git-gui git-citool; do \
+ rm -f '$(GIT)'/usr/lib/git-core/$$i*; \
+ done
+ rm -f '$(GIT)'/usr/bin/git-cvsserver
+ rm -f '$(GIT)'/usr/bin/gitk
+ # don't include git-gui's lib
+ rm -rf '$(GIT)'/usr/share/git-gui/
+ # don't include gitk's lib
+ rm -rf '$(GIT)'/usr/share/gitk/
+ # don't include git-svn's lib
+ rm -rf '$(GIT)'/usr/share/perl5/Git/SVN*
+ # sanity check that #642603 fix is still in place
+ test $$(stat -c%h \
+ '$(GIT)'/usr/lib/git-core/git-branch) -le 10
+
+override_dh_auto_install-indep:
+ DESTDIR='$(TMP)' $(MAKE) install install-doc $(OPTS)
+ DESTDIR='$(TMP)' $(MAKE) -Ccontrib/mw-to-git install $(OPTS) \
+ INSTLIBDIR=/usr/share/perl5
+ test -z '$(DOCS)' || \
+ $(MAKE) -CDocumentation install-webdoc WEBDOC_DEST='$(TMP)'/html \
+ 2>/dev/null
+ test -z '$(DOCS)' || \
+ DESTDIR='$(TMP)' $(MAKE) -Ccontrib/subtree install-doc $(OPTS)
+ install -m 0644 contrib/subtree/git-subtree.txt '$(TMP)'/html
+ # RelNotes are shipped in git
+ rm -rf '$(TMP)'/html/RelNotes
+ # don't include git-p4 man page
+ rm -f '$(TMP)'/html/git-p4.*
+
+override_dh_install-arch:
+ dh_install --arch
+ rm -rf '$(GIT)'/usr/share/git-core/contrib/hooks/multimail
+
+override_dh_install-indep:
+ dh_install --indep
+ for i in git-archimport git-cvs git-p4 git-svn git-send-email gitk \
+ git-gui git-citool; do \
+ rm -f '$(GIT)'-man/usr/share/man/man1/$$i*; \
+ done
+
+override_dh_installdocs-arch:
+ dh_installdocs --arch -X.gitignore
+ # These licenses are replaced with symlinks in git.links.
+ diff -q '$(GIT)'/usr/share/doc/git/contrib/persistent-https/LICENSE /usr/share/common-licenses/Apache-2.0
+ diff -bq '$(GIT)'/usr/share/doc/git/contrib/subtree/COPYING /usr/share/common-licenses/GPL-2
+ rm -rf '$(GIT)'/usr/share/doc/git/contrib/completion
+ rm -rf '$(GIT)'/usr/share/doc/git/contrib/emacs
+ rm -rf '$(GIT)'/usr/share/doc/git/contrib/hooks
+ rm -rf '$(GIT)'/usr/share/doc/git/contrib/mw-to-git
+ rm -f '$(GIT)'/usr/share/doc/git/contrib/subtree/git-subtree.1
+ rm -f '$(GIT)'/usr/share/doc/git/contrib/subtree/git-subtree.html
+ rm -f '$(GIT)'/usr/share/doc/git/contrib/subtree/git-subtree.xml
+ find '$(GIT)'/usr/share/doc/git/ -name .gitattributes | xargs rm -f
+ find '$(GIT)'/usr/share/doc/git/ -name .gitignore | xargs rm -f
+
+override_dh_installdocs-indep:
+ dh_installdocs --indep -X.gitignore
+
+override_dh_installchangelogs:
+ dh_installchangelogs debian/changelog.upstream
+
+override_dh_installinit:
+ dh_installinit -pgit-daemon-sysvinit --name=git-daemon
+ dh_installinit
+
+override_dh_compress:
+ dh_compress -X.txt -Xcontrib