diff options
author | Matthias Klose <doko@ubuntu.com> | 2013-05-02 03:27:44 +0200 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2013-05-08 12:54:30 +0200 |
commit | 21950708c7bcb0b68050a3e4621bfe0cec6b032c (patch) | |
tree | 914a1088221b2427b2abbd4d3d1b5e8813f5a162 /debian/rules | |
parent | 9a8e56049ebf9f0878c7fe3efc0921df8aa6a0ba (diff) |
Imported Debian patch 7u21-2.3.9-4debian/7u21-2.3.9-4
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 2007 |
1 files changed, 2007 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..f41d93b --- /dev/null +++ b/debian/rules @@ -0,0 +1,2007 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +unexport LANG LC_ALL + +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_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) +ifeq ($(distrel),n/a) + distrel := sid +endif + +multiarch_dir = /$(DEB_HOST_MULTIARCH) +ifneq (,$(DEB_HOST_MULTIARCH)) + ifneq (,$(filter $(distrel),natty oneiric)) + DEB_HOST_MULTIARCH = + multiarch_dir = + endif +endif + +hotspot_archs = amd64 i386 lpia sparc sparc64 kfreebsd-amd64 kfreebsd-i386 +# requires llvm; llvm in jaunty is recent enough, but in universe +ifeq (,$(filter $(distrel),lenny jaunty intrepid hardy)) + shark_archs = amd64 i386 lpia kfreebsd-amd64 kfreebsd-i386 + # Shark build but just crash + shark_archs = +endif + +ifneq (,$(filter $(distrel),hardy intrepid jaunty karmic lucid maverick natty oneiric precise lenny etch squeeze wheezy)) + is_default = no +else + is_default = yes +endif + +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)),1071,1051) + vm_name = Hotspot JIT +else ifneq (,$(filter $(DEB_HOST_ARCH), $(shark_archs))) + priority = $(if $(filter yes, $(is_default)),1065,1045) + vm_name = Hotspot Shark +else + priority = $(if $(filter yes, $(is_default)),1063,1043) + vm_name = Hotspot Zero +endif +p_lib_arch = all +jvmver = 1.7.0 +shortver = 7 +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 + 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 +jreimg = openjdk.build/j2re-image +sdkimg = openjdk.build/j2sdk-image + +# 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)))) + HOTSPOT_BUILD_JOBS = $(NJOBS) + ALT_PARALLEL_COMPILE_JOBS = $(NJOBS) + export HOTSPOT_BUILD_JOBS + export ALT_PARALLEL_COMPILE_JOBS +endif + +# make the build log comparable +#export HOTSPOT_BUILD_JOBS = 1 +#export ALT_PARALLEL_COMPILE_JOBS = 1 + +# Extracting debug symbols done by dh_strip +export ALT_OBJCOPY=fake +export ALT_STRIP_POLICY=no_strip + +with_check = $(if $(findstring nocheck, $(DEB_BUILD_OPTIONS)),,yes) +ifneq (,$(filter $(DEB_HOST_ARCH), armel powerpc)) +with_check = disabled for this upload +endif +with_docs = $(if $(findstring nodocs, $(DEB_BUILD_OPTIONS)),,yes) +ifneq (,$(findstring cacao shark, $(PKGSOURCE))) + with_docs = disabled for cacao and shark +endif + +with_wgy_zenhai = $(if $(filter $(distrel),lenny),,yes) + +arch_map := alpha=alpha arm=arm armel=arm armhf=arm amd64=amd64 hppa=parisc i386=i586 lpia=i586 m68k=m68k mips=mips mipsel=mipsel powerpc=ppc powerpcspe=ppc ppc64=ppc64 sparc=sparc sparc64=sparc64 sh4=sh s390=s390 s390x=s390x ia64=ia64 m68k=m68k +archdir_map := alpha=alpha arm=arm armel=arm armhf=arm amd64=amd64 hppa=parisc i386=i386 lpia=i386 m68k=m68k mips=mips mipsel=mipsel powerpc=ppc powerpcspe=ppc ppc64=ppc64 sparc=sparc sparc64=sparcv9 sh4=sh s390=s390 s390x=s390x ia64=ia64 m68k=m68k + +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)))) + +default_vm = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),hotspot,zero) +hotspot_version = $(if $(filter $(DEB_HOST_ARCH), $(hotspot_archs)),default,zero) + +any_archs = amd64 armel armhf i386 ia64 lpia powerpc powerpcspe ppc64 m68k sh4 sparc sparc64 s390 s390x x32 kfreebsd-i386 kfreebsd-amd64 +stage1_gcj_archs = amd64 armel armhf hppa i386 ia64 lpia powerpc powerpcspe ppc64 m68k mips mipsel sh4 sparc sparc64 s390 s390x x32 kfreebsd-i386 kfreebsd-amd64 +stage1_openjdk_archs = alpha +stage1_cacao_archs = +ifneq (,$(filter nobootstrap, $(DEB_BUILD_OPTIONS))) + stage1_openjdk_archs := $(stage1_openjdk_archs) $(stage1_gcj_archs) + stage1_gcj_archs := +else ifneq (,$(filter $(distrel),hardy jaunty)) + stage1_openjdk_archs := $(filter-out armel, $(stage1_openjdk_archs) $(stage1_gcj_archs)) + stage1_gcj_archs := armel +else ifneq (,$(filter $(distrel),lenny)) + stage1_gcj_archs := $(filter-out ia64, $(stage1_gcj_archs)) + stage1_openjdk_archs := $(stage1_openjdk_archs) ia64 +endif + +ifeq (,$(filter $(distrel),lenny intrepid hardy)) + cacao_archs = alpha amd64 armel armhf i386 lpia powerpc m68k mips mipsel s390 + # TODO kfreebsd porting for cacao vm +endif +cacao_archs = +ifneq (,$(filter $(distrel),wheezy sid precise quantal)) + transitional_cacao_pkg = yes +endif + +ifeq (,$(filter $(distrel),squeeze lenny maverick lucid karmic hardy)) + jamvm_archs = amd64 armel armhf i386 lpia mips mipsel powerpc kfreebsd-i386 kfreebsd-amd64 +endif +ifeq (,$(filter $(distrel),wheezy sid squeeze lenny maverick natty maverick lucid karmic hardy)) + jamvm_defaults = +endif + +# requires patched llvm-2.6 +ifeq (,$(filter $(distrel),lenny jaunty intrepid hardy)) + altshark_archs = powerpc ppc64 + # Shark build but just crash + altshark_archs = +endif +altzero_archs = $(filter-out sparc sparc64, $(hotspot_archs)) $(altshark_archs) +ifneq (,$(filter $(distrel),lenny hardy intrepid)) + altzero_archs = + altshark_archs = +endif + +ifeq (,$(filter noaltcacao, $(DEB_BUILD_OPTIONS))) + ifneq (,$(filter $(DEB_HOST_ARCH), $(cacao_archs))) + alternate_vms += cacao + endif +endif +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 + +ifneq (,$(filter $(DEB_HOST_ARCH), $(stage1_gcj_archs))) + STAGE1_JAVA = gcj + STAGE1_HOME = /usr/lib/jvm/java-gcj + ifneq (,$(filter $(DEB_HOST_ARCH), m68k s390)) + STAGE1_HOME = /usr/lib/jvm/java-1.5.0-gcj-4.6 + endif + ifneq (,$(filter $(DEB_HOST_ARCH), ia64)) + STAGE1_HOME = /usr/lib/jvm/java-1.5.0-gcj-4.7 + endif +else ifneq (,$(filter $(DEB_HOST_ARCH), $(stage1_openjdk_archs))) + STAGE1_JAVA = openjdk + STAGE1_HOME = $(firstword $(wildcard /usr/lib/jvm/java-6-openjdk-$(DEB_HOST_ARCH) /usr/lib/jvm/java-6-openjdk)) + STAGE1_HOME = $(firstword $(wildcard /usr/lib/jvm/java-7-openjdk-$(DEB_HOST_ARCH) /usr/lib/jvm/java-7-openjdk)) +else ifneq (,$(filter $(DEB_HOST_ARCH), $(stage1_cacao_archs))) + STAGE1_JAVA = cacao + STAGE1_HOME = /usr/lib/jvm/java-6-cacao +else + $(error unknown bootstrap method for architecture $(DEB_HOST_ARCH)) +endif + +OPENJDK_VERSION = b130 +OPENJDK_SRC_ZIP = openjdk-7-ea-src-$(OPENJDK_VERSION)-25_mar_2010-dfsg.tar.gz +# the version of the build dependency for non-bootstrap builds; only adjust if +# the package is installable on all these architectures. +req_openjdk_bd_ver = 6b18 +req_openjdk_ver = 7~b130~pre0 + +# for Hotspot: hotspot/make/linux/makefiles/vm.make +# Don't overwrite Hotspot opt level : +# -O3 is already default option for hotspot +dpkg_buildflags_hs = DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2" +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" DEB_CXXFLAGS_MAINT_STRIP="-O2" +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 Icedtea: Makefile.am +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) + +#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 CACAO: Makefile.am +ifeq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) +dpkg_buildflags_cacao += DEB_CFLAGS_MAINT_STRIP="-O2" DEB_CXXFLAGS_MAINT_STRIP="-O2" +dpkg_buildflags_cacao += DEB_CFLAGS_MAINT_APPEND="-O3" DEB_CXXFLAGS_MAINT_APPEND="-O3" +endif +dpkg_buildflags_cacao += dpkg-buildflags +export EXTRA_CPPFLAGS_CACAO := $(shell $(dpkg_buildflags_cacao) --get CPPFLAGS) +export EXTRA_CFLAGS_CACAO := $(shell $(dpkg_buildflags_cacao) --get CFLAGS) +export EXTRA_CXXFLAGS_CACAO := $(shell $(dpkg_buildflags_cacao) --get CXXFLAGS) +export EXTRA_LDFLAGS_CACAO := $(shell $(dpkg_buildflags_cacao) --get LDFLAGS) + +# This section should be in sync with "bd_gcc" definition +ifneq (,$(filter $(distrel),hardy)) + ifneq (,$(filter $(DEB_HOST_ARCH), i386 lpia)) + export CC = gcc-4.1 + export CXX = g++-4.1 + GCJ_SUFFIX = -4.2 + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 powerpc sparc)) + export CC = gcc-4.2 + export CXX = g++-4.2 + endif +else ifneq (,$(filter $(distrel),lenny intrepid jaunty)) + export CC = gcc-4.3 + export CXX = g++-4.3 + GCJ_SUFFIX = -4.3 +else ifneq (,$(filter $(distrel),squeeze karmic lucid maverick)) + export CC = gcc-4.4 + export CXX = g++-4.4 + GCJ_SUFFIX = -4.4 +else ifneq (,$(filter $(distrel),natty)) + export CC = gcc-4.5 + export CXX = g++-4.5 + GCJ_SUFFIX = -4.5 +else ifneq (,$(filter $(distrel),wheezy sid)) + export CC = gcc-4.7 + export CXX = g++-4.7 + GCJ_SUFFIX = -4.7 + ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel)) + export CC = gcc-4.4 + export CXX = g++-4.4 + endif + ifneq (,$(filter $(DEB_HOST_ARCH), m68k s390)) + GCJ_SUFFIX = -4.6 + endif +else ifneq (,$(filter $(distrel),oneiric precise)) + export CC = gcc-4.6 + export CXX = g++-4.6 + GCJ_SUFFIX = -4.6 +else + export CC = gcc-4.7 + export CXX = g++-4.7 + GCJ_SUFFIX = -4.7 +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf)) +ifeq ($(distribution),Ubuntu) + ifneq (,$(filter $(distrel),jaunty)) + OPT_CFLAGS/cppInterpreter_arm.o = -O2 -falign-functions=32 -falign-loops=8 -g0 + else + OPT_CFLAGS/cppInterpreter_arm.o = -march=armv6 -mtune=cortex-a8 -O2 -falign-functions=64 -falign-loops=8 -g0 + endif +else + OPT_CFLAGS/cppInterpreter_arm.o = -O2 -falign-functions=32 -falign-loops=8 -g0 +endif +export OPT_CFLAGS/cppInterpreter_arm.o +endif + +ifeq (,$(filter $(distrel),lenny intrepid hardy)) + with_pulse = yes +endif + +ifneq (,$(filter $(distrel),lenny jaunty intrepid hardy)) + with_bridge = +else ifneq (,$(filter $(distrel),squeeze karmic lucid maverick natty oneiric)) + with_bridge = bridge + with_jni_bridge = yes +else + with_bridge = atk +endif + +ifeq (,$(filter $(distrel),lenny karmic jaunty intrepid hardy)) + with_nss = yes +endif + +with_tzdata = yes + +ifneq (,$(filter $(distrel),lenny squeeze natty maverick lucid karmic jaunty intrepid hardy)) + lcms_version = 1 +else + lcms_version = 2 +endif + +on_buildd := $(shell [ -f /CurrentlyBuilding -o "$$LOGNAME" = buildd ] && echo yes) + +ifeq ($(distribution),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 = metacity | twm, dbus-x11 | twm, + 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 + bd_wm = metacity | twm, + ifeq (,$(filter $(distrel),etch)) + bd_wm += dbus-x11, + endif +endif +ifeq ($(with_wm),metacity) + with_wm_prefix = dbus-launch --exit-with-session +endif + +#ifeq (,$(filter $(distrel),lenny jaunty intrepid hardy)) +# with_systemtap = yes +#endif + +ifneq (,$(filter $(DEB_HOST_ARCH), sparc64)) + USE_PRECOMPILED_HEADER = 0 + export USE_PRECOMPILED_HEADER +endif + +DISTRIBUTION_PATCHES += \ + debian/patches/ld-symbolic-functions.diff \ + debian/patches/shebang.diff \ + debian/patches/jdk-freetypeScaler-crash.diff \ + debian/patches/icedtea-pretend-memory.diff \ + debian/patches/default-jvm-cfg.diff \ + debian/patches/nonreparenting-wm.diff \ + debian/patches/accessible-toolkit.patch \ + debian/patches/fix_extra_flags-$(hotspot_version).diff + +ifeq ($(with_bridge),atk) + DISTRIBUTION_PATCHES += \ + debian/patches/atk-wrapper-security.patch +else ifneq (,$(with_bridge)) + DISTRIBUTION_PATCHES += \ + debian/patches/java-access-bridge-security.patch +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), s390 s390x)) + DISTRIBUTION_PATCHES += \ + debian/patches/hotspot-s390.diff \ + debian/patches/s390_hotspot_fix.diff +endif + +DISTRIBUTION_PATCHES += \ + debian/patches/icedtea-override-redirect-compiz.patch \ + debian/patches/icedtea-4953367.patch \ + debian/patches/fontconfig-wqy-microhei.patch \ + debian/patches/hotspot-no-werror-$(hotspot_version).diff \ + debian/patches/icc_loading_with_symlink.diff \ + debian/patches/hotspot-sparc-arch.diff \ + debian/patches/sparc-trapsfix.patch \ + debian/patches/sparc-stubgenerator.diff \ + debian/patches/zero-fpu-control-is-noop.diff \ + debian/patches/hotspot-no-march-i586.diff \ + debian/patches/zero-missing-headers.diff \ + debian/patches/enumipv6-fix.patch \ + debian/patches/libpcsclite-dlopen.diff \ + debian/patches/jni_md_h_JNIEXPORT_visibility.patch \ + debian/patches/7130140-MouseEvent-systemout.diff \ + debian/patches/FreetypeFontScaler_getFontMetricsNative.diff \ + debian/patches/text-relocations.diff \ + debian/patches/dnd-files.patch \ + debian/patches/no-pch-build.diff \ + debian/patches/zero-opt.diff \ + +# FIXME CACAO update needed +#ifeq ($(DEB_HOST_ARCH),armel) +# ifeq ($(distrel),quantal) +# DISTRIBUTION_PATCHES += debian/patches/cacao-armv4.diff +# else ifeq ($(distribution),Debian) +# DISTRIBUTION_PATCHES += debian/patches/cacao-armv4.diff +# endif +#endif + +# FIXME needs an update: +# $(if $(with_wgy_zenhai),,debian/patches/fontconfig-arphic-uming.diff) \ + +ifeq (,$(filter $(distrel),lenny squeeze oneiric natty maverick lucid jaunty intrepid hardy)) + DISTRIBUTION_PATCHES += \ + debian/patches/fontconfig-korean-nanum.diff \ + debian/patches/fontconfig-japanese.diff +endif + +# debian/patches/sparc-inline.diff \ +# debian/patches/pkcs11-secmod-debug.diff \ + + DISTRIBUTION_PATCHES += \ + debian/patches/hotspot-libpath-$(hotspot_version).diff + +# debian/patches/hotspot-warn-no-errformat.diff \ + +ifeq ($(distribution),Ubuntu) + DISTRIBUTION_PATCHES += \ + debian/patches/openjdk-ubuntu-branding.patch +endif + +ifeq ($(with_pulse),yes) + # only in karmic and later the default + ifeq (,$(filter $(distrel), lenny squeeze sid jaunty intrepid hardy)) + DISTRIBUTION_PATCHES += \ + debian/patches/jdk-pulseaudio.diff + endif +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), alpha)) + DISTRIBUTION_BOOT_PATCHES += \ + debian/patches/alpha-float-const.diff +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386)) + DISTRIBUTION_PATCHES += \ + debian/patches/kfreebsd-support-jdk.diff \ + debian/patches/kfreebsd-support-hotspot.diff \ + debian/patches/kfreebsd-support-corba.diff \ + debian/patches/kfreebsd-sync-issues.diff + + ifeq (,$(filter noaltjamvm, $(DEB_BUILD_OPTIONS))) + ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs))) + DISTRIBUTION_PATCHES += debian/patches/kfreebsd-support-jamvm.diff + endif + endif +endif + +export DISTRIBUTION_PATCHES DISTRIBUTION_BOOT_PATCHES + +ifeq ($(STAGE1_JAVA),gcj) + CONFIGURE_ARGS = \ + --with-jdk-home=$(STAGE1_HOME) \ + --with-ecj-jar=$(STAGE1_HOME)/lib/ecj.jar \ + --with-javac=$(STAGE1_HOME)/bin/javac \ + --with-java=$(STAGE1_HOME)/bin/java \ + --with-javah=$(STAGE1_HOME)/bin/javah \ + --with-rmic=$(STAGE1_HOME)/bin/rmic + ifeq (,$(filter ia64, $(DEB_HOST_ARCH))) + CONFIGURE_ARGS += \ + --with-jar=/usr/bin/fastjar + endif + build_target = #icedtea-against-icedtea +else ifeq ($(STAGE1_JAVA),openjdk) + CONFIGURE_ARGS = \ + --with-jdk-home=$(STAGE1_HOME) --disable-bootstrap + build_target = #icedtea-against-icedtea +else ifeq ($(STAGE1_JAVA),cacao) + CONFIGURE_ARGS = \ + --with-jdk-home=$(STAGE1_HOME) + build_target = #icedtea-against-icedtea +endif + +# GNU/kFreeBSD don't support epoll syscall so don't try to check of it. +ifneq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 kfreebsd-i386)) + CONFIGURE_ARGS += --disable-compile-against-syscalls +endif + +CONFIGURE_ARGS += --with-pkgversion="$(PKGVERSION)" + +# 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)) + CONFIGURE_ARGS += --with-alt-jar=/usr/bin/fastjar +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), hppa)) + CONFIGURE_ARGS += \ + --without-rhino +else + ifneq (,$(strip $(foreach i, hardy intrepid jaunty,$(findstring $(i),$(PKGVERSION))))) + CONFIGURE_ARGS += \ + --with-rhino=/usr/share/java/js-1.7R2.jar + else + CONFIGURE_ARGS += \ + --with-rhino=/usr/share/java/js.jar + endif +endif + +CONFIGURE_ARGS += \ + --disable-downloading \ + --with-openjdk-src-zip=$(CURDIR)/openjdk.tar.gz \ + --with-hotspot-src-zip=$(CURDIR)/hotspot-$(hotspot_version).tar.gz \ + --with-corba-src-zip=$(CURDIR)/corba.tar.gz \ + --with-jaxp-src-zip=$(CURDIR)/jaxp.tar.gz \ + --with-jaxws-src-zip=$(CURDIR)/jaxws.tar.gz \ + --with-jdk-src-zip=$(CURDIR)/jdk-dfsg.tar.gz \ + --with-langtools-src-zip=$(CURDIR)/langtools-dfsg.tar.gz + +ifneq (,$(filter $(DEB_HOST_ARCH), $(cacao_archs))) + CONFIGURE_ARGS += \ + --with-cacao-src-zip=$(CURDIR)/cacao-a567bcb7f589.tar.gz + #--with-cacao-src-zip=$(firstword $(wildcard $(CURDIR)/cacao-*.tar.* /usr/src/cacao-*.tar.*)) + ifneq (,$(filter $(DEB_HOST_ARCH), armel)) + # TODO: test build done without --enable-softfloat + EXTRA_BUILD_ENV += CACAO_CONFIGURE_ARGS='--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)' + else + EXTRA_BUILD_ENV += CACAO_CONFIGURE_ARGS='--host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE)' + endif +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), $(jamvm_archs))) + CONFIGURE_ARGS += \ + --with-jamvm-src-zip=$(firstword $(wildcard $(CURDIR)/jamvm-*.tar.* /usr/src/jamvm-*.tar.*)) +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 += LIBFFI_LIBS=-lffi_pic + +# assume we don't build binary indep packages on these architectures +ifeq ($(with_docs),yes) + ifeq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia)) + CONFIGURE_ARGS += --disable-docs + endif +else + CONFIGURE_ARGS += --disable-docs +endif + +ifneq (,$(NJOBS)) + CONFIGURE_ARGS += --with-parallel-jobs=$(NJOBS) +endif + +ifeq ($(with_pulse),yes) + CONFIGURE_ARGS += --enable-pulse-java +endif + +ifneq ($(lcms_version),2) + CONFIGURE_ARGS += --disable-system-lcms +endif + +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 + +ifneq (,$(alternate_vms)) + CONFIGURE_ARGS += --with-additional-vms=$(subst $(SPACE),$(COMMA),$(alternate_vms)) +endif + +CONFIGURE_ARGS += --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) + +# (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 build/$(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 = $(filter-out $(all_jre_tools), $(all_jdk_tools)) +jdk_tools_alt = $(filter-out apt java-rmi.cgi, $(jdk_tools)) + +ifeq ($(distribution),Ubuntu) + pkg_compress = lzma +else + pkg_compress = bzip2 +endif +pkg_compress = + +# build dependencies +bd_autotools = autoconf, automake, autotools-dev, +# This section should be in sync with "GCJ_SUFFIX" definition +bd_bootstrap = +ifneq (,$(stage1_gcj_archs)) + bd_bootstrap += \ + ecj-gcj [$(strip $(foreach a,$(stage1_gcj_archs), $(a)))], + stage1_gcj46_archs = m68k s390 + stage1_gcj_default_archs = $(filter-out $(stage1_gcj46_archs), $(stage1_gcj_archs)) + ifeq (,$(filter $(distrel),lenny jaunty intrepid hardy)) + bd_bootstrap += \ + gcj-jdk [$(strip $(foreach a,$(stage1_gcj_default_archs), $(a)))], \ + gcj-4.6-jdk [$(strip $(foreach a,$(stage1_gcj46_archs), $(a)))], \ + gcj-4.7-jdk [ia64], + else + bd_bootstrap += \ + gcj (>= 4:4.2.1) [$(strip $(foreach a,$(stage1_gcj_archs), $(a)))], \ + java-gcj-compat-dev (>= 1.0.76-2ubuntu3) [$(strip $(foreach a,$(stage1_gcj_archs), $(a)))], + endif +endif +ifneq (,$(stage1_openjdk_archs)) +# bd_bootstrap += \ +# openjdk-6-jdk (>= $(req_openjdk_bd_ver)) [$(strip $(foreach a,$(stage1_openjdk_archs), $(a)))], + bd_bootstrap += \ + openjdk-7-jdk (>= $(req_openjdk_bd_ver)) [$(strip $(foreach a,$(stage1_openjdk_archs), $(a)))], +endif +ifneq (,$(stage1_cacao_archs)) + bd_bootstrap += \ + cacao-oj6-jdk [$(strip $(foreach a,$(stage1_cacao_archs), $(a)))], +endif + +# This section should be in sync with "CC/CXX" definition +ifneq (,$(filter $(distrel),hardy)) + bd_gcc = g++-4.2 [amd64 powerpc sparc], g++-4.1 [i386 lpia], +else ifneq (,$(filter $(distrel),lenny intrepid jaunty)) + bd_gcc = g++-4.3, +else ifneq (,$(filter $(distrel),squeeze karmic lucid maverick)) + bd_gcc = g++-4.4 (>= 4.4.1), +else ifneq (,$(filter $(distrel),natty)) + bd_gcc = g++-4.5, +else ifneq (,$(filter $(distrel), oneiric precise)) + bd_gcc = g++-4.6, +else ifneq (,$(filter $(distrel), sid wheezy)) + bd_gcc = g++-4.7, g++-4.4 [mips mipsel], +else + bd_gcc = g++-4.7, +endif +bd_syslibs = zlib1g-dev, libattr1-dev, +ifneq (,$(filter $(distrel),lenny squeeze oneiric natty maverick lucid karmic jaunty intrepid hardy)) + bd_syslibs += libpng12-dev, libjpeg62-dev, +else + bd_syslibs += libpng-dev, libjpeg8-dev, +endif +bd_syslibs += \ + libgif-dev$(if $(filter $(distrel),etch), | libungif4-dev), +bd_openjdk = \ + libxtst-dev, libxi-dev, libxt-dev, libxaw7-dev, libxrender-dev, \ + $(if $(filter $(distrel), etch hardy),libcupsys2-dev,libcups2-dev), \ + libasound2-dev, liblcms$(lcms_version)-dev, libfreetype6-dev (>= 2.2.1), libgtk2.0-dev, \ + libxinerama-dev, xsltproc, librhino-java (>= 1.7R3~), +ifeq (,$(filter $(distrel),lenny squeeze quantal precise oneiric natty maverick lucid karmic jaunty intrepid hardy gutsy feisty edgy dapper)) + rhino_source := $(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W librhino-java) +endif + +pkg_ffidev = $(if $(filter $(distribution),Ubuntu),$(if $(filter $(distrel),hardy),libffi4-dev,libffi-dev),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),karmic)) + bd_shark = llvm-dev (>= 2.6) [$(foreach a,$(shark_archs) $(altshark_archs),$(a))], + else + ifneq (,$(filter $(distrel),squeeze maverick natty)) + llvm_suffix = -2.7 + else ifneq (,$(filter $(distrel),oneirc 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 (,$(cacao_archs)) + # cacao included in the openjdk tarball + bd_cacao = libtool, +endif + +ifneq (,$(filter $(distrel),lucid)) + bd_ant = ant, ant1.8-optional, +else + bd_ant = ant, ant-optional, +endif + +bd_fastjar = fastjar (>= 2:0.96-0ubuntu2), +ifneq (,$(filter $(distrel),lenny)) + bd_fastjar = fastjar (>= 2:0.95-4), +endif +bd_compress = $(pkg_compress), +bd_xvfb = xvfb, xauth, xfonts-base, libgl1-mesa-dri, $(bd_wm) x11-xkb-utils, +bd_mauve = mauve, +ifneq (,$(filter $(distrel),lenny)) + bd_xvfb += xkb-data, xserver-xorg-core, +endif +ifeq ($(with_pulse),yes) + bd_pulsejava = libpulse-dev (>= 0.9.12), +endif +ifeq ($(with_nss),yes) + ifneq (,$(filter $(distrel),lenny squeeze natty maverick lucid karmic hardy)) + bd_nss = libnss3-dev (>= 3.12.3), + else ifneq (,$(filter $(distrel),wheezy sid)) + bd_nss = libnss3-dev (>= 2:3.13.4), + else + bd_nss = libnss3-dev (>= 3.12.9+ckbi-1.82-0ubuntu4), + endif +endif +ifeq ($(with_systemtap),yes) + bd_systemtap = systemtap-sdt-dev, +endif + +ifneq (,$(jamvm_archs)) + bd_jamvm = libtool, +endif + +dlopen_hl_depends = \ + $(if $(filter $(distrel), etch),libcupsys2,libcups2), \ + liblcms$(if $(filter 1,$(lcms_version)),1,2-2), \ + $(if $(findstring jpeg8, $(bd_syslibs)),libjpeg8,libjpeg62) +ifneq ($(with_nss),no) + ifneq (,$(filter $(distrel),lenny squeeze natty maverick lucid karmic hardy)) + dlopen_hl_depends += , libnss3-1d (>= 3.12.3) + else ifneq (,$(filter $(distrel), wheezy sid)) + dlopen_hl_depends += , libnss3 (>= 2:3.13.4) + else + dlopen_hl_depends += , libnss3-1d (>= 3.12.9+ckbi-1.82-0ubuntu4) + endif +endif +dlopen_hl_depends += , libpcsclite1 +dlopen_hl_recommends = +dlopen_jre_depends = \ + libgtk2.0-0, libxrandr2, libxinerama1, libgl1-mesa-glx | libgl1 +dlopen_jre_recommends = +# these are not yet ready for multiarch +ifneq (,$(DEB_HOST_MULTIARCH)) + dlopen_jre_recommends += , libgnome2-0, libgnomevfs2-0, libgconf2-4 +else + dlopen_jre_depends += , libgnome2-0, libgnomevfs2-0, libgconf2-4 +endif + +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 ($(distribution),Ubuntu) + ifeq (,$(filter $(distrel),karmic jaunty intrepid hardy)) + java_launcher = cautious-launcher %f /$(basedir)/bin/java + java_launcher = cautious-launcher %f /usr/bin/java + endif +endif + +ifneq (,$(filter $(distrel),etch)) + core_fonts = ttf-dejavu +else ifneq (,$(filter $(distrel),lenny hardy intrepid jaunty karmic)) + core_fonts = ttf-dejavu-core +else + core_fonts = ttf-dejavu-extra +endif +ifneq (,$(filter $(distrel),lenny squeeze oneiric natty maverick lucid jaunty intrepid hardy)) + 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, + # FIXME: find out why this b-d is needed, the fontconfig compiler fails without it + bd_openjdk += fonts-ipafont-mincho, +endif +cjk_fonts += $(if $(with_wgy_zenhai),ttf-wqy-microhei | ttf-wqy-zenhei,ttf-arphic-uming), +ifneq (,$(filter $(distrel),lenny squeeze wheezy sid experimental)) + cjk_fonts += ttf-indic-fonts, +else + cjk_fonts += ttf-indic-fonts-core, ttf-telugu-fonts, ttf-oriya-fonts, + cjk_fonts += ttf-kannada-fonts, ttf-bengali-fonts, +endif + +p_jre = $(basename)-jre +p_jrehl = $(basename)-jre-headless +p_jrec = icedtea-$(shortver)-jre-cacao +p_jrej = icedtea-$(shortver)-jre-jamvm +p_jrez = $(basename)-jre-zero +p_lib = $(basename)-jre-lib +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_jrec = debian/$(p_jrec) +d_jrej = debian/$(p_jrej) +d_jrez = debian/$(p_jrez) +d_lib = debian/$(p_lib) +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)' \ + '-Vbase:Version=$(req_openjdk_ver)' \ + '-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)' \ + +ifeq ($(pkg_compress),lzma) + bd_options = -- -Zlzma + control_vars += '-Vdpkg:Depends=dpkg (>= 1.14.12ubuntu3)' +else ifeq ($(pkg_compress),bzip2) + bd_options = -- -Zbzip2 + control_vars += '-Vdpkg:Depends=dpkg (>= 1.10.24)' +endif + +ifneq (,$(DEB_HOST_MULTIARCH)) + control_vars += \ + '-Vmultiarch:Depends=multiarch-support' \ + '-Vmultiarch:Conflicts=icedtea-netx (<< 1.1.1-2~)' +endif + +ifneq (,$(filter-out $(hotspot_archs), $(cacao_archs))) + control_vars += '-Vcacao:Recommends=$(p_jrec) (= $${binary:Version})' +endif +ifneq (,$(filter-out $(hotspot_archs), $(jamvm_archs))) + ifneq (,$(filter $(DEB_HOST_ARCH),$(jamvm_defaults))) + control_vars += '-Vjredefault:Depends=$(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 ifeq ($(with_bridge),yes) + 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 + +ifneq (,$(filter $(distrel),lenny jaunty intrepid hardy)) + control_vars += '-Vjvm:Provides=java-virtual-machine' +endif + +ifeq (,$(filter $(distrel), lenny)) + pkg_certs = ca-certificates-java +endif +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 +endif +control_vars += '-Vtzdata:Depends=$(pkg_tzdata)' + +pkg_jcommon = java-common (>= 0.28) +control_vars += '-Vjcommon:Depends=$(pkg_jcommon)' + +ifneq (,$(rhino_source)) + control_vars += "-Vrhino:Source=$(rhino_source)" +endif + +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@/$(bd_bootstrap)/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_compress@/$(pkg_compress)/g' \ + -e 's/@bd_cacao@/$(bd_cacao)/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/@core_fonts@/$(core_fonts)/g' \ + -e 's/@cjk_fonts@/$(cjk_fonts)/g' \ + -e 's/@any_archs@/$(any_archs)/g' \ + -e 's/@cacao_archs@/$(cacao_archs)/g' \ + -e 's/@jamvm_archs@/$(jamvm_archs)/g' \ + -e 's/@hotspot_archs@/$(hotspot_archs)/g' \ + -e 's/@altzero_archs@/$(altzero_archs)/g' \ + -e 's/@lib_arch@/$(p_lib_arch)/g' \ + debian/control.in \ + $(if $(cacao_archs), debian/control.cacao-jre) \ + $(if $(transitional_cacao_pkg), debian/control.cacao-trans) \ + $(if $(jamvm_archs), debian/control.jamvm-jre) \ + $(if $(altzero_archs), debian/control.zero-jre) \ + $(if $(DEB_HOST_MULTIARCH),,| grep -v '^Multi-Arch') \ + $(if $(rhino_source),,| grep -v '^Built-Using') \ + > 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; 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_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 lpia)) +# not yet in OpenJDK +# cat debian/$(p_jre)-i586.menu >> $(d_jre).menu + rm -f debian/$(p_jre)-i586.menu +endif + +icedtea-configure: stamps/icedtea-configure +stamps/icedtea-configure: + -cat /etc/hosts + + mkdir -p bin +ifeq (,$(filter $(DEB_HOST_ARCH), alpha amd64 hppa ppc64 s390x sparc64)) + ( \ + 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 + + mkdir -p stamps + mkdir -p build + chmod +x configure + cd build && $(EXTRA_BUILD_ENV) ../configure $(CONFIGURE_ARGS) + + touch $@ + +unpack: stamps/unpack +stamps/unpack: stamps/icedtea-configure +# $(MAKE) -C build extract +ifeq ($(STAGE1_JAVA),gcj) +# $(MAKE) -C build stamps/extract-ecj.stamp +endif + touch $@ + +dist-openjdk: $(OPENJDK_SRC_ZIP) + @echo "downloading openjdk source from hg to create zipfile: $(OPENJDK_SRC_ZIP)" + $(MAKE) -C build $@ + +patch: stamps/patch +stamps/patch: stamps/unpack +ifeq ($(STAGE1_JAVA),gcj) +# $(MAKE) -C build patch-boot +endif +# $(MAKE) -C build patch + touch $@ + +ifeq ($(with_check),yes) + ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha ia64 mips mipsel powerpc powerpcspe ppc64 s390 sh4)) + with_mauve_check = $(default_vm) + endif + ifneq (,$(filter $(DEB_HOST_ARCH), $(hotspot_archs) alpha armel armhf ia64 mips mipsel powerpc powerpcspe ppc64 s390 s390x sh4)) + with_jtreg_check = $(default_vm) + endif + + ifneq (,$(filter cacao, $(alternate_vms))) + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia powerpc powerpcspe sparc)) + # only activate after testing; problems on s390 + with_mauve_check += cacao + endif + ifneq (,$(filter $(DEB_HOST_ARCH), alpha amd64 armel armhf i386 lpia mips mipsel powerpc powerpcspe s390)) + # only activate after testing; hangs several tests. + with_jtreg_check += cacao + endif + 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 lpia)) + # 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 lpia powerpc)) + # 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 lpia powerpc)) + # 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 lpia)) + # only activate after testing + with_mauve_check += zero + endif + ifneq (,$(filter $(DEB_HOST_ARCH), amd64 i386 lpia)) + # only activate after testing; hangs several tests. + with_jtreg_check += zero + endif + endif + + with_mauve_check = +endif + +ifneq (,$(filter $(DEB_HOST_ARCH), alpha armel armhf ia64 mips mipsel powerpc powerpcspe ppc64 s390)) + JTREG_OPTIONS = -timeout:3 +endif +ifneq (,$(filter $(DEB_HOST_ARCH), armel armhf)) + JTREG_OPTIONS += -Xmx256M -vmoption:-Xmx256M +endif + +build_stamps = stamps/build +build_stamps += stamps/mauve-check-default stamps/jtreg-check-default +#build_stamps += $(if $(filter cacao, $(alternate_vms)),stamps/mauve-check-cacao stamps/jtreg-check-cacao) +build_stamps += $(if $(filter jamvm, $(alternate_vms)),stamps/mauve-check-jamvm stamps/jtreg-check-jamvm) +ifeq (,$(filter $(distrel),lenny hardy)) + 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),armel)) +# @echo explicitely fail the build for $(DEB_HOST_ARCH), ARM assembler interpreter not yet ported +# false +#endif + +build-arch: build +build-indep: build +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/patch +ifneq (,$(filter $(DEB_HOST_ARCH), alpha arm armel armhf hppa ia64 m68k mips mipsel powerpc powerpcspe ppc64 s390 s390x sparc)) + sh -c 'sh debian/buildwatch.sh $(CURDIR)/build &' +endif + if $(EXTRA_BUILD_ENV) $(MAKE) -C build $(build_target) $(EXTRA_MAKE_FLAGS); then \ + : ; \ + else \ + if [ -f buildwatch.pid ]; then \ + pid=$$(cat buildwatch.pid); \ + kill -1 $$pid || :; sleep 1; kill -9 $$pid || :; \ + fi; \ + false; \ + fi + touch $@ + +stamps/xvfb-check: + mkdir -p bin + ( \ + 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 xvfb-run.log -s "-extension GLX" "$$@"' > bin/my-xvfb-run +else + echo 'xvfb-run -a -e 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 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 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 $@ + +stamps/mauve-check-default: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules mauve-run-check VMNAME=$(default_vm) VMARGS= + touch $@ + +stamps/mauve-check-cacao: stamps/xvfb-check + $(MAKE) -f debian/rules mauve-run-check VMNAME=cacao VMARGS='-vmarg -cacao' + 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 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 + +jtreg_processes = ps x -ww -o pid,ppid,args \ + | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,/scratch)/' \ + | sed 's,$(CURDIR)/build/$(sdkimg),<sdkimg>,g;s,$(CURDIR),<pwd>,g' +jtreg_pids = ps x --no-headers -ww -o pid,ppid,args \ + | awk '$$2 == 1 && $$3 ~ /^$(subst /,\/,$(CURDIR)/build/$(sdkimg))/ {print $$1}' + +stamps/jtreg-check-default: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules jtreg-run-check VMNAME=$(default_vm) VMARGS= \ + $(if $(filter $(default_vm),hotspot),TEST_SUITES='hotspot langtools jdk',TEST_SUITES='hotspot langtools') + touch $@ + +stamps/jtreg-check-cacao: stamps/build stamps/xvfb-check + $(MAKE) -f debian/rules jtreg-run-check VMNAME=cacao VMARGS='-vmoption:-cacao' \ + TEST_SUITES='hotspot langtools' + touch $@ + +stamps/jtreg-check-jamvm: stamps/build stamps/xvfb-check + ICEDTEA_JTREG_OTHERVM=-othervm \ + $(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: +ifneq (,$(filter $(VMNAME), $(with_jtreg_check))) + if [ ! -f build/$(sdkimg)/jre/lib/security/java.security.install ]; then \ + fgrep -v 'sun.security.pkcs11' build/$(sdkimg)/jre/lib/security/java.security \ + > build/$(sdkimg)/jre/lib/security/java.security.test; \ + mv build/$(sdkimg)/jre/lib/security/java.security \ + build/$(sdkimg)/jre/lib/security/java.security.install; \ + mv build/$(sdkimg)/jre/lib/security/java.security.test \ + build/$(sdkimg)/jre/lib/security/java.security; \ + fi + + @echo "BEGIN jtreg" + if [ -f bin/my-xvfb-run ]; then \ + time /bin/sh bin/my-xvfb-run $(MAKE) -C build -k jtregcheck \ + $(if $(TEST_SUITES),TEST_SUITES="$(TEST_SUITES)") \ + ICEDTEA_JTREG_OPTIONS='$(VMARGS) $(JTREG_OPTIONS)' \ + 2>&1 | tee jtreg_output-$(VMNAME); \ + else \ + echo "jtreg harness not run for this build" > jtreg_output-$(VMNAME); \ + cat xvfb-run.log >> jtreg_output-$(VMNAME); \ + fi + @echo "END jtreg" + + if [ -f build/$(sdkimg)/jre/lib/security/java.security.install ]; then \ + mv build/$(sdkimg)/jre/lib/security/java.security.install \ + build/$(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 build/test/$$i ]; then \ + mv build/test/$$i build/test/$${i%*.log}-$(VMNAME).log; \ +# else \ +# mkdir -p build/test; \ +# cp jtreg_output-$(VMNAME) build/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 build/test/$$i ]; then \ + mv build/test/$$i build/test/$${i%*.log}-$(VMNAME).log; \ + else \ + mkdir -p build/test; \ + fi; \ + done + + @echo "BEGIN jtreg-summary-$(VMNAME)" + -cat build/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 \ + for t in $$(egrep '^(FAILED|Error)' build/test/check-$$i-$(VMNAME).log | sed 's/.* \(.*\)\.[^.][^.]*$$/\1/'); do \ + echo test/$$i/JTwork/$$t.jtr; \ + done; \ + done > build/test/failed_tests-$(VMNAME).list; \ + tar -C build -c -z -f build/test/failed_tests-$(VMNAME).tar.gz -T build/test/failed_tests-$(VMNAME).list +else + echo "jtreg harness not run for this build" > jtreg_output-$(VMNAME) +endif + +clean: debian-clean + dh_testdir + dh_testroot + rm -rf stamps build build-* + rm -rf autom4te.cache + rm -rf bin + rm -f jtreg_output* xvfb-run.log + rm -f buildwatch.pid + + dh_clean + +debian-clean: + dh_testdir + dh_testroot + dh_clean -k + for f in debian/*.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 ($(distribution),Ubuntu) + lib_ext_dirs := $(filter-out arm hppa m68k mips% powerpcspe s390% sh%, $(lib_ext_dirs)) +else + lib_ext_dirs := $(filter-out arm hppa lpia, $(lib_ext_dirs)) +endif + +install: packaging-files + dh_testdir + dh_testroot + dh_clean -k + rm -f debian/*.install debian/*.links + dh_installdirs + + : # install into temporary location + mkdir -p $(d)/$(basedir) + cp -a build/$(sdkimg)/* $(d)/$(basedir)/ + cp -a build/$(jreimg)/man $(d)/$(basedir)/jre/ + 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)/ + + : # add extra symlinks for header files + ln -sf linux/jni_md.h $(d)/$(basedir)/include/jni_md.h + ln -sf linux/jawt_md.h $(d)/$(basedir)/include/jawt_md.h + +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 + + : # 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) + cp -p debian/accessibility-atk.properties \ + $(d)/$(basedir)/jre/lib/accessibility.properties +else + 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 + + grep -v '^nssLibraryDirectory' $(d)/$(basedir)/jre/lib/security/nss.cfg \ + > $(d)/$(basedir)/jre/lib/security/nss.cfg.new + mv -f $(d)/$(basedir)/jre/lib/security/nss.cfg.new \ + $(d)/$(basedir)/jre/lib/security/nss.cfg + + : # move config files to $(etcdir) and symlink them. + for i in \ + 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); \ + 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),$(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 + printf -- '-avian KNOWN\n' >> $(d)/$(etcdir)/jvm.cfg + + mv $(d)/$(basedir)/jre/lib/fontconfig.Ubuntu.properties.src \ + $(d)/$(etcdir)/fontconfig.properties + + : # 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 + + : # 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/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 \ + */libsplashscreen.so|*/libjsoundalsa.so|$(if $(with_pulse),*/libpulse-java.so|)*/xawt) echo $$i >> ../$(p_jre).install;; \ + */cacao) echo $$i >> ../$(p_jrec).install;; \ + */jamvm) echo $$i >> ../$(p_jrej).install;; \ + */zero|*/shark) echo $$i >> ../$(p_jrez).install;; \ + *) echo $$i >> ../$(p_jrehl).install; \ + esac; \ + done + + : # $(p_lib).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_lib).install + + : # $(p_jdk).install + ( \ + echo '$(basedir)/include'; \ + echo '$(basedir)/lib'; \ + echo '$(basedir)/LICENSE'; \ + echo '$(basedir)/ASSEMBLY_EXCEPTION'; \ + echo '$(basedir)/THIRD_PARTY_README'; \ + cd $(d); \ + for i in $(basedir)/{bin,man/man1,man/ja_JP.UTF-8/man1}/*; do \ + [ -h $$i -o "$$i" = $(basedir)/bin/java-rmi.cgi ] && continue; \ + echo $$i; \ + done; \ + ) > debian/$(p_jdk).install + + : # $(p_src).install + ( \ + echo '$(basedir)/src.zip $(commonbasedir)/'; \ + ) > 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 + + dh_install --sourcedir=debian/tmp --fail-missing -XLICENSE -Xrelease + +ifneq (,$(DEB_HOST_MULTIARCH)) + rm -f $(d_lib)/$(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/ + cp -p debian/$(basename)-java.desktop \ + $(d_jre)/usr/share/applications/ + + 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 build/openjdk/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_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 '$(commonbasedir)/src.zip $(basedir)/src.zip' >> $(d_jdk).links +endif + + : # create docdir symlinks for $(p_lib) + ( \ + echo usr/share/doc/$(p_jrehl) usr/share/doc/$(p_lib); \ + ) > $(d_lib).links + + : # 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 ifeq ($(with_bridge),yes) + : # 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 \ + >> $(if $(DEB_HOST_MULTIARCH),$(d_jrehl),$(d_lib)).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_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_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) + : # systemtap support + mkdir -p $(d_jrehl)/usr/share/systemtap/tapset + cp -p build/tapset/hotspot.stp $(d_jrehl)/usr/share/systemtap/tapset/ +endif + + : # Install stuff to generate font config and timezone files. + mkdir -p $(d_lib)/$(commonbasedir)/jre/lib + cp -p build/openjdk.build/btjars/compilefontconfig.jar \ + $(d_lib)/$(commonbasedir)/jre/lib/ + cp -p build/openjdk.build/btjars/javazic.jar \ + $(d_lib)/$(commonbasedir)/jre/lib/ + +ifneq (,$(DEB_HOST_MULTIARCH)) + : # create symlinks for the files in $(p_lib) + find $(d_lib)/$(commonbasedir) \ + ! -name zi ! -name meta-index \( -name cmm -prune -o -type f \) \ + -printf "$(commonbasedir)/%P $(basedir)/%P\n" >> $(d_jrehl).links + ifeq ($(with_tzdata),yes) + echo usr/share/javazi $(basedir)/jre/lib/zi \ + >> $(d_jrehl).links + endif +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)) +nojrec = $(if $(filter cacao, $(alternate_vms)),,-N$(p_jrec)) +nojrej = $(if $(filter jamvm, $(alternate_vms)),,-N$(p_jrej)) +nojrez = $(if $(filter shark zero, $(alternate_vms)),,-N$(p_jrez)) + +ifeq ($(transitional_cacao_pkg),yes) + nojrec = +endif + +# Build architecture independant packages +binary-indep: build 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 build/openjdk.build/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 -Xdemos -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 build/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 build/test/jtreg-summary-$(1).log build/test/check-*-$(1).log \ + $(d_jdk)/usr/share/doc/$(p_jrehl)/test-$(DEB_HOST_ARCH)/ + -cp build/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 + for i in AUTHORS NEWS README; do \ + cp -p $$i $(d_jrehl)/usr/share/doc/$(p_jrehl)/$$i.IcedTea; \ + done + $(call install_test_results,$(default_vm)) + +ifneq (,$(filter cacao, $(alternate_vms))) + dh_installchangelogs -p$(p_jrec) + dh_installdocs -p$(p_jrec) + $(call install_test_results,cacao) +endif +ifeq ($(transitional_cacao_pkg),yes) + dh_installchangelogs -p$(p_jrec) + dh_installdocs -p$(p_jrec) +endif +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 + dh_desktop -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) +# FIXME: desktop and menu files not ready for multiarch. #658321 +ifeq (,$(DEB_HOST_MULTIARCH)) + dh_installmenu -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) +endif + -dh_icons -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) \ + || dh_iconcache -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) +# dh_installdebconf -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) + dh_link -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) + dh_strip -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) \ + -Xlibjvm.so --dbg-package=$(p_dbg) +ifeq (,$(findstring nostrip, $(DEB_BUILD_OPTIONS))) + set -e; \ + for i in {$(d_jrehl),$(d_jrec),$(d_jrez)}/$(basedir)/jre/lib/$(archdir)/*/libjvm.so; do \ + id=$$(echo $$i | sed -r 's,debian/[^/]+,$(d_dbg)/usr/lib/debug,'); \ + [ -f $$i ] || continue; \ + 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; \ + done +endif + + dh_compress -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) -Xexamples -Xdemos -Xpackage-list + dh_fixperms -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) + dh_makeshlibs -p$(p_jrehl) -p$(p_jre) + dh_shlibdeps -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) -L $(p_jrehl) \ + -l$(shlibdeps_ld_path) \ + -- + dh_installdeb -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) + dh_gencontrol -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) \ + -- $(control_vars) + dh_md5sums -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) + dh_builddeb -s $(nodemo) $(nojrec) $(nojrej) $(nojrez) #$(bd_options) + +binary: binary-arch binary-indep +.PHONY: build clean binary-indep binary-arch binary install packaging-files |