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 33 ## TODO: generate packages for modules that are modified 34 ## instead of all modules 35 $(PKGS)/%: 36 $(RM) -r $@ 37 $(MKDIR) -p $@ 38 39 # Prepare to sign modules 40 ifdef BUILD_SIGNED_MODULES 41 42 include $(BUILDDIR)/javax/crypto/Defs-jce.gmk 43 SIGNER_ARGS = --sign --keystore $(SIGNING_KEYSTORE) --signer $(SIGNING_ALIAS) 44 SIGNER_PW = "< $(SIGNING_PASSPHRASE)" 45 46 else #BUILD_SIGNED_MODULES 47 48 SIGNER_ARGS = 49 SIGNER_PW = 50 51 endif #BUILD_SIGNED_MODULES 52 53 # Rules to generate jmod packages 54 # 55 jmod-pkgs: $(JMOD_PKGS) 56 @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." 57 for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \ 58 $(CD) $(ABS_MODULEPATH_DIR)/$$m && \ 59 (if [ -d resources ] ; then \ 60 RES="-r resources" ; \ 61 fi ; \ 62 if [ -d bin ] ; then \ 63 NATCMD="-natcmd bin" ; \ 64 fi ; \ 65 if [ -d lib ] ; then \ 66 NATLIB="-natlib lib" ; \ 67 fi ; \ 68 if [ -d etc ] ; then \ 69 CONFIG="-config etc" ; \ 70 fi ; \ 71 $(HOST_JPKG_CMD) -v -m classes \ 72 $$RES $$NATCMD $$NATLIB $$CONFIG $(SIGNER_ARGS) \ 73 -d $(JMOD_PKGS) jmod $$m $(SIGNER_PW)) || exit 1 ; \ 74 done 75 @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." 76 77 # Rules to generate debian packages 78 # 79 JIGSAW_IMAGE = $(ABS_OUTPUTDIR)/tmp/jigsaw-image 80 DEB_MROOT=/usr/local/jigsaw 81 deb-pkgs: $(DEB_PKGS) 82 @$(ECHO) ">>>Making "$@" @ `$(DATE)` ..." 83 $(RM) -r $(JIGSAW_IMAGE) 84 for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \ 85 $(MKDIR) -p $(JIGSAW_IMAGE)/$$m/$(DEB_MROOT); \ 86 for d in bin lib include ; do \ 87 if [ -d $(MODULEPATH_DIR)/$$m/$$d ] ; then \ 88 $(CP) -rf $(MODULEPATH_DIR)/$$m/$$d $(JIGSAW_IMAGE)/$$m/$(DEB_MROOT) ; \ 89 fi ; \ 90 done ; \ 91 (ISZ=$$(expr $$(du -s $(MODULEPATH_DIR)/$$m | cut -f1)); \ 92 RES="$$(if [ -f $(MODULE_CLASSLIST_DIR)/$$m.resources ] ; then $(ECHO) "-r $(MODULEPATH_DIR)/$$m/resources" ; fi)"; \ 93 $(HOST_JPKG_CMD) -v -m $(MODULEPATH_DIR)/$$m/classes \ 94 -i $(JIGSAW_IMAGE)/$$m $$RES \ 95 --java-home /usr/local/jigsaw \ 96 -L /usr/local/jigsaw/lib/modules \ 97 -n 'Jigsaw Team' -e 'jigsaw-dev@openjdk.java.net' \ 98 -s "Jigsaw JDK 7 $$m module" --installed-size $$ISZ \ 99 -d $(DEB_PKGS) deb $$m) ; \ 100 done 101 @$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..." 102