summaryrefslogtreecommitdiff
path: root/debian/rules
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2017-05-12 22:48:36 +0300
committerIgor Pashev <pashev.igor@gmail.com>2017-05-12 22:48:36 +0300
commit37d630875d33bf3c291026c40bb08d1b6c9edcc8 (patch)
tree68fb026f54a962cf1d631f010e98681add6ed014 /debian/rules
downloadopenjdk-8-debian.tar.gz
Imported debian/openjdk-8_8u131-b11-1debian/8u131-b11-1debian
Diffstat (limited to 'debian/rules')
-rwxr-xr-xdebian/rules2334
1 files changed, 2334 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..3f11e3a
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,2334 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+unexport LANG LC_ALL
+
+dh_version := $(shell dpkg-query -f '$${Version}\n' -W debhelper | sed -n 's/^\(.\).*/\1/p')
+
+# using brace expansion and substring replacements (${var:0:2}).
+SHELL = /bin/bash
+
+vafilt = $(subst $(2)=,,$(filter $(2)=%,$(1)))
+
+DPKG_VARS := $(shell dpkg-architecture)
+DEB_HOST_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_GNU_TYPE)
+DEB_HOST_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH)
+DEB_BUILD_ARCH ?= $(call vafilt,$(DPKG_VARS),DEB_BUILD_ARCH)
+DEB_HOST_ARCH_CPU ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH_CPU)
+DEB_HOST_MULTIARCH ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_MULTIARCH)
+
+PATH := $(CURDIR)/bin:$(PATH)
+export PATH
+
+CHANGELOG_VARS := $(shell dpkg-parsechangelog | sed -n 's/ /_/g;/^[^_]/s/^\([^:]*\):_\(.*\)/\1=\2/p')
+PKGSOURCE := $(call vafilt,$(CHANGELOG_VARS),Source)
+PKGVERSION := $(call vafilt,$(CHANGELOG_VARS),Version)
+
+distribution := $(shell lsb_release --id --short)
+distrel := $(shell lsb_release --codename --short)
+derivative := $(shell if dpkg-vendor --derives-from Ubuntu; then echo Ubuntu; \
+ elif dpkg-vendor --derives-from Debian; then echo Debian; \
+ else echo Unknown; fi)
+ifeq ($(distrel),n/a)
+ distrel := sid
+endif
+
+multiarch_dir = /$(DEB_HOST_MULTIARCH)
+
+hotspot_archs = amd64 i386 arm64 ppc64 ppc64el sparc64 kfreebsd-amd64 kfreebsd-i386
+# FIXME: use bootcycle builds for zero archs?
+bootcycle_build = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),yes)
+ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
+ bootcycle_build =
+endif
+
+shark_archs = amd64 i386 kfreebsd-amd64 kfreebsd-i386
+# Shark build but just crash
+shark_archs =
+
+ifneq (,$(filter $(distrel),lucid precise quantal raring saucy trusty utopic vivid wily lenny etch squeeze wheezy jessie))
+ is_default = no
+else
+ is_default = yes
+endif
+
+srcdir = src
+builddir = build
+zbuilddir = build-zero
+jbuilddir = build-jamvm
+
+VENDOR = openjdk
+Vendor = OpenJDK
+TOP = usr/lib/jvm
+origin = openjdk
+basename = openjdk-$(shortver)
+ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+ priority = $(if $(filter yes, $(is_default)),1081,1069)
+ vm_name = Hotspot JIT
+else ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
+ priority = $(if $(filter yes, $(is_default)),1075,1065)
+ vm_name = Hotspot Shark
+else
+ priority = $(if $(filter yes, $(is_default)),1074,1063)
+ vm_name = Hotspot Zero
+endif
+jvmver = 1.8.0
+shortver = 8
+updatever := $(shell echo $(PKGVERSION) | sed -n 's/^$(shortver)u\([0-9]\+\).*/\1/p')
+buildver := $(shell echo $(PKGVERSION) | sed -n 's/^$(shortver)[^-]*-\(b[0-9]\+\).*/\1/p')
+
+ifneq (,$(DEB_HOST_MULTIARCH))
+ jdirname = java-$(shortver)-$(origin)-$(DEB_HOST_ARCH)
+ jdiralias = java-$(jvmver)-$(origin)-$(DEB_HOST_ARCH)
+ basedir = $(TOP)/$(jdirname)
+ commonbasedir = $(TOP)/java-$(shortver)-$(origin)-common
+ commonbasedir = $(basedir)
+ etcdir = etc/java-$(shortver)-$(origin)
+else
+ jdirname = java-$(shortver)-$(origin)
+ jdiralias = java-$(jvmver)-$(origin)
+ basedir = $(TOP)/$(jdirname)
+ commonbasedir = $(TOP)/java-$(shortver)-$(origin)
+ etcdir = etc/$(jdirname)
+endif
+security = $(etcdir)/security
+ifneq ($(bootcycle_build),yes)
+ jreimg = images/j2re-image
+ sdkimg = images/j2sdk-image
+ build_target = images
+else
+ jreimg = bootcycle-build/images/j2re-image
+ sdkimg = bootcycle-build/images/j2sdk-image
+ build_target = bootcycle-images
+endif
+
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+COMMA=,
+SPACE = $(EMPTY) $(EMPTY)
+ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ NJOBS = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+endif
+
+with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes)
+ifneq (,$(filter $(DEB_HOST_ARCH), armel))
+ with_check = disabled running check on $(DEB_HOST_ARCH)
+endif
+
+with_docs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),,yes)
+ifneq (,$(findstring shark, $(PKGSOURCE)))
+ with_docs = disabled for shark
+endif
+
+with_wgy_zenhai = $(if $(filter $(distrel),lenny),,yes)
+
+arch_map := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i586 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64le sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32
+archdir_map := alpha=alpha arm=arm armel=arm armhf=arm arm64=aarch64 amd64=amd64 hppa=parisc i386=i386 m68k=m68k mips=mips mipsel=mipsel mips64=mips64 mips64el=mips64el powerpc=ppc powerpcspe=ppc ppc64=ppc64 ppc64el=ppc64le sparc=sparc sparc64=sparcv9 sh4=sh s390x=s390x ia64=ia64 x32=x32
+
+jvmarch := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
+ $(filter $(DEB_HOST_ARCH_CPU)=%, $(arch_map))))
+archdir := $(strip $(patsubst $(DEB_HOST_ARCH_CPU)=%, %, \
+ $(filter $(DEB_HOST_ARCH_CPU)=%, $(archdir_map))))
+ifeq ($(DEB_HOST_ARCH),x32)
+ jvmarch := x32
+ archdir := x32
+endif
+
+default_vm = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),hotspot,zero)
+hotspot_version = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),default,zero)
+hotspot_version = default
+# FIXME: 8u91 breaks zero, the jdk8-aarch64 hotspot has these issues fixed,
+# without any updates to the jdk8u project.
+hotspot_aarch64_archs = arm64 # armhf powerpc s390x
+ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)))
+ hotspot_version = aarch64
+endif
+
+any_archs = alpha amd64 armel armhf arm64 i386 ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el m68k sh4 sparc sparc64 s390x x32 kfreebsd-i386 kfreebsd-amd64
+
+ifeq (,$(filter $(distrel),squeeze lucid sid stretch))
+ jamvm_archs = amd64 armel armhf i386 powerpc kfreebsd-i386 kfreebsd-amd64 mips mipsel
+endif
+ifeq (,$(filter $(distrel),wheezy squeeze lucid))
+ jamvm_defaults =
+endif
+
+# disabled, hotspot updates tend to break it too often ...
+jamvm_archs =
+
+altshark_archs = powerpc ppc64 ppc64el
+# Shark build but just crash
+altshark_archs =
+
+altzero_archs = $(filter-out sparc, $(hotspot_archs)) $(altshark_archs)
+
+ifeq (,$(filter noaltzero, $(DEB_BUILD_OPTIONS))$(filter noaltshark, $(DEB_BUILD_OPTIONS)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(altzero_archs)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs) $(altshark_archs)))
+ alternate_vms += shark
+ zero_dir = shark
+ else
+ alternate_vms += zero
+ zero_dir = zero
+ endif
+ endif
+endif
+ifeq (,$(filter noaltjamvm, $(DEB_BUILD_OPTIONS)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs)))
+ alternate_vms += jamvm
+ endif
+endif
+
+BOOTJDK_HOME := $(strip $(subst /bin/javac,, $(firstword $(wildcard \
+ /usr/lib/jvm/java-8-openjdk-$(DEB_BUILD_ARCH)/bin/javac \
+ /usr/lib/jvm/java-7-openjdk-$(DEB_BUILD_ARCH)/bin/javac \
+ /usr/lib/jvm/java-7-openjdk/bin/javac \
+ ))))
+
+ifeq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+ BUILDJDK_HOME = $(CURDIR)/$(builddir)/$(sdkimg)
+else
+ BUILDJDK_HOME = $(BOOTJDK_HOME)
+endif
+
+OPENJDK_VERSION = jdk$(shortver)u$(updatever)-$(buildver)
+
+# for Hotspot: hotspot/make/linux/makefiles/vm.make
+# Don't overwrite Hotspot opt level :
+# -O3 is already default option for hotspot
+
+# FIXME: ftbfs with -Werror=format-security
+dpkg_buildflags_hs = \
+ DEB_CFLAGS_MAINT_STRIP="-O2 -O3 -Werror=format-security" \
+ DEB_CXXFLAGS_MAINT_STRIP="-O2 -O3 -Werror=format-security"
+# jdk/make/CompileDemos.gmk (SetupJVMTIDemo) doesn't like commas in flags
+dpkg_buildflags_hs += \
+ DEB_LDFLAGS_MAINT_STRIP="-Wl,-z,relro -Wl,-Bsymbolic-functions" \
+ DEB_LDFLAGS_MAINT_APPEND="-Xlinker -z -Xlinker relro -Xlinker -Bsymbolic-functions"
+dpkg_buildflags_hs += dpkg-buildflags
+export EXTRA_CPPFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CPPFLAGS)
+export EXTRA_CFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CFLAGS) $(shell $(dpkg_buildflags_hs) --get CPPFLAGS)
+export EXTRA_CXXFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get CXXFLAGS)
+export EXTRA_LDFLAGS_HS := $(shell $(dpkg_buildflags_hs) --get LDFLAGS)
+
+# for JDK: jdk/make/common/Defs.gmk
+# Don't overwrite JDK opt level :
+# 1) with forced -03, it cause wrong Math.* computations, see #679292 and #678228
+# 2) JDK already use it's own OPTIMIZATION_LEVEL variable for each module
+dpkg_buildflags_jdk = DEB_CFLAGS_MAINT_STRIP="-O2 -O3" DEB_CXXFLAGS_MAINT_STRIP="-O2 -O3"
+dpkg_buildflags_jdk += dpkg-buildflags
+export EXTRA_CPPFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS)
+export EXTRA_CFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CFLAGS) $(shell $(dpkg_buildflags_jdk) --get CPPFLAGS)
+export EXTRA_CXXFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get CXXFLAGS)
+export EXTRA_LDFLAGS_JDK := $(shell $(dpkg_buildflags_jdk) --get LDFLAGS)
+
+#for JamVM: Makefile.am
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+dpkg_buildflags_jamvm += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
+dpkg_buildflags_jamvm += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3"
+endif
+dpkg_buildflags_jamvm += dpkg-buildflags
+export EXTRA_CPPFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CPPFLAGS)
+export EXTRA_CFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CFLAGS)
+export EXTRA_CXXFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get CXXFLAGS)
+export EXTRA_LDFLAGS_JAMVM := $(shell $(dpkg_buildflags_jamvm) --get LDFLAGS)
+
+#for IcedTea
+ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+dpkg_buildflags_it += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2"
+dpkg_buildflags_it += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3"
+endif
+dpkg_buildflags_it += dpkg-buildflags
+export EXTRA_CPPFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CPPFLAGS)
+export EXTRA_CFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CFLAGS)
+export EXTRA_CXXFLAGS_IT := $(shell $(dpkg_buildflags_it) --get CXXFLAGS)
+export EXTRA_LDFLAGS_IT := $(shell $(dpkg_buildflags_it) --get LDFLAGS)
+
+# This section should be in sync with "bd_gcc" definition
+ifneq (,$(filter $(distrel),squeeze lucid))
+ export CC = gcc-4.4
+ export CXX = g++-4.4
+else ifneq (,$(filter $(distrel),wheezy quantal raring))
+ export CC = gcc-4.7
+ export CXX = g++-4.7
+else ifneq (,$(filter $(distrel),precise))
+ export CC = gcc-4.6
+ export CXX = g++-4.6
+else ifneq (,$(filter $(distrel),saucy trusty))
+ export CC = gcc-4.8
+ export CXX = g++-4.8
+else ifneq (,$(filter $(distrel),utopic vivid jessie))
+ export CC = gcc-4.9
+ export CXX = g++-4.9
+else ifneq (,$(filter $(distrel),wily xenial))
+ export CC = $(DEB_HOST_GNU_TYPE)-gcc-5
+ export CXX = $(DEB_HOST_GNU_TYPE)-g++-5
+else ifneq (,$(filter $(distrel),sid stretch))
+ export CC = $(DEB_HOST_GNU_TYPE)-gcc-6
+ export CXX = $(DEB_HOST_GNU_TYPE)-g++-6
+else
+ export CC = $(DEB_HOST_GNU_TYPE)-gcc-6
+ export CXX = $(DEB_HOST_GNU_TYPE)-g++-6
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+ifeq ($(derivative),Ubuntu)
+ OPT_CFLAGS/cppInterpreter_arm.o = -march=armv6 -mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0
+else
+ OPT_CFLAGS/cppInterpreter_arm.o = -O2 -falign-functions=32 -falign-loops=8 -g0
+endif
+export OPT_CFLAGS/cppInterpreter_arm.o
+endif
+
+with_pulse = yes
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha))
+ with_pulse =
+endif
+
+ifneq (,$(filter $(distrel),squeeze lucid))
+ with_bridge = bridge
+ with_jni_bridge = yes
+else ifneq (,$(filter $(distrel),xenial yakkety))
+ # TCK tests still failing
+ with_bridge =
+else
+ with_bridge = atk
+endif
+
+with_nss = yes
+with_tzdata =
+
+ifneq (,$(filter $(distrel),squeeze wheezy lucid precise))
+ with_check =
+else
+ bd_jtreg = jtreg,
+endif
+
+on_buildd := $(shell [ -f /CurrentlyBuilding -o "$$LOGNAME" = buildd ] && echo yes)
+
+ifeq ($(derivative),Debian)
+ with_wm = $(notdir $(firstword $(wildcard /usr/bin/metacity /usr/bin/twm)))
+ ifneq (,$(findstring twm, $(with_wm)))
+ with_wm_args = -f $(CURDIR)/bin/jtreg.tmwrc
+ endif
+ bd_wm = twm | metacity, twm | dbus-x11,
+else
+ with_wm = $(notdir $(firstword $(wildcard /usr/bin/metacity /usr/bin/twm)))
+ with_wm_args =
+ ifneq (,$(findstring twm, $(with_wm)))
+ with_wm_args = -f $(CURDIR)/bin/jtreg.tmwrc
+ endif
+ ifneq (,$(filter $(distrel),saucy raring quantal precise lucid))
+ bd_wm = metacity | twm, dbus-x11,
+ else
+ bd_wm = twm | metacity, twm | dbus-x11,
+ endif
+endif
+ifeq ($(with_wm),metacity)
+ with_wm_prefix = dbus-launch --exit-with-session
+endif
+
+ifeq (,$(filter $(distrel),squeeze wheezy lucid precise quantal raring saucy trusty))
+ ifeq (,$(filter $(DEB_HOST_ARCH),sh4))
+ with_systemtap = yes
+ ALT_SDT_H := $(firstword $(wildcard /usr/include/*/sys/sdt.h /usr/include/sys/sdt.h))
+ export ALT_SDT_H
+ endif
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), sparc64))
+ USE_PRECOMPILED_HEADER = 0
+ export USE_PRECOMPILED_HEADER
+endif
+
+# $(if $(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)),8132051-zero.diff) \
+# FIXME: 8132051-zero.diff doesn't apply for the default hotspot tarball,
+# resulting in broken zero builds
+COMMON_PATCHES = \
+ gcc6.diff \
+ autoconf-select.diff \
+ hotspot-warn-no-errformat.diff \
+ aarch64.diff \
+ hotspot-set-compiler.diff \
+ ppc64el.diff \
+ system-libjpeg.diff \
+ system-libpng.diff \
+ system-lcms.diff \
+ system-pcsclite.diff \
+ link-with-as-needed.diff \
+ ld-symbolic-functions-default.diff \
+ hotspot-mips-align.diff \
+ hotspot-no-march-i586.diff \
+ icc_loading_with_symlink.diff \
+ icedtea-4953367.patch \
+ icedtea-override-redirect-compiz.patch \
+ jdk-freetypeScaler-crash.diff \
+ libpcsclite-dlopen.diff \
+ nonreparenting-wm.diff \
+ shebang.diff \
+ zero-fpu-control-is-noop.diff \
+ jexec.diff \
+ default-jvm-cfg-default.diff \
+ disable-doclint-by-default.diff \
+ include-all-srcs.diff \
+ pass-extra-flags.diff \
+ hotspot-disable-werror.diff \
+ dont-strip-images.diff \
+ workaround_expand_exec_shield_cs_limit.diff \
+ zero-architectures.diff \
+ adlc-parser.patch \
+ compare-pointer-with-literal.patch \
+ multiple-pkcs11-library-init.patch \
+ applet-hole.patch \
+ libjpeg-fix.diff \
+ sparc-fixes.diff \
+ jdk-target-arch-define.diff \
+ m68k-support.diff \
+ javadoc-sort-enum-and-annotation-types.diff \
+ 8141491.diff \
+ s390x-thread-stack-size.diff \
+ jdk-getAccessibleValue.diff \
+ compiler-flags.diff \
+ openjdk-ppc64el-S8170153.patch \
+ jdk-ppc64el-S8170153.patch \
+ jdk-841269-filechooser.patch \
+ 8164293.diff \
+ jdk-ppc64el-S8165231.diff \
+
+# jdk-derived-font-size.diff \
+# FIXME: update patches
+ #accessible-toolkit.patch # update for 8
+
+ifeq ($(with_bridge),atk)
+ COMMON_PATCHES += atk-wrapper-security.patch
+else ifneq (,$(with_bridge))
+ COMMON_PATCHES += java-access-bridge-security.patch
+endif
+
+COMMON_PATCHES += \
+ zero-missing-headers.diff \
+ dnd-files.patch \
+ zero-x32.diff \
+
+# FIXME fontconfig-wqy-microhei.patch \
+# FIXME zero-sparc.diff \
+# FIXME no-pch-build.diff \
+
+ifeq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)))
+ COMMON_PATCHES += \
+ ppc64le-8036767.diff \
+ hotspot-powerpcspe.diff \
+ zero-sh.diff
+# FIXME zero-opt.diff
+endif
+
+# FIXME needs an update:
+# $(if $(with_wgy_zenhai),,fontconfig-arphic-uming.diff) \
+
+# FIXME: needs an update
+#ifeq (,$(filter $(distrel),squeeze lucid))
+# COMMON_PATCHES += \
+# fontconfig-korean-nanum.diff \
+# fontconfig-japanese.diff
+#endif
+
+ifeq ($(with_pulse),yes)
+ COMMON_PATCHES += \
+ jdk-pulseaudio.diff
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha))
+ # FIXME: Needed for non-bootstrap builds?
+ COMMON_PATCHES += \
+ alpha-float-const.diff
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
+ COMMON_PATCHES += \
+ kfreebsd-support-jdk.diff \
+ kfreebsd-support-hotspot.diff
+endif
+
+DEFAULT_PATCHES = \
+ $(COMMON_PATCHES) \
+ hotspot-libpath-$(hotspot_version).diff
+
+# for additional zero builds
+ZERO_PATCHES = \
+ $(COMMON_PATCHES) \
+ hotspot-libpath-default.diff
+
+
+CONFIGURE_ARGS =
+
+# GNU/kFreeBSD don't support epoll syscall so don't try to check of it.
+# FIXME need to check the flag, configure complains about it
+#ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
+# CONFIGURE_ARGS += --disable-compile-against-syscalls
+#endif
+
+# there are problems --with-alt-jar=/usr/bin/fastjar,
+# see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=217
+# only use it for zero ports except powerpc (which we assume as
+# fast enough to build.
+ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) ia64 powerpc powerpcspe ppc64 ppc64el))
+ CONFIGURE_ARGS += --with-alt-jar=/usr/bin/fastjar
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+ CONFIGURE_ARGS += \
+ --disable-arm32-jit
+endif
+
+ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+ CONFIGURE_ARGS += --enable-zero
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
+ CONFIGURE_ARGS += --enable-shark
+ endif
+endif
+
+EXTRA_BUILD_ENV += MAKE_VERBOSE=y QUIETLY= LOG=debug
+
+# timestamp skew on kFreeBSD
+EXTRA_BUILD_ENV += IGNORE_OLD_CONFIG=true
+
+EXTRA_BUILD_ENV += LIBFFI_LIBS=-lffi_pic
+
+# http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2014-March/026450.html
+# plus needs explicit --disable-debug-symbols
+EXTRA_BUILD_ENV += \
+ DEBUG_BINARIES=true \
+ FULL_DEBUG_SYMBOLS=0 \
+ ZIP_DEBUGINFO_FILES=0 \
+ STRIP_POLICY=none \
+ POST_STRIP_CMD=true \
+ ALT_OBJCOPY=/does_not_exist
+
+ifeq ($(with_pulse),yes)
+ CONFIGURE_ARGS += --enable-pulse-java
+endif
+
+CONFIGURE_ARGS += --enable-system-kerberos
+
+ifeq ($(with_nss),yes)
+ CONFIGURE_ARGS += --enable-nss
+else ifeq ($(with_nss),no)
+ CONFIGURE_ARGS += --disable-nss
+endif
+
+ifeq ($(with_systemtap),yes)
+ CONFIGURE_ARGS += --enable-systemtap --with-abs-install-dir=/$(basedir)
+endif
+
+COMMON_CONFIGURE_ARGS =
+DEFAULT_CONFIGURE_ARGS =
+ZERO_CONFIGURE_ARGS =
+
+# FIXME: --with-jvm-variants=server,zero not supported upstream
+ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
+ DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=server
+else
+ DEFAULT_CONFIGURE_ARGS += --with-jvm-variants=zero
+endif
+ZERO_CONFIGURE_ARGS += --with-jvm-variants=zero
+
+DEFAULT_CONFIGURE_ARGS += --with-boot-jdk=$(BOOTJDK_HOME)
+ZERO_CONFIGURE_ARGS += --with-boot-jdk=$(BUILDJDK_HOME)
+
+COMMON_CONFIGURE_ARGS += --disable-ccache
+
+# FIXME: zero not ready for --disable-precompiled-headers
+#COMMON_CONFIGURE_ARGS += --disable-precompiled-headers
+ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
+ ifeq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)))
+ DEFAULT_CONFIGURE_ARGS += --disable-precompiled-headers
+ endif
+endif
+
+ifeq ($(with_check),yes)
+ COMMON_CONFIGURE_ARGS += --with-jtreg
+endif
+
+COMMON_CONFIGURE_ARGS += \
+ --with-milestone='fcs' \
+ --with-user-release-suffix='$(PKGVERSION)' \
+ --with-update-version=$(updatever) \
+ --with-build-number=$(buildver)
+
+# --with-debug-level=fastdebug \
+
+COMMON_CONFIGURE_ARGS += \
+ --with-debug-level=release \
+ --disable-debug-symbols \
+ --disable-zip-debug-info \
+ --enable-unlimited-crypto \
+ --with-zlib=system \
+ --with-giflib=system \
+ --with-libpng=system \
+ --with-libjpeg=system \
+ --with-lcms=system \
+ --with-libpcsclite=system \
+ --with-stdc++lib=dynamic
+
+ifneq (,$(NJOBS))
+ COMMON_CONFIGURE_ARGS += --with-num-cores=$(NJOBS)
+endif
+
+# FIXME: upstream says the extra flags are not designed for general purpose ...
+# http://mail.openjdk.java.net/pipermail/jdk8u-dev/2014-July/001389.html
+
+# FIXME: demos fail to build with these ...
+# FIXME: zero ftbfs without -fpermissive
+#src/cpu/zero/vm/cppInterpreter_zero.cpp:732:30: error: invalid conversion from 'intptr_t {aka long int}' to 'const void*' [-fpermissive]
+# object = (oop) locals[0];
+# ^
+
+#COMMON_CONFIGURE_ARGS += \
+ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+ --with-extra-cxxflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CXXFLAGS_HS)' \
+ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+ DEFAULT_CONFIGURE_ARGS += \
+ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+else
+ DEFAULT_CONFIGURE_ARGS += \
+ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+ --with-extra-cxxflags='-fpermissive' \
+ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+endif
+
+ZERO_CONFIGURE_ARGS += \
+ --with-extra-cflags='$(EXTRA_CPPFLAGS_HS) $(EXTRA_CFLAGS_HS)' \
+ --with-extra-cxxflags='-fpermissive' \
+ --with-extra-ldflags='$(EXTRA_LDFLAGS_HS)'
+
+ifneq ($(DEB_HOST_ARCH),$(DEB_BUILD_ARCH))
+ COMMON_CONFIGURE_ARGS += \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --target=$(DEB_HOST_GNU_TYPE) \
+ BUILD_CC=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CC)) \
+ BUILD_LD=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CC)) \
+ BUILD_CXX=$(subst $(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE),$(CXX)) \
+
+endif
+
+# (most) jre and jdk tools handled by the alternatives system.
+# dups in heimdal-clients, krb5-user: kinit, klist, ktab, no alternatives
+# use javaws from icedtea-netx
+all_jre_tools = $(filter-out javaws, $(notdir $(wildcard $(builddir)/$(jreimg)/bin/*)))
+jre_tools = $(filter policytool, $(all_jre_tools))
+jre_hl_tools := $(filter-out $(jre_tools), $(all_jre_tools))
+
+corba_tools = orbd servertool tnameserv
+jre_hl_tools_alt= $(filter-out $(corba_tools), $(jre_hl_tools)) $(corba_tools)
+jre_tools_alt = $(filter-out kinit klist ktab, $(jre_tools))
+
+all_jdk_tools = $(filter-out javaws, $(notdir $(wildcard build/$(sdkimg)/bin/*)))
+jdk_tools = appletviewer jconsole
+jdk_tools_alt = $(jdk_tools)
+jdk_hl_tools = $(filter-out $(all_jre_tools) $(jdk_tools), $(all_jdk_tools))
+jdk_hl_tools_alt= $(filter-out apt java-rmi.cgi, $(jdk_hl_tools))
+
+
+# build dependencies
+ifneq (,$(filter $(distrel),lucid precise))
+ bd_autotools = autoconf2.69, automake, autotools-dev,
+ export AUTOCONF=autoconf2.69
+else
+ bd_autotools = autoconf (>= 2.69), automake, autotools-dev,
+endif
+bd_bootstrap += \
+ openjdk-8-jdk | openjdk-7-jdk,
+ifeq (,$(filter $(distrel),squeeze wheezy jessie precise trusty))
+bd_cross += \
+ openjdk-8-jdk-headless <cross>, dpkg-dev (>= 1.17.14),
+endif
+
+# This section should be in sync with "CC/CXX" definition
+ifneq (,$(filter $(distrel),squeeze lucid))
+ bd_gcc = g++-4.4 (>= 4.4.1),
+else ifneq (,$(filter $(distrel), precise))
+ bd_gcc = g++-4.6,
+else ifneq (,$(filter $(distrel), wheezy))
+ bd_gcc = g++-4.7, g++-4.4 [mips mipsel],
+else ifneq (,$(filter $(distrel), quantal raring))
+ bd_gcc = g++-4.7,
+else ifneq (,$(filter $(distrel), saucy trusty))
+ bd_gcc = g++-4.8,
+else ifneq (,$(filter $(distrel),utopic vivid jessie))
+ bd_gcc = g++-4.9,
+else ifneq (,$(filter $(distrel),wily xenial))
+ bd_gcc = g++-5,
+else ifneq (,$(filter $(distrel),stretch sid))
+ bd_gcc = g++-6,
+else
+ bd_gcc = g++-6,
+endif
+bd_syslibs = zlib1g-dev, libattr1-dev,
+ifneq (,$(filter $(distrel),squeeze lucid))
+ bd_syslibs += libpng12-dev, libjpeg62-dev,
+else ifneq (,$(filter $(distrel),wheezy precise quantal raring saucy))
+ bd_syslibs += libpng-dev, libjpeg8-dev,
+else
+ bd_syslibs += libpng-dev, libjpeg-dev,
+endif
+bd_syslibs += \
+ libgif-dev,
+bd_openjdk = \
+ libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, libcups2-dev, \
+ libasound2-dev, liblcms2-dev, libfreetype6-dev (>= 2.2.1), libgtk2.0-dev, \
+ libxinerama-dev, libkrb5-dev, xsltproc, libpcsclite-dev,
+
+pkg_ffidev = libffi-dev
+
+bd_zero = \
+ $(pkg_ffidev) [$(foreach a,$(hotspot_archs),!$(a))],
+bd_zero = \
+ $(pkg_ffidev),
+
+ifneq (,$(shark_archs))
+ bd_zero = $(pkg_ffidev),
+ ifneq (,$(filter $(distrel),lucid))
+ bd_shark = llvm-dev (>= 2.7) [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
+ bd_shark += oprofile [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
+ else
+ ifneq (,$(filter $(distrel),squeeze))
+ llvm_suffix = -2.7
+ else ifneq (,$(filter $(distrel),precise))
+ llvm_suffix = -2.9
+ else
+ llvm_suffix = -3.0
+ endif
+ bd_shark = llvm$(llvm_suffix)-dev [$(foreach a,$(shark_archs) $(altshark_archs),$(a))],
+ ifneq (,$(filter $(DEB_HOST_ARCH),$(shark_archs) $(altshark_archs)))
+ CONFIGURE_ARGS += --with-llvm-config=llvm-config$(llvm_suffix)
+ endif
+ endif
+endif
+
+ifneq (,$(filter $(distrel),lucid))
+ bd_ant = ant1.8, ant1.8-optional,
+else
+ bd_ant = ant, ant-optional,
+endif
+
+bd_fastjar = fastjar (>= 2:0.96-0ubuntu2),
+bd_xvfb = xvfb, xauth, xfonts-base, libgl1-mesa-dri [!x32], $(bd_wm) x11-xkb-utils,
+bd_mauve = mauve,
+ifeq ($(with_pulse),yes)
+ bd_pulsejava = libpulse-dev (>= 0.9.12) [!alpha],
+endif
+ifeq ($(with_nss),yes)
+ ifneq (,$(filter $(distrel),squeeze lucid precise quantal))
+ bd_nss = libnss3-dev (>= 3.12.3),
+ else ifneq (,$(filter $(distrel),wheezy raring saucy trusty))
+ bd_nss = libnss3-dev (>= 2:3.12.3),
+ else
+ bd_nss = libnss3-dev (>= 2:3.17.1),
+ endif
+endif
+ifeq ($(with_systemtap),yes)
+ bd_systemtap = systemtap-sdt-dev [!sh4],
+endif
+
+ifneq (,$(jamvm_archs))
+ bd_jamvm = libtool,
+endif
+
+dlopen_hl_depends = \
+ libcups2, liblcms2-2,
+ifneq (,$(filter $(distrel),squeeze lucid))
+ dlopen_hl_depends += libjpeg62,
+else ifneq (,$(filter $(distrel), jessie stretch sid))
+ dlopen_hl_depends += libjpeg62-turbo,
+else
+ dlopen_hl_depends += libjpeg8,
+endif
+# FIXME: #793210, directly link with libfontconfig.
+dlopen_hl_depends += libfontconfig1,
+ifneq ($(with_nss),no)
+ ifneq (,$(filter $(distrel),squeeze lucid precise))
+ dlopen_hl_depends += , libnss3-1d (>= 3.12.3)
+ else ifneq (,$(filter $(distrel),wheezy quantal raring saucy trusty))
+ dlopen_hl_depends += , libnss3 (>= 2:3.12.3)
+ else
+ dlopen_hl_depends += , libnss3 (>= 2:3.17.1)
+ endif
+endif
+dlopen_hl_recommends =
+dlopen_jre_depends = \
+ libglib2.0-0 (>= 2.24), libgtk2.0-0 (>= 2.14), libxrandr2, libxinerama1, libgl1-mesa-glx | libgl1
+dlopen_jre_recommends =
+
+plugin_name = IcedTeaPlugin.so
+browser_plugin_dirs = mozilla
+
+# .desktop files need to be multiarch installable
+java_launcher = /$(basedir)/bin/java
+java_launcher = /usr/bin/java
+ifeq ($(derivative),Ubuntu)
+ java_launcher = cautious-launcher %f /$(basedir)/bin/java
+ java_launcher = cautious-launcher %f /usr/bin/java
+endif
+
+ifneq (,$(filter $(distrel),squeeze wheezy lucid precise quantal raring))
+ core_fonts = ttf-dejavu-extra
+else
+ core_fonts = fonts-dejavu-extra
+endif
+ifneq (,$(filter $(distrel),squeeze lucid))
+ cjk_fonts = ttf-baekmuk | ttf-unfonts | ttf-unfonts-core,
+ cjk_fonts += ttf-sazanami-gothic | ttf-kochi-gothic,
+ cjk_fonts += ttf-sazanami-mincho | ttf-kochi-mincho,
+else
+ cfk_fonts = fonts-nanum,
+ cjk_fonts += fonts-ipafont-gothic, fonts-ipafont-mincho,
+endif
+ifneq (,$(filter $(distrel), wheezy jessie precise trusty xenial yakkety))
+ cjk_fonts += $(if $(with_wgy_zenhai),ttf-wqy-microhei | ttf-wqy-zenhei,ttf-arphic-uming),
+else
+ cjk_fonts += fonts-wqy-microhei, fonts-wqy-zenhei,
+endif
+ifneq (,$(filter $(distrel),squeeze wheezy))
+ cjk_fonts += ttf-indic-fonts,
+else ifneq (,$(filter $(distrel), lucid maverick natty oneiric precise quantal raring saucy trusty))
+ cjk_fonts += ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts,
+ cjk_fonts += ttf-kannada-fonts, ttf-bengali-fonts,
+else
+ cjk_fonts += fonts-indic,
+endif
+
+p_jre = $(basename)-jre
+p_jrehl = $(basename)-jre-headless
+p_jrej = $(basename)-jre-jamvm
+p_jrez = $(basename)-jre-zero
+p_jdkhl = $(basename)-jdk-headless
+p_jdk = $(basename)-jdk
+p_demo = $(basename)-demo
+p_src = $(basename)-source
+p_doc = $(basename)-doc
+p_dbg = $(basename)-dbg
+
+d = debian/tmp
+d_jre = debian/$(p_jre)
+d_jrehl = debian/$(p_jrehl)
+d_jrej = debian/$(p_jrej)
+d_jrez = debian/$(p_jrez)
+d_jdkhl = debian/$(p_jdkhl)
+d_jdk = debian/$(p_jdk)
+d_demo = debian/$(p_demo)
+d_src = debian/$(p_src)
+d_doc = debian/$(p_doc)
+d_dbg = debian/$(p_dbg)
+
+control_vars = \
+ '-Vvm:Name=$(vm_name)' \
+ '-Vdlopenhl:Depends=$(dlopen_hl_depends)' \
+ '-Vdlopenhl:Recommends=$(dlopen_hl_recommends)' \
+ '-Vdlopenjre:Depends=$(dlopen_jre_depends)' \
+ '-Vdlopenjre:Recommends=$(dlopen_jre_recommends)' \
+ '-Vpkg:pulseaudio=$(pkg_pulseaudio)' \
+ '-Vxulrunner:Depends=$(xulrunner_depends)' \
+
+ifneq (,$(DEB_HOST_MULTIARCH))
+ control_vars += \
+ '-Vmultiarch:Depends=multiarch-support'
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_archs)))
+ ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults)))
+ control_vars += '-Vjredefault:Depends=$(p_jrej) (= $${binary:Version})'
+ else ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_archs)))
+ control_vars += '-Vjamvm:Suggests=$(p_jrej) (= $${binary:Version})'
+ else
+ control_vars += '-Vjamvm:Recommends=$(p_jrej) (= $${binary:Version})'
+ endif
+endif
+
+ifeq ($(with_bridge),atk)
+ control_vars += '-Vdep:bridge=libatk-wrapper-java-jni (>= 0.30.4-0ubuntu2)'
+else ifneq (,$(with_bridge))
+ ifneq (,$(DEB_HOST_MULTIARCH))
+ control_vars += '-Vdep:bridge=libaccess-bridge-java-jni (>= 1.26.2-6)'
+ else ifeq ($(with_jni_bridge),yes)
+ control_vars += '-Vdep:bridge=libaccess-bridge-java-jni'
+ else
+ control_vars += '-Vdep:bridge=libaccess-bridge-java'
+ endif
+endif
+
+ifeq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs)))
+ control_vars += '-Vdefaultvm:Provides=$(p_jre)-zero, $(p_jre)-shark'
+ else
+ control_vars += '-Vdefaultvm:Provides=$(p_jre)-zero'
+ endif
+endif
+ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs) $(altshark_archs)))
+ control_vars += '-Vzerovm:Provides=$(p_jre)-shark'
+endif
+
+pkg_certs = ca-certificates-java
+control_vars += '-Vcacert:Depends=$(pkg_certs)'
+
+ifeq ($(with_tzdata),yes)
+ pkg_tzdata = tzdata-java
+ ifneq (,$(filter $(distrel), precise))
+ pkg_tzdata += (>= 2012e-0ubuntu0.12.04.1)
+ endif
+ control_vars += '-Vtzdata:Depends=$(pkg_tzdata)'
+else
+ bd_tzdata = tzdata,
+endif
+
+ifneq (,$(filter $(distrel), squeeze wheezy jessie lucid precise quantal raring saucy trusty utopic vivid))
+ control_vars += '-Vmountpoint:Depends=initscripts'
+else
+ control_vars += '-Vmountpoint:Depends=util-linux (>= 2.26.2-4)'
+endif
+
+control_vars += '-Vjrehl:Breaks=$(jrehl_breaks)'
+ifeq (,$(filter $(distrel), wheezy jessie precise trusty xenial yakkety zesty))
+ jrehl_breaks = tzdata-java
+endif
+
+pkg_jcommon = java-common (>= 0.28)
+control_vars += '-Vjcommon:Depends=$(pkg_jcommon)'
+
+debian/control: debian/control.in debian/rules
+ @cp -p debian/control debian/control.old
+ sed \
+ -e 's/@basename@/$(basename)/g' \
+ -e 's/@bd_autotools@/$(bd_autotools)/g' \
+ -e 's/@bd_bootstrap@/$(strip $(bd_bootstrap))/g' \
+ -e 's/@bd_cross@/$(strip $(bd_cross))/g' \
+ -e 's/@bd_openjdk@/$(bd_openjdk)/g' \
+ -e 's/@bd_zero@/$(bd_zero)/g' \
+ -e 's/@bd_gcc@/$(bd_gcc)/g' \
+ -e 's/@bd_syslibs@/$(bd_syslibs)/g' \
+ -e 's/@bd_fastjar@/$(bd_fastjar)/g' \
+ -e 's/@bd_mauve@/$(bd_mauve)/g' \
+ -e 's/@bd_xvfb@/$(bd_xvfb)/g' \
+ -e 's/@bd_jamvm@/$(bd_jamvm)/g' \
+ -e 's/@bd_pulsejava@/$(bd_pulsejava)/g' \
+ -e 's/@bd_nss@/$(bd_nss)/g' \
+ -e 's/@bd_systemtap@/$(bd_systemtap)/g' \
+ -e 's/@bd_shark@/$(bd_shark)/g' \
+ -e 's/@bd_ant@/$(bd_ant)/g' \
+ -e 's/@bd_tzdata@/$(bd_tzdata)/g' \
+ -e 's/@bd_jtreg@/$(bd_jtreg)/g' \
+ -e 's/@core_fonts@/$(core_fonts)/g' \
+ -e 's/@cjk_fonts@/$(cjk_fonts)/g' \
+ -e 's/@any_archs@/$(any_archs)/g' \
+ -e 's/@jamvm_archs@/$(jamvm_archs)/g' \
+ -e 's/@hotspot_archs@/$(hotspot_archs)/g' \
+ -e 's/@altzero_archs@/$(altzero_archs)/g' \
+ debian/control.in \
+ $(if $(jamvm_archs), debian/control.jamvm-jre) \
+ $(if $(altzero_archs), debian/control.zero-jre) \
+ $(if $(DEB_HOST_MULTIARCH),,| grep -v '^Multi-Arch') \
+ > debian/control
+ @if cmp -s debian/control debian/control.old; then \
+ rm -f debian/control.old; \
+ else \
+ diff -u debian/control.old debian/control | wdiff -d -; \
+ echo "debian/control did change, please restart the build"; \
+ rm -f debian/control.old; \
+ exit 1; \
+ fi
+
+packaging-files:
+ for f in debian/*.in debian/patches/*.in; do \
+ case "$$f" in debian/control.in) continue; esac; \
+ f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \
+ sed -e 's/@JRE@/$(p_jre)/g' \
+ -e 's/@JDK@/$(p_jdk)/g' \
+ -e 's/@vendor@/$(Vendor)/g' \
+ -e 's/@RELEASE@/$(shortver)/g' \
+ -e 's/@basename@/$(basename)/g' \
+ -e 's,@TOP@,$(TOP),g' \
+ -e 's,@basedir@,$(basedir),g' \
+ -e 's,@etcdir@,$(etcdir),g' \
+ -e 's,@jdiralias@,$(jdiralias),g' \
+ -e 's,@jdirname@,$(jdirname),g' \
+ -e 's/@srcname@/$(srcname)/g' \
+ -e 's/@jvmarch@/$(jvmarch)/g' \
+ -e 's/@archdir@/$(archdir)/g' \
+ -e 's/@tag@/$(tag)/g' \
+ -e 's/@priority@/$(priority)/g' \
+ -e 's/@mantag@/$(mantag)/g' \
+ -e 's/@multiarch@/$(DEB_HOST_MULTIARCH)/g' \
+ -e 's/@jre_hl_tools@/$(jre_hl_tools_alt)/g' \
+ -e 's/@jre_tools@/$(jre_tools_alt)/g' \
+ -e 's/@jdk_hl_tools@/$(jdk_hl_tools_alt)/g' \
+ -e 's/@jdk_tools@/$(jdk_tools_alt)/g' \
+ -e 's/@corba_tools@/$(corba_tools)/g' \
+ -e 's,@j2se_lib@,$(j2se_lib),g' \
+ -e 's,@j2se_share@,$(j2se_share),g' \
+ -e 's,@java_launcher@,$(java_launcher),g' \
+ -e 's,@with_tzdata@,$(with_tzdata),g' \
+ -e 's/@cjk_fonts@/$(cjk_fonts)/g' \
+ $$f > $$f2; \
+ done
+ifneq (,$(filter $(DEB_HOST_ARCH), i386))
+# not yet in OpenJDK
+# cat debian/$(p_jre)-i586.menu >> $(d_jre).menu
+ rm -f debian/$(p_jre)-i586.menu
+endif
+
+configure: stamps/configure
+stamps/configure: stamps/patch
+ -cat /etc/hosts
+
+ mkdir -p bin
+ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 arm64 hppa mips64 mips64el ppc64 ppc64el s390x sparc64 x32))
+ ( \
+ echo '#! /bin/sh'; \
+ echo 'if [ -x /usr/bin/linux32 ]; then'; \
+ echo ' exec /usr/bin/linux32 /bin/uname "$$@"'; \
+ echo 'else'; \
+ echo ' exec /bin/uname "$$@"'; \
+ echo 'fi'; \
+ ) > bin/uname
+ chmod +x bin/uname
+ echo "UNAME checks"
+ uname -a
+endif
+ /bin/uname -a
+ lsb_release -a
+
+ -cat /proc/sys/kernel/random/entropy_avail
+
+ mkdir -p stamps
+ mkdir -p $(builddir)
+ cd $(srcdir) && sh common/autoconf/autogen.sh
+ cd $(builddir) && $(EXTRA_BUILD_ENV) ../$(srcdir)/configure \
+ $(DEFAULT_CONFIGURE_ARGS) \
+ $(COMMON_CONFIGURE_ARGS)
+
+ touch $@
+
+stamps/zero-configure: stamps/build stamps/patch
+ mkdir -p stamps
+ mkdir -p $(zbuilddir)
+ cd $(zbuilddir) && $(EXTRA_BUILD_ENV) ../$(srcdir)/configure \
+ $(ZERO_CONFIGURE_ARGS) \
+ $(COMMON_CONFIGURE_ARGS)
+
+ touch $@
+
+stamps/jamvm-configure: stamps/jamvm-unpack stamps/patch stamps/build
+ if [ -x jamvm/autogen.sh ]; then \
+ cd jamvm && NOCONFIGURE=yes ./autogen.sh; \
+ fi
+ mkdir -p $(jbuilddir)
+ cd $(jbuilddir) && ../jamvm/configure \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --prefix=$(CURDIR)/$(jbuilddir)/install \
+ --with-java-runtime-library=openjdk8 \
+ --with-gnu-ld \
+ CPPFLAGS='$(EXTRA_CPPFLAGS_JAMVM)' \
+ CFLAGS='$(EXTRA_CFLAGS_JAMVM)' \
+ CXXFLAGS='$(EXTRA_CXXFLAGS_JAMVM)' \
+ LDFLAGS='$(EXTRA_LDFLAGS_JAMVM)'
+ touch $@
+
+stamps/sound-configure: stamps/build
+ rm -rf icedtea-sound
+ tar xf icedtea-sound.tar.xz
+ mv $$(tar tf icedtea-sound.tar.xz | head -1 | sed 's,/.*,,') \
+ icedtea-sound
+ patch -p1 < debian/patches/icedtea-sound.diff
+ if [ -x icedtea-sound/autogen.sh ]; then \
+ cd icedtea-sound && ./autogen.sh; \
+ fi
+ cd icedtea-sound && ./configure \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --disable-maintainer-mode \
+ --with-jdk-home=$(BUILDJDK_HOME) \
+ CPPFLAGS="$(EXTRA_CPPFLAGS_IT)" \
+ CFLAGS="$(EXTRA_CFLAGS_IT)" \
+ CXXFLAGS="$(EXTRA_CXXFLAGS_IT)" \
+ LDFLAGS="$(EXTRA_LDFLAGS_IT)"
+ touch $@
+
+stamps/sound-build: stamps/sound-configure
+ $(MAKE) -C icedtea-sound
+ touch $@
+
+stamps/jamvm-build: stamps/jamvm-configure
+ $(MAKE) -C $(jbuilddir)
+ $(MAKE) -C $(jbuilddir) install
+ rm -rf $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm
+ mkdir -p $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm
+ cp -p $(jbuilddir)/install/lib/libjvm.so \
+ $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm/.
+ cp -p $(builddir)/$(sdkimg)/jre/lib/$(archdir)/server/Xusage.txt \
+ $(builddir)/$(sdkimg)/jre/lib/$(archdir)/jamvm/.
+ touch $@
+
+unpack: stamps/unpack stamps/jamvm-unpack
+stamps/unpack:
+ rm -rf $(srcdir)
+ tar xf root.tar.xz
+ mv $$(tar tf root.tar.xz | head -1 | sed 's,/.*,,') $(srcdir)
+ chmod +x $(srcdir)/configure
+ for tb in corba jaxp jaxws langtools hotspot jdk nashorn; do \
+ d=$$(tar tf $$tb.tar.xz | head -1 | sed 's,/.*,,'); \
+ tar -C $(srcdir) -x -f $$tb.tar.xz; \
+ mv $(srcdir)/$$d $(srcdir)/$$tb; \
+ done
+# FIXME: do the zero build from the hotspot.tar.gz
+ifneq (,$(filter $(DEB_HOST_ARCH),$(hotspot_aarch64_archs)))
+ rm -rf $(srcdir)/hotspot
+ tar -C $(srcdir) -x -f hotspot-aarch64.tar.xz
+ mv $(srcdir)/$$(tar tf hotspot-aarch64.tar.xz | head -1 | sed 's,/.*,,') \
+ $(srcdir)/hotspot
+endif
+
+ : # remove embedded libraries
+ find $(srcdir)/jdk/src/share/native/sun/awt/image/jpeg \
+ ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \
+ -type f -delete
+ rm -rf $(srcdir)/jdk/src/share/native/sun/awt/libpng/*
+ rm -rf $(srcdir)/jdk/src/share/native/sun/awt/giflib/*
+ rm -rf $(srcdir)/jdk/src/share/native/sun/java2d/cmm/lcms/cms*
+ rm -rf $(srcdir)/jdk/src/share/native/sun/java2d/cmm/lcms/lcms2*
+ rm -rf $$d/src/solaris/native/sun/security/smartcardio/MUSCLE
+
+ $(MAKE) -f debian/rules packaging-files
+
+ cp /usr/share/misc/config.* $(srcdir)/common/autoconf/build-aux/.
+
+ mkdir -p stamps
+ touch $@
+
+stamps/jamvm-unpack:
+ mkdir -p stamps
+ rm -rf jamvm jamvm-*
+ tar xf jamvm.tar.gz
+ mv jamvm-2* jamvm
+ cp /usr/share/misc/config.* jamvm/.
+ patch -p1 < debian/patches/kfreebsd-support-jamvm.diff
+ patch -p1 < debian/patches/jamvm-fix.diff
+ patch -p1 < debian/patches/pr2775-cache_api.diff
+ @mkdir -p stamps
+ touch $@
+
+patch: stamps/patch
+stamps/patch: stamps/unpack stamps/jamvm-unpack
+ for i in $(DEFAULT_PATCHES); do \
+ echo $$i; \
+ done > $(srcdir)/series
+
+ cd $(srcdir) && \
+ QUILT_PATCHES=../debian/patches quilt --quiltrc - push -a
+ ( \
+ echo ""; echo "Patches applied in this version:"; \
+ for i in $$(egrep -v '^#|^ *$$' $(srcdir)/series); do \
+ echo ""; echo "$$i:"; \
+ sed -n 's/^# *DP: */ /p' debian/patches/$$i; \
+ done \
+ ) > stamps/pxx
+ mv stamps/pxx $@
+
+ifeq ($(with_check),yes)
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el sh4))
+ with_mauve_check = $(default_vm)
+ endif
+ ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha arm64 armel armhf ia64 mips mipsel mips64 mips64el powerpc powerpcspe ppc64 ppc64el s390x sh4 x32))
+ with_jtreg_check = $(default_vm)
+ endif
+
+ ifneq (,$(filter jamvm, $(alternate_vms)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), amd64 ))
+ # only activate after testing
+ with_mauve_check += jamvm
+ endif
+ ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386))
+ # only activate after testing; hangs several tests.
+ with_jtreg_check += jamvm
+ endif
+ endif
+
+ ifneq (,$(filter shark, $(alternate_vms)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 powerpc powerpcspe))
+ # only activate after testing
+ with_mauve_check += $(if $(filter $(DEB_HOST_ARCH),$(altshark_archs)),shark,zero)
+ endif
+ # shark hangs on ppc64
+ ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 powerpc powerpcspe))
+ # only activate after testing; hangs several tests.
+ with_jtreg_check += $(if $(filter $(DEB_HOST_ARCH),$(altshark_archs)),shark,zero)
+ endif
+ endif
+
+ ifneq (,$(filter zero, $(alternate_vms)))
+ ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386))
+ # only activate after testing
+ with_mauve_check += zero
+ endif
+ ifneq (,$(filter $(DEB_HOST_ARCH), arm64 amd64 i386))
+ # only activate after testing; hangs several tests.
+ with_jtreg_check += zero
+ endif
+ endif
+
+ with_mauve_check =
+endif
+
+# these are best guesses depending on the architecture and the build machines
+# some tests require 4min to run, so set the minimum timeout to 3 x 2min.
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe x32))
+ JTREG_OPTIONS = -timeout:5
+else
+ JTREG_OPTIONS = -timeout:3
+endif
+
+ifeq (,$(filter $(distrel),wheezy trusty))
+ JTREG_OPTIONS += -conc:auto
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf))
+ JTREG_OPTIONS += -Xmx256M -vmoption:-Xmx256M
+endif
+
+build_stamps = \
+ stamps/build \
+ $(if $(filter $(DEB_HOST_ARCH),$(altzero_archs)),stamps/zero-build) \
+ $(if $(filter $(DEB_HOST_ARCH),$(jamvm_archs)),stamps/jamvm-build)
+
+ifeq ($(with_pulse),yes)
+ build_stamps += stamps/sound-build
+endif
+
+build_stamps += stamps/jtreg-check-default
+
+ifeq (0,1)
+build_stamps += stamps/mauve-check-default stamps/jtreg-check-default
+build_stamps += $(if $(filter jamvm, $(alternate_vms)),stamps/mauve-check-jamvm stamps/jtreg-check-jamvm)
+build_stamps += $(if $(filter zero, $(alternate_vms)),stamps/mauve-check-zero stamps/jtreg-check-zero)
+ifneq (,$(filter shark, $(alternate_vms)))
+ ifneq (,$(filter $(DEB_HOST_ARCH),$(altshark_archs)))
+ build_stamps += stamps/mauve-check-shark stamps/jtreg-check-shark
+ else
+ build_stamps += stamps/mauve-check-zero stamps/jtreg-check-zero
+ endif
+endif
+endif
+
+pre-build:
+ifneq (,$(filter $(DEB_HOST_ARCH),s390))
+ @echo explicitely fail the build for $(DEB_HOST_ARCH), patches not updated
+#else ifneq (,$(filter $(DEB_HOST_ARCH),armel))
+# @echo explicitely fail the build for $(DEB_HOST_ARCH), ARM assembler interpreter not yet ported
+ false
+endif
+
+build-arch: build
+build-indep: build stamps/build-docs
+build: pre-build $(build_stamps)
+ if [ -f buildwatch.pid ]; then \
+ pid=$$(cat buildwatch.pid); \
+ kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \
+ fi
+ rm -f buildwatch.pid
+
+stamps/build: stamps/configure
+ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 m68k mips mipsel mips64 mips64el powerpc powerpcspe s390x sparc sparc64))
+ sh -c 'sh debian/buildwatch.sh $(CURDIR)/$(builddir) &'
+endif
+ if $(EXTRA_BUILD_ENV) $(MAKE) -C $(builddir) $(build_target); then \
+ : ; \
+ else \
+ if [ -f buildwatch.pid ]; then \
+ pid=$$(cat buildwatch.pid); \
+ kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \
+ fi; \
+ false; \
+ fi
+
+ touch $@
+
+stamps/zero-build: stamps/zero-configure
+ : # FIXME: build using the just built jdk, and build the vm only
+ $(EXTRA_BUILD_ENV) $(MAKE) -C $(zbuilddir) images
+ rm -rf $(builddir)/$(sdkimg)/jre/lib/$(archdir)/zero
+ cp -a $(zbuilddir)/$(subst bootcycle-build/,,$(sdkimg))/jre/lib/$(archdir)/server \
+ $(builddir)/$(sdkimg)/jre/lib/$(archdir)/zero
+ touch $@
+
+stamps/build-docs: stamps/build
+ $(MAKE) -C $(builddir) docs
+ touch $@
+
+stamps/xvfb-check:
+ mkdir -p bin test
+ ( \
+ echo '#!/bin/sh'; \
+ echo '$(with_wm_prefix) $(with_wm) $(with_wm_args) &'; \
+ echo 'pid=$$!'; \
+ echo 'sleep 3'; \
+ echo '"$$@"'; \
+ echo 'kill -9 $$pid'; \
+ ) > bin/my-jtreg-run
+ chmod 755 bin/my-jtreg-run
+ifeq (,$(wildcard /usr/bin/$(with_wm)))
+ echo 'xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" "$$@"' > bin/my-xvfb-run
+else
+ echo 'xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX" my-jtreg-run "$$@"' > bin/my-xvfb-run
+ ifeq ($(with_wm),twm)
+ grep -v '^include-menu-defs' /etc/X11/twm/system.twmrc-menu > bin/jtreg.tmwrc
+ echo RandomPlacement >> bin/jtreg.tmwrc
+ endif
+endif
+ if ! /bin/sh bin/my-xvfb-run true ; then \
+ echo "error running $$(cat bin/my-xvfb-run)"; \
+ cat test/xvfb-run.log; \
+ sed -i 's/ -s *"[^"]*"//' bin/my-xvfb-run; \
+ if ! /bin/sh bin/my-xvfb-run true ; then \
+ echo "error running $$(cat bin/my-xvfb-run)"; \
+ cat test/xvfb-run.log; \
+ rm -f bin/my-xvfb-run; \
+ fi; \
+ fi
+ if [ -f bin/my-xvfb-run ]; then \
+ echo "using $$(cat bin/my-xvfb-run)"; \
+ fi
+ touch $@
+
+XVFB_RUN_CMD = xvfb-run -a -e $(CURDIR)/test/xvfb-run.log -s "-extension GLX"
+ifneq (,$(wildcard /usr/bin/$(with_wm)))
+ XVFB_RUN_CMD += $(CURDIR)/bin/my-jtreg-run
+endif
+
+stamps/mauve-check-default: stamps/build stamps/xvfb-check
+ $(MAKE) -f debian/rules mauve-run-check VMNAME=$(default_vm) VMARGS=
+ touch $@
+
+stamps/mauve-check-jamvm: stamps/xvfb-check
+ $(MAKE) -f debian/rules mauve-run-check VMNAME=jamvm VMARGS='-vmarg -jamvm'
+ touch $@
+
+stamps/mauve-check-shark: stamps/xvfb-check
+ $(MAKE) -f debian/rules mauve-run-check VMNAME=shark VMARGS='-vmarg -shark'
+ touch $@
+
+stamps/mauve-check-zero: stamps/xvfb-check
+ $(MAKE) -f debian/rules mauve-run-check VMNAME=zero VMARGS='-vmarg -zero'
+ touch $@
+
+stamps/mauve-build: stamps/build
+ rm -rf build/mauve
+ mkdir -p build/mauve
+ifeq ($(with_mauve_check),yes)
+ tar -x -C build -f /usr/src/mauve.tar.gz
+ cd build/mauve \
+ && aclocal \
+ && automake \
+ && autoconf \
+ && PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH \
+ ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH $(MAKE) -C build/mauve
+endif
+ touch $@
+
+stamps/mauve-check: stamps/build stamps/mauve-build stamps/xvfb-check
+
+mauve-run-check:
+ rm -rf build/mauve build/mauve-$(VMNAME)
+ifneq (,$(filter $(VMNAME), $(with_mauve_check)))
+ tar -x -C build -f /usr/src/mauve.tar.gz
+ mv build/mauve build/mauve-$(VMNAME)
+ cd build/mauve-$(VMNAME) \
+ && aclocal \
+ && automake \
+ && autoconf \
+ && PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH ./configure \
+ --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)
+ PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH $(MAKE) -C build/mauve-$(VMNAME)
+
+ if [ -f bin/my-xvfb-run ]; then \
+ cd build/mauve-$(VMNAME) && \
+ JAVA_HOME=$(CURDIR)/build/$(sdkimg) \
+ PATH=$(CURDIR)/build/$(sdkimg)/bin:$$PATH \
+ time /bin/sh $(CURDIR)/bin/my-xvfb-run java Harness \
+ -vm $(CURDIR)/build/$(sdkimg)/bin/java \
+ $(VMARGS) \
+ -file $(CURDIR)/debian/mauve_tests \
+ -timeout 30000 2>&1 \
+ | tee mauve_output-$(VMNAME); \
+ else \
+ echo "mauve testsuite not run for this build (xvfb failures)" \
+ > build/mauve-$(VMNAME)/mauve_output-$(VMNAME); \
+ cat test/xvfb-run.log >> build/mauve-$(VMNAME)/mauve_output-$(VMNAME); \
+ fi
+ @sleep 5
+else
+ mkdir -p build/mauve-$(VMNAME)
+ echo "mauve testsuite not run for this build" \
+ > build/mauve-$(VMNAME)/mauve_output-$(VMNAME)
+endif
+
+stamps/jtreg-check-default: stamps/build stamps/xvfb-check
+ $(MAKE) -f debian/rules jtreg-run-check VMNAME=$(default_vm) VMARGS= \
+ TEST_SUITES='hotspot langtools'
+# $(if $(filter $(default_vm),hotspot),TEST_SUITES='hotspot langtools jdk',TEST_SUITES='hotspot langtools')
+ touch $@
+
+stamps/jtreg-check-jamvm: stamps/build stamps/xvfb-check
+ $(MAKE) -f debian/rules jtreg-run-check VMNAME=jamvm VMARGS='-vmoption:-jamvm' \
+ TEST_SUITES='hotspot langtools'
+ touch $@
+
+stamps/jtreg-check-shark: stamps/build stamps/xvfb-check
+ $(MAKE) -f debian/rules jtreg-run-check VMNAME=shark VMARGS='-vmoption:-shark' \
+ TEST_SUITES='hotspot langtools'
+ touch $@
+
+stamps/jtreg-check-zero: stamps/build stamps/xvfb-check
+ $(MAKE) -f debian/rules jtreg-run-check VMNAME=zero VMARGS='-vmoption:-zero' \
+ TEST_SUITES='langtools hotspot'
+ touch $@
+
+jtreg-run-check:
+ mkdir -p test
+ifneq (,$(filter $(VMNAME), $(with_jtreg_check)))
+ if [ ! -f $(builddir)/$(sdkimg)/jre/lib/security/java.security.install ]; then \
+ fgrep -v 'sun.security.pkcs11' $(builddir)/$(sdkimg)/jre/lib/security/java.security \
+ > $(builddir)/$(sdkimg)/jre/lib/security/java.security.test; \
+ mv $(builddir)/$(sdkimg)/jre/lib/security/java.security \
+ $(builddir)/$(sdkimg)/jre/lib/security/java.security.install; \
+ mv $(builddir)/$(sdkimg)/jre/lib/security/java.security.test \
+ $(builddir)/$(sdkimg)/jre/lib/security/java.security; \
+ fi
+
+ @echo "BEGIN jtreg"
+ time $(MAKE) -f debian/rules -k jtregcheck \
+ $(if $(TEST_SUITES),TEST_SUITES="$(TEST_SUITES)") \
+ JTREG_OPTIONS='$(VMARGS) $(JTREG_OPTIONS)' \
+ 2>&1 | tee test/jtreg_output-$(VMNAME)
+ @echo "END jtreg"
+
+ if [ -f $(builddir)/$(sdkimg)/jre/lib/security/java.security.install ]; then \
+ mv $(builddir)/$(sdkimg)/jre/lib/security/java.security.install \
+ $(builddir)/$(sdkimg)/jre/lib/security/java.security; \
+ fi
+
+# for i in check-hotspot.log check-jdk.log check-langtools.log jtreg-summary.log; do \
+# if [ -f test/$$i ]; then \
+ mv test/$$i test/$${i%*.log}-$(VMNAME).log; \
+# else \
+# mkdir -p test; \
+# cp test/jtreg_output-$(VMNAME) test/$${i%*.log}-$(VMNAME).log; \
+# fi; \
+# done
+
+ for i in check-hotspot.log check-jdk.log check-langtools.log jtreg-summary.log; do \
+ if [ -f test/$$i ]; then \
+ mv test/$$i test/$${i%*.log}-$(VMNAME).log; \
+ else \
+ mkdir -p test; \
+ fi; \
+ done
+
+ @echo "BEGIN jtreg-summary-$(VMNAME)"
+ -cat test/jtreg-summary-$(VMNAME).log
+ @echo "END jtreg-summary-$(VMNAME)"
+
+ : # kill testsuite processes still hanging
+ @pids=$$($(jtreg_pids)); \
+ if [ -n "$$pids" ]; then \
+ echo "killing processes..."; \
+ $(jtreg_processes); \
+ kill -1 $$pids; \
+ sleep 2; \
+ pids=$$($(jtreg_pids)); \
+ if [ -n "$$pids" ]; then \
+ echo "trying harder..."; \
+ $(jtreg_processes); \
+ kill -9 $$pids; \
+ sleep 2; \
+ fi; \
+ else \
+ echo "nothing to cleanup"; \
+ fi; \
+ pids=$$($(jtreg_pids)); \
+ if [ -n "$$pids" ]; then \
+ echo "leftover processes..."; \
+ $(jtreg_processes); \
+ fi
+
+ -for i in hotspot langtools jdk; do \
+ test -f test/check-$$i-$(VMNAME).log || continue; \
+ for t in $$(egrep '^(FAILED|Error)' test/check-$$i-$(VMNAME).log | sed 's/.* \(.*\)\.[^.][^.]*$$/\1/'); do \
+ echo test/$$i/JTwork/$$t.jtr; \
+ done; \
+ done > test/failed_tests-$(VMNAME).list; \
+ GZIP=-9vn tar -C . -c -z -f test/failed_tests-$(VMNAME).tar.gz -T test/failed_tests-$(VMNAME).list
+else
+ echo "jtreg harness not run for this build" > test/jtreg_output-$(VMNAME)
+endif
+
+# ----------------------------------------------------------------------------
+# jtreg targets taken from IcedTea
+
+export JTREG_HOME=/usr/share/java
+
+TESTS_TO_RUN = $(addprefix check-,$(TEST_SUITES))
+
+check-hotspot: stamps/build
+ mkdir -p test/hotspot/JTwork test/hotspot/JTreport
+ JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \
+ -w:test/hotspot/JTwork -r:test/hotspot/JTreport \
+ -agentvm \
+ -jdk:$(builddir)/$(sdkimg) \
+ $(JTREG_OPTIONS) \
+ $(CURDIR)/$(srcdir)/hotspot/test \
+ | tee test/$@.log
+
+check-langtools: stamps/build
+ mkdir -p test/langtools/JTwork test/langtools/JTreport
+ JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \
+ -w:test/langtools/JTwork -r:test/langtools/JTreport \
+ -agentvm \
+ -jdk:$(builddir)/$(sdkimg) \
+ $(JTREG_OPTIONS) \
+ -exclude:debian/excludelist.langtools.jtx \
+ $(CURDIR)/$(srcdir)/langtools/test \
+ | tee test/$@.log
+
+check-jdk: stamps/build stamps/xvfb-check
+ mkdir -p test/jdk/JTwork test/jdk/JTreport
+ set -x; \
+ if test "x$${DISPLAY}" = "x"; then XVFB_RUN="$(XVFB_RUN_CMD)"; fi; \
+ if test "x$${DISPLAY}" = "x" && test "x$${XVFB_RUN}" = "x"; then \
+ echo "WARNING: DISPLAY not set and xvfb-run not found"; \
+ fi; \
+ $(if $(DISPLAY),,$(XVFB_RUN_CMD)) \
+ JT_JAVA=$(BOOTJDK_HOME) jtreg -v1 -a -ignore:quiet \
+ -w:test/jdk/JTwork -r:test/jdk/JTreport \
+ -agentvm \
+ -jdk:$(builddir)/$(sdkimg) \
+ $(JTREG_OPTIONS) \
+ -exclude:debian/excludelist.jdk.jtx \
+ $(CURDIR)/$(srcdir)/jdk/test \
+ | tee test/$@.log
+
+# FIXME: this might need some adjustment for other OS than Linux
+jtreg_processes = ps x -ww -o pid,ppid,args \
+ | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,/scratch)/' \
+ | $(SED) 's,$(CURDIR)/$(builddir)/$(sdkimg),<sdkimg>,g;s,$(CURDIR),<pwd>,g'
+jtreg_pids = ps x --no-headers -ww -o pid,ppid,args \
+ | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,$(CURDIR)/$(builddir)/$(sdkimg))/ {print $$1}'
+
+jtregcheck: $(TESTS_TO_RUN)
+ for i in $(TEST_SUITES); do \
+ echo "--------------- jtreg console summary for $$i ---------------"; \
+ egrep -v '^(Passed:|Directory|Re[a-z]+\ written\ to)' test/check-$$i.log; \
+ done | tee test/jtreg-summary.log
+
+ : # kill testsuite processes still hanging
+ @pids=$$($(jtreg_pids)); \
+ if [ -n "$$pids" ]; then \
+ echo "killing processes..."; \
+ $(jtreg_processes); \
+ kill -1 $$pids; \
+ sleep 2; \
+ pids=$$($(jtreg_pids)); \
+ if [ -n "$$pids" ]; then \
+ echo "try harder..."; \
+ $(jtreg_processes); \
+ kill -9 $$pids; \
+ sleep 2; \
+ fi; \
+ else \
+ echo "nothing to cleanup"; \
+ fi; \
+ pids=$$($(jtreg_pids)); \
+ if [ -n "$$pids" ]; then \
+ echo "leftover processes..."; \
+ $(jtreg_processes); \
+ fi
+
+# ----------------------------------------------------------------------------
+
+clean: debian-clean
+ dh_testdir
+ dh_testroot
+ rm -rf $(srcdir) jamvm
+ rm -rf stamps build build-* test
+ rm -rf icedtea-sound
+ rm -rf autom4te.cache
+ rm -rf bin
+ rm -f buildwatch.pid
+
+ dh_clean
+
+debian-clean:
+ dh_testdir
+ dh_testroot
+ dh_prep || dh_clean -k
+ for f in debian/*.in debian/patches/*.in; do \
+ f2=$$(echo $$f | sed 's/JB/$(basename)/;s/\.in$$//'); \
+ case "$$f2" in debian/control) continue; esac; \
+ rm -f $$f2; \
+ done
+ rm -f debian/*.install debian/*.links debian/*.debhelper.log
+
+lib_ext_dirs = common $(sort $(foreach arch,$(arch_map),$(firstword $(subst =,$(SPACE),$(arch)))))
+ifeq ($(derivative),Ubuntu)
+ lib_ext_dirs := $(filter-out arm hppa m68k mips% powerpcspe s390% sh%, $(lib_ext_dirs))
+else
+ lib_ext_dirs := $(filter-out arm hppa, $(lib_ext_dirs))
+endif
+
+install: packaging-files
+ dh_testdir
+ dh_testroot
+ dh_prep || dh_clean -k
+ rm -f debian/*.install debian/*.links
+ dh_installdirs
+
+ : # install into temporary location
+ mkdir -p $(d)/$(basedir)
+ cp -a $(builddir)/$(sdkimg)/* $(d)/$(basedir)/
+# FIXME: still needed?
+# cp -a build/$(jreimg)/man $(d)/$(basedir)/jre/
+
+ifeq ($(with_pulse),yes)
+ cp icedtea-sound/icedtea-sound.jar $(d)/$(basedir)/jre/lib/ext/.
+ cp icedtea-sound/build/native/libicedtea-sound.so \
+ $(d)/$(basedir)/jre/lib/$(archdir)/.
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386))
+ cp -a $(d)/$(basedir)/include/bsd $(d)/$(basedir)/include/linux
+ : # Easy fix for #851053
+ mv $(d)/$(basedir)/jre/lib/$(archdir)/jspawnhelper $(d)/$(basedir)/jre/lib/
+endif
+
+ chmod -R u+w $(d)
+
+ : # use javaws from icedtea-netx
+ find $(d) -name 'javaws*' | xargs -r rm -f
+
+ : # install default jvm config file
+ cp debian/jvm.cfg-default $(d)/$(basedir)/jre/lib/$(archdir)/
+
+ifeq ($(with_tzdata),yes)
+ : # use the timezone files from tzdata-java
+ rm -rf $(d)/$(basedir)/jre/lib/zi
+endif
+
+ : # compress manpages
+ find $(d)/$(basedir)/man $(d)/$(basedir)/jre/man -type f ! -type l \
+ | xargs gzip -9v -n
+
+ : # copy man pages into the jre/man directory
+ mkdir -p $(d)/$(basedir)/jre/man/man1
+ mkdir -p $(d)/$(basedir)/jre/man/ja_JP.UTF-8/man1
+ for i in $(d)/$(basedir)/jre/bin/*; do \
+ b=$$(basename $$i); \
+ cp -p $(d)/$(basedir)/man/man1/$$b.1.gz $(d)/$(basedir)/jre/man/man1/.; \
+ cp -p $(d)/$(basedir)/man/ja_JP.UTF-8/man1/$$b.1.gz $(d)/$(basedir)/jre/man/ja_JP.UTF-8/man1/.; \
+ done
+ cp -a $(d)/$(basedir)/man/ja $(d)/$(basedir)/jre/man/.
+
+ : # replace common files in jdk and jre by symlinks
+ @cd $(d)/$(basedir); \
+ for i in `find jre -type f`; do \
+ i2=$${i#jre/*}; \
+ if [ -f $$i2 ]; then \
+ if cmp -s $$i $$i2; then \
+ : ; \
+ else \
+ echo "XXX: differing files"; \
+ md5sum $$i $$i2; \
+ fi; \
+ else \
+ continue; \
+ fi; \
+ d=$$(echo ./$$i2 | sed -r 's,[^/]+/,../,g;s,/[^/]+$$,,;s,\.\.$$,,'); \
+ echo " symlink $$i2 -> $$d$$i"; \
+ ln -sf $$d$$i $$i2; \
+ done
+
+ mkdir -p $(d)/$(etcdir)/security
+ mkdir -p $(d)/$(etcdir)/management
+ mkdir -p $(d)/$(etcdir)/images/cursors
+
+ : # rename templates (comments only) to config files,
+ : # and move to /$(etcdir)
+ for i in \
+ management/jmxremote.password \
+ management/snmp.acl; \
+ do \
+ mv $(d)/$(basedir)/jre/lib/$$i.template $(d)/$(etcdir)/$$i; \
+ done
+
+ifeq ($(with_bridge),atk)
+ ifneq (,$(filter $(distrel),lenny wheezy squeeze jessie lucid precise quantal raring saucy trusty utopic vivid))
+ cp -p debian/accessibility-atk.properties.disabled \
+ $(d)/$(basedir)/jre/lib/accessibility.properties
+ else
+ cp -p debian/accessibility-atk.properties.enabled \
+ $(d)/$(basedir)/jre/lib/accessibility.properties
+ endif
+else ifneq (,$(with_bridge))
+ cp -p debian/accessibility.properties $(d)/$(basedir)/jre/lib/
+endif
+ cp -p debian/swing.properties $(d)/$(basedir)/jre/lib/
+
+ifneq (,$(pkg_certs))
+ rm -f $(d)/$(basedir)/jre/lib/security/cacerts
+endif
+
+ : # FIXME: merge nss changes from IcedTea
+ cp debian/nss.cfg $(d)/$(basedir)/jre/lib/security/nss.cfg
+
+ : # move config files to $(etcdir) and symlink them.
+ for i in \
+ $(if $(with_bridge),accessibility.properties) \
+ calendars.properties \
+ content-types.properties \
+ images/cursors/cursors.properties \
+ logging.properties \
+ sound.properties \
+ flavormap.properties \
+ net.properties \
+ psfontj2d.properties \
+ psfont.properties.ja \
+ swing.properties \
+ tz.properties \
+ management/jmxremote.access \
+ management/management.properties \
+ security/java.policy \
+ security/java.security \
+ $$([ -f $(d)/$(basedir)/jre/lib/security/nss.cfg ] && echo security/nss.cfg) \
+ $(if $(findstring ca-cert,$(pkg_certs)),,security/cacerts) \
+ security/blacklisted.certs; \
+ do \
+ mv $(d)/$(basedir)/jre/lib/$$i $(d)/$(etcdir)/$$i; \
+ done
+ mv $(d)/$(basedir)/jre/lib/$(archdir)/jvm.cfg \
+ $(d)/$(etcdir)/
+ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs)))
+ printf -- '-zero KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+else
+ printf -- '-zero ALIASED_TO -server\n' >> $(d)/$(etcdir)/jvm.cfg
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs)))
+ printf -- '-jamvm KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults)))
+ grep '^[# ]' $(d)/$(etcdir)/jvm.cfg \
+ > $(d)/$(etcdir)/jvm.cfg.new
+ grep 'jamvm' $(d)/$(etcdir)/jvm.cfg \
+ >> $(d)/$(etcdir)/jvm.cfg.new
+ egrep -v '^[# ]|jamvm' $(d)/$(etcdir)/jvm.cfg \
+ >> $(d)/$(etcdir)/jvm.cfg.new
+ mv $(d)/$(etcdir)/jvm.cfg.new $(d)/$(etcdir)/jvm.cfg
+endif
+ : # FIXME: avian working with 8?
+ : # printf -- '-avian KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+ printf -- '-dcevm KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg
+
+ifeq (0,1)
+# FIXME: XXX
+ mv $(d)/$(basedir)/jre/lib/fontconfig.Ubuntu.properties.src \
+ $(d)/$(etcdir)/fontconfig.properties
+endif
+
+ : # remove files which we do not want to distribute
+ rm -f $(d)/$(basedir)/jre/lib/fontconfig*.properties.src
+ rm -f $(d)/$(basedir)/jre/lib/fontconfig*.bfc
+ rm -f $(d)/$(basedir)/jre/lib/$(archdir)/*/classes.jsa
+
+ : # remove empty directories
+ rmdir $(d)/$(basedir)/jre/lib/management
+ rmdir $(d)/$(basedir)/jre/lib/applet
+# rmdir $(d)/$(basedir)/jre/lib/security
+
+ : # FIXME: fix, move and install tapset files
+ rm -rf $(d)/$(basedir)/tapset
+
+ : # TODO: why do we provide a custom font.properties.ja?
+ : # cp -p debian/font.properties.ja $(d_jbin)/$(etcdir)/.
+# cp debian/font.properties.wgy_zenhai \
+# $(d)/$(etcdir)/font.properties.ja
+
+
+ : # now move things to the packages. it is so ****** to create
+ : # .install files first. dh_movefiles did do the job perfectly
+
+ : # $(p_jrehl).install / $(p_jre).install
+ ( \
+ echo 'etc'; \
+ echo '$(basedir)/jre/lib/jexec'; \
+ echo '$(basedir)/jre/lib/rt.jar'; \
+ echo '$(basedir)/jre/lib/security/*_policy.jar'; \
+ echo '$(basedir)/jre/man/ja'; \
+ echo '$(basedir)/man/ja'; \
+ echo '$(basedir)/bin/java-rmi.cgi'; \
+ ) > debian/$(p_jrehl).install
+ifneq (,$(DEB_HOST_MULTIARCH))
+ ( \
+ echo '$(basedir)/jre/lib/meta-index'; \
+ echo '$(basedir)/jre/lib/ext/meta-index'; \
+ ) >> debian/$(p_jrehl).install
+endif
+ $(RM) debian/$(p_jre).install
+
+ cd $(CURDIR)/$(d); \
+ for i in $(basedir)/jre/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+ case "$$i" in \
+ */policytool*) echo $$i >> ../$(p_jre).install;; \
+ *) echo $$i >> ../$(p_jrehl).install; \
+ esac; \
+ done
+
+ cd $(CURDIR)/$(d); \
+ for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+ [ -h $$i ] || continue; \
+ case "$$i" in \
+ */policytool*) echo $$i >> ../$(p_jre).install;; \
+ *) echo $$i >> ../$(p_jrehl).install; \
+ esac; \
+ done; \
+
+ cd $(CURDIR)/$(d); \
+ for i in $(basedir)/jre/lib/$(archdir)/*; do \
+ case "$$i" in \
+ */libjavagtk.so|*/libsplashscreen.so|*/libjsoundalsa.so|$(if $(with_pulse),*/libicedtea-sound.so|)*/xawt) echo $$i >> ../$(p_jre).install;; \
+ */jamvm) echo $$i >> ../$(p_jrej).install;; \
+ */zero|*/shark) echo $$i >> ../$(p_jrez).install;; \
+ *) echo $$i >> ../$(p_jrehl).install; \
+ esac; \
+ done
+
+ : # $(p_jrehl).install
+ ( \
+ echo '$(basedir)/jre/ASSEMBLY_EXCEPTION $(commonbasedir)/jre/'; \
+ echo '$(basedir)/jre/THIRD_PARTY_README $(commonbasedir)/jre/'; \
+ cd $(d); \
+ for i in $(basedir)/jre/lib/*; do \
+ case "$$i" in \
+ */$(archdir)|*/jexec|*/rt.jar|*/security$(if $(DEB_HOST_MULTIARCH),|*/meta-index)) \
+ continue; \
+ esac; \
+ echo $$i $(commonbasedir)/jre/lib/; \
+ done; \
+ ) >> debian/$(p_jrehl).install
+
+ : # $(p_jdkhl).install
+ ( \
+ cd $(d); \
+ for i in $(basedir)/include/*.h; do \
+ case $$i in */jawt.h) continue; esac; \
+ [ -h $$i ] && continue; \
+ echo $$i; \
+ done; \
+ echo '$(basedir)/include/*/jni_md.h'; \
+ echo '$(basedir)/lib/jexec'; \
+ echo '$(basedir)/LICENSE'; \
+ echo '$(basedir)/ASSEMBLY_EXCEPTION'; \
+ echo '$(basedir)/THIRD_PARTY_README'; \
+ for i in $(basedir)/lib/*; do \
+ case $$i in */jconsole.jar) continue; esac; \
+ [ -h $$i ] && continue; \
+ echo $$i; \
+ done; \
+ for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+ case $$i in */appletviewer*|*/jconsole*) continue; esac; \
+ [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \
+ echo $$i; \
+ done; \
+ ) > debian/$(p_jdkhl).install
+
+ : # $(p_jdk).install
+ ( \
+ cd $(d); \
+ for i in $(basedir)/include/*.h; do \
+ case $$i in */jawt.h) : ;; *) continue; esac; \
+ [ -h $$i ] && continue; \
+ echo $$i; \
+ done; \
+ echo '$(basedir)/include/*/jawt_md.h'; \
+ for i in $(basedir)/lib/*; do \
+ case $$i in */jconsole.jar) : ;; *) continue; esac; \
+ [ -h $$i ] && continue; \
+ echo $$i; \
+ done; \
+ for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \
+ case $$i in */appletviewer*|*/jconsole*) : ;; *) continue; esac; \
+ [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \
+ echo $$i; \
+ done; \
+ ) > debian/$(p_jdk).install
+
+ : # $(p_src).install
+ ( \
+ echo '$(basedir)/src.zip $(TOP)/$(basename)/'; \
+ ) > debian/$(p_src).install
+
+ : # move demos and samples, create symlinks for $(p_demo)
+ mkdir -p $(d)/usr/share/doc/$(p_jrehl)/demo
+ for i in $(d)/$(basedir)/demo/*; do \
+ b=$$(basename $$i); \
+ case "$$i" in \
+ */jvmti) \
+ echo $(basedir)/demo/$$b usr/share/doc/$(p_jrehl)/demo/$$b >> $(d_demo).links;; \
+ *) \
+ mv $$i $(d)/usr/share/doc/$(p_jrehl)/demo/$$b; \
+ echo usr/share/doc/$(p_jrehl)/demo/$$b $(basedir)/demo/$$b >> $(d_demo).links;; \
+ esac; \
+ done
+ mv $(d)/$(basedir)/sample $(d)/usr/share/doc/$(p_jrehl)/examples
+ echo usr/share/doc/$(p_jrehl)/examples $(basedir)/sample >> $(d_demo).links
+ echo usr/share/doc/$(p_jre) usr/share/doc/$(p_demo) >> $(d_demo).links
+
+ : # $(p_demo).install
+ ( \
+ echo '$(basedir)/demo'; \
+ echo 'usr/share/doc/$(p_jrehl)/examples'; \
+ echo 'usr/share/doc/$(p_jrehl)/demo'; \
+ ) > debian/$(p_demo).install
+
+ : # $(p_dbg).install
+ifneq (,$(wildcard $(d)/$(basedir)/jre/lib/$(archdir)/*.diz))
+ ( \
+ echo '$(basedir)/jre/lib/$(archdir)/*.diz'; \
+ echo '$(basedir)/jre/lib/$(archdir)/*/*.diz'; \
+ ) > debian/$(p_dbg).install
+endif
+ifneq (,$(wildcard $(d)/$(basedir)/jre/lib/$(archdir)/*.debuginfo))
+ ( \
+ echo '$(basedir)/jre/lib/$(archdir)/*.debuginfo'; \
+ echo '$(basedir)/jre/lib/$(archdir)/*/*.debuginfo'; \
+ ) > debian/$(p_dbg).install
+endif
+
+ dh_install --sourcedir=debian/tmp --fail-missing -XLICENSE -Xrelease
+
+ find $(d_jrehl) $(d_jre) $(d_jrez) $(d_jrej) -type f \
+ \( -name '*.debuginfo' -o -name '*.diz' \) -print | xargs -r rm -f
+
+ifneq (,$(DEB_HOST_MULTIARCH))
+ rm -f $(d_jrehl)/$(commonbasedir)/jre/lib/ext/meta-index
+endif
+
+ : # give all permissions to cross-VM extension directory
+ sed -i \
+ -e '/permission java\.security\.AllPermission;/,/};/c\' \
+ -e ' permission java.security.AllPermission;\' \
+ -e '};\' \
+ -e '\' \
+ $(if $(DEB_HOST_MULTIARCH),$(foreach i, $(lib_ext_dirs), \
+ -e 'grant codeBase "file:/$(TOP)/java-$(shortver)-$(origin)-$(i)/jre/lib/ext/*" {\' \
+ -e ' permission java.security.AllPermission;\' \
+ -e '};\')) \
+ -e '\' \
+ -e '// Comment this out if you want to give all permissions to the\' \
+ -e '// Debian Java repository too:\' \
+ -e '//grant codeBase "file:/usr/share/java/repository/-" {\' \
+ -e '// permission java.security.AllPermission;\' \
+ -e '//};\' \
+ -e '' \
+ $(d_jrehl)/$(security)/java.policy
+# 'make Emacs Makefile mode happy
+
+ dh_installdirs -p$(p_jrehl) \
+ usr/share/doc/$(p_jrehl) \
+ usr/share/binfmts
+
+ dh_installdirs -p$(p_jre) \
+ usr/share/applications \
+ usr/share/application-registry \
+ usr/share/mime-info \
+ usr/share/pixmaps
+
+ : # add GNOME stuff
+ cp -p debian/$(basename)-policytool.desktop \
+ $(d_jre)/usr/share/applications/
+ifneq (,$(findstring cautious-launcher, $(java_launcher)))
+ cp -p debian/$(basename)-java.desktop \
+ $(d_jre)/usr/share/applications/
+endif
+
+ for i in archive; do \
+ cp debian/$(basename)-$$i.applications \
+ $(d_jre)/usr/share/application-registry/; \
+ cp debian/$(basename)-$$i.keys $(d_jre)/usr/share/mime-info/; \
+ cp debian/$(basename)-$$i.mime $(d_jre)/usr/share/mime-info/; \
+ done
+
+ cp -p debian/sun_java.xpm \
+ $(d_jre)/usr/share/pixmaps/$(basename).xpm
+
+ mkdir -p $(d_demo)/usr/share/pixmaps
+ cp -p debian/sun_java_app.xpm \
+ $(d_demo)/usr/share/pixmaps/$(basename)-app.xpm
+
+ : # install icons
+ for i in 16 24 32 48; do \
+ install -D -m 644 -p src/jdk/src/solaris/classes/sun/awt/X11/java-icon$${i}.png \
+ $(d_jre)/usr/share/icons/hicolor/$${i}x$${i}/apps/$(basename).png; \
+ done
+
+ : # create docdir symlinks for $(p_jrehl)
+ ( \
+ echo usr/share/doc/$(p_jrehl) $(basedir)/docs; \
+ ) > $(d_jrehl).links
+ifneq (,$(DEB_HOST_MULTIARCH))
+ echo '/$(basedir) /usr/lib/jvm/$(jdirname)' >> $(d_jrehl).links
+endif
+
+ : # create docdir symlinks for $(p_jre)
+ ( \
+ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jre); \
+ ) > $(d_jre).links
+
+ifneq (,$(filter shark zero, $(alternate_vms)))
+ : # create docdir symlinks for $(p_jrez)
+ ( \
+ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jrez); \
+ ) > $(d_jrez).links
+endif
+
+ : # create docdir symlinks for $(p_src)
+ ( \
+ echo usr/share/doc/$(p_jre) usr/share/doc/$(p_src); \
+ ) > $(d_src).links
+
+ : # create docdir symlinks for $(p_jdkhl)
+ ( \
+ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_jdkhl); \
+ ) > $(d_jdkhl).links
+
+ : # create docdir symlinks for $(p_jdk)
+ ( \
+ echo usr/share/doc/$(p_jre) usr/share/doc/$(p_jdk); \
+ ) > $(d_jdk).links
+# doesn't work, no package dependency
+ifneq (,$(DEB_HOST_MULTIARCH))
+ echo '$(TOP)/$(basename)/src.zip $(basedir)/src.zip' >> $(d_jdkhl).links
+endif
+
+ : # create docdir symlinks for $(p_dbg)
+ ( \
+ echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_dbg); \
+ ) > $(d_dbg).links
+
+ifeq ($(with_bridge),atk)
+ : # create links for the atk wrapper
+ echo "usr/share/java/java-atk-wrapper.jar $(basedir)/jre/lib/ext/java-atk-wrapper.jar" \
+ >> $(d_jre).links
+ echo "usr/lib$(multiarch_dir)/jni/libatk-wrapper.so $(basedir)/jre/lib/ext/libatk-wrapper.so" \
+ >> $(d_jre).links
+else ifneq (,$(with_bridge))
+ : # create links for the gnome accessibility bridge
+ echo "usr/share/java/gnome-java-bridge.jar $(basedir)/jre/lib/ext/gnome-java-bridge.jar" \
+ >> $(d_jre).links
+ ifeq ($(with_jni_bridge),yes)
+ echo "usr/lib$(multiarch_dir)/jni/libjava-access-bridge-jni.so $(basedir)/jre/lib/ext/libjava-access-bridge-jni.so" \
+ >> $(d_jre).links
+ endif
+endif
+
+ifeq ($(with_tzdata),yes)
+ echo usr/share/javazi $(basedir)/jre/lib/zi \
+ >> $(d_jrehl).links
+endif
+
+ : # create links for the config files
+ find $(d_jrehl)/$(etcdir) -type f ! -name jvm.cfg \
+ -printf "$(etcdir)/%P $(basedir)/jre/lib/%P\n" >> $(d_jrehl).links
+ifneq (,$(DEB_HOST_MULTIARCH))
+ mv $(d_jrehl)/$(etcdir)/jvm.cfg \
+ $(d_jrehl)/$(etcdir)/jvm-$(DEB_HOST_ARCH).cfg
+ ( \
+ echo "$(etcdir)/jvm-$(DEB_HOST_ARCH).cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg"; \
+ ) >> $(d_jrehl).links
+else
+ ( \
+ echo "$(etcdir)/jvm.cfg $(basedir)/jre/lib/$(archdir)/jvm.cfg"; \
+ ) >> $(d_jrehl).links
+endif
+ifneq (,$(pkg_certs))
+ echo "etc/ssl/certs/java/cacerts $(basedir)/jre/lib/security/cacerts" \
+ >> $(d_jrehl).links
+endif
+
+ @echo JRE_HL_TOOLS: $(jre_hl_tools_alt) jexec
+ @echo JRE_TOOLS: $(jre_tools_alt)
+ @echo JDK_HL_TOOLS: $(jdk_hl_tools_alt)
+ @echo JDK_TOOLS: $(jdk_tools_alt)
+ ( \
+ echo 'name=$(jdirname)'; \
+ echo 'alias=$(jdiralias)'; \
+ echo 'priority=$(priority)'; \
+ echo 'section=main'; \
+ echo ''; \
+ for i in $(jre_hl_tools_alt); do \
+ echo "hl $$i /$(basedir)/jre/bin/$$i"; \
+ done; \
+ echo "hl jexec /$(basedir)/jre/lib/jexec"; \
+ for i in $(jre_tools_alt); do \
+ echo "jre $$i /$(basedir)/jre/bin/$$i"; \
+ done; \
+ for i in $(jdk_hl_tools_alt); do \
+ echo "jdkhl $$i /$(basedir)/bin/$$i"; \
+ done; \
+ for i in $(jdk_tools_alt); do \
+ echo "jdk $$i /$(basedir)/bin/$$i"; \
+ done; \
+ for d in $(browser_plugin_dirs); do \
+ echo "plugin $$d-javaplugin.so /$(basedir)/jre/lib/$(archdir)/$(plugin_name)"; \
+ done; \
+ ) > $(d_jrehl)/$(TOP)/.$(jdiralias).jinfo
+
+ ( \
+ echo 'package $(basename)'; \
+ echo 'interpreter /usr/bin/jexec'; \
+ echo 'magic PK\x03\x04'; \
+ ) > $(d_jrehl)/$(basedir)/jre/lib/jar.binfmt
+
+ : # another jvm symlink
+ ln -sf $(jdirname) $(d_jrehl)/usr/lib/jvm/$(jdiralias)
+
+ifeq ($(with_systemtap),yes FIXME)
+ : # systemtap support
+ mkdir -p $(d_jrehl)/usr/share/systemtap/tapset
+ cp -p build/tapset/hotspot.stp $(d_jrehl)/usr/share/systemtap/tapset/
+endif
+
+ : # OpenJDK Stack Unwinder and Frame Decorator
+ifneq (,$(filter $(DEB_HOST_ARCH),amd64 kfreebsd-amd64))
+ mkdir -p $(d_jrehl)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/server
+ cp debian/dbg8.py \
+ $(d_jrehl)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/server/libjvm.so-gdb.py
+ ifneq (,$(filter zero, $(alternate_vms)))
+ mkdir -p $(d_jrez)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/zero
+ ln -sf ../server/libjvm.so-gdb.py \
+ $(d_jrez)/usr/share/gdb/auto-load/$(basedir)/jre/lib/$(archdir)/zero/libjvm.so
+ endif
+endif
+
+ifeq (0,1)
+ : # Install stuff to generate font config and timezone files.
+ mkdir -p $(d_jrehl)/$(commonbasedir)/jre/lib
+# FIXME: not built in 8
+ cp -p build/openjdk.build/btjars/compilefontconfig.jar \
+ $(d_jrehl)/$(commonbasedir)/jre/lib/
+ cp -p build/openjdk.build/btjars/javazic.jar \
+ $(d_jrehl)/$(commonbasedir)/jre/lib/
+endif
+
+ : # install lintian overrides
+ for FILE in debian/*.overrides; do \
+ PKG=`basename $$FILE .overrides`; \
+ install -D -m644 $$FILE debian/$$PKG/usr/share/lintian/overrides/$$PKG; \
+ done
+
+nodocs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),-N$(p_doc))
+nojrej = $(if $(filter jamvm, $(alternate_vms)),,-N$(p_jrej))
+nojrez = $(if $(filter shark zero, $(alternate_vms)),,-N$(p_jrez))
+
+# Build architecture independant packages
+binary-indep: build stamps/build-docs install
+ dh_testdir
+ dh_testroot
+ifeq ($(with_docs),yes)
+ dh_installchangelogs -p$(p_doc)
+ dh_installdocs -p$(p_doc)
+ mkdir -p $(d_doc)/usr/share/doc/$(p_jrehl)
+ for i in $(builddir)/docs/*; do \
+ [ -e $$i ] || continue; \
+ b=$$(basename $$i); \
+ cp -a $$i $(d_doc)/usr/share/doc/$(p_jrehl)/; \
+ ln -sf ../$(p_jrehl)/$$b $(d_doc)/usr/share/doc/$(p_doc)/$$b; \
+ done
+endif
+# FIXME: desktop and menu files not ready for multiarch. #658321
+ifeq (,$(DEB_HOST_MULTIARCH))
+ dh_installmenu -i $(nodocs)
+endif
+ -dh_icons -i $(nodocs) || dh_iconcache -i $(nodocs)
+# dh_installdebconf -i $(nodocs)
+ dh_link -i $(nodocs)
+ dh_compress -i $(nodocs) -Xexamples -Xdemo -Xpackage-list
+ dh_fixperms -i $(nodocs)
+ dh_installdeb -i $(nodocs)
+ dh_gencontrol -i $(nodocs) -- $(control_vars)
+ dh_md5sums -i $(nodocs)
+ dh_builddeb -i $(nodocs) $(bd_options)
+
+absarchdir = $(CURDIR)/$(d_jrehl)/$(basedir)/jre/lib/$(archdir)
+shlibdeps_ld_path =$(absarchdir):$(absarchdir)/client:$(absarchdir)/server:$(absarchdir)/native_threads$(if $(xulrunner_depends),:$(shell pkg-config --libs-only-L libxul | sed 's/^-L//;s/-devel//;s,/lib *$$,,'))
+
+# pass vm name as first argument
+define install_test_results
+ mkdir -p $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)
+# -cp mauve-$(1)/mauve_output-$(1) \
+# $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/mauve_output-$(1).log
+ -cp jtreg_output-$(1) \
+ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/jtreg_output-$(1).log
+ -cp test/jtreg-summary-$(1).log test/check-*-$(1).log \
+ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/
+ -cp test/failed_tests-$(1).tar.gz \
+ $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/failed_tests-$(1).tar.gz
+endef
+
+# Build architecture dependant packages
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs -p$(p_jrehl)
+ dh_installdocs -p$(p_jrehl) \
+ debian/JAVA_HOME \
+ debian/README.alternatives \
+ debian/README.Debian
+ifeq (0,1)
+# FIXME: IcedTea specific bits
+ for i in AUTHORS NEWS README; do \
+ cp -p $$i $(d_jrehl)/usr/share/doc/$(p_jrehl)/$$i.IcedTea; \
+ done
+endif
+ $(call install_test_results,$(default_vm))
+
+ifneq (,$(filter jamvm, $(alternate_vms)))
+ dh_installchangelogs -p$(p_jrej)
+ dh_installdocs -p$(p_jrej)
+ $(call install_test_results,jamvm)
+endif
+ifneq (,$(filter zero, $(alternate_vms)))
+ $(call install_test_results,zero)
+endif
+# FIXME: desktop and menu files not ready for multiarch. #658321
+ifeq (,$(DEB_HOST_MULTIARCH))
+ dh_installmenu -s $(nodemo) $(nojrej) $(nojrez)
+endif
+ -dh_icons -s $(nodemo) $(nojrej) $(nojrez) \
+ || dh_iconcache -s $(nodemo) $(nojrej) $(nojrez)
+# dh_installdebconf -s $(nodemo) $(nojrej) $(nojrez)
+ dh_link -s $(nodemo) $(nojrej) $(nojrez)
+ $(if $(filter $(dh_version), 5 6 7 8),NADA=,DH_COMPAT=9) dh_strip -s \
+ $(nodemo) $(nojrej) $(nojrez) \
+ -Xlibjvm.so -X.debuginfo --dbg-package=$(p_dbg)
+
+ifeq (,$(findstring nostrip, $(DEB_BUILD_OPTIONS)))
+ set -ex; \
+ for i in {$(d_jrehl),$(d_jre),$(d_jrez)}/$(basedir)/jre/lib/$(archdir)/*/libjvm.so; do \
+ [ -f $$i ] || continue; \
+ b_id=$$(LC_ALL=C readelf -n $$i | sed -n 's/ *Build ID: *\([0-9a-f][0-9a-f]*\)/\1/p'); \
+ if [ -z "$$b_id" ] || [ "$(dh_version)" -lt 9 ]; then \
+ id=$$(echo $$i | sed -r 's,debian/[^/]+,$(d_dbg)/usr/lib/debug,'); \
+ echo strip $$i; \
+ mkdir -p $$(dirname $$id); \
+ objcopy --only-keep-debug $$i $$id; \
+ chmod 644 $$id; \
+ strip --remove-section=.comment --remove-section=.note \
+ --strip-debug $$i; \
+ objcopy --add-gnu-debuglink $$id $$i; \
+ else \
+ d=usr/lib/debug/.build-id/$${b_id:0:2}; \
+ f=$${b_id:2}.debug; \
+ mkdir -p $(d_dbg)/$$d; \
+ objcopy --only-keep-debug --compress-debug-sections $$i $(d_dbg)/$$d/$$f; \
+ chmod 644 $(d_dbg)/$$d/$$f; \
+ strip --remove-section=.comment --remove-section=.note $$i; \
+ pushd $(d_dbg)/$$d >/dev/null; \
+ objcopy --add-gnu-debuglink $$f $(CURDIR)/$$i; \
+ popd >/dev/null; \
+ fi; \
+ done
+endif
+
+ dh_compress -s $(nodemo) $(nojrej) $(nojrez) -Xexamples -Xdemo -Xpackage-list
+ dh_fixperms -s $(nodemo) $(nojrej) $(nojrez)
+ dh_makeshlibs -p$(p_jrehl) -p$(p_jre)
+ dh_shlibdeps -s $(nodemo) $(nojrej) $(nojrez) -L $(p_jrehl) \
+ -l$(shlibdeps_ld_path) \
+ --
+ dh_installdeb -s $(nodemo) $(nojrej) $(nojrez)
+ dh_gencontrol -s $(nodemo) $(nojrej) $(nojrez) \
+ -- $(control_vars)
+ dh_md5sums -s $(nodemo) $(nojrej) $(nojrez)
+ : # FIXME: something seems to hang here ...
+ -ps afx
+ NO_PKG_MANGLE=1 \
+ dh_builddeb -s $(nodemo) $(nojrej) $(nojrez) #$(bd_options)
+
+is_release =
+is_release = yes
+hg_project = jdk8u
+hg_tag = jdk8u131-b11
+package_version = $(subst jdk,,$(hg_tag))
+ifneq ($(is_release),yes)
+ package_version := $(subst -,~,$(package_version))
+endif
+hg_url = http://hg.openjdk.java.net/jdk8u/$(hg_project)
+hg_project_aarch64 = jdk8u
+hg_tag_aarch64 = aarch64-jdk8u131-b12
+hg_url_aarch64 = http://hg.openjdk.java.net/aarch64-port/$(hg_project_aarch64)
+origdir = ../openjdk-8-$(package_version).orig
+get-orig:
+ mkdir $(origdir)
+ wget -O $(origdir)/root.tar.bz2 $(hg_url)/archive/$(hg_tag).tar.bz2
+ for repo in corba jaxp jaxws langtools hotspot jdk nashorn; do \
+ wget -O $(origdir)/$$repo.tar.bz2 \
+ $(hg_url)/$$repo/archive/$(hg_tag).tar.bz2; \
+ done
+ wget -O $(origdir)/hotspot-aarch64.tar.bz2 \
+ $(hg_url_aarch64)/hotspot/archive/$(hg_tag_aarch64).tar.bz2
+
+ wget -O $(origdir)/icedtea-sound.tar.xz \
+ http://icedtea.classpath.org/download/source/icedtea-sound-1.0.1.tar.xz
+
+# wget -O $(origdir)/icedtea-sound.tar.bz2 \
+# http://icedtea.classpath.org/hg/icedtea-sound/archive/tip.tar.bz2
+
+ wget -O $(origdir)/jamvm.tar.gz \
+ http://downloads.sourceforge.net/project/jamvm/jamvm/JamVM%202.0.0/jamvm-2.0.0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fjamvm%2Ffiles%2Fjamvm%2FJamVM%25202.0.0%2F&ts=1422282260&use_mirror=netcologne
+
+ : # remove JSON license from THIRD_PARTY_README; no files shipped
+ set -ex; \
+ for repo in root corba jaxp jaxws langtools hotspot jdk nashorn hotspot-aarch64; do \
+ [ -f $(origdir)/$$repo.tar.bz2 ] || continue; \
+ d=$$(tar tf $(origdir)/$$repo.tar.bz2 | head -1 | sed 's,/.*,,'); \
+ tar xf $(origdir)/$$repo.tar.bz2; \
+ find $$d -maxdepth 2 -name THIRD_PARTY_README; \
+ for f in $$(find $$d -maxdepth 2 -name THIRD_PARTY_README); do \
+ awk '/^%% This notice is provided with respect to JSON/ { skip=1 } skip == 0 {print} /^----------/ { skip = 0} ' $$f > $$f.new; \
+ diff -u $$f $$f.new || true; \
+ mv $$f.new $$f; \
+ done; \
+ case $$repo in jdk) \
+ rm -v -rf $$d/src/share/native/java/util/zip/zlib-*; \
+ find $$d/src/share/native/sun/awt/image/jpeg \
+ ! -name imageioJPEG.c ! -name jpegdecoder.c ! -name jinclude.h \
+ -type f -print -delete; \
+ rm -v -rf $$d/src/share/native/sun/awt/giflib; \
+ rm -v -rf $$d/src/share/native/sun/awt/libpng; \
+ rm -v -f $$d/src/share/native/sun/java2d/cmm/lcms/cms*.c; \
+ rm -v -f $$d/src/share/native/sun/java2d/cmm/lcms/lcms2*.h; \
+ rm -v -rf $$d/src/solaris/native/sun/security/smartcardio/MUSCLE; \
+ esac; \
+ tar cfJ $(origdir)/$$repo.tar.xz $$d; \
+ rm -rf $$d; \
+ rm -f $(origdir)/$$repo.tar.bz2; \
+ done
+
+binary: binary-arch binary-indep
+.PHONY: build build-arch build-indep clean binary-indep binary-arch binary install packaging-files