forked from I2P_Developers/i2p.i2p
Ant version 1.9.8 or higher now required Drop support for Xenial package build Fix up BOB build configuration Fix i2psnark standalone build
223 lines
11 KiB
Makefile
Executable File
223 lines
11 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
|
|
# Quoting Policy version 3.9.2.0, 2011-04-07 section 4.9:
|
|
|
|
# /start quote
|
|
# For some packages, notably ones where the same source tree is compiled in
|
|
# different ways to produce two binary packages, the build target does not make
|
|
# much sense. For these packages it is good enough to provide two (or more)
|
|
# targets (build-a and build-b or whatever) for each of the ways of building the
|
|
# package, and a build target that does nothing. The binary target will have to
|
|
# build the package in each of the possible ways and make the binary package out
|
|
# of each.
|
|
# ...
|
|
# When a package has a configuration and build routine which takes a long time,
|
|
# or when the makefiles are poorly designed, or when build needs to run clean
|
|
# first, it is a good idea to touch build when the build process is complete.
|
|
# This will ensure that if debian/rules build is run again it will not rebuild
|
|
# the whole program.
|
|
# /end quote
|
|
|
|
# Since that fits building I2P very well, we override the build target.
|
|
#
|
|
|
|
build:
|
|
@echo 'The build target is disabled. Use the appropriate binary target.'
|
|
|
|
#JAVA_HOME=/usr/lib/jvm/default-java
|
|
export DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
|
|
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-$(DEB_HOST_ARCH)
|
|
I2P=$(CURDIR)/pkg-temp
|
|
ROUTERVERSION=$(CURDIR)/router/java/src/net/i2p/router/RouterVersion.java
|
|
export DEB_BUILD_HARDENING=1
|
|
|
|
# I2P's version will be displayed in the router console as "$I2PVERSION-$EXTRAPREFIX$DEBIANVERSION", eg. 0.8.12-0-deb1
|
|
#export EXTRAPREFIX := deb
|
|
export JAVA_HOME I2P
|
|
export DEBIANVERSION := $(shell dpkg-parsechangelog |awk -F' ' '/^Version:/{print $$2}' |sed 's/.*-\([.0-9A-Za-z~+]\{1,\}\)$$/\1/')
|
|
# required for jbigi/jcpuid build
|
|
export BITS := $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)
|
|
#export DEB_HOST_ARCH_CPU := $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
|
|
|
|
%:
|
|
dh $@ --with systemd,bash-completion
|
|
|
|
clean: createcopyright
|
|
|
|
override_dh_auto_clean:
|
|
-[ -r $(CURDIR)/debian/routerversion.java.bak ] && mv -f $(CURDIR)/debian/routerversion.java.bak $(ROUTERVERSION)
|
|
dh_auto_clean
|
|
ant distclean
|
|
find $(CURDIR)/core \( -name '*\.so' -o -name '*\.o' \) -exec rm -f {} \;
|
|
rm -rf $(CURDIR)/core/c/jcpuid/lib/
|
|
rm -f $(CURDIR)/installer/lib/wrapper/all/wrapper.jar
|
|
rm -rf $(CURDIR)/debian/python-i2p
|
|
rm -f $(CURDIR)/override.properties
|
|
rm -f $(CURDIR)/apps/susidns/src/lib/standard.jar
|
|
rm -f $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
|
rm -f $(CURDIR)/apps/susidns/src/lib/jstlel.jar
|
|
debconf-updatepo
|
|
|
|
override_dh_auto_build:
|
|
|
|
override_dh_systemd_enable:
|
|
# We purposely do not set I2P to start at boot.
|
|
# This matches the behavior of the initscript
|
|
# and the setting RUN_DAEMON=false in /etc/default/i2p
|
|
|
|
binary-indep: build-indep
|
|
build-indep:
|
|
dh_prep
|
|
mkdir -p $(CURDIR)/installer/lib/wrapper/all
|
|
ln -sf /usr/share/java/wrapper.jar $(CURDIR)/installer/lib/wrapper/all/wrapper.jar
|
|
if [ ! -e $(CURDIR)/debian/routerversion.java.bak ]; then \
|
|
cp $(ROUTERVERSION) $(CURDIR)/debian/routerversion.java.bak; \
|
|
fi
|
|
ifeq "$(findstring deb,$(shell grep 'deb' $(ROUTERVERSION)))" ""
|
|
sed -e "s/\(.*EXTRA\ =\ \)[^ ]*\"\(.*\)\"/\1\"-$$EXTRAPREFIX$$DEBIANVERSION\"/" < $(ROUTERVERSION) > $(ROUTERVERSION).tmp
|
|
mv -f $(ROUTERVERSION).tmp $(ROUTERVERSION)
|
|
else
|
|
@echo "Already found deb in version, not doing anything"
|
|
endif
|
|
@# build options
|
|
@/bin/echo -e "javac.release=8" > $(CURDIR)/override.properties
|
|
@/bin/echo -e "javac.version=1.8" > $(CURDIR)/override.properties
|
|
@/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
|
|
@/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
|
|
@/bin/echo -e "build.built-by=launchpad" >> $(CURDIR)/override.properties
|
|
@/bin/echo -e "build.reproducible=true" >> $(CURDIR)/override.properties
|
|
|
|
@# debian and ubuntu: everywhere
|
|
@/bin/echo -e "with-geoip-database=true" >> $(CURDIR)/override.properties
|
|
|
|
@# ubuntu: in xenial
|
|
@# debian: in jessie-backports stretch sid
|
|
@/bin/echo -e "with-libjetty9-java=true" >> $(CURDIR)/override.properties
|
|
mkdir -p $(CURDIR)/apps/jetty/jettylib
|
|
ln -sf /usr/share/java/jetty9-continuation.jar $(CURDIR)/apps/jetty/jettylib/jetty-continuation.jar
|
|
ln -sf /usr/share/java/jetty9-deploy.jar $(CURDIR)/apps/jetty/jettylib/jetty-deploy.jar
|
|
ln -sf /usr/share/java/jetty9-http.jar $(CURDIR)/apps/jetty/jettylib/jetty-http.jar
|
|
ln -sf /usr/share/java/jetty9-io.jar $(CURDIR)/apps/jetty/jettylib/jetty-io.jar
|
|
ln -sf /usr/share/java/jetty9-rewrite.jar $(CURDIR)/apps/jetty/jettylib/jetty-rewrite-handler.jar
|
|
ln -sf /usr/share/java/jetty9-security.jar $(CURDIR)/apps/jetty/jettylib/jetty-security.jar
|
|
ln -sf /usr/share/java/jetty9-servlet.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlet.jar
|
|
ln -sf /usr/share/java/jetty9-servlets.jar $(CURDIR)/apps/jetty/jettylib/jetty-servlets.jar
|
|
ln -sf /usr/share/java/jetty9-start.jar $(CURDIR)/apps/jetty/jettylib/jetty-start.jar
|
|
ln -sf /usr/share/java/jetty9-util.jar $(CURDIR)/apps/jetty/jettylib/jetty-util.jar
|
|
ln -sf /usr/share/java/jetty9-webapp.jar $(CURDIR)/apps/jetty/jettylib/jetty-webapp.jar
|
|
ln -sf /usr/share/java/jetty9-xml.jar $(CURDIR)/apps/jetty/jettylib/jetty-xml.jar
|
|
ln -sf /usr/share/java/jetty9-server.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jetty.jar
|
|
ln -sf /usr/share/java/jetty9-jmx.jar $(CURDIR)/apps/jetty/jettylib/org.mortbay.jmx.jar
|
|
@# following two are from libservlet3.1-java which is a dependency of libjetty9-java
|
|
ln -sf /usr/share/java/servlet-api-3.1.jar $(CURDIR)/apps/jetty/jettylib/javax.servlet.jar
|
|
@# this is roughly the same as tomcat9-jsp-api.jar, we use this one
|
|
ln -sf /usr/share/java/jsp-api-2.3.jar $(CURDIR)/apps/jetty/jettylib/jsp-api.jar
|
|
|
|
@# debian and ubuntu: wheezy-backports, jessie+, xenial+
|
|
@/bin/echo -e "with-libtomcat9-java=true" >> $(CURDIR)/override.properties
|
|
mkdir -p $(CURDIR)/apps/jetty/jettylib
|
|
ln -sf /usr/share/java/tomcat9-api.jar $(CURDIR)/apps/jetty/jettylib/tomcat-api.jar
|
|
ln -sf /usr/share/java/tomcat9-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar
|
|
ln -sf /usr/share/java/tomcat9-el-api.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
|
|
ln -sf /usr/share/java/tomcat9-jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar
|
|
ln -sf /usr/share/java/tomcat9-jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar
|
|
ln -sf /usr/share/java/tomcat9-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar
|
|
ln -sf /usr/share/java/tomcat9-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar
|
|
ln -sf /usr/share/java/tomcat9-util-scan.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util-scan.jar
|
|
|
|
@# debian and ubuntu: stretch+, zesty+
|
|
@/bin/echo -e "with-libtaglibs-standard=true" >> $(CURDIR)/override.properties
|
|
ln -sf /usr/share/java/taglibs-standard-spec.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
|
ln -sf /usr/share/java/taglibs-standard-impl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
|
ln -sf /usr/share/java/taglibs-standard-jstlel.jar $(CURDIR)/apps/susidns/src/lib/jstlel.jar
|
|
|
|
@# debian and ubuntu: everywhere
|
|
@#/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
|
|
@# glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
|
|
@#ln -sf /usr/share/java/glassfish-javaee.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
|
@#ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
|
|
|
@# debian and ubuntu: everywhere
|
|
@#/bin/echo -e "with-libjakarta-taglibs-standard-java=true" >> $(CURDIR)/override.properties
|
|
@#ln -sf /usr/share/java/standard.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
|
|
|
|
@# debian and ubuntu: everywhere
|
|
@#/bin/echo -e "with-libjstl1.1-java=true" >> $(CURDIR)/override.properties
|
|
@#ln -sf /usr/share/java/jstl1.1.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
|
|
|
|
@# debian and ubuntu: everywhere
|
|
@/bin/echo -e "with-gettext-base=true" >> $(CURDIR)/override.properties
|
|
@mkdir -p $(CURDIR)/core/java/build
|
|
ln -sf /usr/share/java/libintl.jar $(CURDIR)/core/java/build/libintl.jar
|
|
|
|
@# debian and ubuntu: everywhere
|
|
@/bin/echo -e "with-libgetopt-java=true" >> $(CURDIR)/override.properties
|
|
@mkdir -p $(CURDIR)/core/java/build
|
|
ln -sf /usr/share/java/gnu-getopt.jar $(CURDIR)/core/java/build/gnu-getopt.jar
|
|
|
|
@# debian: jessie+; ubuntu: trusty+
|
|
@/bin/echo -e "with-libjson-simple-java=true" >> $(CURDIR)/override.properties
|
|
@mkdir -p $(CURDIR)/core/java/build
|
|
ln -sf /usr/share/java/json-simple.jar $(CURDIR)/core/java/build/json-simple.jar
|
|
|
|
@# debian: everywhere; ubuntu: trusty+
|
|
@/bin/echo -e "with-famfamfam-flag-png=true" >> $(CURDIR)/override.properties
|
|
|
|
@# 2 MB of dependencies vs. 20 KB of copied source
|
|
@# Requires 4.4 or higher.
|
|
@# Debian: Not in wheezy/jessie
|
|
@# Ubuntu: Only in wily and later
|
|
@#/bin/echo -e "with-libhttpclient-java=true" >> $(CURDIR)/override.properties
|
|
@#mkdir -p $(CURDIR)/core/java/build
|
|
@#ln -sf /usr/share/java/httpclient.jar $(CURDIR)/core/java/build/httpclient.jar
|
|
@#ln -sf /usr/share/java/httpcore.jar $(CURDIR)/core/java/build/httpcore.jar
|
|
|
|
TZ=UTC JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 ant preppkg-unix javadoc
|
|
echo router.updateDisabled=true > $(I2P)/router.config
|
|
mv $(I2P)/runplain.sh $(I2P)/i2prouter-nowrapper
|
|
|
|
binary-arch: build-arch
|
|
build-arch:
|
|
# build jbigi
|
|
cd $(CURDIR)/core/c/jbigi && ./build_jbigi.sh dynamic
|
|
# build jcpuid
|
|
cd $(CURDIR)/core/c/jcpuid && ./build.sh
|
|
|
|
binary: binary-arch binary-indep
|
|
|
|
createcopyright:
|
|
@echo " *** Creating debian/copyright*** "
|
|
@rm -f $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "This package was Debianized by kytv <killyourtv@i2pmail.org>" >> $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "Sun, 23 Jan 2011 20:26:51 +0000" >> $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "\nIt was downloaded from https://geti2p.net" >> $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "\nI2P is tracked upstream using the Monotone VCS" >> $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "Complete information on fetching the source with monotone can be found" >> $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "at https://geti2p.net/newdevelopers#getting-the-i2p-code\n\n\n" >> $(CURDIR)/debian/copyright
|
|
@/bin/cat $(CURDIR)/LICENSE.txt >> $(CURDIR)/debian/copyright
|
|
@/bin/echo -e "\n\n The debian packaging has been released into the public domain." >> $(CURDIR)/debian/copyright
|
|
|
|
override_dh_compress:
|
|
dh_compress -X.xsl -X.xml
|
|
|
|
override_dh_install:
|
|
dh_install --list-missing
|
|
dh_apparmor --profile-name=system_i2p -pi2p
|
|
dh_apparmor --profile-name=usr.bin.i2prouter -pi2p
|
|
|
|
override_dh_installchangelogs:
|
|
dh_installchangelogs history.txt
|
|
|
|
override_dh_installdocs:
|
|
dh_installdocs -pi2p -plibjbigi-jni --link-doc=i2p-router
|
|
dh_installdocs --remaining-packages
|
|
|
|
override_dh_shlibdeps:
|
|
dh_shlibdeps -llibjbigi-jni debian/libjbigi-jni/usr/lib/jni/*.so
|
|
|
|
#override_dh_installinit:
|
|
# dh_installinit -r
|
|
|
|
get-orig-source:
|
|
uscan --verbose --rename --destdir $(CURDIR)/.. --watchfile debian/watch --force-download
|