#!/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_ARCH_OS ?= $(call vafilt,$(DPKG_VARS),DEB_HOST_ARCH_OS) 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 illumos-amd64 # 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= 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 illumos-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 illumos-amd64, $(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_OS), illumos)) with_systemtap = no 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 ifneq (,$(filter $(DEB_HOST_ARCH), illumos-amd64)) COMMON_PATCHES += dyson.patch 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 , 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) | util-illumos' 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 patch -p1 < debian/patches/dyson-icedtea-sound.patch cd icedtea-sound && autoreconf -fiv 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),,g;s,$(CURDIR),,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 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_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) \ $$([ -f $(d)/$(basedir)/jre/lib/security/sunpkcs11-solaris.cfg ] && echo security/sunpkcs11-solaris.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