MacBundles.gmk revision 2281:4353c659dfde
1107002Sschweikh#
2174422Sdougb# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
3174425Sdougb# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4174425Sdougb#
5174425Sdougb# This code is free software; you can redistribute it and/or modify it
6174425Sdougb# under the terms of the GNU General Public License version 2 only, as
7174425Sdougb# published by the Free Software Foundation.  Oracle designates this
8174425Sdougb# particular file as subject to the "Classpath" exception as provided
9174425Sdougb# by Oracle in the LICENSE file that accompanied this code.
10174425Sdougb#
11174425Sdougb# This code is distributed in the hope that it will be useful, but WITHOUT
12174425Sdougb# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13174425Sdougb# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14174425Sdougb# version 2 for more details (a copy is included in the LICENSE file that
15174425Sdougb# accompanied this code).
16174425Sdougb#
17174425Sdougb# You should have received a copy of the GNU General Public License version
18174425Sdougb# 2 along with this work; if not, write to the Free Software Foundation,
19174425Sdougb# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20174425Sdougb#
21174425Sdougb# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22174425Sdougb# or visit www.oracle.com if you need additional information or have any
23174425Sdougb# questions.
24174425Sdougb#
25174425Sdougb
26174425Sdougbinclude $(SPEC)
27174425Sdougbinclude MakeBase.gmk
28174425Sdougbinclude TextFileProcessing.gmk
29174425Sdougb
30174425Sdougbdefault: bundles
31174425Sdougb
32174425Sdougb# Only macosx has bundles defined.
33174425Sdougbifeq ($(OPENJDK_TARGET_OS), macosx)
34174425Sdougb
35174425Sdougb  bundles: jre-bundle jdk-bundle
36174425Sdougb
37174425Sdougb  # JDK_MACOSX_CONTENTS_DIR and JRE_MACOSX_CONTENTS_DIR are defined in SPEC.
38174425Sdougb
39174425Sdougb  MACOSX_PLIST_SRC := $(JDK_TOPDIR)/make/data/bundle
40174425Sdougb
41174425Sdougb  BUNDLE_ID := $(MACOSX_BUNDLE_ID_BASE).$(VERSION_SHORT)
42174425Sdougb  BUNDLE_NAME := $(MACOSX_BUNDLE_NAME_BASE) $(VERSION_SHORT)
43174425Sdougb  BUNDLE_INFO := $(MACOSX_BUNDLE_NAME_BASE) $(VERSION_STRING)
44174425Sdougb  BUNDLE_PLATFORM_VERSION := $(VERSION_MAJOR).$(VERSION_MINOR)
45174425Sdougb  BUNDLE_VERSION := $(VERSION_NUMBER)
46174425Sdougb  ifeq ($(COMPANY_NAME), N/A)
47174425Sdougb    BUNDLE_VENDOR := UNDEFINED
48174425Sdougb  else
49174425Sdougb    BUNDLE_VENDOR := $(COMPANY_NAME)
50174425Sdougb  endif
51174425Sdougb
52174425Sdougb  JDK_FILE_LIST := $(shell $(FIND) $(JDK_IMAGE_DIR))
53174425Sdougb  JRE_FILE_LIST := $(shell $(FIND) $(JRE_IMAGE_DIR))
54174425Sdougb
55174425Sdougb  JDK_TARGET_LIST := $(subst $(JDK_IMAGE_DIR)/,$(JDK_MACOSX_CONTENTS_DIR)/Home/,$(JDK_FILE_LIST))
56174425Sdougb  JRE_TARGET_LIST := $(subst $(JRE_IMAGE_DIR)/,$(JRE_MACOSX_CONTENTS_DIR)/Home/,$(JRE_FILE_LIST))
57174425Sdougb
58174425Sdougb  # Copy empty directories (jre/lib/applet).
59174425Sdougb  $(JDK_MACOSX_CONTENTS_DIR)/Home/%: $(JDK_IMAGE_DIR)/%
60174425Sdougb	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
61174425Sdougb	$(MKDIR) -p $(@D)
62174425Sdougb	if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -P '$<' '$@'; fi
63174425Sdougb
64174425Sdougb  $(JRE_MACOSX_CONTENTS_DIR)/Home/%: $(JRE_IMAGE_DIR)/%
65174425Sdougb	$(call LogInfo, Copying $(patsubst $(OUTPUT_ROOT)/%,%,$@))
66174425Sdougb	$(MKDIR) -p $(@D)
67174425Sdougb	if [ -d "$<" ]; then $(MKDIR) -p $@; else $(CP) -f -R -P '$<' '$@'; fi
68174425Sdougb
69174425Sdougb  $(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
70174425Sdougb	$(call LogInfo, Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@))
71174425Sdougb	$(MKDIR) -p $(@D)
72174425Sdougb	$(RM) $@
73174425Sdougb	$(LN) -s ../Home/lib/jli/libjli.dylib $@
74174425Sdougb
75174425Sdougb  $(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
76174425Sdougb	$(call LogInfo, Creating link $(patsubst $(OUTPUT_ROOT)/%,%,$@))
77174425Sdougb	$(MKDIR) -p $(@D)
78174425Sdougb	$(RM) $@
79174425Sdougb	$(LN) -s ../Home/lib/jli/libjli.dylib $@
80174425Sdougb
81174425Sdougb  $(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
82174425Sdougb      SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
83174425Sdougb      OUTPUT_FILE := $(JDK_MACOSX_CONTENTS_DIR)/Info.plist, \
84174425Sdougb      REPLACEMENTS := \
85174425Sdougb          @@ID@@ => $(BUNDLE_ID).jdk ; \
86174425Sdougb          @@NAME@@ => $(BUNDLE_NAME) ; \
87174425Sdougb          @@INFO@@ => $(BUNDLE_INFO) ; \
88174425Sdougb          @@PLATFORM_VERSION@@ => $(BUNDLE_PLATFORM_VERSION) ; \
89174425Sdougb          @@VERSION@@ => $(BUNDLE_VERSION) ; \
90174425Sdougb          @@VENDOR@@ => $(BUNDLE_VENDOR) , \
91174425Sdougb  ))
92174425Sdougb
93174425Sdougb  $(eval $(call SetupTextFileProcessing, BUILD_JRE_PLIST, \
94174425Sdougb      SOURCE_FILES := $(MACOSX_PLIST_SRC)/JRE-Info.plist, \
95174425Sdougb      OUTPUT_FILE := $(JRE_MACOSX_CONTENTS_DIR)/Info.plist, \
96174425Sdougb      REPLACEMENTS := \
97174425Sdougb          @@ID@@ => $(BUNDLE_ID).jre ; \
98174425Sdougb          @@NAME@@ => $(BUNDLE_NAME) ; \
99174425Sdougb          @@INFO@@ => $(BUNDLE_INFO) ; \
100174425Sdougb          @@PLATFORM_VERSION@@ => $(BUNDLE_PLATFORM_VERSION) ; \
101174425Sdougb          @@VERSION@@ => $(BUNDLE_VERSION) ; \
102174425Sdougb          @@VENDOR@@ => $(BUNDLE_VENDOR) , \
103174425Sdougb  ))
104174425Sdougb
105174425Sdougb  jdk-bundle: $(JDK_TARGET_LIST) $(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib \
1062490Sjkh      $(BUILD_JDK_PLIST)
1072490Sjkh	$(SETFILE) -a B $(dir $(JDK_MACOSX_CONTENTS_DIR))
1082490Sjkh
1092490Sjkh  jre-bundle: $(JRE_TARGET_LIST) $(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib \
1102490Sjkh      $(BUILD_JRE_PLIST)
1112490Sjkh	$(SETFILE) -a B $(dir $(JRE_MACOSX_CONTENTS_DIR))
1122490Sjkh
1132490Sjkhelse # Not macosx
1142490Sjkh
1152490Sjkh  bundles:
1162490Sjkh	$(ECHO) "No bundles defined for $(OPENJDK_TARGET_OS)"
1172490Sjkh
1182490Sjkhendif # macosx
1192490Sjkh
1202490Sjkh.PHONY: jdk-bundle jre-bundle bundles
1212490Sjkh