-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathjavapackage.make
104 lines (95 loc) · 3.57 KB
/
javapackage.make
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
##
# Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
#
# @APPLE_LICENSE_HEADER_START@
#
# The contents of this file constitute Original Code as defined in and
# are subject to the Apple Public Source License Version 1.1 (the
# "License"). You may not use this file except in compliance with the
# License. Please obtain a copy of the License at
# http://www.apple.com/publicsource and read it before using this file.
#
# This Original Code and all software distributed under the License are
# distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
# License for the specific language governing rights and limitations
# under the License.
#
# @APPLE_LICENSE_HEADER_END@
##
#
# javapackage.make
#
# Variable definitions and rules for building java packages. A package is
# a zip file containing a number of java .class files and any resources
# needed by those files.
#
# PUBLIC TARGETS
# javapackage: synonymous with all
#
# IMPORTED VARIABLES
# none
#
# EXPORTED VARIABLES
# none
#
# Standard goop.
.PHONY: package all
package: all
PROJTYPE = JAVAPACKAGE
override DEBUG_SUFFIX = _g
# this OFILES definition is copied directly from common.make
# we need the list of ofiles *before* we include common.make, because
# we need to know whether to include directly, or indirectly through
# library.make
OFILES = $(CLASSES:.m=.o) $(MFILES:.m=.o) $(CFILES:.c=.o) $(CAPCFILES:.C=.o) $(CAPMFILES:.M=.o) $(CCFILES:.cc=.o) $(CPPFILES:.cpp=.o) $(CXXFILES:.cxx=.o) $(PSWFILES:.psw=.o) $(PSWMFILES:.pswm=.o) $(PROJTYPE_OFILES) $(OTHERLINKEDOFILES) $(OTHER_OFILES) $(OTHER_GENERATED_OFILES)
# javapackages often need to use the JDK header files and library
# These are defined here, but only automatically added if the package
# generates .o files
VM_INCLUDE_CFLAGS := $(addprefix -I,$(shell javaconfig Headers))
ifeq "YES-WINDOWS" "$(DEBUG)-$(OS)"
JAVA_VM_LIB := $(shell javaconfig DebugLibrary)
else
JAVA_VM_LIB := $(shell javaconfig Library)
endif
# if a javapackage contains any non-java source files it is actually a library
JAVA_RESOURCE_DIR = $(PRODUCT_DIR)
JAVA_RESOURCE_DIR_CLIENT = $(PRODUCT_DIR)
ifeq "" "$(strip $(OFILES))"
PRODUCT =
PRODUCTS =
JAVA_ENABLED = YES
STRIP_ON_INSTALL = NO
include $(MAKEFILEDIR)/common.make
else
OTHER_CFLAGS += $(VM_INCLUDE_CFLAGS)
OTHER_LIBS += $(JAVA_VM_LIB)
ifneq "MACOS" "$(OS)"
ifneq "NEXTSTEP" "$(OS)"
ifneq "YES" "$(DEBUG)"
ifneq "YES" "$(SUPPRESS_JAVA_DEBUG_INSTALLATION)"
AFTER_INSTALL += install_java_debug
endif
endif
endif
endif
include $(MAKEFILEDIR)/library.make
endif
-include $(LOCAL_MAKEFILEDIR)/javapackage.make.preamble
JAVA_INSTALL_DIR = $(INSTALLDIR)
copy-java-resources: copy-java-classes
ifeq "$(JAVA_PRODUCT)" ""
install-projtype-specific-products:
$(MKDIRS) $(DSTROOT)$(JAVA_INSTALL_DIR)
-cd $(JAVA_OBJ_DIR) && files=`find . -print` && $(CD) $(DSTROOT)$(JAVA_INSTALL_DIR) && $(CHMOD) +w $$files > $(NULL) 2>&1
-cd $(JAVA_OBJ_DIR) && files=`find . -type f -print` && $(CD) $(DSTROOT)$(JAVA_INSTALL_DIR) && $(RM) -f $$files
($(CD) $(JAVA_OBJ_DIR) && $(TAR) cf - . ) | ($(CD) $(DSTROOT)$(JAVA_INSTALL_DIR) && $(TAR) xf -)
else
install-projtype-specific-products: $(DSTROOT)$(INSTALLDIR)
-$(CHMOD) -R +w $(INSTALLED_JAVA_PRODUCT)
$(RM) -rf $(INSTALLED_JAVA_PRODUCT)
($(CD) $(PRODUCT_DIR) && $(TAR) cf - $(notdir $(JAVA_PRODUCT))) | ($(CD) $(DSTROOT)$(INSTALLDIR) && $(TAR) xf -)
endif
-include $(LOCAL_MAKEFILEDIR)/javapackage.make.postamble