1 # 2 # Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Sun designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Sun in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 22 # CA 95054 USA or visit www.sun.com if you need additional information or 23 # have any questions. 24 # 25 26 # 27 # Generate jmod and debian packages for all jdk modules 28 # 29 PKGS = $(ABS_OUTPUTDIR)/jigsaw-pkgs 30 JMOD_PKGS = $(PKGS)/jmod 31 DEB_PKGS = $(PKGS)/deb 32 JPKG_ARGS = -os $(PLATFORM) 33 34 ifneq ($(CROSS_COMPILE_ARCH), ) 35 JPKG_ARGS += -arch $(CROSS_COMPILE_ARCH) 36 else 37 JPKG_ARGS += -arch $(ARCH) 38 endif 39 40 ## TODO: generate packages for modules that are modified 41 ## instead of all modules 42 $(PKGS)/%: 43 $(RM) -r $@ 44 $(MKDIR) -p $@ 45 46 # Prepare to sign modules 47 ifdef BUILD_SIGNED_MODULES 48 49 include $(BUILDDIR)/javax/crypto/Defs-jce.gmk 50 SIGNER_ARGS = --sign --keystore $(SIGNING_KEYSTORE) --signer $(SIGNING_ALIAS) 51 SIGNER_PW = "< $(SIGNING_PASSPHRASE)" 52 53 else #BUILD_SIGNED_MODULES 54 55 SIGNER_ARGS = 56 SIGNER_PW = 57 58 endif #BUILD_SIGNED_MODULES 59 60 # Rules to generate jmod packages 61 # 62 jmod-pkgs: $(JMOD_PKGS) 63 @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." 64 for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \ 65 $(CD) $(ABS_MODULEPATH_DIR)/$$m && \ 66 (if [ -d bin ] ; then \ 67 NATCMD="-natcmd bin" ; \ 68 fi ; \ 69 if [ -d lib ] ; then \ 70 NATLIB="-natlib lib" ; \ 71 fi ; \ 72 if [ -d etc ] ; then \ 73 CONFIG="-config etc" ; \ 74 fi ; \ 75 $(HOST_JPKG_CMD) -v -m classes \ 76 $$NATCMD $$NATLIB $$CONFIG $(JPKG_ARGS) $(SIGNER_ARGS) \ 77 -d $(JMOD_PKGS) jmod $$m $(SIGNER_PW)) || exit 1 ; \ 78 done 79 @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." 80 81 # Rules to generate debian packages 82 # 83 JIGSAW_IMAGE = $(ABS_OUTPUTDIR)/tmp/jigsaw-image 84 DEB_MROOT=/usr/local/jigsaw 85 deb-pkgs: $(DEB_PKGS) 86 @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." 87 $(RM) -r $(JIGSAW_IMAGE) 88 for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \ 89 $(MKDIR) -p $(JIGSAW_IMAGE)/$$m/$(DEB_MROOT); \ 90 for d in bin lib include ; do \ 91 if [ -d $(MODULEPATH_DIR)/$$m/$$d ] ; then \ 92 $(CP) -rf $(MODULEPATH_DIR)/$$m/$$d $(JIGSAW_IMAGE)/$$m/$(DEB_MROOT) ; \ 93 fi ; \ 94 done ; \ 95 (ISZ=$$(expr $$(du -s $(MODULEPATH_DIR)/$$m | cut -f1)); \ 96 $(HOST_JPKG_CMD) -v -m $(MODULEPATH_DIR)/$$m/classes \ 97 -i $(JIGSAW_IMAGE)/$$m \ 98 --java-home /usr/local/jigsaw \ 99 -L /usr/local/jigsaw/lib/modules \ 100 -n 'Jigsaw Team' -e 'jigsaw-dev@openjdk.java.net' \ 101 -s "Jigsaw JDK 8 $$m module" --installed-size $$ISZ \ 102 -d $(DEB_PKGS) deb $$m) ; \ 103 done 104 @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." 105