mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-21 05:13:11 +00:00
Merge
This commit is contained in:
commit
06ec3d779f
@ -153,8 +153,8 @@ strip_prop_options_clean:
|
||||
# Strip the properties files
|
||||
strip_all_props: $(STRIPPROPERTIES_JARFILE) $(STRIP_PROP_options)
|
||||
@if [ -s $(STRIP_PROP_options) ] ; then \
|
||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options)" ; \
|
||||
$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) -optionsfile $(STRIP_PROP_options) ; \
|
||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options)" ; \
|
||||
$(BOOT_JAVA_CMD) -jar $(STRIPPROPERTIES_JARFILE) @$(STRIP_PROP_options) ; \
|
||||
fi
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
@ -243,8 +243,8 @@ compile_prop_options_clean:
|
||||
compile_all_props: $(COMPILEPROPERTIES_JARFILE) $(COMPILE_PROP_options)
|
||||
@if [ `$(CAT) $(COMPILE_PROP_options) | $(WC) -l` -ge 1 ] ; then \
|
||||
$(MKDIR) -p $(GENSRCDIR); \
|
||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) -optionsfile $(COMPILE_PROP_options)";\
|
||||
$(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) -optionsfile $(COMPILE_PROP_options) ; \
|
||||
$(ECHO) "$(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) @$(COMPILE_PROP_options)";\
|
||||
$(BOOT_JAVA_CMD) -jar $(COMPILEPROPERTIES_JARFILE) @$(COMPILE_PROP_options) ; \
|
||||
$(java-vm-cleanup); \
|
||||
fi
|
||||
|
||||
|
||||
@ -90,6 +90,7 @@ public class CompileProperties {
|
||||
private static String outfiles[] ;
|
||||
private static String supers[] ;
|
||||
private static int compileCount = 0;
|
||||
private static boolean quiet = false;
|
||||
|
||||
private static boolean parseOptions(String args[]) {
|
||||
boolean ok = true;
|
||||
@ -114,21 +115,21 @@ public class CompileProperties {
|
||||
outfiles[compileCount] = args[++i];
|
||||
supers[compileCount] = args[++i];
|
||||
compileCount++;
|
||||
} else if ( "-optionsfile".equals(args[i]) && i+1 < args.length ) {
|
||||
String filename = args[++i];
|
||||
} else if ( args[i].charAt(0) == '@') {
|
||||
String filename = args[i].substring(1);
|
||||
FileInputStream finput = null;
|
||||
byte contents[] = null;
|
||||
try {
|
||||
finput = new FileInputStream(filename);
|
||||
int byteCount = finput.available();
|
||||
if ( byteCount <= 0 ) {
|
||||
error("The -optionsfile file is empty", null);
|
||||
error("The @file is empty", null);
|
||||
ok = false;
|
||||
} else {
|
||||
contents = new byte[byteCount];
|
||||
int bytesRead = finput.read(contents);
|
||||
if ( byteCount != bytesRead ) {
|
||||
error("Cannot read all of -optionsfile file", null);
|
||||
error("Cannot read all of @file", null);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
@ -144,7 +145,7 @@ public class CompileProperties {
|
||||
error("cannot close " + filename, e);
|
||||
}
|
||||
}
|
||||
if ( ok = true && contents != null ) {
|
||||
if ( ok && contents != null ) {
|
||||
String tokens[] = (new String(contents)).split("\\s+");
|
||||
if ( tokens.length > 0 ) {
|
||||
ok = parseOptions(tokens);
|
||||
@ -163,6 +164,13 @@ public class CompileProperties {
|
||||
|
||||
public static void main(String[] args) {
|
||||
boolean ok = true;
|
||||
if (args.length >= 1 && args[0].equals("-quiet"))
|
||||
{
|
||||
quiet = true;
|
||||
String[] newargs = new String[args.length-1];
|
||||
System.arraycopy(args, 1, newargs, 0, newargs.length);
|
||||
args = newargs;
|
||||
}
|
||||
/* Original usage */
|
||||
if (args.length == 2 && args[0].charAt(0) != '-' ) {
|
||||
ok = createFile(args[0], args[1], "ListResourceBundle");
|
||||
@ -197,18 +205,20 @@ public class CompileProperties {
|
||||
System.err.println("usage:");
|
||||
System.err.println(" java -jar compileproperties.jar path_to_properties_file path_to_java_output_file [super_class]");
|
||||
System.err.println(" -OR-");
|
||||
System.err.println(" java -jar compileproperties.jar {-compile path_to_properties_file path_to_java_output_file super_class} -or- -optionsfile filename");
|
||||
System.err.println(" java -jar compileproperties.jar {-compile path_to_properties_file path_to_java_output_file super_class} -or- @filename");
|
||||
System.err.println("");
|
||||
System.err.println("Example:");
|
||||
System.err.println(" java -jar compileproperties.jar -compile test.properties test.java ListResourceBundle");
|
||||
System.err.println(" java -jar compileproperties.jar -optionsfile option_file");
|
||||
System.err.println(" java -jar compileproperties.jar @option_file");
|
||||
System.err.println("option_file contains: -compile test.properties test.java ListResourceBundle");
|
||||
}
|
||||
|
||||
private static boolean createFile(String propertiesPath, String outputPath,
|
||||
String superClass) {
|
||||
boolean ok = true;
|
||||
System.out.println("parsing: " + propertiesPath);
|
||||
if (!quiet) {
|
||||
System.out.println("parsing: " + propertiesPath);
|
||||
}
|
||||
Properties p = new Properties();
|
||||
try {
|
||||
p.load(new FileInputStream(propertiesPath));
|
||||
@ -221,7 +231,9 @@ public class CompileProperties {
|
||||
}
|
||||
if ( ok ) {
|
||||
String packageName = inferPackageName(propertiesPath, outputPath);
|
||||
System.out.println("inferred package name: " + packageName);
|
||||
if (!quiet) {
|
||||
System.out.println("inferred package name: " + packageName);
|
||||
}
|
||||
List<String> sortedKeys = new ArrayList<>();
|
||||
for ( Object key : p.keySet() ) {
|
||||
sortedKeys.add((String)key);
|
||||
@ -276,7 +288,9 @@ public class CompileProperties {
|
||||
error("IO error close " + outputPath, e);
|
||||
}
|
||||
}
|
||||
System.out.println("wrote: " + outputPath);
|
||||
if (!quiet) {
|
||||
System.out.println("wrote: " + outputPath);
|
||||
}
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
package build.tools.generatecharacter;
|
||||
|
||||
import java.util.regex.*;
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
|
||||
@ -36,6 +36,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Properties;
|
||||
|
||||
@ -53,82 +54,89 @@ public class StripProperties {
|
||||
}
|
||||
}
|
||||
|
||||
private static List<String> parseOptions(String args[]) {
|
||||
List<String> files = new ArrayList<String>();
|
||||
private static List<String> infiles = new ArrayList<String>();
|
||||
private static List<String> outfiles = new ArrayList<String>();
|
||||
|
||||
private static boolean parseOptions(String args[]) {
|
||||
boolean ok = true;
|
||||
|
||||
for ( int i = 0; i < args.length ; i++ ) {
|
||||
if ( "-optionsfile".equals(args[i]) && i+1 < args.length ) {
|
||||
String filename = args[++i];
|
||||
if ( "-clean".equals(args[i]) && i+2 < args.length ) {
|
||||
infiles.add(args[++i]);
|
||||
outfiles.add(args[++i]);
|
||||
} else if ( args[i].charAt(0)=='@') {
|
||||
String filename = args[i].substring(1);
|
||||
FileInputStream finput = null;
|
||||
byte contents[] = null;
|
||||
try {
|
||||
finput = new FileInputStream(filename);
|
||||
int byteCount = finput.available();
|
||||
if ( byteCount <= 0 ) {
|
||||
error("The -optionsfile file is empty", null);
|
||||
files = null;
|
||||
error("The @file is empty", null);
|
||||
ok = false;
|
||||
} else {
|
||||
contents = new byte[byteCount];
|
||||
int bytesRead = finput.read(contents);
|
||||
if ( byteCount != bytesRead ) {
|
||||
error("Cannot read all of -optionsfile file", null);
|
||||
files = null;
|
||||
error("Cannot read all of @file", null);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
} catch ( IOException e ) {
|
||||
error("cannot open " + filename, e);
|
||||
files = null;
|
||||
ok = false;
|
||||
}
|
||||
if ( finput != null ) {
|
||||
try {
|
||||
finput.close();
|
||||
} catch ( IOException e ) {
|
||||
files = null;
|
||||
ok = false;
|
||||
error("cannot close " + filename, e);
|
||||
}
|
||||
}
|
||||
if ( files != null && contents != null ) {
|
||||
if ( ok && contents != null ) {
|
||||
String tokens[] = (new String(contents)).split("\\s+");
|
||||
if ( tokens.length > 0 ) {
|
||||
List<String> ofiles = parseOptions(tokens);
|
||||
if ( ofiles != null ) {
|
||||
files.addAll(ofiles);
|
||||
} else {
|
||||
error("No files found in file", null);
|
||||
files = null;
|
||||
}
|
||||
ok = parseOptions(tokens);
|
||||
}
|
||||
}
|
||||
if ( files == null ) {
|
||||
if ( !ok ) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
files.add(args[i]);
|
||||
infiles.add(args[i]);
|
||||
outfiles.add(args[i]);
|
||||
}
|
||||
}
|
||||
return files;
|
||||
return ok;
|
||||
}
|
||||
|
||||
private static boolean stripFiles(List<String> files) {
|
||||
private static boolean stripFiles(List<String> infiles, List<String> outfiles) {
|
||||
boolean ok = true;
|
||||
for ( String file : files ) {
|
||||
Iterator<String> inIter = infiles.iterator();
|
||||
Iterator<String> outIter = outfiles.iterator();
|
||||
|
||||
for (; inIter.hasNext(); ) {
|
||||
String infile = inIter.next();
|
||||
String outfile = outIter.next();
|
||||
|
||||
Properties prop = new Properties();
|
||||
InputStream in = null;
|
||||
try {
|
||||
in = new BufferedInputStream(new FileInputStream(file));
|
||||
in = new BufferedInputStream(new FileInputStream(infile));
|
||||
prop.load(in);
|
||||
} catch ( FileNotFoundException e ) {
|
||||
error("Cannot access file " + file, e);
|
||||
error("Cannot access file " + infile, e);
|
||||
ok = false;
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception processing file " + file, e);
|
||||
error("IO exception processing file " + infile, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( in != null ) {
|
||||
try {
|
||||
in.close();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception closing file " + file, e);
|
||||
error("IO exception closing file " + infile, e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
@ -138,18 +146,18 @@ public class StripProperties {
|
||||
|
||||
OutputStream out = null;
|
||||
try {
|
||||
out = new FileOutputStream(file);
|
||||
out = new FileOutputStream(outfile);
|
||||
storeProperties(prop, out);
|
||||
out.flush();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception processing file " + file, e);
|
||||
error("IO exception processing file " + outfile, e);
|
||||
ok = false;
|
||||
}
|
||||
if ( out != null ) {
|
||||
try {
|
||||
out.close();
|
||||
} catch ( IOException e ) {
|
||||
error("IO exception closing file " + file, e);
|
||||
error("IO exception closing file " + outfile, e);
|
||||
ok = false;
|
||||
}
|
||||
}
|
||||
@ -166,8 +174,8 @@ public class StripProperties {
|
||||
* @param args Names of properties files to process and replace contents
|
||||
*/
|
||||
public static void main(String args[]) {
|
||||
List<String> files = parseOptions(args);
|
||||
if ( files == null || !stripFiles(files) ) {
|
||||
boolean ok = parseOptions(args);
|
||||
if ( !ok || !stripFiles(infiles, outfiles) ) {
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
352
jdk/makefiles/CompileDemos.gmk
Normal file
352
jdk/makefiles/CompileDemos.gmk
Normal file
@ -0,0 +1,352 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include NativeCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
|
||||
# Append demo goals to this variable.
|
||||
BUILD_DEMOS=
|
||||
|
||||
# The demo structure and contents should really be cleaned up.
|
||||
# Now every other demo has its own quirks where to put the
|
||||
# READMEs and other files.
|
||||
|
||||
##################################################################################################
|
||||
|
||||
define SetupAppletDemo
|
||||
$$(eval $$(call SetupJavaCompilation,BUILD_DEMO_APPLET_$1,\
|
||||
SETUP:=GENERATE_USINGJDKBYTECODE$2,\
|
||||
SRC:=$(JDK_TOPDIR)/src/$3share/demo/applets/$1,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newdemo/applets/$1,\
|
||||
COPY:=.html .java .xyz .obj .au .gif))
|
||||
BUILD_DEMOS += $$(BUILD_DEMO_APPLET_$1)
|
||||
endef
|
||||
|
||||
$(eval $(call SetupAppletDemo,ArcTest))
|
||||
$(eval $(call SetupAppletDemo,BarChart))
|
||||
$(eval $(call SetupAppletDemo,Blink))
|
||||
$(eval $(call SetupAppletDemo,CardTest))
|
||||
$(eval $(call SetupAppletDemo,Clock))
|
||||
$(eval $(call SetupAppletDemo,DitherTest))
|
||||
$(eval $(call SetupAppletDemo,DrawTest))
|
||||
$(eval $(call SetupAppletDemo,Fractal))
|
||||
$(eval $(call SetupAppletDemo,GraphicsTest))
|
||||
$(eval $(call SetupAppletDemo,MoleculeViewer))
|
||||
$(eval $(call SetupAppletDemo,NervousText))
|
||||
$(eval $(call SetupAppletDemo,SimpleGraph))
|
||||
$(eval $(call SetupAppletDemo,SortDemo))
|
||||
$(eval $(call SetupAppletDemo,SpreadSheet))
|
||||
# Build WireFrame without a server since it
|
||||
# has a class Matrix3D that also exists in MoleculeViewer.
|
||||
$(eval $(call SetupAppletDemo,WireFrame,_NOSERV))
|
||||
|
||||
ifndef OPENJDK
|
||||
$(eval $(call SetupAppletDemo,Animator,,closed/))
|
||||
$(eval $(call SetupAppletDemo,GraphLayout,_NOSERV,closed/))
|
||||
$(eval $(call SetupAppletDemo,JumpingBox,,closed/))
|
||||
$(eval $(call SetupAppletDemo,TicTacToe,,closed/))
|
||||
endif
|
||||
|
||||
##################################################################################################
|
||||
|
||||
PATTERNS_TO_COPY=.html .txt .properties .js .gif .jpg .theme .data .opt README .c .h .png .ttf
|
||||
|
||||
define SetupDemo
|
||||
# Param 1 = Name of the demo
|
||||
# Param 2 = Subdirectory of the demo below the demo directory.
|
||||
# Param 3 = Additional javac flags.
|
||||
# Param 4 = The main class for the jar.
|
||||
# Param 5 = Additional source directory.
|
||||
# Param 6 = Extra dir below $(JDK_TOPDIR)/src (closed)
|
||||
# Param 7 = List of files to copy
|
||||
# Param 8 = Base name of jar file. Defaults to $1
|
||||
# Param 9 = Exclude list
|
||||
# Param 10 = Extra copy patterns
|
||||
# Param 11 = Extra manifest attribute
|
||||
# Param 12 = Suffix for compiler setup name
|
||||
|
||||
# In some demos the source is found in a subdir called src.
|
||||
$1_MAIN_SRC:=$$(wildcard $(JDK_TOPDIR)/src/$6share/demo/$2/$1/src)
|
||||
ifeq ($$($1_MAIN_SRC),)
|
||||
$1_MAIN_SRC:=$(JDK_TOPDIR)/src/$6share/demo/$2/$1
|
||||
endif
|
||||
|
||||
ifneq ($8,)
|
||||
$1_JARFILE := $8.jar
|
||||
else
|
||||
$1_JARFILE := $1.jar
|
||||
endif
|
||||
|
||||
# Compile java classes if there are any.
|
||||
$1_JAVA_FILES_EXIST := $$(shell $$(FIND) $$($1_MAIN_SRC) -name "*.java")
|
||||
|
||||
ifneq ($$($1_JAVA_FILES_EXIST),)
|
||||
$$(eval $$(call SetupJavaCompilation,BUILD_DEMO_$1,\
|
||||
SETUP:=GENERATE_USINGJDKBYTECODE$(12),\
|
||||
ADD_JAVAC_FLAGS:=$3,\
|
||||
SRC:=$$($1_MAIN_SRC) $5,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/$2/$1,\
|
||||
COPY:=$(PATTERNS_TO_COPY) $(10),\
|
||||
JAR:=$(JDK_OUTPUTDIR)/newdemo/$2/$1/$$($1_JARFILE),\
|
||||
JARMAIN:=$4,\
|
||||
MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf,\
|
||||
EXTRA_MANIFEST_ATTR:=$(11),\
|
||||
SRCZIP:=$(JDK_OUTPUTDIR)/newdemo/$2/$1/src.zip,\
|
||||
EXCLUDE_FILES:=$9))
|
||||
|
||||
BUILD_DEMOS += $$(BUILD_DEMO_$1) \
|
||||
$(JDK_OUTPUTDIR)/newdemo/$2/$1/$$($1_JARFILE) \
|
||||
$(JDK_OUTPUTDIR)/newdemo/$2/$1/src.zip
|
||||
endif
|
||||
|
||||
# Copy files.
|
||||
$1_COPY_TARGETS := $$(patsubst $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%,\
|
||||
$(JDK_OUTPUTDIR)/newdemo/$2/$1/%,\
|
||||
$$(wildcard $$(addprefix $(JDK_TOPDIR)/src/$6share/demo/$2/$1/,$7)))
|
||||
ifneq ($7,)
|
||||
$(JDK_OUTPUTDIR)/newdemo/$2/$1/% : $(JDK_TOPDIR)/src/$6share/demo/$2/$1/%
|
||||
mkdir -p $$(@D)
|
||||
cp $$< $$@
|
||||
chmod -f ug+w $$@
|
||||
|
||||
BUILD_DEMOS += $$($1_COPY_TARGETS)
|
||||
endif
|
||||
|
||||
endef
|
||||
|
||||
$(eval $(call SetupDemo,CodePointIM,jfc,,CodePointIM,,,*.html))
|
||||
$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.services : \
|
||||
$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar \
|
||||
$(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor
|
||||
(cd $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM && \
|
||||
$(MKDIR) -p _the.tmp/META-INF/services && \
|
||||
$(CP) $(JDK_TOPDIR)/src/share/demo/jfc/CodePointIM/java.awt.im.spi.InputMethodDescriptor _the.tmp/META-INF/services && \
|
||||
cd _the.tmp && \
|
||||
$(JAR) uf $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar META-INF/services/java.awt.im.spi.InputMethodDescriptor && \
|
||||
cd META-INF/services && \
|
||||
$(JAR) uf $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/CodePointIM.jar java.awt.im.spi.InputMethodDescriptor)
|
||||
$(RM) -r $(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.tmp
|
||||
touch $@
|
||||
|
||||
BUILD_DEMOS+=$(JDK_OUTPUTDIR)/newdemo/jfc/CodePointIM/_the.services
|
||||
|
||||
$(eval $(call SetupDemo,FileChooserDemo,jfc,,FileChooserDemo,,,README*))
|
||||
$(eval $(call SetupDemo,Font2DTest,jfc,,Font2DTest,,,*.html *.txt))
|
||||
$(eval $(call SetupDemo,Metalworks,jfc,,Metalworks,,,README*))
|
||||
$(eval $(call SetupDemo,Notepad,jfc,,Notepad,,,README*))
|
||||
$(eval $(call SetupDemo,SampleTree,jfc,,SampleTree,,,README*))
|
||||
$(eval $(call SetupDemo,SwingApplet,jfc,,SwingApplet,,,README* *.html))
|
||||
$(eval $(call SetupDemo,TableExample,jfc,,TableExample,,,README*))
|
||||
$(eval $(call SetupDemo,TransparentRuler,jfc,,transparentruler.Ruler,,,README*))
|
||||
$(eval $(call SetupDemo,jconsole-plugin,scripting,-cp $(JDK_OUTPUTDIR)/lib/jconsole.jar,,,,*.xml *.txt))
|
||||
$(eval $(call SetupDemo,FullThreadDump,management,,FullThreadDump,,,README*))
|
||||
$(eval $(call SetupDemo,JTop,management,-cp $(JDK_OUTPUTDIR)/lib/jconsole.jar,JTop,,,README*))
|
||||
$(eval $(call SetupDemo,MemoryMonitor,management,,MemoryMonitor,,,README*))
|
||||
$(eval $(call SetupDemo,VerboseGC,management,,VerboseGC,,,README*))
|
||||
$(eval $(call SetupDemo,zipfs,nio,,,,,README* *.java))
|
||||
|
||||
ifndef OPENJDK
|
||||
$(eval $(call SetupDemo,Laffy,jfc,,,,closed/,*))
|
||||
$(eval $(call SetupDemo,SwingSet3,jfc,,,,closed/,*))
|
||||
|
||||
$(eval $(call SetupDemo,Java2D,jfc,,java2d.Java2Demo,,closed/,*.html README*,Java2Demo))
|
||||
$(eval $(call SetupDemo,Stylepad,jfc,,Stylepad,\
|
||||
$(JDK_TOPDIR)/src/share/demo/jfc/Notepad,closed/,*.txt,,$(JDK_TOPDIR)/src/share/demo/jfc/Notepad/README.txt))
|
||||
$(eval $(call SetupDemo,SwingSet2,jfc,,SwingSet2,,closed/,README* *.html,,,.java COPYRIGHT,\
|
||||
SplashScreen-Image: resources/images/splash.png,_NOSERV))
|
||||
|
||||
BUILD_DEMOS += $(patsubst $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%,\
|
||||
$(JDK_OUTPUTDIR)/newdemo/nbproject/%,\
|
||||
$(shell $(FIND) $(JDK_TOPDIR)/src/closed/share/demo/nbproject/ -type f))
|
||||
$(JDK_OUTPUTDIR)/newdemo/nbproject/% : $(JDK_TOPDIR)/src/closed/share/demo/nbproject/%
|
||||
mkdir -p $(@D)
|
||||
cp $< $@
|
||||
chmod -f ug+w $@
|
||||
endif
|
||||
|
||||
##################################################################################################
|
||||
|
||||
# Why do we install a demo jar into the main jre/lib/ext????????????????
|
||||
$(JDK_OUTPUTDIR)/lib/ext/zipfs.jar : $(JDK_OUTPUTDIR)/newdemo/nio/zipfs/zipfs.jar
|
||||
$(MKDIR) -p $(@D)
|
||||
$(CP) $< $@
|
||||
|
||||
BUILD_DEMOS += $(JDK_OUTPUTDIR)/lib/ext/zipfs.jar
|
||||
|
||||
##################################################################################################
|
||||
|
||||
# In the old makefiles, j2dbench was not compiled.
|
||||
#$(eval $(call SetupDemo,J2DBench,java2d,/src,,j2dbench/J2DBench))
|
||||
|
||||
define SetupJVMTIDemo
|
||||
# Param 1 = Name of the demo
|
||||
# Param 2 = add these directories to the includes, default is agent_util
|
||||
# Param 3 = extra CFLAGS
|
||||
# Param 4 = C or C++ (defaults to C)
|
||||
# Param 5 = libs for posix
|
||||
# Param 6 = libs for winapi
|
||||
# Param 7 = libs for solaris
|
||||
BUILD_DEMO_JVMTI_$1_EXTRA_SRC:= $$(wildcard $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/demo/jvmti/$1) \
|
||||
$$(wildcard $$(addprefix $(JDK_TOPDIR)/src/share/demo/jvmti/,$2))
|
||||
BUILD_DEMO_JVMTI_$1_EXTRA_INC:=$$(addprefix -I,$$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC))
|
||||
BUILD_DEMO_JVMTI_$1_LANG:=C
|
||||
BUILD_DEMO_JVMTI_$1_O_FLAG:=$(C_O_FLAG_NORM)
|
||||
ifneq (,$4)
|
||||
BUILD_DEMO_JVMTI_$1_LANG:=$4
|
||||
endif
|
||||
ifeq (C++,$4)
|
||||
$1_EXTRA_CXX:=$(LIBCXX)
|
||||
BUILD_DEMO_JVMTI_$1_O_FLAG:=$(CXX_O_FLAG_NORM)
|
||||
endif
|
||||
$$(eval $$(call SetupNativeCompilation,BUILD_DEMO_JVMTI_$1,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\
|
||||
LANG:=$$(BUILD_DEMO_JVMTI_$1_LANG),\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $$(BUILD_DEMO_JVMTI_$1_O_FLAG) -I$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_INC) $3,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB),\
|
||||
LDFLAGS_SUFFIX:=$$($1_EXTRA_CXX),\
|
||||
LDFLAGS_SUFFIX_posix:=$5,\
|
||||
LDFLAGS_SUFFIX_winapi:=$6,\
|
||||
LDFLAGS_SUFFIX_solaris:=-lc $7,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newdemoobjs/jvmti/$1,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib/$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
$$(eval $$(call SetupZipArchive,BUILD_DEMO_JVMTI_SRC_$1,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1 $$(BUILD_DEMO_JVMTI_$1_EXTRA_SRC),\
|
||||
ZIP:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip))
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt : $(JDK_TOPDIR)/src/share/demo/jvmti/$1/README.txt
|
||||
$(MKDIR) -p $$(@D)
|
||||
$(CP) $$< $$@
|
||||
$(CHMOD) -f ug+w $$@
|
||||
|
||||
ifneq (,$$(wildcard $(JDK_TOPDIR)/src/share/demo/jvmti/$1/*.java))
|
||||
$$(eval $$(call SetupJavaCompilation,BUILD_DEMO_JVMTI_$1_JAVA,\
|
||||
SETUP:=GENERATE_USINGJDKBYTECODE,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/demo/jvmti/$1,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newdemoclasses/jvmti/$1,\
|
||||
COPY:=$(PATTERNS_TO_COPY),\
|
||||
JAR:=$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar,\
|
||||
JARMAIN:=,\
|
||||
MANIFEST:=$(JDK_TOPDIR)/make/tools/manifest.mf))
|
||||
|
||||
BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/$1.jar
|
||||
endif
|
||||
|
||||
BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jvmti/$1/lib/$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/src.zip \
|
||||
$(JDK_OUTPUTDIR)/newdemo/jvmti/$1/README.txt
|
||||
endef
|
||||
|
||||
$(eval $(call SetupJVMTIDemo,compiledMethodLoad, agent_util))
|
||||
$(eval $(call SetupJVMTIDemo,gctest, agent_util))
|
||||
$(eval $(call SetupJVMTIDemo,heapTracker, agent_util java_crw_demo))
|
||||
$(eval $(call SetupJVMTIDemo,heapViewer, agent_util))
|
||||
# hprof contains error messages using __FILE__ macro. These expand to the absolute path
|
||||
# in the new build system and relative in the old, causing the binaries to differ.
|
||||
$(eval $(call SetupJVMTIDemo,hprof, java_crw_demo,\
|
||||
-I$(JDK_TOPDIR)/src/share/npt -I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/npt,C,\
|
||||
-ldl,ws2_32.lib winmm.lib,-lsocket -lnsl))
|
||||
|
||||
$(eval $(call SetupJVMTIDemo,minst, agent_util java_crw_demo))
|
||||
$(eval $(call SetupJVMTIDemo,mtrace, agent_util java_crw_demo))
|
||||
$(eval $(call SetupJVMTIDemo,waiters, agent_util,,C++))
|
||||
$(eval $(call SetupJVMTIDemo,versionCheck, agent_util))
|
||||
|
||||
##################################################################################################
|
||||
|
||||
# The jpda demo (com/sun/tools/example) is oddly enough stored in src/share/classes.
|
||||
# At least, we do not need to compile the jpda demo, just jar/zip up the sources.
|
||||
JPDA_SOURCES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example -type f)
|
||||
# The number of files are few enough so that we can use echo safely below to list them.
|
||||
JPDA_FILES:=$(subst $(JDK_TOPDIR)/src/share/classes/,,$(JPDA_SOURCES))
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/jpda/src.zip : $(JPDA_SOURCES)
|
||||
mkdir -p $(@D)
|
||||
(cd $(JDK_TOPDIR)/src/share/classes && $(ZIP) -qru $@ com -i "com/sun/tools/example/*")
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar : $(JPDA_SOURCES)
|
||||
mkdir -p $(@D)
|
||||
$(RM) $(@D)/_the.sources
|
||||
$(call ListPathsSafely,JPDA_FILES,\n, >> $(@D)/_the.sources)
|
||||
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
|
||||
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" $(JDK_TOPDIR)/make/tools/manifest.mf > $(@D)/_the.manifest
|
||||
$(ECHO) "Main-Class: " >> $(@D)/_the.manifest
|
||||
(cd $(JDK_TOPDIR)/src/share/classes && $(JAR) cfm $@ $(@D)/_the.manifest @$(@D)/_the.sources)
|
||||
(cd $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example && $(JAR) uf $@ README)
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README : $(JDK_TOPDIR)/src/share/classes/com/sun/tools/example/README
|
||||
mkdir -p $(@D)
|
||||
$(CP) $< $@
|
||||
$(CHMOD) -f ug+w $@
|
||||
|
||||
BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/jpda/src.zip $(JDK_OUTPUTDIR)/newdemo/jpda/examples.jar \
|
||||
$(JDK_OUTPUTDIR)/newdemo/jpda/com/sun/tools/example/README
|
||||
|
||||
##################################################################################################
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/management/index.html : $(JDK_TOPDIR)/src/share/demo/management/index.html
|
||||
mkdir -p $(@D)
|
||||
$(CP) $< $@
|
||||
$(CHMOD) -f ug+w $@
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/jvmti/index.html : $(JDK_TOPDIR)/src/share/demo/jvmti/index.html
|
||||
mkdir -p $(@D)
|
||||
$(CP) $< $@
|
||||
$(CHMOD) -f ug+w $@
|
||||
|
||||
BUILD_DEMOS += $(JDK_OUTPUTDIR)/newdemo/management/index.html \
|
||||
$(JDK_OUTPUTDIR)/newdemo/jvmti/index.html
|
||||
|
||||
##################################################################################################
|
||||
|
||||
# The netbeans project files are copied into the demo directory.
|
||||
|
||||
NETBEANS_DEMO_PROJECTS_FILES=$(shell $(FIND) $(JDK_TOPDIR)/src/share/demo/nbproject -type f)
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/_the.nbproject: $(NETBEANS_DEMO_PROJECTS_FILES)
|
||||
$(MKDIR) -p $(JDK_OUTPUTDIR)/newdemo
|
||||
$(RM) -rf $(JDK_OUTPUTDIR)/newdemo/nbproject
|
||||
echo Copying Netbeans demo projects
|
||||
(cd $(JDK_TOPDIR)/src/share/demo && cp -r nbproject $(JDK_OUTPUTDIR)/newdemo)
|
||||
touch $@
|
||||
|
||||
##################################################################################################
|
||||
|
||||
$(JDK_OUTPUTDIR)/newdemo/README : $(JDK_TOPDIR)/src/share/demo/README
|
||||
mkdir -p $(@D)
|
||||
cp $< $@
|
||||
|
||||
##################################################################################################
|
||||
|
||||
all: $(BUILD_DEMOS) $(JDK_OUTPUTDIR)/newdemo/_the.nbproject $(JDK_OUTPUTDIR)/newdemo/README
|
||||
|
||||
.PHONY: all
|
||||
243
jdk/makefiles/CompileJavaClasses.gmk
Normal file
243
jdk/makefiles/CompileJavaClasses.gmk
Normal file
@ -0,0 +1,243 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
|
||||
EXCLUDES:= sun/dc \
|
||||
sun/security/pkcs11 \
|
||||
com/sun/pept \
|
||||
com/sun/tools/example/trace\
|
||||
com/sun/tools/example/debug/bdi\
|
||||
com/sun/tools/example/debug/event\
|
||||
com/sun/tools/example/debug/gui \
|
||||
javax/crypto \
|
||||
com/oracle/security
|
||||
|
||||
ifdef OPENJDK
|
||||
EXCLUDES+= com/sun/jmx/snmp \
|
||||
sun/management/snmp \
|
||||
com/sun/script
|
||||
endif
|
||||
|
||||
ifneq ($(PLATFORM),solaris)
|
||||
# Exclude Solaris nio and two security related files in src/share/classes
|
||||
EXFILES:=SolarisAclFileAttributeView.java \
|
||||
SolarisFileStore.java \
|
||||
SolarisFileSystem.java \
|
||||
SolarisFileSystemProvider.java \
|
||||
SolarisNativeDispatcher.java \
|
||||
SolarisUserDefinedFileAttributeView.java \
|
||||
SolarisWatchService.java \
|
||||
DevPollArrayWrapper.java \
|
||||
DevPollSelectorImpl.java \
|
||||
DevPollSelectorProvider.java \
|
||||
SolarisAsynchronousChannelProvider.java \
|
||||
SolarisEventPort.java \
|
||||
SolarisAclFileAttributeView.java \
|
||||
SolarisFileStore.java \
|
||||
SolarisFileSystem.java \
|
||||
SolarisFileSystemProvider.java \
|
||||
SolarisUserDefinedFileAttributeView.java \
|
||||
SolarisNativeDispatcher.java \
|
||||
SolarisWatchService.java \
|
||||
SolarisLoginModule.java \
|
||||
SolarisSystem.java \
|
||||
sun/tools/attach/SolarisAttachProvider.java \
|
||||
sun/tools/attach/SolarisVirtualMachine.java
|
||||
endif
|
||||
|
||||
# Why?
|
||||
EXFILES+=WrapperGenerator.java
|
||||
|
||||
ifneq ($(PLATFORM),windows)
|
||||
# Exclude Window security related files in src/share/classes
|
||||
EXFILES+=NTLoginModule.java \
|
||||
NTSystem.java
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),windows)
|
||||
# Does nio channels exist on Windows?
|
||||
EXCLUDES+=sun/nio/ch
|
||||
endif
|
||||
|
||||
ifneq ($(PLATFORM),linux)
|
||||
EXCLUDES+=com/sun/java/swing/plaf/gtk
|
||||
EXFILES+=sun/tools/attach/LinuxAttachProvider.java \
|
||||
sun/tools/attach/LinuxVirtualMachine.java
|
||||
endif
|
||||
|
||||
ifneq ($(PLATFORM),macosx)
|
||||
EXFILES+=sun/nio/fs/BsdFileStore.java \
|
||||
sun/nio/fs/BsdFileSystem.java \
|
||||
sun/nio/fs/BsdFileSystemProvider.java \
|
||||
sun/nio/fs/BsdNativeDispatcher.java \
|
||||
sun/tools/attach/BsdAttachProvider.java \
|
||||
sun/tools/attach/BsdVirtualMachine.java
|
||||
endif
|
||||
|
||||
# Generated nimbus files that apparently should not be compiled...
|
||||
EXFILES+=InternalFrameTitlePanePainter.java \
|
||||
OptionPaneMessageAreaPainter.java \
|
||||
ScrollBarPainter.java \
|
||||
SliderPainter.java \
|
||||
SpinnerPainter.java \
|
||||
SplitPanePainter.java \
|
||||
TabbedPanePainter.java
|
||||
|
||||
# New class /java/lang/annotation/ContainerAnnotation.java is not included in old
|
||||
# build
|
||||
EXFILES+=java/lang/annotation/ContainerAnnotation.java
|
||||
|
||||
# Exclude BreakIterator classes that are just used in compile process to generate
|
||||
# data files and shouldn't go in the product
|
||||
EXFILES+=sun/text/resources/BreakIteratorRules.java \
|
||||
sun/text/resources/BreakIteratorRules_th.java
|
||||
|
||||
# TODO: Add BUILD_HEADLESS_ONLY to configure?
|
||||
ifdef BUILD_HEADLESS_ONLY
|
||||
EXCLUDES+=sun/applet
|
||||
endif
|
||||
|
||||
ifdef OPENJDK
|
||||
EXCLUDES+=sun/java2d/cmm/kcms
|
||||
else
|
||||
EXCLUDES+=sun/java2d/cmm/lcms
|
||||
endif
|
||||
|
||||
# Not used on windows
|
||||
ifneq ($(PLATFORM), windows)
|
||||
EXFILES+=sun/awt/AWTCharset.java
|
||||
endif
|
||||
|
||||
# Exclude some generated AWT files that were implicitly not included by the old build.
|
||||
EXFILES+=sun/awt/X11/ScreenFormat.java \
|
||||
sun/awt/X11/XArc.java \
|
||||
sun/awt/X11/XChar2b.java \
|
||||
sun/awt/X11/XCharStruct.java \
|
||||
sun/awt/X11/XClassHint.java \
|
||||
sun/awt/X11/XComposeStatus.java \
|
||||
sun/awt/X11/XExtCodes.java \
|
||||
sun/awt/X11/XFontProp.java \
|
||||
sun/awt/X11/XFontSetExtents.java \
|
||||
sun/awt/X11/XFontStruct.java \
|
||||
sun/awt/X11/XGCValues.java \
|
||||
sun/awt/X11/XHostAddress.java \
|
||||
sun/awt/X11/XIMCallback.java \
|
||||
sun/awt/X11/XIMHotKeyTrigger.java \
|
||||
sun/awt/X11/XIMHotKeyTriggers.java \
|
||||
sun/awt/X11/XIMPreeditCaretCallbackStruct.java \
|
||||
sun/awt/X11/XIMPreeditDrawCallbackStruct.java \
|
||||
sun/awt/X11/XIMPreeditStateNotifyCallbackStruct.java \
|
||||
sun/awt/X11/XIMStatusDrawCallbackStruct.java \
|
||||
sun/awt/X11/XIMStringConversionCallbackStruct.java \
|
||||
sun/awt/X11/XIMStringConversionText.java \
|
||||
sun/awt/X11/XIMStyles.java \
|
||||
sun/awt/X11/XIMText.java \
|
||||
sun/awt/X11/XIMValuesList.java \
|
||||
sun/awt/X11/XImage.java \
|
||||
sun/awt/X11/XKeyboardControl.java \
|
||||
sun/awt/X11/XKeyboardState.java \
|
||||
sun/awt/X11/XOMCharSetList.java \
|
||||
sun/awt/X11/XOMFontInfo.java \
|
||||
sun/awt/X11/XOMOrientation.java \
|
||||
sun/awt/X11/XPoint.java \
|
||||
sun/awt/X11/XRectangle.java \
|
||||
sun/awt/X11/XSegment.java \
|
||||
sun/awt/X11/XStandardColormap.java \
|
||||
sun/awt/X11/XTextItem.java \
|
||||
sun/awt/X11/XTextItem16.java \
|
||||
sun/awt/X11/XTextProperty.java \
|
||||
sun/awt/X11/XTimeCoord.java \
|
||||
sun/awt/X11/XWindowChanges.java \
|
||||
sun/awt/X11/XdbeSwapInfo.java \
|
||||
sun/awt/X11/XmbTextItem.java \
|
||||
sun/awt/X11/XwcTextItem.java
|
||||
|
||||
# Exclude sun/security files that should go in a separate jar
|
||||
EXFILES+=sun/security/ec/ECDHKeyAgreement.java \
|
||||
sun/security/ec/ECDSASignature.java \
|
||||
sun/security/ec/ECKeyPairGenerator.java \
|
||||
sun/security/ec/SunEC$1.java \
|
||||
sun/security/ec/SunEC.java \
|
||||
sun/security/ec/SunECEntries.java
|
||||
|
||||
# Exclude another implicitly not included file.
|
||||
EXFILES+=sun/util/locale/AsciiUtil.java
|
||||
|
||||
ifeq ($(PLATFORM), linux)
|
||||
EXFILES+=sun/nio/fs/PollingWatchService.java
|
||||
endif
|
||||
|
||||
# TODO: Fix when converting NIO
|
||||
# Exclude *-linux-arm.java and *-linux-ppc.java from closed.
|
||||
EXFILES+=-linux-arm.java \
|
||||
-linux-ppc.java
|
||||
|
||||
# TODO: Is this necessary?
|
||||
ifeq ($(PLATFORM), windows)
|
||||
EXFILES+=sun/net/sdp/SdpProvider.java
|
||||
else
|
||||
EXFILES+=sun/net/www/protocol/http/ntlm/NTLMAuthSequence.java
|
||||
endif
|
||||
|
||||
# Acquire a list of files that should be copied straight over to the classes.
|
||||
include CopyIntoClasses.gmk
|
||||
# Now we have COPY_PATTERNS, COPY_FILES and COPY_EXTRA
|
||||
|
||||
ifndef OPENJDK
|
||||
CLOSED_SRC_DIRS:=$(JDK_TOPDIR)/src/closed/share/classes \
|
||||
$(JDK_TOPDIR)/src/closed/$(LEGACY_HOST_OS_API)/classes
|
||||
endif
|
||||
|
||||
$(eval $(call SetupJavaCompilation,BUILD_JDK,\
|
||||
SETUP:=GENERATE_JDKBYTECODE,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/classes \
|
||||
$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes \
|
||||
$(JDK_OUTPUTDIR)/gensrc \
|
||||
$(CLOSED_SRC_DIRS),\
|
||||
EXCLUDES:=$(EXCLUDES),\
|
||||
EXCLUDE_FILES:=$(EXFILES),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newclasses,\
|
||||
COPY:=$(COPY_PATTERNS),\
|
||||
COPY_FILES:=$(COPY_FILES),\
|
||||
JAR:=$(JDK_OUTPUTDIR)/newrt.jar,\
|
||||
HEADERS:=$(JDK_OUTPUTDIR)/gensrc_headers))
|
||||
|
||||
# copy with -a to preserve timestamps so dependencies down the line aren't messed up
|
||||
all: $(BUILD_JDK) $(JDK_OUTPUTDIR)/newrt.jar $(COPY_EXTRA)
|
||||
(cd $(JDK_OUTPUTDIR); \
|
||||
$(CP) -rp newclasses/* classes; \
|
||||
$(FIND) classes -name "_the.*" $(FIND_DELETE); \
|
||||
$(TOUCH) $(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin)
|
||||
|
||||
.PHONY: all
|
||||
360
jdk/makefiles/CompileLaunchers.gmk
Normal file
360
jdk/makefiles/CompileLaunchers.gmk
Normal file
@ -0,0 +1,360 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
defalt: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include NativeCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
|
||||
BUILD_LAUNCHERS=
|
||||
|
||||
define SetupLauncher
|
||||
# TODO: Fix mapfile on solaris. Won't work with ld as linker.
|
||||
# Parameter 1 is the name of the launcher (java,javac,jar...)
|
||||
# Parameter 2 are extra CFLAGS
|
||||
# Parameter 3 are extra LDFLAGS
|
||||
# Parameter 4 are extra LDFLAGS_SUFFIX_posix
|
||||
# Parameter 5 are extra LDFLAGS_SUFFIX_winapi
|
||||
$(call SetupNativeCompilation,BUILD_LAUNCHER_$1,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/bin,\
|
||||
INCLUDE_FILES:=main.c,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKEXE) $(C_O_FLAG_NORM) \
|
||||
-I$(JDK_TOPDIR)/src/share/bin \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/bin \
|
||||
-I$(JDK_TOPDIR)/src/$(PLATFORM)/bin \
|
||||
-DFULL_VERSION='"$(FULL_VERSION)"' \
|
||||
-DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
|
||||
-DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
|
||||
-DLIBARCHNAME='"$(ARCH)"' \
|
||||
-DLAUNCHER_NAME='"openjdk"' \
|
||||
-DPROGNAME='"$1"' $(DPACKAGEPATH) \
|
||||
$2,\
|
||||
CFLAGS_linux:=-fPIC,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKEXE) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN,../lib/$(LIBARCH)/jli) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN,../jre/lib/$(LIBARCH)/jli) \
|
||||
$3,\
|
||||
LDFLAGS_linux:=$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/launchers/mapfile-$(ARCH)),\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKEXE_SUFFIX),\
|
||||
LDFLAGS_SUFFIX_posix:=$4 -lc,\
|
||||
LDFLAGS_SUFFIX_winapi:=$5,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/$1_objs,\
|
||||
EXE:=$(JDK_OUTPUTDIR)/newobjs/$1$(EXE_SUFFIX),\
|
||||
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
|
||||
RC_FLAGS:=$(RC_FLAGS)\
|
||||
/D "JDK_FNAME=$1$(EXE_SUFFIX)" \
|
||||
/D "JDK_INTERNAL_NAME=$1" \
|
||||
/D "JDK_FTYPE=0x1L")
|
||||
|
||||
BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/newobjs/$1$(EXE_SUFFIX) $(JDK_OUTPUTDIR)/bin/$1$(EXE_SUFFIX)
|
||||
endef
|
||||
|
||||
##########################################################################################
|
||||
|
||||
XLIBS:=-lX11
|
||||
ifeq ($(PLATFORM),macosx)
|
||||
DPACKAGEPATH:=-DPACKAGE_PATH='"$(PACKAGE_PATH)"'
|
||||
XLIBS:=
|
||||
endif
|
||||
|
||||
$(eval $(call SetupLauncher,java,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS))
|
||||
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
THREAD_LIB:=-lthread
|
||||
endif
|
||||
ifeq ($(PLATFORM),linux)
|
||||
THREAD_LIB:=-lpthread
|
||||
endif
|
||||
|
||||
ifndef BUILD_HEADLESS_ONLY
|
||||
$(eval $(call SetupLauncher,appletviewer,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.applet.Main"$(COMMA) }',,\
|
||||
$(THREAD_LIB) $(XLIBS) -ldl))
|
||||
endif
|
||||
|
||||
$(eval $(call SetupLauncher,extcheck,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.extcheck.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,idlj,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.corba.se.idl.toJavaPortable.Compile"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jar,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jar.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jarsigner,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.JarSigner"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,javac,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javac.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,javadoc,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javadoc.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,javah,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javah.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,javap,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DNEVER_ACT_AS_SERVER_CLASS_MACHINE \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.javap.Main"$(COMMA) }'))
|
||||
|
||||
BUILD_LAUNCHER_jconsole_CPPFLAGS_windows:=-DJAVAW
|
||||
BUILD_LAUNCHER_jconsole_LDFLAGS_windows:=user32.lib
|
||||
|
||||
$(eval $(call SetupLauncher,jconsole,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "-J-Djconsole.showOutputViewer"$(COMMA) "sun.tools.jconsole.JConsole"$(COMMA) }' \
|
||||
-DAPP_CLASSPATH='{ "/lib/jconsole.jar"$(COMMA) "/lib/tools.jar"$(COMMA) "/classes" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jdb,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.example.debug.tty.TTY"$(COMMA) }' \
|
||||
-DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jhat,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.hat.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jinfo,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
|
||||
"-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
|
||||
"-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
|
||||
"sun.tools.jinfo.JInfo"$(COMMA) }' \
|
||||
-DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jmap,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
|
||||
"-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
|
||||
"-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
|
||||
"sun.tools.jmap.JMap"$(COMMA) }' \
|
||||
-DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jps,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jps.Jps"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jrunscript,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.script.shell.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jsadebugd,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.jvm.hotspot.jdi.SADebugServer"$(COMMA) }' \
|
||||
-DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jstack,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
|
||||
"-J-Dsun.jvm.hotspot.debugger.useProcDebugger"$(COMMA) \
|
||||
"-J-Dsun.jvm.hotspot.debugger.useWindbgDebugger"$(COMMA) \
|
||||
"sun.tools.jstack.JStack"$(COMMA) }' \
|
||||
-DAPP_CLASSPATH='{ "/lib/tools.jar"$(COMMA) "/lib/sa-jdi.jar"$(COMMA) "/classes" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jstat,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jstat.Jstat"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jstatd,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jstatd.Jstatd"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,keytool,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.KeyTool"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,native2ascii,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.native2ascii.Main"$(COMMA) }'))
|
||||
|
||||
ifndef BUILD_HEADLESS_ONLY
|
||||
$(eval $(call SetupLauncher,policytool,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.tools.policytool.PolicyTool"$(COMMA) }'))
|
||||
endif
|
||||
|
||||
$(eval $(call SetupLauncher,rmic,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.rmi.rmic.Main"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,schemagen,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.jxc.SchemaGenerator"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,serialver,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS \
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.serialver.SerialVer"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,xjc,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.xjc.Driver"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,wsgen,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.ws.WsGen"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,wsimport,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.tools.internal.ws.WsImport"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,orbd,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
|
||||
"-J-Dcom.sun.CORBA.activation.DbDir=./orb.db"$(COMMA) \
|
||||
"-J-Dcom.sun.CORBA.activation.Port=1049"$(COMMA) \
|
||||
"-J-Dcom.sun.CORBA.POA.ORBServerId=1"$(COMMA) \
|
||||
"com.sun.corba.se.impl.activation.ORBD"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,servertool,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.corba.se.impl.activation.ServerTool"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,tnameserv,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) \
|
||||
"-J-Dcom.sun.CORBA.activation.DbDir=./orb.db"$(COMMA) \
|
||||
"-J-Djava.util.logging.LoggingPermission=contol"$(COMMA) \
|
||||
"-J-Dcom.sun.CORBA.POA.ORBServerId=1"$(COMMA) \
|
||||
"com.sun.corba.se.impl.naming.cosnaming.TransientNameServer"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,pack200,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "com.sun.java.util.jar.pack.Driver"$(COMMA) "--pack" }'))
|
||||
|
||||
$(eval $(call SetupLauncher,rmid,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.rmi.server.Activation"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,rmiregistry,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.rmi.registry.RegistryImpl"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,jcmd,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.tools.jcmd.JCmd"$(COMMA) }'))
|
||||
|
||||
ifeq ($(PLATFORM),windows)
|
||||
$(eval $(call SetupLauncher,kinit,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.krb5.internal.tools.Kinit"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,klist,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.krb5.internal.tools.Klist"$(COMMA) }'))
|
||||
|
||||
$(eval $(call SetupLauncher,ktab,\
|
||||
-DJAVA_ARGS='{ "-J-ms8m"$(COMMA) "sun.security.krb5.internal.tools.Ktab"$(COMMA) }'))
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
# The order of the object files on the link command line affects the size of the resulting
|
||||
# binary (at least on linux) which causes the size to differ between old and new build.
|
||||
UNPACKEXE_ZIPOBJS = $(JDK_OUTPUTDIR)/newobjs/libzip/zcrc32$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/deflate$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/trees$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/zadler32$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/compress$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/zutil$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/inflate$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/infback$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/inftrees$(OBJ_SUFFIX) \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libzip/inffast$(OBJ_SUFFIX)
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_UNPACKEXE,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
|
||||
EXCLUDE_FILES:=jni.cpp,\
|
||||
LANG:=C++,\
|
||||
CFLAGS:=$(CXXFLAGS_JDKEXE) $(CXX_O_FLAG_NORM) \
|
||||
-DFULL \
|
||||
-I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5,\
|
||||
CFLAGS_release:=-DPRODUCT,\
|
||||
CFLAGS_linux:=-fPIC,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKEXE) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libunpack/mapfile-vers-unpack200) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN), \
|
||||
LDFLAGS_SUFFIX:=$(UNPACKEXE_ZIPOBJS) $(LIBCXX),\
|
||||
LDFLAGS_SUFFIX_solaris:=-lc,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/unpackexe,\
|
||||
EXE:=$(JDK_OUTPUTDIR)/newobjs/unpack200$(EXE_SUFFIX),\
|
||||
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
|
||||
RC_FLAGS:=$(RC_FLAGS)\
|
||||
/D "JDK_FNAME=unpack200.exe" \
|
||||
/D "JDK_INTERNAL_NAME=unpack200" \
|
||||
/D "JDK_FTYPE=0x1L"))
|
||||
|
||||
$(JDK_OUTPUTDIR)/bin/unpack200$(EXE_SUFFIX): $(UNPACKEXE_ZIPOBJS)
|
||||
|
||||
ifeq ($(HOST_OS_API),winapi)
|
||||
UNPACK_MANIFEST:=$(JDK_OUTPUTDIR)/newobjs/unpackexe/unpack200.exe.manifest
|
||||
IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
|
||||
SED_ALL_MANIFEST=$(SED) -e 's%IMVERSION%$(IMVERSIONVALUE)%g'
|
||||
|
||||
$(UNPACK_MANIFEST): $(JDK_TOPDIR)/src/windows/resource/unpack200_proto.exe.manifest
|
||||
$(CAT) $< | $(SED_ALL_MANIFEST) > $@
|
||||
|
||||
# Adding a dependency to spec file might be a good idea here, to force rerun on version change.
|
||||
$(JDK_OUTPUTDIR)/newobjs/unpackexe/unpack200.exe.manifest.mt: $(UNPACK_MANIFEST)
|
||||
$(MT) /manifest $< /outputresource:$(JDK_OUTPUTDIR)/newobjs/unpack200$(EXE_SUFFIX);#1
|
||||
touch $@
|
||||
|
||||
$(JDK_OUTPUTDIR)/newobjs/unpackexe/unpack200.exe.manifest.mt: $(JDK_OUTPUTDIR)/bin/unpack200$(EXE_SUFFIX)
|
||||
endif
|
||||
|
||||
BUILD_LAUNCHERS += $(JDK_OUTPUTDIR)/bin/unpack200$(EXE_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
#
|
||||
# The java-rmi.cgi script in bin/ only gets delivered in certain situations
|
||||
#
|
||||
JAVA_RMI_CGI:=$(JDK_OUTPUTDIR)/bin/java-rmi.cgi
|
||||
ifeq ($(PLATFORM), linux)
|
||||
BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
|
||||
endif
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
|
||||
endif
|
||||
endif
|
||||
|
||||
# TODO:
|
||||
# On windows java-rmi.cgi shouldn't be bundled since Java 1.2, but has been built all
|
||||
# this time anyway. Since jdk6, it has been built from the wrong source and resulted
|
||||
# in a copy of the standard java launcher named "java-rmi.exe" ending up in the final
|
||||
# images bin dir. This weird behavior is mimicked here in the converted makefiles for
|
||||
# now. Should probably just be deleted.
|
||||
# http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6512052
|
||||
ifeq ($(HOST_OS_API),winapi)
|
||||
$(eval $(call SetupLauncher,java-rmi,\
|
||||
-DEXPAND_CLASSPATH_WILDCARDS,\
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/java/main/java/mapfile-$(ARCH))))
|
||||
|
||||
$(JAVA_RMI_CGI): $(JDK_OUTPUTDIR)/newobjs/java-rmi$(EXE_SUFFIX)
|
||||
$(CP) $< $@
|
||||
|
||||
BUILD_LAUNCHERS += $(JAVA_RMI_CGI)
|
||||
else
|
||||
$(JAVA_RMI_CGI): $(JDK_TOPDIR)/src/solaris/bin/java-rmi.cgi.sh
|
||||
$(CP) $< $@
|
||||
$(CHMOD) a+x $@
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(JDK_OUTPUTDIR)/bin/% : $(JDK_OUTPUTDIR)/newobjs/%
|
||||
echo Copying $(@F)
|
||||
$(CP) $< $@
|
||||
|
||||
$(BUILD_LAUNCHERS) : $(JDK_TOPDIR)/makefiles/CompileLaunchers.gmk
|
||||
|
||||
all: $(BUILD_LAUNCHERS)
|
||||
|
||||
.PHONY: all
|
||||
608
jdk/makefiles/CompileNativeLibraries.gmk
Normal file
608
jdk/makefiles/CompileNativeLibraries.gmk
Normal file
@ -0,0 +1,608 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
defalt: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include NativeCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
|
||||
# Copy files (can now depend on $(COPY_FILES))
|
||||
include CopyFiles.gmk
|
||||
|
||||
# Include the javah generated headers.
|
||||
CFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers
|
||||
CXXFLAGS_JDKLIB += -I$(JDK_OUTPUTDIR)/gensrc_headers
|
||||
|
||||
# Put the libraries here. Different locations for different host apis.
|
||||
ifeq ($(HOST_OS_API),posix)
|
||||
ifneq ($(HOST_OS),macosx)
|
||||
INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib/$(LIBARCH)
|
||||
LIBARCHDIR=$(LIBARCH)/
|
||||
else
|
||||
INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/lib
|
||||
LIBARCHDIR=/
|
||||
endif
|
||||
else
|
||||
INSTALL_LIBRARIES_HERE:=$(JDK_OUTPUTDIR)/bin
|
||||
endif
|
||||
|
||||
$(INSTALL_LIBRARIES_HERE)/%$(SHARED_LIBRARY_SUFFIX) : $(JDK_OUTPUTDIR)/newobjs/%$(SHARED_LIBRARY_SUFFIX)
|
||||
echo Copying $(@F)
|
||||
$(CP) $< $@
|
||||
|
||||
BUILD_LIBRARIES=
|
||||
|
||||
# TODO: Temporary until awt is converted:
|
||||
# OBJDIRNAME is the name of the directory where the object code is to
|
||||
# be placed. It's name depends on whether the data model architecture
|
||||
# is 32-bit or not.
|
||||
ifneq ($(ARCH_DATA_MODEL), 32)
|
||||
OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
|
||||
else
|
||||
OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX)
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBZIP,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/java/util/zip,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \
|
||||
-I$(JDK_TOPDIR)/src/share/native/java/util/zip/zlib-1.2.5 \
|
||||
-I$(JDK_TOPDIR)/src/share/native/java/io \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/java/io,\
|
||||
CFLAGS_posix:=-DUSE_MMAP,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(EXPORT_ZIP_FUNCS) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libzip/mapfile-vers),\
|
||||
LDFLAGS_winapi:=-export:ZIP_Open -export:ZIP_Close -export:ZIP_FindEntry \
|
||||
-export:ZIP_ReadEntry -export:ZIP_GetNextEntry,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libzip,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)zip$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
LIBUNPACK_LIB_FILE := $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBUNPACK,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/com/sun/java/util/jar/pack,\
|
||||
EXCLUDE_FILES:=main.cpp,\
|
||||
LANG:=C++,\
|
||||
CFLAGS:=$(CXXFLAGS_JDKLIB) $(CXX_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \
|
||||
-DNO_ZLIB -DUNPACK_JNI -DFULL,\
|
||||
CFLAGS_release:=-DPRODUCT,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB)\
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libunpack/mapfile-vers) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_winapi:=-map:$(JDK_OUTPUTDIR)/newobjs/unpack.map /debug,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
LDFLAGS_SUFFIX_posix:=$(LIBCXX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libunpack,\
|
||||
LIB:=$(LIBUNPACK_LIB_FILE),\
|
||||
VERSIONINFO_RESOURCE:=$(JDK_TOPDIR)/src/windows/resource/version.rc,\
|
||||
RC_FLAGS:=$(RC_FLAGS)\
|
||||
/D "JDK_FNAME=unpack.dll" \
|
||||
/D "JDK_INTERNAL_NAME=unpack" \
|
||||
/D "JDK_FTYPE=0x2L"))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
ifeq ($(HOST_OS_API),winapi)
|
||||
$(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.map: $(LIBUNPACK_LIB_FILE)
|
||||
echo Copying $(@F)
|
||||
$(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.map,$<) $@
|
||||
|
||||
$(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)unpack.pdb: $(LIBUNPACK_LIB_FILE)
|
||||
echo Copying $(@F)
|
||||
$(CP) $(patsubst %$(SHARED_LIBRARY_SUFFIX),%.pdb,$<) $@
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBVERIFY,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/common,\
|
||||
EXCLUDE_FILES:=check_version.c jdk_util.c jio.c jni_util.c verify_stub.c,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) ${C_O_FLAG_HI} $(SHARED_LIBRARY_FLAGS), \
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libverify/mapfile-vers),\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libverify,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)verify$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/src,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) ${C_O_FLAG_NONE}\
|
||||
-I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include,\
|
||||
CFLAGS_winapi_debug:=-DLOGGING,\
|
||||
ARFLAGS:=$(ARFLAGS),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libfdlibm,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fdlibm$(STATIC_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
LIBATTACH_EXCLUDE_FILES:=
|
||||
ifneq ($(PLATFORM),solaris)
|
||||
LIBATTACH_EXCLUDE_FILES+=SolarisVirtualMachine.c
|
||||
endif
|
||||
ifneq ($(PLATFORM),linux)
|
||||
LIBATTACH_EXCLUDE_FILES+=LinuxVirtualMachine.c
|
||||
endif
|
||||
ifneq ($(PLATFORM),macosx)
|
||||
LIBATTACH_EXCLUDE_FILES+=BsdVirtualMachine.c
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBATTACH,\
|
||||
SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/tools/attach,\
|
||||
EXCLUDE_FILES:=$(LIBATTACH_EXCLUDE_FILES),\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS),\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libattach/mapfile-$(PLATFORM)) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_solaris:=-ldoor,\
|
||||
LDFLAGS_winapi:=psapi.lib advapi32.lib,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libattach,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)attach$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SOCKET,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/transport/socket \
|
||||
$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/socket,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS) \
|
||||
-I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(PLATFORM) \
|
||||
-I$(JDK_TOPDIR)/src/share/transport/socket \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/socket \
|
||||
-I$(JDK_TOPDIR)/src/share/back/export \
|
||||
-I$(JDK_TOPDIR)/src/share/back,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libdt_socket/mapfile-vers),\
|
||||
LDFLAGS_SUFFIX_linux:=-lpthread,\
|
||||
LDFLAGS_SUFFIX_solaris:=-lnsl -lsocket,\
|
||||
LDFLAGS_SUFFIX_winapi:=-export:jdwpTransport_OnLoad ws2_32.lib,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libdt_socket,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)dt_socket$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifeq ($(HOST_OS_API),winapi)
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBDT_SHMEM,\
|
||||
SRC:= $(JDK_TOPDIR)/src/share/native/com/sun/tools/jdi \
|
||||
$(JDK_TOPDIR)/src/share/transport/shmem \
|
||||
$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/shmem,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) -DUSE_MMAP $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
|
||||
-I$(INCLUDEDIR) -I$(JDK_OUTPUTDIR)/include/$(PLATFORM) \
|
||||
-I$(JDK_TOPDIR)/src/share/transport/shmem \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/transport/shmem \
|
||||
-I$(JDK_TOPDIR)/src/share/back/export, \
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB),\
|
||||
LDFLAGS_winapi:=-export:jdwpTransport_OnLoad,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libdt_shmem,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)dt_shmem$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)dt_shmem$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
endif # PLATFORM
|
||||
|
||||
##########################################################################################
|
||||
# JDWP_LOGGING causes log messages to be compiled into the library. These reference the
|
||||
# __FILE__ macro which here expands to the absolute path of the file while the old build
|
||||
# system used a relative path. This causes the binaries to differ in size.
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJDWP,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/back $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/back,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) -DJDWP_LOGGING $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
|
||||
-I$(JDK_TOPDIR)/src/share/transport/export \
|
||||
-I$(JDK_TOPDIR)/src/share/back/export \
|
||||
-I$(JDK_TOPDIR)/src/share/npt \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/npt \
|
||||
-I$(JDK_TOPDIR)/src/share/back \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/back \
|
||||
-I$(JDK_OUTPUTDIR)/gensrc_jdwp_headers,\
|
||||
LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjdwp/mapfile-vers),\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
LDFLAGS_SUFFIX_linux:=-ldl,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libjdwp,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jdwp$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifneq ($(PLATFORM),solaris)
|
||||
LIBJAAS_EXCLUDE_FILES:=Solaris.c
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAAS,\
|
||||
SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/com/sun/security/auth/module,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS),\
|
||||
LDFLAGS:=$(filter-out -ljava,$(LDFLAGS_JDKLIB)) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_winapi:=netapi32.lib user32.lib mpr.lib advapi32.lib,\
|
||||
LDFLAGS_solaris:=$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjaas/mapfile-vers),\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
EXCLUDE_FILES:=$(LIBJAAS_EXCLUDE_FILES),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libjaas,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
# Oddly enough, it is called jaas_nt.dll under winapi and libjaas_unix.so under posix.
|
||||
ifeq ($(PLATFORM),windows)
|
||||
$(INSTALL_LIBRARIES_HERE)/jaas_nt.dll : $(JDK_OUTPUTDIR)/newobjs/jaas.dll
|
||||
echo Copying $(@F)
|
||||
$(CP) $< $@
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/jaas_nt.dll
|
||||
else
|
||||
$(INSTALL_LIBRARIES_HERE)/libjaas_unix$(SHARED_LIBRARY_SUFFIX) : $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jaas$(SHARED_LIBRARY_SUFFIX)
|
||||
echo Copying $(@F)
|
||||
$(CP) $< $@
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/libjaas_unix$(SHARED_LIBRARY_SUFFIX)
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifeq ($(HOST_OS_API),posix)
|
||||
# TODO make this work on macosx
|
||||
ifneq ($(HOST_OS),macosx)
|
||||
#
|
||||
# NOTE: Change -L flag to point to new lib location after converting libnio. Also
|
||||
# add dependency on nio from sctp.
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBSCTP,\
|
||||
SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/nio/ch/sctp,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/nio/ch \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/nio/ch/sctp \
|
||||
-I$(JDK_TOPDIR)/src/share/native/java/net \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/nio/ch \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/java/net,\
|
||||
CFLAGS_linux:=-Werror,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) -L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)\
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libsctp/mapfile-vers) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_SUFFIX_linux:=-lpthread,\
|
||||
LDFLAGS_SUFFIX_posix:=-ldl -lnio -lnet,\
|
||||
LDFLAGS_SUFFIX_solaris:=-lsocket,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
INCLUDE_FILES:=SctpNet.c SctpChannelImpl.c SctpServerChannelImpl.c,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libsctp,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)sctp$(SHARED_LIBRARY_SUFFIX)
|
||||
endif
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJSDT,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace\
|
||||
$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/tracing/dtrace,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM) $(SHARED_LIBRARY_FLAGS)\
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/tracing/dtrace,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjsdt/mapfile-vers) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) -ldl,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libjsdt,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jsdt$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifdef OPENJDK
|
||||
# TODO: Update awt lib path when awt is converted
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBLCMS,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/sun/java2d/cmm/lcms \
|
||||
$(JDK_TOPDIR)/src/share/native/sun/java2d/,\
|
||||
INCLUDE_FILES:=cmscam02.c cmscgats.c cmscnvrt.c cmserr.c \
|
||||
cmsgamma.c cmsgmt.c cmsintrp.c cmsio0.c \
|
||||
cmsio1.c cmslut.c cmsmd5.c cmsmtrx.c \
|
||||
cmsnamed.c cmsopt.c cmspack.c cmspcs.c \
|
||||
cmsplugin.c cmsps2.c cmssamp.c cmssm.c \
|
||||
cmstypes.c cmsvirt.c cmswtpnt.c cmsxform.c \
|
||||
LCMS.c,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(filter-out -xc99=%none,$(CFLAGS_JDKLIB)) $(C_O_FLAG_NORM) \
|
||||
$(SHARED_LIBRARY_FLAGS) \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/awt/debug,\
|
||||
CFLAGS_solaris:=-xc99=no_lib,\
|
||||
CFLAGS_winapi:=-DCMS_IS_WINDOWS_,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/liblcms/mapfile-vers),\
|
||||
LDFLAGS_posix:=-L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)xawt,\
|
||||
LDFLAGS_solaris:=/usr/lib$(ISA_DIR)/libm.so.2,\
|
||||
LDFLAGS_winapi:=$(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
LDFLAGS_SUFFIX_posix:=-lawt,\
|
||||
LDFLAGS_SUFFIX_linux:=-lm,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/liblcms,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)lcms$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)lcms$(SHARED_LIBRARY_SUFFIX)
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifdef OPENJDK
|
||||
BUILD_LIBJPEG_MAPFILE := makefiles/mapfiles/libjpeg/mapfile-vers
|
||||
else
|
||||
BUILD_LIBJPEG_MAPFILE := makefiles/mapfiles/libjpeg/mapfile-vers-closed
|
||||
BUILD_LIBJPEG_CLOSED_SRC := $(JDK_TOPDIR)/src/closed/share/native/sun/awt/image/jpeg
|
||||
BUILD_LIBJPEG_CLOSED_INCLUDES := -I$(BUILD_LIBJPEG_CLOSED_SRC)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifneq ($(ARCH), amd64)
|
||||
BUILD_LIBJPEG_REORDER := $(JDK_TOPDIR)/makefiles/mapfiles/libjpeg/reorder-$(ARCH)
|
||||
$(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers : $(JDK_TOPDIR)/$(BUILD_LIBJPEG_MAPFILE) \
|
||||
$(BUILD_LIBJPEG_REORDER)
|
||||
$(MKDIR) -p $(@D)
|
||||
$(CAT) $(JDK_TOPDIR)/$(BUILD_LIBJPEG_MAPFILE) > $@
|
||||
$(SED) -e 's=OUTPUTDIR=$(JDK_OUTPUTDIR)=' $(BUILD_LIBJPEG_REORDER) >> $@
|
||||
LIBJPEG_MAPFILE:=$(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers
|
||||
|
||||
$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX): \
|
||||
$(JDK_OUTPUTDIR)/newobjs/libjpeg/mapfile-vers
|
||||
endif
|
||||
endif
|
||||
|
||||
# Suppress gcc warnings like "variable might be clobbered by 'longjmp'
|
||||
# or 'vfork'": this warning indicates that some variable is placed to
|
||||
# a register by optimized compiler and it's value might be lost on longjmp().
|
||||
# Recommended way to avoid such warning is to declare the variable as
|
||||
# volatile to prevent the optimization. However, this approach does not
|
||||
# work because we have to declare all variables as volatile in result.
|
||||
#ifndef CROSS_COMPILE_ARCH
|
||||
# CC_43_OR_NEWER := \
|
||||
# $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \
|
||||
# \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) )
|
||||
# ifeq ($(CC_43_OR_NEWER),1)
|
||||
# BUILD_LIBJPEG_CFLAGS_linux += -Wno-clobbered
|
||||
# endif
|
||||
#endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJPEG,\
|
||||
SRC:=$(BUILD_LIBJPEG_CLOSED_SRC) \
|
||||
$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_HI) $(SHARED_LIBRARY_FLAGS) \
|
||||
$(BUILD_LIBJPEG_CLOSED_INCLUDES) \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/jpeg,\
|
||||
CFLAGS_solaris:=-xF,\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,$(BUILD_LIBJPEG_MAPFILE))\
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_linux:=-ldl,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libjpeg,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jpeg$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifndef OPENJDK
|
||||
FONT_HEADERS := -I$(CLOSED_SRC)/share/native/$(PKGDIR)/t2k
|
||||
BUILD_LIBFONTMANAGER_MAPFILE := makefiles/mapfiles/libfontmanager/mapfile-vers
|
||||
LIBFONTMANAGER_EXCLUDE_FILES += freetypeScaler.c
|
||||
else
|
||||
FONT_HEADERS := $(FREETYPE2_CFLAGS)
|
||||
BUILD_LIBFONTMANAGER_MAPFILE := makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk
|
||||
BUILD_LIBFONTMANAGER_FONTLIB := $(FREETYPE2_LIBS)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),windows)
|
||||
LIBFONTMANAGER_EXCLUDE_FILES += X11FontScaler.c \
|
||||
X11TextRenderer.c
|
||||
else
|
||||
LIBFONTMANAGER_EXCLUDE_FILES += fontpath.c \
|
||||
lcdglyph.c
|
||||
endif
|
||||
|
||||
BUILD_LIBFONTMANAGER_CFLAGS_COMMON := $(SHARED_LIBRARY_FLAGS) \
|
||||
-DLE_STANDALONE -DHEADLESS \
|
||||
$(FONT_HEADERS) \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/font \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/awt \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER,\
|
||||
SRC:=$(JDK_TOPDIR)/src/share/native/sun/font\
|
||||
$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/font,\
|
||||
EXCLUDE_FILES:=$(LIBFONTMANAGER_EXCLUDE_FILES) \
|
||||
AccelGlyphCache.c,\
|
||||
LANG:=C++,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\
|
||||
CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBFONTMANAGER_CFLAGS_COMMON),\
|
||||
CFLAGS_posix:=$(C_O_FLAG_HI),\
|
||||
CXXFLAGS_posix:=$(CXX_O_FLAG_HI),\
|
||||
CFLAGS_windows=$(C_O_FLAG_NORM)\
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows \
|
||||
-DCC_NOEX, \
|
||||
LDFLAGS:=$(subst -Xlinker -z -Xlinker defs,,$(LDFLAGS_JDKLIB)) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,$(BUILD_LIBFONTMANAGER_MAPFILE)) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_solaris:=-L$(JDK_OUTPUTDIR)/lib/$(LIBARCHDIR)headless,\
|
||||
LDFLAGS_windows:=advapi32.lib user32.lib gdi32.lib $(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) \
|
||||
$(BUILD_LIBFONTMANAGER_FONTLIB),\
|
||||
LDFLAGS_SUFFIX_linux:=-lawt $(LIBM) $(LIBCXX),\
|
||||
LDFLAGS_SUFFIX_solaris:=-lawt -lawt_xawt -lc $(LIBM) $(LIBCXX),\
|
||||
LDFLAGS_SUFFIX_macosx:=-lawt $(LIBM) $(LIBCXX) -undefined dynamic_lookup,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libfontmanager,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifndef OPENJDK
|
||||
|
||||
# ifeq ($(PLATFORM), linux)
|
||||
# ifeq ("$(CC_VER_MAJOR)", "3")
|
||||
# OTHER_LDLIBS += -Wl,-Bstatic -lgcc_eh -Wl,-Bdynamic
|
||||
# endif
|
||||
# endif
|
||||
#
|
||||
# The resulting size of the t2k lib file is (at least on linux) dependant on the order of
|
||||
# the input .o files. Because of this the new build will differ in size to the old build.
|
||||
BUILD_LIBT2K_CFLAGS_COMMON:=-I$(JDK_TOPDIR)/src/share/native/sun/font \
|
||||
-I$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
|
||||
-I$(JDK_TOPDIR)/src/closed/share/native/sun/font \
|
||||
-I$(JDK_TOPDIR)/src/share/share/native/sun/font \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/font \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d/loops \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d/pipe \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBT2K,\
|
||||
SRC:=$(JDK_TOPDIR)/src/closed/share/native/sun/font \
|
||||
$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k \
|
||||
$(JDK_TOPDIR)/src/closed/share/native/sun/font/t2k/ttHints,\
|
||||
EXCLUDE_FILES:=orion.c,\
|
||||
LANG:=C++,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON) $(C_O_FLAG_HI),\
|
||||
CXXFLAGS:=$(CXXFLAGS_JDKLIB) $(BUILD_LIBT2K_CFLAGS_COMMON) $(CXX_O_FLAG_HI),\
|
||||
CFLAGS_windows=-DCC_NOEX, \
|
||||
CXXFLAGS_windows=-DCC_NOEX, \
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libt2k/mapfile-vers) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_windows:=user32.lib $(JDK_OUTPUTDIR)/newobjs/fontmanager.lib,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
LDFLAGS_SUFFIX_linux:=$(LIBCXX) $(LIBM) -L$(INSTALL_LIBRARIES_HERE) -lfontmanager,\
|
||||
LDFLAGS_SUFFIX_solaris:=$(LIBCXX) $(LIBM) -L$(INSTALL_LIBRARIES_HERE) -lfontmanager -lawt \
|
||||
-lawt_xawt,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libt2k,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
# t2k is linked against fontmanager
|
||||
$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX): \
|
||||
$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)fontmanager$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)t2k$(SHARED_LIBRARY_SUFFIX)
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
KERNEL32_LIB := kernel32.lib
|
||||
endif
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
|
||||
SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows,\
|
||||
INCLUDE_FILES:=jawt.cpp,\
|
||||
LANG:=C++,\
|
||||
CFLAGS:=$(CXXFLAGS_JDKLIB) $(CXX_O_FLAG_NORM) \
|
||||
-EHsc -DUNICODE -D_UNICODE \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/windows \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/awt/debug \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/java2d \
|
||||
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
|
||||
-I$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/java2d/windows, \
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) $(KERNEL32_LIB) \
|
||||
advapi32.lib $(JDK_OUTPUTDIR)/tmp/sun/sun.awt/awt/$(OBJDIRNAME)/awt.lib,\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX),\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libjawt,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)))
|
||||
|
||||
$(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX): \
|
||||
$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
|
||||
echo Copying $(@F)
|
||||
$(CP) $(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX) $@
|
||||
|
||||
BUILD_LIBRARIES += $(JDK_OUTPUTDIR)/lib/$(LIBRARY_PREFIX)jawt$(STATIC_LIBRARY_SUFFIX)
|
||||
|
||||
else # PLATFORM not windows
|
||||
|
||||
ifndef BUILD_HEADLESS_ONLY
|
||||
MAWT_AWT_LIB =-lawt_xawt
|
||||
else
|
||||
MAWT_AWT_LIB =-lawt_headless
|
||||
HEADLESS_CFLAG += -DHEADLESS
|
||||
endif
|
||||
|
||||
$(eval $(call SetupNativeCompilation,BUILD_LIBJAWT,\
|
||||
SRC:=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/native/sun/awt,\
|
||||
INCLUDE_FILES:=jawt.c,\
|
||||
LANG:=C,\
|
||||
CFLAGS:=$(CFLAGS_JDKLIB) $(C_O_FLAG_NORM), \
|
||||
CFLAGS_linux:=$(HEADLESS_CFLAG),\
|
||||
LDFLAGS:=$(LDFLAGS_JDKLIB) \
|
||||
$(call SET_SHARED_LIBRARY_MAPFILE,makefiles/mapfiles/libjawt/mapfile-vers) \
|
||||
$(call SET_SHARED_LIBRARY_ORIGIN),\
|
||||
LDFLAGS_solaris:=-L/usr/openwin/sfw/lib$(ISA_DIR) -L/usr/openwin/lib$(ISA_DIR),\
|
||||
LDFLAGS_SUFFIX:=$(LDFLAGS_JDKLIB_SUFFIX) $(MAWT_AWT_LIB) -lawt,\
|
||||
LDFLAGS_SUFFIX_solaris:=-lXrender,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/newobjs/libjawt,\
|
||||
LIB:=$(JDK_OUTPUTDIR)/newobjs/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)))
|
||||
endif # PLATFORM
|
||||
|
||||
BUILD_LIBRARIES += $(INSTALL_LIBRARIES_HERE)/$(LIBRARY_PREFIX)jawt$(SHARED_LIBRARY_SUFFIX)
|
||||
|
||||
|
||||
##########################################################################################
|
||||
|
||||
all: $(COPY_FILES) $(BUILD_LIBRARIES)
|
||||
|
||||
.PHONY: all
|
||||
232
jdk/makefiles/CopyFiles.gmk
Normal file
232
jdk/makefiles/CopyFiles.gmk
Normal file
@ -0,0 +1,232 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
INCLUDEDIR = $(JDK_OUTPUTDIR)/include
|
||||
# TODO: Platform dir needs to be "win32" on windows /erikj
|
||||
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM)
|
||||
|
||||
#
|
||||
# Copy exported header files to outputdir.
|
||||
#
|
||||
H_TARGET_FILES =$(INCLUDEDIR)/jdwpTransport.h \
|
||||
$(INCLUDEDIR)/jni.h \
|
||||
$(INCLUDEDIR)/jvmti.h \
|
||||
$(INCLUDEDIR)/jvmticmlr.h \
|
||||
$(INCLUDEDIR)/classfile_constants.h \
|
||||
$(INCLUDEDIR)/jawt.h \
|
||||
$(PLATFORM_INCLUDE)/jni_md.h \
|
||||
$(PLATFORM_INCLUDE)/jawt_md.h
|
||||
|
||||
$(INCLUDEDIR)/%.h: $(JDK_TOPDIR)/src/share/javavm/export/%.h
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
$(PLATFORM_INCLUDE)/%.h: $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/javavm/export/%.h
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES = $(H_TARGET_FILES)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
LIBDIR = $(JDK_OUTPUTDIR)/lib
|
||||
SERVICETAG_LIBDIR = $(LIBDIR)/servicetag
|
||||
|
||||
$(SERVICETAG_LIBDIR)/jdk_header.png: $(JDK_TOPDIR)/src/share/classes/com/sun/servicetag/resources/jdk_header.png
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
$(CHMOD) 444 $@
|
||||
|
||||
COPY_FILES += $(SERVICETAG_LIBDIR)/jdk_header.png
|
||||
|
||||
##########################################################################################
|
||||
|
||||
MGMT_LIBDIR = $(LIBDIR)/management
|
||||
MGMT_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/management
|
||||
MGMT_SRC_FILES = $(wildcard $(MGMT_LIB_SRC)/*)
|
||||
MGMT_TARGET_FILES = $(subst $(MGMT_LIB_SRC),$(MGMT_LIBDIR),$(MGMT_SRC_FILES))
|
||||
|
||||
$(MGMT_LIBDIR)/management.properties: $(MGMT_LIB_SRC)/management.properties
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
$(CHMOD) 644 $@
|
||||
|
||||
$(MGMT_LIBDIR)/%: $(MGMT_LIB_SRC)/%
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
$(CHMOD) 444 $@
|
||||
|
||||
COPY_FILES += $(MGMT_TARGET_FILES)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
LOGGING_LIB_SRC = $(JDK_TOPDIR)/src/share/lib
|
||||
|
||||
$(LIBDIR)/logging.properties: $(LOGGING_LIB_SRC)/logging.properties
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(LIBDIR)/logging.properties
|
||||
|
||||
##########################################################################################
|
||||
#
|
||||
# Copy property files from sun/print to LIBDIR
|
||||
#
|
||||
PSFONTPROPFILE_SRC_DIR = $(JDK_TOPDIR)/src/share/classes/sun/print
|
||||
PSFONTPROPFILE_SRCS = $(wildcard $(PSFONTPROPFILE_SRC_DIR)/*.properties*)
|
||||
PSFONTPROPFILE_TARGET_FILES = $(subst $(PSFONTPROPFILE_SRC_DIR),$(LIBDIR),$(PSFONTPROPFILE_SRCS))
|
||||
|
||||
$(PSFONTPROPFILE_TARGET_FILES): $(PSFONTPROPFILE_SRCS)
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(PSFONTPROPFILE_TARGET_FILES)
|
||||
|
||||
##########################################################################################
|
||||
#
|
||||
# Copy flavormap.properties, cursor.properties and cursors gif files to LIBDIR
|
||||
#
|
||||
PLATFORM_LIB_SRC = $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/lib
|
||||
|
||||
$(LIBDIR)/flavormap.properties: $(PLATFORM_LIB_SRC)/flavormap.properties
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(LIBDIR)/flavormap.properties
|
||||
|
||||
CURSORS_DEST_DIR = $(LIBDIR)/images/cursors
|
||||
CURSORS_PLATFORM_LIB_SRC = $(PLATFORM_LIB_SRC)/images/cursors
|
||||
|
||||
$(CURSORS_DEST_DIR)/cursors.properties: $(CURSORS_PLATFORM_LIB_SRC)/cursors.properties
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(CURSORS_DEST_DIR)/cursors.properties
|
||||
|
||||
CURSORS_LIB_SRC = $(JDK_TOPDIR)/src/share/lib/images/cursors
|
||||
ifeq ($(PLATFORM), windows)
|
||||
CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/win32_*.gif)
|
||||
else # PLATFORM
|
||||
CURSORS_SRC_FILES = $(CURSORS_LIB_SRC)/invalid32x32.gif $(wildcard $(CURSORS_LIB_SRC)/motif_*.gif)
|
||||
endif # PLATFORM
|
||||
CURSORS_TARGET_FILES = $(subst $(CURSORS_LIB_SRC),$(CURSORS_DEST_DIR),$(CURSORS_SRC_FILES))
|
||||
|
||||
$(CURSORS_TARGET_FILES): $(CURSORS_SRC_FILES)
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(CURSORS_TARGET_FILES)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
CONTENT_TYPES_SRC=$(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/lib
|
||||
|
||||
$(LIBDIR)/content-types.properties: $(CONTENT_TYPES_SRC)/content-types.properties
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(LIBDIR)/content-types.properties
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ICCPROFILE_DEST_DIR := $(LIBDIR)/cmm
|
||||
|
||||
ifdef OPENJDK
|
||||
ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/share/lib/cmm/lcms
|
||||
else
|
||||
ICCPROFILE_SRC_DIR := $(JDK_TOPDIR)/src/closed/share/lib/cmm/kcms
|
||||
endif
|
||||
|
||||
ICCPROFILE_SRCS:=$(wildcard $(ICCPROFILE_SRC_DIR)/*.pf)
|
||||
ICCPROFILE_TARGET_FILES:=$(subst $(ICCPROFILE_SRC_DIR),$(ICCPROFILE_DEST_DIR),$(ICCPROFILE_SRCS))
|
||||
|
||||
$(ICCPROFILE_DEST_DIR)%.pf: $(ICCPROFILE_SRC_DIR)%.pf
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
$(CHMOD) 444 $@
|
||||
|
||||
COPY_FILES += $(ICCPROFILE_TARGET_FILES)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
#make sure freetype dll will be available at runtime as well as link time
|
||||
#
|
||||
#NB: Default freetype build system uses -h linker option and
|
||||
# result .so contains hardcoded library name that is later
|
||||
# used for adding dependencies to other objects
|
||||
# (e.g. libfontmanager.so).
|
||||
#
|
||||
# It is not obvious how to extract that hardcoded name (libfreetype.so.6)
|
||||
# without overcomplicating logic here.
|
||||
# To workaround this we hardcode .6 suffix for now.
|
||||
#
|
||||
# Note that .so.6 library will not be found by System.loadLibrary()
|
||||
# but fortunately we need to load FreeType library explicitly
|
||||
# on windows only
|
||||
#
|
||||
#TODO: rework this to avoid hardcoding library name in the makefile
|
||||
#
|
||||
ifdef OPENJDK
|
||||
ifeq ($(PLATFORM), windows)
|
||||
FREETYPE_LIB = $(JDK_OUTPUTDIR)/bin/$(call SHARED_LIBRARY,freetype)
|
||||
else
|
||||
ifeq ($(USING_SYSTEM_FT_LIB), false)
|
||||
FREETYPE_LIB = $(JDK_OUTPUTDIR)/lib/$(LIBARCH)/$(call SHARED_LIBRARY,freetype).6
|
||||
endif
|
||||
endif
|
||||
|
||||
$(FREETYPE_LIB):
|
||||
$(CP) $(FREETYPE2_LIB_PATH)/$(call SHARED_LIBRARY,freetype) $@
|
||||
|
||||
COPY_FILES += $(FREETYPE_LIB)
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
|
||||
# Copy msvcr100.dll on windows
|
||||
|
||||
ifeq ($(PLATFORM),windows)
|
||||
MSVCRNN_TARGET := $(JDK_OUTPUTDIR)/bin/$(notdir $(MSVCRNN_DLL))
|
||||
$(MSVCRNN_TARGET): $(MSVCRNN_DLL)
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(MSVCRNN_TARGET)
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
150
jdk/makefiles/CopyIntoClasses.gmk
Normal file
150
jdk/makefiles/CopyIntoClasses.gmk
Normal file
@ -0,0 +1,150 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Copy icu and _dict files used by the text break iterator
|
||||
|
||||
COPY_PATTERNS = .icu _dict
|
||||
|
||||
# Copy config files for com.sun.org.apache.xml.internal.security
|
||||
|
||||
XMLSECURITY_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource
|
||||
COPY_FILES += \
|
||||
$(XMLSECURITY_RESOURCEDIR)/config.dtd \
|
||||
$(XMLSECURITY_RESOURCEDIR)/config.xml
|
||||
|
||||
# Copy sun/tools related files into the classes directory.
|
||||
|
||||
# Extra jstat files
|
||||
JSTAT_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/sun/tools/jstat/resources
|
||||
COPY_FILES += \
|
||||
$(JSTAT_RESOURCEDIR)/jstat_options \
|
||||
$(JSTAT_RESOURCEDIR)/jstat_unsupported_options
|
||||
|
||||
# Extra jhat files
|
||||
JHAT_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/com/sun/tools/hat/resources
|
||||
COPY_FILES += \
|
||||
$(JHAT_RESOURCEDIR)/hat.js \
|
||||
$(JHAT_RESOURCEDIR)/oqlhelp.html \
|
||||
$(JHAT_RESOURCEDIR)/platform_names.txt
|
||||
|
||||
# Extra jrunscript files
|
||||
JRUNSCRIPT_RESOURCEDIR = $(JDK_TOPDIR)/src/share/classes/com/sun/tools/script/shell
|
||||
COPY_FILES += \
|
||||
$(JRUNSCRIPT_RESOURCEDIR)/init.js \
|
||||
$(JRUNSCRIPT_RESOURCEDIR)/messages.properties
|
||||
|
||||
# Extra jvmstat files
|
||||
COPY_FILES += \
|
||||
$(JDK_TOPDIR)/src/share/classes/sun/jvmstat/perfdata/resources/aliasmap
|
||||
|
||||
# Servicetag resources
|
||||
SERVICETAG_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/com/sun/servicetag/resources
|
||||
COPY_FILES += \
|
||||
$(SERVICETAG_RESOURCES_DIR)/product_registration.xsd \
|
||||
$(SERVICETAG_RESOURCES_DIR)/register.html \
|
||||
$(SERVICETAG_RESOURCES_DIR)/register_ja.html \
|
||||
$(SERVICETAG_RESOURCES_DIR)/register_zh_CN.html \
|
||||
$(wildcard $(SERVICETAG_RESOURCES_DIR)/javase_*.properties)
|
||||
|
||||
# JConsole resources
|
||||
JCONSOLE_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/resources
|
||||
COPY_FILES += \
|
||||
$(wildcard $(JCONSOLE_RESOURCES_DIR)/*.png) \
|
||||
$(wildcard $(JCONSOLE_RESOURCES_DIR)/*.gif)
|
||||
|
||||
# Print resources
|
||||
PRINT_RESOURCES_DIR = $(JDK_TOPDIR)/src/share/classes/sun/print/resources
|
||||
COPY_FILES += \
|
||||
$(wildcard $(PRINT_RESOURCES_DIR)/*.png)
|
||||
|
||||
# IDN resources
|
||||
COPY_FILES += \
|
||||
$(JDK_TOPDIR)/src/share/classes/sun/net/idn/uidna.spp
|
||||
|
||||
##########################################################################################
|
||||
#
|
||||
# Copy the META-INF/services configuration files that are scattered around the source tree
|
||||
# into classes/META-INF/services. Be aware that META-INF directories that are located at a
|
||||
# source root (.../classes/META-INF) are automatically copied verbatim by the
|
||||
# SetupJavaCompilation macro.
|
||||
#
|
||||
# Any other META-INF/services configuration file is found here and platform specific comments
|
||||
# are uncommented and the configuration file is stored in the output META-INF directory.
|
||||
|
||||
# Make sure the output directory is created.
|
||||
$(shell $(MKDIR) -p $(JDK_OUTPUTDIR)/newclasses/META-INF/services)
|
||||
# Find all META-INF/services/* files
|
||||
ALL_META-INF_DIRS_share:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes -type d -a -name META-INF)
|
||||
ALL_META-INF_DIRS_hostapi:=$(shell $(FIND) $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes -type d -a -name META-INF)
|
||||
# Platform specific overrides shared
|
||||
ifneq ($(ALL_META-INF_DIRS_hostapi),)
|
||||
ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_hostapi) \
|
||||
$(filter-out %$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes%,%,$(ALL_META-INF_DIRS_hostapi)),\
|
||||
$(ALL_META-INF_DIRS_share))
|
||||
else
|
||||
ALL_META-INF_DIRS:=$(ALL_META-INF_DIRS_share)
|
||||
endif
|
||||
# Filter out META-INF dirs that shouldn't be included
|
||||
ALL_META-INF_DIRS:=$(filter-out %sun/nio/cs/ext/META-INF,$(ALL_META-INF_DIRS))
|
||||
ifdef OPENJDK
|
||||
ALL_META-INF_DIRS:=$(filter-out %com/sun/script/javascript/META-INF,$(ALL_META-INF_DIRS))
|
||||
endif
|
||||
|
||||
SRC_SERVICES_FILES:=$(wildcard $(addsuffix /services/*,$(ALL_META-INF_DIRS)))
|
||||
ifdef OPENJDK
|
||||
SRC_SERVICES_FILES:=$(filter-out %sun/dc/META-INF/services/sun.java2d.pipe.RenderingEngine,$(SRC_SERVICES_FILES))
|
||||
SRC_SERVICES_FILES:=$(filter-out %sun/java2d/cmm/kcms/META-INF/services/sun.java2d.cmm.PCMM,$(SRC_SERVICES_FILES))
|
||||
else
|
||||
SRC_SERVICES_FILES:=$(filter-out %sun/java2d/pisces/META-INF/services/sun.java2d.pipe.RenderingEngine,$(SRC_SERVICES_FILES))
|
||||
SRC_SERVICES_FILES:=$(filter-out %sun/java2d/cmm/lcms/META-INF/services/sun.java2d.cmm.PCMM,$(SRC_SERVICES_FILES))
|
||||
endif
|
||||
# The number of services files are relatively few. If the increase in numbers, then
|
||||
# we have to use ListPathsSafelyNow here.
|
||||
# Change $(JDK_TOPDIR)/src/.../META-INF/services/yyyy into $(JDK_OUTPUTDIR)/newclasses/META-INF/services/yyyy
|
||||
# The \n in the printf command is needed to make sed work on Solaris.
|
||||
OUT_SERVICES_FILES:=$(addprefix $(JDK_OUTPUTDIR)/newclasses/META-INF/services/,\
|
||||
$(shell $(PRINTF) "$(SRC_SERVICES_FILES)\n" | $(SED) -e 's|/[^ ]*/META-INF/services/||g'))
|
||||
OUT_SERVICES_FILES_COLON:=$(addsuffix :,$(OUT_SERVICES_FILES))
|
||||
# Exception handling for print services with no META-INF directory
|
||||
SRC_SERVICES_FILES_PRINT = $(wildcard $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/sun/print/services/*)
|
||||
OUT_SERVICES_FILES_PRINT = $(addprefix $(JDK_OUTPUTDIR)/newclasses/META-INF/services/,\
|
||||
$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/sun/print/services/%,%,\
|
||||
$(SRC_SERVICES_FILES_PRINT)))
|
||||
OUT_SERVICES_FILES_PRINT_COLON = $(addsuffix :,$(OUT_SERVICES_FILES_PRINT))
|
||||
RULES_SERVICES_PRINT = $(join $(OUT_SERVICES_FILES_PRINT_COLON),$(SRC_SERVICES_FILES_PRINT))
|
||||
|
||||
# Now setup the dependency rules to generate a META-INF/services/... from the correct source.
|
||||
META-INF_RULES_SERVICES:=$(RULES_SERVICES_PRINT) $(join $(OUT_SERVICES_FILES_COLON),$(SRC_SERVICES_FILES))
|
||||
# Eval the newly created rules to incorporate them into the make tree.
|
||||
define addto_meta-inf_services
|
||||
$1
|
||||
echo Installing META-INF/services/$$(@F)
|
||||
$(CAT) $$< | $(SED) -e "s/^#\[$(PLATFORM)\]//" > $$@
|
||||
endef
|
||||
$(foreach i,$(META-INF_RULES_SERVICES),$(eval $(call addto_meta-inf_services,$i)))
|
||||
# Here is the generic rule, whose receipt the above rules will trigger.
|
||||
|
||||
COPY_EXTRA += $(OUT_SERVICES_FILES)
|
||||
COPY_EXTRA += $(OUT_SERVICES_FILES_PRINT)
|
||||
75
jdk/makefiles/CopySamples.gmk
Normal file
75
jdk/makefiles/CopySamples.gmk
Normal file
@ -0,0 +1,75 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
|
||||
SAMPLE_TARGET_DIR = $(JDK_OUTPUTDIR)/sample
|
||||
SAMPLE_SOURCE_DIR = $(JDK_TOPDIR)/src/share/sample
|
||||
SAMPLE_CLOSED_SOURCE_DIR = $(JDK_TOPDIR)/src/closed/share/sample
|
||||
SAMPLE_SOLARIS_SOURCE_DIR = $(JDK_TOPDIR)/src/solaris/sample
|
||||
|
||||
# Exclude the vm directory
|
||||
SAMPLE_FIND_FILTER = -name vm -prune -o
|
||||
|
||||
SAMPLE_SOURCE := $(shell $(FIND) $(SAMPLE_SOURCE_DIR) $(SAMPLE_FIND_FILTER) -type f -print)
|
||||
SAMPLE_TARGET := $(subst $(SAMPLE_SOURCE_DIR),$(SAMPLE_TARGET_DIR),$(SAMPLE_SOURCE))
|
||||
|
||||
ifndef OPENJDK
|
||||
# Exclude Main.java in EbayClient dir
|
||||
SAMPLE_CLOSED_SOURCE := $(shell $(FIND) $(SAMPLE_CLOSED_SOURCE_DIR) -type f -print | $(GREP) -v EbayClient/Main.java)
|
||||
SAMPLE_CLOSED_TARGET := $(subst $(SAMPLE_CLOSED_SOURCE_DIR),$(SAMPLE_TARGET_DIR),$(SAMPLE_CLOSED_SOURCE))
|
||||
SAMPLE_TARGET += $(SAMPLE_CLOSED_TARGET)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
SAMPLE_SOLARIS_SOURCE := $(shell $(FIND) $(SAMPLE_SOLARIS_SOURCE_DIR) -type f -print)
|
||||
SAMPLE_SOLARIS_TARGET := $(subst $(SAMPLE_SOLARIS_SOURCE_DIR),$(SAMPLE_TARGET_DIR),$(SAMPLE_SOLARIS_SOURCE))
|
||||
SAMPLE_TARGET += $(SAMPLE_SOLARIS_TARGET)
|
||||
endif
|
||||
|
||||
$(SAMPLE_TARGET_DIR)/dtrace/%: $(SAMPLE_SOLARIS_SOURCE_DIR)/dtrace/%
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
$(SAMPLE_TARGET_DIR)/webservices/%: $(SAMPLE_CLOSED_SOURCE_DIR)/webservices/%
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
$(SAMPLE_TARGET_DIR)/%: $(SAMPLE_SOURCE_DIR)/%
|
||||
$(MKDIR) -p $(@D)
|
||||
rm -f $@
|
||||
$(CP) $< $@
|
||||
|
||||
COPY_FILES += $(SAMPLE_TARGET)
|
||||
|
||||
all: $(COPY_FILES)
|
||||
|
||||
.PHONY: all
|
||||
|
||||
97
jdk/makefiles/GendataBreakIterator.gmk
Normal file
97
jdk/makefiles/GendataBreakIterator.gmk
Normal file
@ -0,0 +1,97 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Make file for generating BreakIterator data files.
|
||||
#
|
||||
|
||||
# input
|
||||
#
|
||||
# Notes: sun.text.resources.BreakIteratorRules no longer goes to runtime.
|
||||
# They are used at JDK build phase in order to create $(BIFILES) which
|
||||
# are used on runtime instead.
|
||||
#
|
||||
TEXT_SRCDIR = $(JDK_TOPDIR)/src/share/classes
|
||||
TEXT_PKG = sun/text/resources
|
||||
TEXT_SOURCES = %$(TEXT_PKG)/BreakIteratorRules.java \
|
||||
%$(TEXT_PKG)/BreakIteratorInfo.java \
|
||||
%$(TEXT_PKG)/BreakIteratorRules_th.java \
|
||||
%$(TEXT_PKG)/BreakIteratorInfo_th.java
|
||||
|
||||
# Generate BreakIteratorData
|
||||
BREAK_ITERATOR_DIR = $(JDK_OUTPUTDIR)/break_iterator
|
||||
BREAK_ITERATOR_CLASSES = $(BREAK_ITERATOR_DIR)/classes
|
||||
|
||||
# JAVAC_SOURCE_PATH_UGLY_OVERRIDE is set to isolate the compile to just those
|
||||
# two files in that directory and not get anything implicit from
|
||||
# surrounding directories which aren't jdk 6 compatible.
|
||||
# Because we are targeting jdk 6, but the surrounding source code is jdk 7. Ugh.
|
||||
# These two files should be moved out to a build tool!
|
||||
$(eval $(call SetupJavaCompilation,BUILD_BREAKITERATOR,\
|
||||
SETUP:=GENERATE_OLDBYTECODE,\
|
||||
SRC:=$(TEXT_SRCDIR),\
|
||||
JAVAC_SOURCE_PATH_UGLY_OVERRIDE:=$(TEXT_SRCDIR)/$(TEXT_PKG),\
|
||||
INCLUDES:=$(TEXT_PKG),\
|
||||
INCLUDE_FILES:=$(TEXT_SOURCES),\
|
||||
BIN:=$(BREAK_ITERATOR_CLASSES)))
|
||||
|
||||
# Generate data resource files.
|
||||
# input
|
||||
UNICODEDATA = $(JDK_TOPDIR)/make/tools/UnicodeData/UnicodeData.txt
|
||||
|
||||
# output
|
||||
DATA_PKG_DIR = $(JDK_OUTPUTDIR)/newclasses/sun/text/resources
|
||||
BIFILES = $(DATA_PKG_DIR)/CharacterBreakIteratorData \
|
||||
$(DATA_PKG_DIR)/WordBreakIteratorData \
|
||||
$(DATA_PKG_DIR)/LineBreakIteratorData \
|
||||
$(DATA_PKG_DIR)/SentenceBreakIteratorData
|
||||
BIFILES_TH = $(DATA_PKG_DIR)/WordBreakIteratorData_th \
|
||||
$(DATA_PKG_DIR)/LineBreakIteratorData_th
|
||||
|
||||
$(BIFILES): $(BREAK_ITERATOR_DIR)/_the.bifiles
|
||||
$(BREAK_ITERATOR_DIR)/_the.bifiles: JAVA_FLAGS += -Xbootclasspath/p:$(BREAK_ITERATOR_CLASSES)
|
||||
$(BREAK_ITERATOR_DIR)/_the.bifiles: $(BUILD_TOOLS) $(UNICODEDATA) $(BUILD_BREAKITERATOR)
|
||||
$(ECHO) "Generating BreakIteratorData"
|
||||
$(MKDIR) -p $(DATA_PKG_DIR)
|
||||
rm -f $(BIFILES)
|
||||
$(TOOL_GENERATEBREAKITERATORDATA) \
|
||||
-o $(DATA_PKG_DIR) \
|
||||
-spec $(UNICODEDATA)
|
||||
touch $@
|
||||
|
||||
$(BIFILES_TH): $(BREAK_ITERATOR_DIR)/_the.bifiles_th
|
||||
$(BREAK_ITERATOR_DIR)/_the.bifiles_th: JAVA_FLAGS += -Xbootclasspath/p:$(BREAK_ITERATOR_CLASSES)
|
||||
$(BREAK_ITERATOR_DIR)/_the.bifiles_th: $(BUILD_TOOLS) $(UNICODEDATA) $(BUILD_BREAKITERATOR)
|
||||
$(ECHO) "Generating BreakIteratorData_th"
|
||||
$(MKDIR) -p $(DATA_PKG_DIR)
|
||||
rm -f $(BIFILES_TH)
|
||||
$(TOOL_GENERATEBREAKITERATORDATA) \
|
||||
-o $(DATA_PKG_DIR) \
|
||||
-spec $(UNICODEDATA) \
|
||||
-language th
|
||||
touch $@
|
||||
|
||||
|
||||
BREAK_ITERATOR += $(BIFILES) $(BIFILES_TH)
|
||||
95
jdk/makefiles/GenerateClasses.gmk
Normal file
95
jdk/makefiles/GenerateClasses.gmk
Normal file
@ -0,0 +1,95 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include RMICompile.gmk
|
||||
|
||||
CLASSES_DIR := $(JDK_OUTPUTDIR)/classes
|
||||
# Depend on files in newclasses for now to avoid bad dependency handling caused by
|
||||
# copy always updating timestamps in classes.
|
||||
NEWCLASSES_DIR := $(JDK_OUTPUTDIR)/newclasses
|
||||
# Generate classes into separate dir for now. Can't drop in same dir as JavaCompilation
|
||||
# macros as that will mess up recompile deps.
|
||||
STUB_CLASSES_DIR := $(JDK_OUTPUTDIR)/newrmicclasses
|
||||
RMIC_GENSRC_DIR := $(JDK_OUTPUTDIR)/gendocsrc_rmic
|
||||
|
||||
GENCLASSES :=
|
||||
|
||||
##########################################################################################
|
||||
#
|
||||
# Generate RMI stubs
|
||||
#
|
||||
|
||||
$(eval $(call SetupRMICompilation,RMI_12,\
|
||||
CLASSES:=sun.rmi.server.Activation$$$$ActivationSystemImpl\
|
||||
java.rmi.activation.ActivationGroup\
|
||||
com.sun.jndi.rmi.registry.ReferenceWrapper,\
|
||||
CLASSES_DIR:=$(NEWCLASSES_DIR),\
|
||||
STUB_CLASSES_DIR:=$(STUB_CLASSES_DIR),\
|
||||
RUN_V12:=true))
|
||||
GENCLASSES += $(RMI_12)
|
||||
|
||||
$(eval $(call SetupRMICompilation,RMI_11,\
|
||||
CLASSES:=sun.rmi.registry.RegistryImpl\
|
||||
sun.rmi.transport.DGCImpl,\
|
||||
CLASSES_DIR:=$(NEWCLASSES_DIR),\
|
||||
STUB_CLASSES_DIR:=$(STUB_CLASSES_DIR),\
|
||||
RUN_V11:=true))
|
||||
GENCLASSES += $(RMI_11)
|
||||
|
||||
# For RMI/IIOP call rmic a second time with -standardPackage option
|
||||
# so that *_tie classes are generated in package without the prefix
|
||||
# org.omg.stub (6375696)
|
||||
JMAN_RMI_CLASSES:=javax.management.remote.rmi.RMIConnectionImpl\
|
||||
javax.management.remote.rmi.RMIServerImpl
|
||||
$(eval $(call SetupRMICompilation,RMI_IIOP,\
|
||||
CLASSES:=$(JMAN_RMI_CLASSES),\
|
||||
CLASSES_DIR:=$(NEWCLASSES_DIR),\
|
||||
STUB_CLASSES_DIR:=$(STUB_CLASSES_DIR),\
|
||||
RUN_V12:=true,\
|
||||
RUN_IIOP:=true,\
|
||||
RUN_IIOP_STDPKG:=true))
|
||||
GENCLASSES += $(RMI_IIOP)
|
||||
|
||||
# Keep generated RMI/JRMP Stub source files and copy them to RMIC_GENSRC_DIR
|
||||
# so that javadoc can include them in the API (4997471)
|
||||
$(eval $(call SetupRMICompilation,RMI_SRC,\
|
||||
CLASSES:=$(JMAN_RMI_CLASSES),\
|
||||
CLASSES_DIR:=$(NEWCLASSES_DIR),\
|
||||
STUB_CLASSES_DIR:=$(RMIC_GENSRC_DIR),\
|
||||
RUN_V12:=true,\
|
||||
KEEP_GENERATED:=true))
|
||||
GENCLASSES += $(filter %.java,$(RMI_SRC))
|
||||
|
||||
##########################################################################################
|
||||
|
||||
all: $(GENCLASSES)
|
||||
$(FIND) $(RMIC_GENSRC_DIR) -name "*.class" $(FIND_DELETE)
|
||||
$(CP) -rp $(STUB_CLASSES_DIR)/* $(CLASSES_DIR)
|
||||
|
||||
.PHONY: all
|
||||
49
jdk/makefiles/GenerateData.gmk
Normal file
49
jdk/makefiles/GenerateData.gmk
Normal file
@ -0,0 +1,49 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
# We need the tools.
|
||||
include Tools.gmk
|
||||
|
||||
# Now include all the rules that generate data resources.
|
||||
# These are written directly into newclasses dir.
|
||||
|
||||
include GendataBreakIterator.gmk
|
||||
GENDATA += $(BREAK_ITERATOR)
|
||||
|
||||
##########################################################################################
|
||||
|
||||
$(GENDATA) : $(BUILD_TOOLS)
|
||||
|
||||
all: $(GENDATA)
|
||||
|
||||
.PHONY: all
|
||||
68
jdk/makefiles/GenerateJavaSources.gmk
Normal file
68
jdk/makefiles/GenerateJavaSources.gmk
Normal file
@ -0,0 +1,68 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include NativeCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
# We need the tools.
|
||||
include Tools.gmk
|
||||
|
||||
# Now include all the rules that generate Java sources.
|
||||
# The Java sources are written into the gensrc_.... directories.
|
||||
|
||||
include GensrcProperties.gmk
|
||||
GENSRC += $(GENSRC_PROPERTIES)
|
||||
|
||||
include GensrcLocaleDataMetaInfo.gmk
|
||||
GENSRC += $(GENSRC_LOCALEDATAMETAINFO)
|
||||
|
||||
include GensrcCharacterData.gmk
|
||||
GENSRC += $(GENSRC_CHARACTERDATA)
|
||||
|
||||
include GensrcJDWP.gmk
|
||||
GENSRC += $(GENSRC_JDWP)
|
||||
|
||||
include GensrcMisc.gmk
|
||||
GENSRC += $(GENSRC_MISC)
|
||||
|
||||
$(GENSRC) : $(BUILD_TOOLS)
|
||||
|
||||
all: $(GENSRC)
|
||||
$(MKDIR) -p $(JDK_OUTPUTDIR)/gensrc
|
||||
(cd $(JDK_OUTPUTDIR) && \
|
||||
chmod -R u+rw gensrc && \
|
||||
cp -rp gensrc_characterdata/* gensrc && \
|
||||
cp -rp gensrc_properties/* gensrc && \
|
||||
cp -rp gensrc_localedatametainfo/* gensrc && \
|
||||
cp -rp gensrc_jdwp/* gensrc && \
|
||||
cp -rp gensrc_misc/* gensrc)
|
||||
|
||||
.PHONY: all
|
||||
65
jdk/makefiles/GensrcCharacterData.gmk
Normal file
65
jdk/makefiles/GensrcCharacterData.gmk
Normal file
@ -0,0 +1,65 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Rules to create $(JDK_OUTPUTDIR)/gensrc_characterdata/sun/lang/CharacterData*.java
|
||||
#
|
||||
|
||||
GENSRC_CHARACTERDATA:=
|
||||
|
||||
CHARACTERDATA = $(JDK_TOPDIR)/make/tools/GenerateCharacter
|
||||
UNICODEDATA = $(JDK_TOPDIR)/make/tools/UnicodeData
|
||||
|
||||
define SetupCharacterData
|
||||
$(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/$1.java : $(CHARACTERDATA)/$1.java.template $(BUILD_TOOLS)
|
||||
mkdir -p $$(@D)
|
||||
echo Generating $1.java
|
||||
$(TOOL_GENERATECHARACTER) $2 \
|
||||
-template $(CHARACTERDATA)/$1.java.template \
|
||||
-spec $(UNICODEDATA)/UnicodeData.txt \
|
||||
-specialcasing $(UNICODEDATA)/SpecialCasing.txt \
|
||||
-proplist $(UNICODEDATA)/PropList.txt \
|
||||
-o $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/$1.java -string \
|
||||
-usecharforbyte $3
|
||||
|
||||
GENSRC_CHARACTERDATA += $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/$1.java
|
||||
endef
|
||||
|
||||
$(eval $(call SetupCharacterData,CharacterDataLatin1,,-latin1 8))
|
||||
$(eval $(call SetupCharacterData,CharacterData00,-plane 0,11 4 1))
|
||||
$(eval $(call SetupCharacterData,CharacterData01,-plane 1,11 4 1))
|
||||
$(eval $(call SetupCharacterData,CharacterData02,-plane 2,11 4 1))
|
||||
$(eval $(call SetupCharacterData,CharacterData0E,-plane 14,11 4 1))
|
||||
|
||||
# Copy two Java files that need no preprocessing.
|
||||
$(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/%.java : $(CHARACTERDATA)/%.java.template
|
||||
$(MKDIR) -p $(@D)
|
||||
echo Generating $(@F)
|
||||
$(CP) -f $< $@
|
||||
|
||||
GENSRC_CHARACTERDATA += $(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/CharacterDataUndefined.java \
|
||||
$(JDK_OUTPUTDIR)/gensrc_characterdata/java/lang/CharacterDataPrivateUse.java
|
||||
|
||||
$(GENSRC_CHARACTERDATA) : $(BUILD_TOOLS)
|
||||
38
jdk/makefiles/GensrcJDWP.gmk
Normal file
38
jdk/makefiles/GensrcJDWP.gmk
Normal file
@ -0,0 +1,38 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Translate the Java debugger wire protocol (jdwp.spec) file into a JDWP.java file
|
||||
# and a JDWPCommands.h C-header file.
|
||||
|
||||
$(JDK_OUTPUTDIR)/gensrc_jdwp_headers/JDWPCommands.h : $(JDK_TOPDIR)/makefiles/jpda/jdwp/jdwp.spec
|
||||
|
||||
$(JDK_OUTPUTDIR)/gensrc_jdwp/com/sun/tools/jdi/JDWP.java : $(JDK_TOPDIR)/makefiles/jpda/jdwp/jdwp.spec
|
||||
mkdir -p $(@D)
|
||||
mkdir -p $(JDK_OUTPUTDIR)/gensrc_jdwp_headers
|
||||
$(ECHO) Creating JDWP.java and JDWPCommands.h from jdwp.spec
|
||||
$(TOOL_JDWPGEN) $< -jdi $@ -include $(JDK_OUTPUTDIR)/gensrc_jdwp_headers/JDWPCommands.h
|
||||
|
||||
GENSRC_JDWP:= $(JDK_OUTPUTDIR)/gensrc_jdwp/com/sun/tools/jdi/JDWP.java \
|
||||
$(JDK_OUTPUTDIR)/gensrc_jdwp_headers/JDWPCommands.h
|
||||
93
jdk/makefiles/GensrcLocaleDataMetaInfo.gmk
Normal file
93
jdk/makefiles/GensrcLocaleDataMetaInfo.gmk
Normal file
@ -0,0 +1,93 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Scan for all locale resources and extract for which locales there exists
|
||||
# resources. Then put this meta information about exiting (supported?) locales
|
||||
# into LocaleDataMetaInfo.java
|
||||
|
||||
# First go look for all locale files
|
||||
LOCALE_FILES:=$(shell $(FIND) $(JDK_TOPDIR)/src/share/classes \
|
||||
-name "FormatData_*.java" -o -name "FormatData_*.properties" -o \
|
||||
-name "CollationData_*.java" -o -name "CollationData_*.properties" -o \
|
||||
-name "TimeZoneNames_*.java" -o -name "TimeZoneNames_*.properties" -o \
|
||||
-name "LocaleNames_*.java" -o -name "LocaleNames_*.properties" -o \
|
||||
-name "CurrencyNames_*.java" -o -name "CurrencyNames_*.properties" -o \
|
||||
-name "CalendarData_*.java" -o -name "CalendarData_*.properties")
|
||||
|
||||
# Then translate the locale files into for example: FormatData_sv
|
||||
LOCALE_RESOURCES:=$(sort $(subst .properties,,$(subst .java,,$(notdir $(LOCALE_FILES)))))
|
||||
|
||||
# Include the list of resources found during the previous compile.
|
||||
-include $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/_the.locale_resources
|
||||
|
||||
MISSING_RESOURCES:=$(filter-out $(LOCALE_RESOURCES),$(PREV_LOCALE_RESOURCES))
|
||||
NEW_RESOURCES:=$(filter-out $(PREV_LOCALE_RESOURCES),$(LOCALE_RESOURCES))
|
||||
|
||||
ifneq (,$(MISSING_RESOURCES)$(NEW_RESOURCES))
|
||||
# There is a difference in the number of supported resources. Trigger a regeneration.
|
||||
$(shell $(RM) $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java)
|
||||
endif
|
||||
|
||||
# The non-euro zone locales have to be separated from the euro-zone locales.
|
||||
NON_EURO_LOCALES:=ar% hi% iw% ja% ko% th% vi% zh%
|
||||
|
||||
# This macro creates a sed expression that substitues for example:
|
||||
# #FormatData_EuroLocales# with: be be_BY bg bg_BG ca ca_ES... and some more.
|
||||
CAPTURE_LOCALE='s/$$(HASH)$1_$2EuroLocales$$(HASH)/ $$($3 $(NON_EURO_LOCALES),$$(filter-out $1,$$(subst $1_,,$$(filter $1_%,$(LOCALE_RESOURCES)))))/g'
|
||||
|
||||
SED_ARGS:=-e 's|$(HASH)warn This file is preprocessed before being compiled|// -- This file was mechanically generated: Do not edit! -- //|g'
|
||||
#sun.text.resources.FormatData
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,FormatData,,filter-out))
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,FormatData,Non,filter))
|
||||
|
||||
#sun.text.resources.CollationData
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CollationData,,filter-out))
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CollationData,Non,filter))
|
||||
|
||||
#sun.util.resources.TimeZoneNames
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,TimeZoneNames,,filter-out))
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,TimeZoneNames,Non,filter))
|
||||
|
||||
#sun.util.resources.LocaleNames
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,LocaleNames,,filter-out))
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,LocaleNames,Non,filter))
|
||||
|
||||
#sun.util.resources.CurrencyNames
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CurrencyNames,,filter-out))
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CurrencyNames,Non,filter))
|
||||
|
||||
#sun.util.resources.CalendarData
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CalendarData,,filter-out))
|
||||
$(eval SED_ARGS+=-e $(call CAPTURE_LOCALE,CalendarData,Non,filter))
|
||||
|
||||
$(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java: \
|
||||
$(JDK_TOPDIR)/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template
|
||||
mkdir -p $(@D)
|
||||
$(ECHO) Creating sun/util/LocaleDataMetaInfo.java from $(words $(LOCALE_RESOURCES)) found resources.
|
||||
$(PRINTF) "PREV_LOCALE_RESOURCES:=$(LOCALE_RESOURCES)" > $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/_the.locale_resources
|
||||
$(SED) $(SED_ARGS) $(JDK_TOPDIR)/src/share/classes/sun/util/LocaleDataMetaInfo-XLocales.java.template \
|
||||
> $(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java
|
||||
|
||||
GENSRC_LOCALEDATAMETAINFO:=$(JDK_OUTPUTDIR)/gensrc_localedatametainfo/sun/util/LocaleDataMetaInfo.java
|
||||
74
jdk/makefiles/GensrcMisc.gmk
Normal file
74
jdk/makefiles/GensrcMisc.gmk
Normal file
@ -0,0 +1,74 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
##########################################################################################
|
||||
# Install the launcher name, release version string, full version
|
||||
# string and the runtime name into the Version.java file.
|
||||
# To be printed by java -version
|
||||
|
||||
$(JDK_OUTPUTDIR)/gensrc_misc/sun/misc/Version.java: \
|
||||
$(JDK_TOPDIR)/src/share/classes/sun/misc/Version.java.template
|
||||
$(MKDIR) -p $(@D)
|
||||
echo Generating sun/misc/Version.java
|
||||
$(SED) -e 's/@@launcher_name@@/$(LAUNCHER_NAME)/g' \
|
||||
-e 's/@@java_version@@/$(RELEASE)/g' \
|
||||
-e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
|
||||
-e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
|
||||
$< > $@
|
||||
|
||||
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/sun/misc/Version.java
|
||||
|
||||
##########################################################################################
|
||||
# Version file for jconsole
|
||||
|
||||
$(JDK_OUTPUTDIR)/gensrc_misc/sun/tools/jconsole/Version.java: \
|
||||
$(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/Version.java.template
|
||||
$(MKDIR) -p $(@D)
|
||||
echo Generating sun/tools/jconsole/Version.java
|
||||
$(SED) -e 's/@@jconsole_version@@/$(FULL_VERSION)/g' $< > $@
|
||||
|
||||
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/sun/tools/jconsole/Version.java
|
||||
|
||||
##########################################################################################
|
||||
|
||||
ifeq ($(HOST_OS_API),posix)
|
||||
UPSUFFIX:=$(PLATFORM)
|
||||
ifeq ($(PLATFORM),macosx)
|
||||
UPSUFFIX:=bsd
|
||||
endif
|
||||
# UNIXProcess.java is different for solaris and linux. We need to copy
|
||||
# the correct UNIXProcess.java over to $(JDK_OUTPUTDIR)/gensrc/java/lang/.
|
||||
|
||||
$(JDK_OUTPUTDIR)/gensrc_misc/java/lang/UNIXProcess.java : \
|
||||
$(JDK_TOPDIR)/src/solaris/classes/java/lang/UNIXProcess.java.$(UPSUFFIX)
|
||||
$(MKDIR) -p $(@D)
|
||||
echo Copying UNIXProcess.java.$(PLATFORM) to java/lang/UNIXProcess.java
|
||||
$(CP) $< $@
|
||||
$(CHMOD) u+rw $@
|
||||
|
||||
GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc_misc/java/lang/UNIXProcess.java
|
||||
endif
|
||||
|
||||
##########################################################################################
|
||||
272
jdk/makefiles/GensrcProperties.gmk
Normal file
272
jdk/makefiles/GensrcProperties.gmk
Normal file
@ -0,0 +1,272 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# All .properties files to be compiled are appended to this variable.
|
||||
ALL_COMPILED_PROPSOURCES:=
|
||||
# All generated .java files from compilation are appended to this variable.
|
||||
ALL_COMPILED_PROPJAVAS:=
|
||||
# The (very long) command line for compilation, stored in a file, prior to use.
|
||||
COMPILE_PROPCMDLINE:=
|
||||
|
||||
# All .properties files to be cleaned are appended to this variable.
|
||||
ALL_CLEANED_PROPSOURCES:=
|
||||
# All generated cleaned .properties files from cleaning are appended to this variable.
|
||||
ALL_CLEANED_PROPOUTPUT:=
|
||||
# The (very long) command line for cleaning, stored in a file, prior to use.
|
||||
CLEAN_PROPCMDLINE:=
|
||||
|
||||
define add_properties_to_compile
|
||||
# $1 is the name of the properties group
|
||||
# $2 is the files belonging to this group
|
||||
# $3 is the super class for the generated java file.
|
||||
# $4 is a from pattern for translating stripped name from source to target
|
||||
# $5 is the to pattern replacing $3 in the target
|
||||
|
||||
# Strip away prefix and suffix,
|
||||
# leaving for example: sun/util/resources/CurrencyNames_sv
|
||||
$1_PROPPATHS:=$$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/%.properties,%,\
|
||||
$$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties,%,$2))
|
||||
|
||||
# Apply optional name transformation, example: hz_TW -> hz_HK
|
||||
$(if $4,$1_PROPPATHS:=$$(patsubst $4,$5,$$($1_PROPPATHS)))
|
||||
|
||||
# Accumulate all found properties files.
|
||||
ALL_COMPILED_PROPSOURCES+=$2
|
||||
|
||||
# Generate the list of to be created java files.
|
||||
ALL_COMPILED_PROPJAVAS+=$$(patsubst %,$(JDK_OUTPUTDIR)/gensrc_properties/%.java,$$($1_PROPPATHS))
|
||||
|
||||
# Now generate a sequence of "-compile ...CurrencyNames_sv.properties ...CurrencyNames_sv.java ListResourceBundle"
|
||||
# suitable to be fed into the CompileProperties command.
|
||||
COMPILE_PROPCMDLINE+=$$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -compile_SPACE_,$2), \
|
||||
$$(addsuffix _SPACE_$(strip $3),\
|
||||
$$(addprefix _SPACE_$(JDK_OUTPUTDIR)/gensrc_properties/,\
|
||||
$$(addsuffix .java,$$($1_PROPPATHS))))))
|
||||
endef
|
||||
|
||||
define add_properties_to_clean
|
||||
# $1 is the name of the properties group
|
||||
# $2 is the files belonging to this group
|
||||
# $3 is a from pattern for translating stripped name from source to target
|
||||
# $4 is the to pattern replacing $3 in the target
|
||||
# $5 optional name of extra directory to put properties files in (ex: resources)
|
||||
|
||||
# Strip away prefix and suffix,
|
||||
# leaving for example: sun/util/resources/CurrencyNames_sv
|
||||
$1_PROPPATHS:=$$(patsubst $(JDK_TOPDIR)/src/$(LEGACY_HOST_OS_API)/classes/%.properties,%,\
|
||||
$$(patsubst $(JDK_TOPDIR)/src/share/classes/%.properties,%,$2))
|
||||
|
||||
# Apply optional name transformation, example: hz_TW -> hz_HK
|
||||
$(if $3,$1_PROPPATHS:=$$(patsubst $3,$4,$$($1_PROPPATHS)))
|
||||
|
||||
# Accumulate all found properties files.
|
||||
ALL_CLEANED_PROPSOURCES+=$2
|
||||
|
||||
# Generate the list of to be created java files.
|
||||
$1_PROPOUTPUT:=$$(patsubst %,$(JDK_OUTPUTDIR)/newclasses/%.properties,$$($1_PROPPATHS))
|
||||
# If the properties target file isn't in a "resources" dir, add one.
|
||||
ifneq ($5,)
|
||||
$1_PROPOUTPUT:=$$(foreach p,$$($1_PROPOUTPUT), $$(dir $$p)$5/$$(notdir $$p))
|
||||
endif
|
||||
|
||||
ALL_CLEANED_PROPOUTPUT+=$$($1_PROPOUTPUT)
|
||||
|
||||
# Now generate a sequence of "-clean ...[src]...CurrencyNames_sv.properties ...[build]...CurrencyNames_sv.properties"
|
||||
# suitable to be fed into the StripProperties command.
|
||||
CLEAN_PROPCMDLINE+=$$(subst _SPACE_,$(SPACE),$$(join $$(addprefix -clean_SPACE_,$2), \
|
||||
$$(addprefix _SPACE_,$$($1_PROPOUTPUT))))
|
||||
endef
|
||||
|
||||
# Some packages contain pregenerated java files instead of properties files.
|
||||
# But unfortunately not all properties should be converted, some should be
|
||||
# copied....argggghhh.
|
||||
|
||||
# For example:
|
||||
# sun/applet/resources
|
||||
# sun/misc/resources
|
||||
# sun/text/resources
|
||||
# sun/tools/jconsole/resources
|
||||
# sun/tools/native2ascii/resources
|
||||
# sun/util/resources
|
||||
|
||||
# Some packages have properties that need to be converted to java source files.
|
||||
|
||||
#com/sun/accessibility/internal/resources
|
||||
$(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
$(eval $(call add_properties_to_compile,COM_SUN_ACCESSIBILITY_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/accessibility/internal/resources -name "*.properties"),\
|
||||
ListResourceBundle,%zh_TW,%zh_HK))
|
||||
#com/sun/imageio/plugins/common
|
||||
#com/sun/java/swing/plaf/gtk/resources
|
||||
#com/sun/java/swing/plaf/motif/resources
|
||||
#com/sun/java/swing/plaf/windows/resources
|
||||
#com/sun/java/util/jar/pack
|
||||
$(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
|
||||
$(JDK_TOPDIR)/src/share/classes/com/sun/java/util/jar/pack/intrinsic.properties))
|
||||
#com/sun/jndi/cosnaming
|
||||
$(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
|
||||
$(JDK_TOPDIR)/src/share/classes/com/sun/jndi/cosnaming/jndiprovider.properties))
|
||||
#com/sun/jndi/ldap
|
||||
$(eval $(call add_properties_to_clean,JNDI_COSNAMING,\
|
||||
$(JDK_TOPDIR)/src/share/classes/com/sun/jndi/ldap/jndiprovider.properties))
|
||||
|
||||
#com/sun/org/apache/xml/internal/security/resource
|
||||
#FIXME: The "xmlsecurity*.properties" pattern is not ideal; we might want to find
|
||||
#a better way to select the properties files that are needed.
|
||||
$(eval $(call add_properties_to_clean,XML_SECURITY,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/org/apache/xml/internal/security/resource -name "xmlsecurity*.properties")))
|
||||
|
||||
#com/sun/rowset
|
||||
$(eval $(call add_properties_to_clean,COM_SUN_ROWSET,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*.properties")))
|
||||
$(eval $(call add_properties_to_clean,COM_SUN_ROWSET_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/rowset -name "*zh_TW.properties"),\
|
||||
%zh_TW,%zh_HK))
|
||||
|
||||
#com/sun/servicetag/resources
|
||||
#com/sun/swing/internal/plaf/basic/resources
|
||||
#com/sun/swing/internal/plaf/metal/resources
|
||||
#com/sun/swing/internal/plaf/synth/resources
|
||||
|
||||
#com/sun/tools/jdi/resources
|
||||
$(eval $(call add_properties_to_compile,COM_SUN_TOOLS_JDI,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/com/sun/tools/jdi/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
|
||||
#com/sun/tools/script/shell
|
||||
#java/util
|
||||
#javax/sql/rowset
|
||||
#sun/awt/resources
|
||||
$(eval $(call add_properties_to_compile,SUN_AWT,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
$(eval $(call add_properties_to_compile,SUN_AWT_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/awt/resources -name "*.properties"),\
|
||||
ListResourceBundle,%zh_TW,%zh_HK))
|
||||
#sun/launcher/resources
|
||||
$(eval $(call add_properties_to_compile,SUN_LAUNCHER,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
$(eval $(call add_properties_to_compile,SUN_LAUNCHER_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/launcher/resources -name "*.properties"),\
|
||||
ListResourceBundle,%zh_TW,%zh_HK))
|
||||
#sun/management/resources
|
||||
#sun/print
|
||||
#sun/print/resources
|
||||
$(eval $(call add_properties_to_compile,SUN_PRINT,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
$(eval $(call add_properties_to_compile,SUN_PRINT_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/print/resources -name "*.properties"),\
|
||||
ListResourceBundle,%zh_TW,%zh_HK))
|
||||
#sun/rmi/registry/resources
|
||||
$(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*.properties")))
|
||||
$(eval $(call add_properties_to_clean,SUN_RMI_REGISTRY_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/registry/resources -name "*zh_TW.properties"),\
|
||||
%zh_TW,%zh_HK))
|
||||
|
||||
#sun/rmi/rmic/resources
|
||||
$(eval $(call add_properties_to_clean,SUN_RMI_RMIC,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/rmic/resources -name "*.properties")))
|
||||
|
||||
#sun/rmi/server/resources
|
||||
$(eval $(call add_properties_to_clean,SUN_RMI_SERVER,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*.properties")))
|
||||
$(eval $(call add_properties_to_clean,SUN_RMI_SERVER_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/rmi/server/resources -name "*zh_TW.properties"),\
|
||||
%zh_TW,%zh_HK))
|
||||
|
||||
# sun/tools/jar/resources
|
||||
$(eval $(call add_properties_to_compile,SUN_TOOLS_JAR,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
$(eval $(call add_properties_to_compile,SUN_TOOLS_JAR_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/jar/resources -name "*.properties"),\
|
||||
ListResourceBundle,%zh_TW,%zh_HK))
|
||||
|
||||
#sun/tools/javac/resources
|
||||
# It's unclear if the other localized property files here are supposed to be copied or not
|
||||
# but the old build system didn't copy them.
|
||||
$(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/javac/resources -name "javac.properties")))
|
||||
|
||||
#sun/tools/serialver
|
||||
$(eval $(call add_properties_to_clean,SUN_TOOLS_SERIALVER,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/tools/serialver -name "*.properties"),,,resources))
|
||||
|
||||
#sun/util/logging/resources
|
||||
$(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\
|
||||
ListResourceBundle))
|
||||
$(eval $(call add_properties_to_compile,SUN_UTIL_LOGGING_HK,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/logging/resources -name "*.properties"),\
|
||||
ListResourceBundle,%zh_TW,%zh_HK))
|
||||
# sun/util/resources
|
||||
$(eval $(call add_properties_to_compile,SUN_UTIL,\
|
||||
$(shell find $(JDK_TOPDIR)/src/share/classes/sun/util/resources -name "*.properties"),\
|
||||
LocaleNamesBundle))
|
||||
|
||||
|
||||
# Now setup the rule for the generation of the resource bundles.
|
||||
$(JDK_OUTPUTDIR)/gensrc_properties/_the.compiled_properties : $(ALL_COMPILED_PROPSOURCES) $(BUILD_TOOLS)
|
||||
$(RM) -rf $(JDK_OUTPUTDIR)/gensrc_properties/*
|
||||
# Generate all output directories in advance since the build tool does not do that...
|
||||
$(MKDIR) -p $(sort $(dir $(ALL_COMPILED_PROPJAVAS)))
|
||||
echo Compiling $(words $(ALL_COMPILED_PROPSOURCES)) properties into resource bundles
|
||||
$(call ListPathsSafely,COMPILE_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/gensrc_properties/_the.cmdline)
|
||||
$(TOOL_COMPILEPROPERTIES) -quiet @$(JDK_OUTPUTDIR)/gensrc_properties/_the.cmdline
|
||||
touch $@
|
||||
|
||||
# Now setup the rule for the generation of the cleaned properties.
|
||||
# FIXME: We currently don't handle removed properties incrementally.
|
||||
$(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties : $(ALL_CLEANED_PROPSOURCES) $(BUILD_TOOLS)
|
||||
$(RM) -f $(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties.cmdline
|
||||
# Generate all output directories in advance since the build tool does not do that...
|
||||
$(MKDIR) -p $(sort $(dir $(ALL_CLEANED_PROPOUTPUT)))
|
||||
echo Copying and cleaning $(words $(ALL_CLEANED_PROPSOURCES)) properties
|
||||
$(call ListPathsSafely,CLEAN_PROPCMDLINE,\n, >> $(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties.cmdline)
|
||||
$(TOOL_STRIPPROPERTIES) @$(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties.cmdline
|
||||
touch $@
|
||||
|
||||
$(ALL_COMPILED_PROPJAVAS) : $(JDK_OUTPUTDIR)/gensrc_properties/_the.compiled_properties
|
||||
|
||||
$(ALL_CLEANED_PROPOUTPUT) : $(JDK_OUTPUTDIR)/newclasses/_the.cleaned_properties
|
||||
|
||||
|
||||
# Some zh_HK resources are just copied of zh_TW
|
||||
$(JDK_OUTPUTDIR)/gensrc_properties/%_zh_HK.java: $(JDK_TOPDIR)/src/share/classes/%_zh_TW.java
|
||||
$(MKDIR) -p $(@D)
|
||||
$(CAT) $< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $@
|
||||
|
||||
ZH_HK_JAVA:= sun/applet/resources/MsgAppletViewer_zh_HK.java \
|
||||
sun/misc/resources/Messages_zh_HK.java \
|
||||
sun/security/util/AuthResources_zh_HK.java
|
||||
ZH_HK_JAVA_FILES:=$(addprefix $(JDK_OUTPUTDIR)/gensrc_properties/,$(ZH_HK_JAVA))
|
||||
|
||||
|
||||
GENSRC_PROPERTIES:=$(ALL_COMPILED_PROPJAVAS) $(ALL_CLEANED_PROPOUTPUT) $(ZH_HK_JAVA_FILES)
|
||||
74
jdk/makefiles/Images.gmk
Normal file
74
jdk/makefiles/Images.gmk
Normal file
@ -0,0 +1,74 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include Setup.gmk
|
||||
|
||||
default: $(IMAGES_OUTPUTDIR)/_the.images
|
||||
|
||||
include Tools.gmk
|
||||
|
||||
JARS:=
|
||||
|
||||
##########################################################################################
|
||||
|
||||
JCONSOLE_JAR_DEPS := \
|
||||
$(shell $(FIND) $(JDK_OUTPUTDIR)/newclasses/sun/tools/jconsole/ -name "_the.package") \
|
||||
$(shell $(FIND) $(JDK_OUTPUTDIR)/newclasses/com/sun/tools/jconsole/ -name "_the.package")
|
||||
|
||||
$(eval $(call SetupArchive,BUILD_JCONSOLE_JAR,$(JCONSOLE_JAR_DEPS),\
|
||||
SRCS:=$(JDK_OUTPUTDIR)/newclasses,\
|
||||
SUFFIXES:=.class .gif .png,\
|
||||
INCLUDES:=sun/tools/jconsole com/sun/tools/jconsole,\
|
||||
JARMAIN:=sun.tools.jconsole.JConsole,\
|
||||
JAR:=$(JDK_OUTPUTDIR)/lib/jconsole.jar,\
|
||||
SKIP_METAINF:=true))
|
||||
|
||||
JARS+=$(JDK_OUTPUTDIR)/lib/jconsole.jar
|
||||
|
||||
##########################################################################################
|
||||
|
||||
# Need to define BUILDDIR for Release.gmk to work
|
||||
BUILDDIR=$(JDK_TOPDIR)/makefiles
|
||||
include common/Defs.gmk
|
||||
include common/Release.gmk
|
||||
|
||||
# A rudimentary attempt at band-aiding the dependency tracking.
|
||||
DEPS:= $(shell $(FIND) $(JDK_OUTPUTDIR)/newclasses -name "*.class" -type f) \
|
||||
$(shell $(FIND) $(JDK_OUTPUTDIR)/bin -type f) \
|
||||
$(shell $(FIND) $(JDK_OUTPUTDIR)/lib -type f)
|
||||
|
||||
$(IMAGES_OUTPUTDIR)/_the.images : $(DEPS) $(JARS)
|
||||
$(MKDIR) -p $(@D)
|
||||
# Restart this makefile, ugly, but since double colon (::) rules
|
||||
# have been used in Release.gmk, it is impossible to craft on
|
||||
# dependencies on these. I.e. -do-not-use- :: rules!!!!!
|
||||
# Repeat after me: -do-not-use- :: rules!!!!!
|
||||
$(MAKE) -j1 -f Images.gmk $(IMAGES_MAKE_ARGS) images
|
||||
$(TOUCH) $@
|
||||
|
||||
.PHONY: default
|
||||
57
jdk/makefiles/LegacyMakefiles.gmk
Normal file
57
jdk/makefiles/LegacyMakefiles.gmk
Normal file
@ -0,0 +1,57 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
|
||||
all: $(JDK_OUTPUTDIR)/_the.legacy_make
|
||||
|
||||
DEPS:= $(shell $(FIND) $(JDK_TOPDIR)/makefiles/java -type f) \
|
||||
$(shell $(FIND) $(JDK_TOPDIR)/makefiles/javax -type f) \
|
||||
$(shell $(FIND) $(JDK_TOPDIR)/makefiles/sun -type f) \
|
||||
$(shell $(FIND) $(JDK_TOPDIR)/makefiles/com -type f) \
|
||||
$(shell $(FIND) $(JDK_TOPDIR)/makefiles/apple -type f)
|
||||
|
||||
$(JDK_OUTPUTDIR)/_the.legacy_make: $(DEPS)
|
||||
(echo Building single threaded Java subdir && \
|
||||
$(MAKE) -j1 -C java all && \
|
||||
(if test "$(PLATFORM)" = macosx; then \
|
||||
echo Building single threaded Apple subdir && \
|
||||
$(MAKE) -j1 -C apple all; \
|
||||
fi) && \
|
||||
echo Building single threaded javax subdir && \
|
||||
$(MAKE) -j1 -C javax all && \
|
||||
echo Building single threaded sun subdir && \
|
||||
$(MAKE) -j1 -C sun all && \
|
||||
echo Building single threaded com subdir && \
|
||||
$(MAKE) -j1 -C com all && \
|
||||
if [ -z "$(OPENJDK)" ]; then \
|
||||
echo Building single threaded altclasses subdir && \
|
||||
$(MAKE) -j1 -C altclasses all; \
|
||||
fi && \
|
||||
touch $@)
|
||||
|
||||
.PHONY: all
|
||||
|
||||
92
jdk/makefiles/Makefile
Normal file
92
jdk/makefiles/Makefile
Normal file
@ -0,0 +1,92 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
default: all
|
||||
|
||||
include $(SPEC)
|
||||
include MakeBase.gmk
|
||||
include JavaCompilation.gmk
|
||||
include NativeCompilation.gmk
|
||||
|
||||
# Setup the java compilers for the JDK build.
|
||||
include Setup.gmk
|
||||
|
||||
# Setup the build tools.
|
||||
include Tools.gmk
|
||||
|
||||
|
||||
all: $(BUILD_TOOLS)
|
||||
+make -f GenerateJavaSources.gmk
|
||||
# Drop back to the old makefiles for
|
||||
# packages/libs that have not yet been converted.
|
||||
+make -f LegacyMakefiles.gmk
|
||||
# Ok, now gensrc is fully populated.
|
||||
+make -f GenerateData.gmk
|
||||
+make -f CompileJavaClasses.gmk
|
||||
# The classes have been built, now generate
|
||||
# classes that have other sources.
|
||||
+make -f GenerateClasses.gmk
|
||||
# The classes are now built and
|
||||
# any javah files have now been generated.
|
||||
+make -f CompileNativeLibraries.gmk
|
||||
# Finally compile the launchers.
|
||||
+make -f CompileLaunchers.gmk
|
||||
# Now we have a complete jdk, which you can run.
|
||||
# It is not yet wrapped up as an installed image.
|
||||
# The demos are compiled against this jdk.
|
||||
ifndef NO_DEMOS
|
||||
+make -f CompileDemos.gmk
|
||||
endif
|
||||
# Now copy the sample sources into the jdk.
|
||||
ifndef NO_SAMPLES
|
||||
+make -f CopySamples.gmk
|
||||
endif
|
||||
|
||||
# Create the final jdk and jre images, to be wrapped up
|
||||
# into packages, or instealled.
|
||||
images: all
|
||||
+make $(IMAGES_MAKE_ARGS) -f Images.gmk
|
||||
|
||||
|
||||
BINARIES:=$(shell if test -d $(IMAGES_OUTPUTDIR)/j2sdk-image/bin; then cd $(IMAGES_OUTPUTDIR)/j2sdk-image/bin && $(LS) ; fi)
|
||||
INSTALLDIR:=openjdk-$(RELEASE)
|
||||
|
||||
# Install the jdk image, in a very crude way. Not taking into
|
||||
# account, how to install properly on macosx or windows etc.
|
||||
install: images
|
||||
echo Installing jdk image into $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
|
||||
echo and creating $(words $(BINARIES)) links from $(INSTALL_PREFIX)/bin into the jdk.
|
||||
$(MKDIR) -p $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
|
||||
$(RM) -r $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/*
|
||||
$(CP) -rp $(IMAGES_OUTPUTDIR)/j2sdk-image/* $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)
|
||||
$(RM) $(addprefix $(INSTALL_PREFIX)/bin/,$(BINARIES))
|
||||
$(foreach b,$(BINARIES),$(LN) -s $(INSTALL_PREFIX)/jvm/$(INSTALLDIR)/bin/$b $(INSTALL_PREFIX)/bin/$b &&) true
|
||||
|
||||
# Create the deb,rpm,tgz,zip, packages.
|
||||
packages: images
|
||||
echo Creating packages...well, in the future.
|
||||
$(MKDIR) -p $(OUTPUT_ROOT)/packages
|
||||
|
||||
.PHONY: all install
|
||||
31
jdk/makefiles/PatchList.solaris
Normal file
31
jdk/makefiles/PatchList.solaris
Normal file
@ -0,0 +1,31 @@
|
||||
BUILD,RUNTIME 5.8 Sparc 109147-24 x86 109148-24 REQ "Linker patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 108652-66 x86 108653-55 REQ "Xserver patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 108940-52 x86 108941-52 REQ "Motif 2.1 patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 108989-02 x86 108990-02 REQ "Accounting patch"
|
||||
BUILD,RUNTIME 5.8 Sparc none x86 111307-04 REQ "boot.bin, bootconf.exe, bootenv.rc and nbp patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 111310-01 x86 111311-01 REQ "libhcpagent.so.l patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 112396-02 x86 112397-02 REQ "fgrep patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 108987-13 x86 108988-13 REQ "patchadd, patchrm patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 111111-03 x86 111112-03 REQ "nawk patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 108528-20 x86 108529-20 REQ "Kernel update"
|
||||
BUILD,RUNTIME 5.8 Sparc 108993-18 x86 none REQ "LDAP2 Patch"
|
||||
BUILD,RUNTIME 5.8 Sparc none x86 110400-01 REQ "RBAC Feature patch"
|
||||
BUILD,RUNTIME 5.8 Sparc none x86 111024-02 REQ "/kernel/fs/mntfs patch"
|
||||
BUILD,RUNTIME 5.8 Sparc none x86 108994-18 REQ "LDAP2 patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 109147-23 x86 109148-23 REQ "linker patch"
|
||||
BUILD,RUNTIME 5.8 Sparc 111308-03 x86 111309-03 REQ "Performance for apps using memory alloc"
|
||||
RUNTIME 5.8 Sparc 112003-03 x86 none REQ "Fontset patch for sparcv9"
|
||||
RUNTIME 5.8 Sparc 108921-16 x86 108922-16 REQ "CDE patch"
|
||||
RUNTIME 5.8 Sparc 108773-18 x86 108774-18 REQ "X input method patch"
|
||||
RUNTIME 5.8 Sparc 110386-03 x86 none REQ "RBAC Feature Patch"
|
||||
RUNTIME 5.8 Sparc 111023-02 x86 none REQ "/kernel/fs/mntfs and /kernel/fs/sparcv9/mntfs patch"
|
||||
RUNTIME 5.8 Sparc 112472-01 x86 112473-01 OPT "Font2DTest2 patch"
|
||||
RUNTIME 5.8 Sparc 112438-01 x86 112439-01 REQ "/kernel/drv/random patch"
|
||||
|
||||
COMPILER 5.8 Sparc 109505-06 x86 109502-03 REQ "For C 5.0, C++ 5.0"
|
||||
COMPILER 5.8 Sparc 109513-05 x86 109514-03 REQ "For Forte Development 6 C compiler"
|
||||
COMPILER 5.8 Sparc 109508-03 x86 109509-03 REQ "For Forte Development 6 update 1 C++ compiler"
|
||||
COMPILER 5.8 Sparc 109510-03 x86 109511-03 REQ "For Forte 6.1 Debugger"
|
||||
COMPILER 5.8 Sparc 109516-02 x86 109517-02 REQ "For Forte 6.1 Performance Analyzer"
|
||||
COMPILER 5.8 Sparc 110480-01 x86 110481-01 REQ "For Forte TeamWare"
|
||||
|
||||
77
jdk/makefiles/Setup.gmk
Normal file
77
jdk/makefiles/Setup.gmk
Normal file
@ -0,0 +1,77 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
JAVAC_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" -jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
|
||||
JAVAH_JARS ?= "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javah.jar" -jar $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javah.jar
|
||||
|
||||
DISABLE_WARNINGS:=-Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-dep-ann,-static,-fallthrough,-try,-varargs,-empty,-finally
|
||||
|
||||
# The generate old bytecode javac setup uses the new compiler to compile for the
|
||||
# boot jdk to generate tools that need to be run with the boot jdk.
|
||||
# Thus we force the target bytecode to 6.
|
||||
$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE,\
|
||||
JVM:=$(JAVA),\
|
||||
JAVAC:=$(JAVAC_JARS),\
|
||||
FLAGS:=-source 7 -target 7 -bootclasspath $(BOOT_RTJAR) $(DISABLE_WARNINGS),\
|
||||
SERVER_DIR:=$(JAVAC_SERVERS),\
|
||||
SERVER_JVM:=$(SERVER_JAVA),\
|
||||
MODE:=$(JAVAC_USE_MODE),\
|
||||
USE_DEPS:=$(JAVAC_USE_DEPS)))
|
||||
|
||||
# The generate new bytecode javac setup uses the new compiler to compile for the
|
||||
# new jdk. This new bytecode might only be possible to run using the new jvm.
|
||||
$(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE,\
|
||||
JVM:=$(JAVA),\
|
||||
JAVAC:=$(JAVAC_JARS),\
|
||||
JAVAH:=$(JAVAH_JARS),\
|
||||
FLAGS:=-bootclasspath "$(JDK_OUTPUTDIR)/newclasses$(PATH_SEP)$(JDK_OUTPUTDIR)/classes" -Xprefer:source -XDignore.symbol.file=true $(DISABLE_WARNINGS),\
|
||||
SERVER_DIR:=$(JAVAC_SERVERS),\
|
||||
SERVER_JVM:=$(SERVER_JAVA),\
|
||||
MODE:=$(JAVAC_USE_MODE),\
|
||||
USE_DEPS:=$(JAVAC_USE_DEPS)))
|
||||
|
||||
# After the jdk is built, we want to build demos using only the recently
|
||||
# generated jdk classes and nothing else, no jdk source, etc etc.
|
||||
# I.e. the rt.jar, but since rt.jar has not yet been generated
|
||||
# (it will be in "make images") therefore we use classes instead.
|
||||
$(eval $(call SetupJavaCompiler,GENERATE_USINGJDKBYTECODE,\
|
||||
JVM:=$(JAVA),\
|
||||
JAVAC:=$(JAVAC_JARS),\
|
||||
FLAGS:= -Xbootclasspath:$(JDK_OUTPUTDIR)/classes $(DISABLE_WARNINGS),\
|
||||
SERVER_DIR:=$(JAVAC_SERVERS),\
|
||||
SERVER_JVM:=$(SERVER_JAVA),\
|
||||
MODE:=$(JAVAC_USE_MODE),\
|
||||
USE_DEPS:=$(JAVAC_USE_DEPS)))
|
||||
|
||||
# A temporary solution to work around the fact that Matrix3D.java
|
||||
# exists in several applets. The javacserver does not like to be
|
||||
# fed the same class twice. Thus we compile one applet outside of the
|
||||
# javacserver.
|
||||
$(eval $(call SetupJavaCompiler,GENERATE_USINGJDKBYTECODE_NOSERV,\
|
||||
JVM:=$(JAVA),\
|
||||
JAVAC:=$(JAVAC_JARS),\
|
||||
FLAGS:= -Xbootclasspath:$(JDK_OUTPUTDIR)/classes $(DISABLE_WARNINGS),\
|
||||
MODE:=SINGLE_THREADED_BATCH,\
|
||||
USE_DEPS:=FALSE))
|
||||
114
jdk/makefiles/Tools.gmk
Normal file
114
jdk/makefiles/Tools.gmk
Normal file
@ -0,0 +1,114 @@
|
||||
#
|
||||
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
ifeq (,$(BUILD_TOOLS))
|
||||
$(eval $(call SetupJavaCompilation,BUILD_TOOLS,\
|
||||
SETUP:=GENERATE_OLDBYTECODE,\
|
||||
SRC:=$(JDK_TOPDIR)/make/tools/src,\
|
||||
BIN:=$(JDK_OUTPUTDIR)/btclasses))
|
||||
endif
|
||||
|
||||
ifndef DISABLE_NIMBUS
|
||||
|
||||
$(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/%.template : \
|
||||
$(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/%.template
|
||||
mkdir -p $(@D)
|
||||
cp $< $@
|
||||
|
||||
BUILD_TOOLS += $(foreach i,$(wildcard $(JDK_TOPDIR)/src/share/classes/javax/swing/plaf/nimbus/*.template),$(JDK_OUTPUTDIR)/btclasses/build/tools/generatenimbus/resources/$(notdir $i))
|
||||
|
||||
endif
|
||||
|
||||
|
||||
# Add a checksum ("jsum") to the end of a text file. Prevents trivial tampering with class lists.
|
||||
TOOL_ADDJSUM=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.addjsum.AddJsum
|
||||
|
||||
# The buildmetaindex tool creates a meta-index to make core class loaders lazier.
|
||||
TOOL_BUILDMETAINDEX=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.buildmetaindex.BuildMetaIndex
|
||||
|
||||
# The comment checker is not currently used. Should it be removed or added to javac?
|
||||
TOOL_COMMENTCHECKER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.commentchecker.CommentChecker
|
||||
|
||||
TOOL_COMPILEFONTCONFIG=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.compilefontconfig.CompileFontConfig
|
||||
|
||||
TOOL_COMPILEPROPERTIES=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.compileproperties.CompileProperties
|
||||
|
||||
TOOL_STRIPPROPERTIES=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.stripproperties.StripProperties
|
||||
|
||||
TOOL_JARREORDER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.jarreorder.JarReorder
|
||||
|
||||
TOOL_GENERATECHARACTER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.generatecharacter.GenerateCharacter
|
||||
|
||||
TOOL_CHARACTERNAME=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.generatecharacter.CharacterName
|
||||
|
||||
TOOL_DIRDIFF=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.dirdiff.DirDiff
|
||||
|
||||
TOOL_DTDBUILDER=$(JAVA) -Ddtd_home=$(JDK_TOPDIR)/make/tools/dtdbuilder/dtds \
|
||||
-cp $(JDK_OUTPUTDIR)/btclasses build.tools.dtdbuilder.DTDBuilder
|
||||
|
||||
TOOL_GENERATEBREAKITERATORDATA=$(JAVA) \
|
||||
-cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.generatebreakiteratordata.GenerateBreakIteratorData
|
||||
|
||||
TOOL_GENERATECURRENCYDATA=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.generatecurrencydata.GenerateCurrencyData
|
||||
|
||||
TOOL_HASHER=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.hasher.Hasher
|
||||
|
||||
# Jarsplit used in jdk/makefiles/common/Release.gmk
|
||||
TOOL_JARSPLIT=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.jarsplit.JarSplit
|
||||
|
||||
TOOL_JAVAZIC=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.javazic.Main
|
||||
|
||||
# TODO: There are references to the jdwpgen.jar in jdk/make/netbeans/jdwpgen/build.xml
|
||||
# and nbproject/project.properties in the same dir. Needs to be looked at.
|
||||
TOOL_JDWPGEN=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.jdwpgen.Main
|
||||
|
||||
# TODO: Lots of files in jdk/make/tools/CharsetMapping dir
|
||||
TOOL_CHARSETMAPPING=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.charsetmapping.Main
|
||||
|
||||
TOOL_SPP=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.spp.Spp
|
||||
|
||||
# TODO: Only referenced in jdk/make/tools/sharing/README.txt. Find out what it means.
|
||||
TOOL_MAKECLASSLIST=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.makeclasslist.MakeClasslist
|
||||
|
||||
# Nimbus is used somewhere in the swing build.
|
||||
TOOL_GENERATENIMBUS=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
|
||||
build.tools.generatenimbus.Generator
|
||||
84
jdk/makefiles/altclasses/Makefile
Normal file
84
jdk/makefiles/altclasses/Makefile
Normal file
@ -0,0 +1,84 @@
|
||||
#
|
||||
# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building alternate runtime classes (not used by default)
|
||||
#
|
||||
|
||||
BUILDDIR = ..
|
||||
|
||||
PRODUCT = altclasses
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
# Root of alternate class sources
|
||||
|
||||
ALTCLASSES_SRCDIR = $(CLOSED_SRC)/share/altclasses
|
||||
|
||||
# Alternate runtime classes
|
||||
|
||||
ALTRT_JAR_FILE = $(LIBDIR)/alt-rt.jar
|
||||
ALTRT_JAR_SOURCE_FILE = $(TEMPDIR)/alt-rt.jarsrclist
|
||||
ALTRT_JAR_SOURCES = $(wildcard $(ALTCLASSES_SRCDIR)/java/*/*.java)
|
||||
|
||||
# Use a special file suffix for the file that holds the source list
|
||||
|
||||
.SUFFIXES: .jarsrclist
|
||||
|
||||
# Build rules
|
||||
|
||||
all build:
|
||||
@if [ -d $(ALTCLASSES_SRCDIR) ] ; then \
|
||||
$(MAKE) $(ALTRT_JAR_FILE); \
|
||||
fi
|
||||
|
||||
# Source list file creation
|
||||
|
||||
$(ALTRT_JAR_SOURCE_FILE): $(ALTRT_JAR_SOURCES) FRC
|
||||
$(prep-target)
|
||||
$(ECHO) $(ALTRT_JAR_SOURCES) > $@
|
||||
|
||||
clean clobber::
|
||||
$(RM) $(ALTRT_JAR_FILE) $(ALTRT_JAR_SOURCE_FILE)
|
||||
$(RM) -r $(ALTRT_JAR_SOURCE_FILE).classes
|
||||
|
||||
include $(BUILDDIR)/common/Classes.gmk
|
||||
|
||||
# Pattern rule to turn a source list file into a jar file
|
||||
$(LIBDIR)/%.jar : $(TEMPDIR)/%.jarsrclist
|
||||
$(prep-target)
|
||||
$(RM) -r $(<).classes
|
||||
$(MKDIR) -p $(<).classes
|
||||
$(JAVAC_CMD) -implicit:none -d $(<).classes @$<
|
||||
$(BOOT_JAR_CMD) cf $@ -C $(<).classes . $(BOOT_JAR_JFLAGS)
|
||||
|
||||
# Force target
|
||||
|
||||
FRC:
|
||||
|
||||
# Non file targets
|
||||
|
||||
.PHONY: all build clean clobber
|
||||
|
||||
39
jdk/makefiles/apple/Makefile
Normal file
39
jdk/makefiles/apple/Makefile
Normal file
@ -0,0 +1,39 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building com/apple
|
||||
#
|
||||
|
||||
BUILDDIR = ..
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
SUBDIRS = applescript
|
||||
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
71
jdk/makefiles/apple/applescript/Makefile
Normal file
71
jdk/makefiles/apple/applescript/Makefile
Normal file
@ -0,0 +1,71 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
PACKAGE = apple.applescript
|
||||
LIBRARY = AppleScriptEngine
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
|
||||
#
|
||||
# Files
|
||||
#
|
||||
AUTO_FILES_JAVA_DIRS = apple/applescript
|
||||
|
||||
FILES_objc = \
|
||||
$(TARGDIR)AppleScriptEngine.m \
|
||||
$(TARGDIR)AppleScriptExecutionContext.m \
|
||||
$(TARGDIR)AS_NS_ConversionUtils.m \
|
||||
$(TARGDIR)NS_Java_ConversionUtils.m
|
||||
|
||||
|
||||
FILES_export = \
|
||||
apple/applescript/AppleScriptEngine.java \
|
||||
apple/applescript/AppleScriptEngineFactory.java
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
|
||||
#
|
||||
# Extra rules
|
||||
#
|
||||
|
||||
#
|
||||
# Add to ambient vpath to get files in a subdirectory
|
||||
#
|
||||
vpath %.m $(call NativeSrcDirList,,native/apple/applescript)
|
||||
|
||||
CPPFLAGS += \
|
||||
-I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
|
||||
|
||||
OTHER_LDLIBS = \
|
||||
-framework Cocoa \
|
||||
-framework Carbon \
|
||||
-framework JavaNativeFoundation
|
||||
44
jdk/makefiles/com/Makefile
Normal file
44
jdk/makefiles/com/Makefile
Normal file
@ -0,0 +1,44 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building all of java
|
||||
#
|
||||
|
||||
BUILDDIR = ..
|
||||
PRODUCT = com
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
SUBDIRS = sun oracle
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
SUBDIRS += apple
|
||||
endif
|
||||
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
|
||||
39
jdk/makefiles/com/apple/Makefile
Normal file
39
jdk/makefiles/com/apple/Makefile
Normal file
@ -0,0 +1,39 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building com/apple
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
SUBDIRS = osx osxui
|
||||
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
91
jdk/makefiles/com/apple/osx/Makefile
Normal file
91
jdk/makefiles/com/apple/osx/Makefile
Normal file
@ -0,0 +1,91 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
BUILDDIR = ../../..
|
||||
PACKAGE = com.apple.osx
|
||||
LIBRARY = osx
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
|
||||
#
|
||||
# Files
|
||||
#
|
||||
AUTO_FILES_JAVA_DIRS = apple/launcher apple/security com/apple/concurrent com/apple/eio java/util/prefs
|
||||
|
||||
FILES_objc += \
|
||||
$(TARGDIR)Dispatch.m \
|
||||
$(TARGDIR)CFileManager.m \
|
||||
$(TARGDIR)KeystoreImpl.m \
|
||||
$(TARGDIR)JavaAppLauncher.m \
|
||||
$(TARGDIR)MacOSXPreferencesFile.m \
|
||||
$(TARGDIR)SCDynamicStoreConfig.m
|
||||
|
||||
FILES_export += \
|
||||
com/apple/concurrent/LibDispatchNative.java \
|
||||
com/apple/eio/FileManager.java \
|
||||
apple/security/KeychainStore.java \
|
||||
apple/launcher/JavaAppLauncher.java \
|
||||
java/util/prefs/MacOSXPreferencesFile.java
|
||||
|
||||
# TODO: couldn't figure out how to get resources working
|
||||
#LOCALE_SET_DEFINITION = jre
|
||||
#RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES = apple/launcher/appLauncherErrors.properties
|
||||
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
|
||||
#
|
||||
# Extra rules
|
||||
#
|
||||
|
||||
#
|
||||
# Add to ambient vpath to get files in a subdirectory
|
||||
#
|
||||
vpath %.m $(call NativeSrcDirList,,native/com/apple/concurrent)
|
||||
vpath %.m $(call NativeSrcDirList,,native/com/apple/eio)
|
||||
vpath %.m $(call NativeSrcDirList,,native/apple/launcher)
|
||||
vpath %.m $(call NativeSrcDirList,,native/apple/security)
|
||||
vpath %.m $(call NativeSrcDirList,,native/java/util)
|
||||
|
||||
CPPFLAGS += \
|
||||
$(call NativeSrcDirList,-I,native/com/apple/laf) \
|
||||
$(call NativeSrcDirList,-I,native/apple/awt) \
|
||||
$(call NativeSrcDirList,-I,native/sun/awt) \
|
||||
$(call NativeSrcDirList,-I,native/sun/osxapp)
|
||||
|
||||
OTHER_LDLIBS = \
|
||||
-losxapp \
|
||||
-framework Cocoa \
|
||||
-framework ApplicationServices \
|
||||
-framework JavaNativeFoundation \
|
||||
-framework JavaRuntimeSupport \
|
||||
-framework Security \
|
||||
-framework SystemConfiguration
|
||||
106
jdk/makefiles/com/apple/osxui/Makefile
Normal file
106
jdk/makefiles/com/apple/osxui/Makefile
Normal file
@ -0,0 +1,106 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
BUILDDIR = ../../..
|
||||
PACKAGE = com.apple.osxui
|
||||
LIBRARY = osxui
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
|
||||
#
|
||||
# Files
|
||||
#
|
||||
AUTO_FILES_JAVA_DIRS = apple/laf com/apple/laf com/apple/eawt
|
||||
|
||||
FILES_objc = \
|
||||
$(TARGDIR)AquaFileView.m \
|
||||
$(TARGDIR)AquaLookAndFeel.m \
|
||||
$(TARGDIR)AquaNativeResources.m \
|
||||
$(TARGDIR)JRSUIConstantSync.m \
|
||||
$(TARGDIR)JRSUIController.m \
|
||||
$(TARGDIR)JRSUIFocus.m \
|
||||
$(TARGDIR)ScreenPopupFactory.m \
|
||||
$(TARGDIR)ScreenMenu.m
|
||||
|
||||
FILES_export = \
|
||||
apple/laf/AquaLookAndFeel.java \
|
||||
apple/laf/JRSUIConstants.java \
|
||||
apple/laf/JRSUIControl.java \
|
||||
apple/laf/JRSUIFocus.java \
|
||||
apple/laf/JRSUIState.java \
|
||||
apple/laf/JRSUIStateFactory.java \
|
||||
apple/laf/JRSUIUtils.java \
|
||||
com/apple/laf/AquaFileView.java \
|
||||
com/apple/laf/AquaNativeResources.java \
|
||||
com/apple/laf/ScreenPopupFactory.java \
|
||||
com/apple/laf/ScreenMenu.java \
|
||||
com/apple/laf/ScreenMenuBar.java \
|
||||
com/apple/laf/ScreenMenuBarProvider.java \
|
||||
com/apple/laf/ScreenMenuItem.java \
|
||||
com/apple/laf/ScreenMenuItemCheckbox.java \
|
||||
com/apple/laf/ScreenMenuItemUI.java \
|
||||
com/apple/laf/ScreenMenuPropertyHandler.java \
|
||||
com/apple/laf/ScreenMenuPropertyListener.java
|
||||
|
||||
#RESOURCE_BUNDLES_COMPILED_PROPERTIES += \
|
||||
# com/apple/laf/resources/aqua.properties \
|
||||
# com/apple/laf/resources/aqua_de.properties \
|
||||
# com/apple/laf/resources/aqua_fr.properties \
|
||||
# com/apple/laf/resources/aqua_ja.properties
|
||||
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
|
||||
#
|
||||
# Extra rules
|
||||
#
|
||||
|
||||
#
|
||||
# Add to ambient vpath to get files in a subdirectory
|
||||
#
|
||||
vpath %.m $(call NativeSrcDirList,,native/com/apple/laf)
|
||||
vpath %.m $(call NativeSrcDirList,,native/com/apple/eawt)
|
||||
|
||||
CPPFLAGS += \
|
||||
$(call NativeSrcDirList,-I,native/com/apple/laf) \
|
||||
$(call NativeSrcDirList,-I,native/apple/awt) \
|
||||
$(call NativeSrcDirList,-I,native/sun/awt) \
|
||||
$(call NativeSrcDirList,-I,native/sun/osxapp) \
|
||||
-I$(TEMPDIR)/../../sun.awt/awt/CClassHeaders
|
||||
|
||||
OTHER_LDLIBS = \
|
||||
-lawt -losxapp \
|
||||
-lawt_lwawt -L$(LIBDIR) -Xlinker -rpath -Xlinker @loader_path \
|
||||
-framework Cocoa \
|
||||
-framework Carbon \
|
||||
-framework ApplicationServices \
|
||||
-framework JavaNativeFoundation \
|
||||
-framework JavaRuntimeSupport
|
||||
54
jdk/makefiles/com/oracle/Makefile
Normal file
54
jdk/makefiles/com/oracle/Makefile
Normal file
@ -0,0 +1,54 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
PRODUCT = oracle
|
||||
#SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
|
||||
#SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
|
||||
#SUBDIRS_MAKEFLAGS += JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation,-path
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
# build com/oracle/security/ucrypto on Solaris platform for non-OpenJDK builds
|
||||
UCRYPTO =
|
||||
ifndef OPENJDK
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
UCRYPTO = security/ucrypto
|
||||
endif
|
||||
endif
|
||||
|
||||
JFR =
|
||||
ifndef OPENJDK
|
||||
ifndef JAVASE_EMBEDDED
|
||||
JFR = jfr
|
||||
endif
|
||||
endif
|
||||
|
||||
SUBDIRS = $(JFR) $(UCRYPTO)
|
||||
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
|
||||
73
jdk/makefiles/com/oracle/jfr/Makefile
Normal file
73
jdk/makefiles/com/oracle/jfr/Makefile
Normal file
@ -0,0 +1,73 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
BUILDDIR = ../../..
|
||||
PACKAGE = oracle.jrockit.jfr
|
||||
LIBRARY = jfr
|
||||
PRODUCT = oracle
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Use mapfile
|
||||
#
|
||||
FILES_m = $(CLOSED_SHARE_SRC)/native/oracle/jfr/mapfile-vers
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
|
||||
#
|
||||
# Files to compile
|
||||
#
|
||||
FILES_c = VMJFR.c
|
||||
|
||||
AUTO_FILES_JAVA_DIRS = com/oracle/jrockit/jfr oracle/jrockit/jfr
|
||||
|
||||
# Find C source files
|
||||
#
|
||||
vpath %.c $(CLOSED_SHARE_SRC)/native/oracle/jfr
|
||||
|
||||
#
|
||||
# Library to compile.
|
||||
#
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
JVMLIB =
|
||||
JAVALIB =
|
||||
OTHER_LDLIBS =
|
||||
|
||||
clean clobber::
|
||||
$(RM) -r $(CLASSDESTDIR)/com/oracle/jrockit/jfr
|
||||
$(RM) -r $(CLASSDESTDIR)/oracle/jrockit/jfr
|
||||
|
||||
|
||||
# Copy pre-shipped .jfs files
|
||||
JFR_LIBDIR = $(LIBDIR)/jfr
|
||||
JFR_SRCDIR = $(CLOSED_SHARE_SRC)/lib/jfr
|
||||
|
||||
$(JFR_LIBDIR)/%.jfs: $(JFR_SRCDIR)/%.jfs
|
||||
$(install-file)
|
||||
|
||||
JFS_FILES := $(subst $(JFR_SRCDIR),$(JFR_LIBDIR),$(wildcard $(JFR_SRCDIR)/*.jfs))
|
||||
|
||||
all build : $(JFS_FILES)
|
||||
|
||||
30
jdk/makefiles/com/oracle/security/ucrypto/FILES_c.gmk
Normal file
30
jdk/makefiles/com/oracle/security/ucrypto/FILES_c.gmk
Normal file
@ -0,0 +1,30 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
ifndef OPENJDK
|
||||
FILES_c = \
|
||||
nativeFunc.c \
|
||||
nativeCrypto.c
|
||||
endif
|
||||
270
jdk/makefiles/com/oracle/security/ucrypto/Makefile
Normal file
270
jdk/makefiles/com/oracle/security/ucrypto/Makefile
Normal file
@ -0,0 +1,270 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building ucrypto.jar and its native libraries.
|
||||
#
|
||||
# This file was modified from make/sun/security/pkcs11/Makefile.
|
||||
#
|
||||
#
|
||||
# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Oracle
|
||||
# JDK builds respectively.)
|
||||
#
|
||||
# This Makefile does the "real" build of the Ucrypto provider files.
|
||||
# Since the sources are unavailable for OpenJDK, this Makefile is only
|
||||
# useful for JDK.
|
||||
#
|
||||
#
|
||||
# Main Targets (JDK on Solaris):
|
||||
#
|
||||
# all The usual, ucrypto.jar plus the native libraries.
|
||||
# builds and installs the prebuilt/signed jar.
|
||||
#
|
||||
# clobber/clean Cleans up the temp directory, ucrypto.jar, the
|
||||
# native libraries, and the config file from the
|
||||
# build area
|
||||
#
|
||||
# jar Builds, signs and installs ucrypto.jar
|
||||
# (Can only be done on machines with access to
|
||||
# the signing keystore)
|
||||
#
|
||||
# Other lesser-used Targets (JDK on Solaris):
|
||||
#
|
||||
# build-jar Builds ucrypto.jar (no sign/install)
|
||||
#
|
||||
# sign Builds/signs ucrypto.jar (no install)
|
||||
#
|
||||
# release Builds all targets in preparation
|
||||
# for workspace integration.
|
||||
# (Can only be done on machines with access to
|
||||
# the signing keystore)
|
||||
#
|
||||
# install-prebuilt Installs the pre-built jar files
|
||||
#
|
||||
# NOTE: None of the above target will update the prebuilt provider binary
|
||||
# under the closed workspace. To update it, you must explicitly copy the
|
||||
# binary from either the tmp/signed or lib/ext directory.
|
||||
#
|
||||
# This makefile was written to support parallel target execution.
|
||||
#
|
||||
|
||||
BUILDDIR = ../../../..
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
ifndef OPENJDK
|
||||
ifneq ($(PLATFORM), solaris)
|
||||
all:
|
||||
else
|
||||
PACKAGE = com.oracle.security.ucrypto
|
||||
LIBRARY = j2ucrypto
|
||||
PRODUCT = oracle
|
||||
|
||||
#
|
||||
# The following is for when we need to do postprocessing
|
||||
# (signing/obfuscation) against a read-only build. If the OUTPUTDIR
|
||||
# isn't writable, the build currently crashes out.
|
||||
#
|
||||
ifdef ALT_JCE_BUILD_DIR
|
||||
# =====================================================
|
||||
# Where to place the output, in case we're building from a read-only
|
||||
# build area. (e.g. a release engineering build.)
|
||||
JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
|
||||
IGNORE_WRITABLE_OUTPUTDIR_TEST=true
|
||||
else
|
||||
JCE_BUILD_DIR=${TEMPDIR}
|
||||
endif
|
||||
|
||||
JAVAC_MAX_WARNINGS=false
|
||||
JAVAC_LINT_OPTIONS=-Xlint:all,-deprecation
|
||||
JAVAC_WARNINGS_FATAL=true
|
||||
|
||||
#
|
||||
# C and Java Files
|
||||
#
|
||||
include FILES_c.gmk
|
||||
|
||||
#
|
||||
# Subdirectories of these are automatically included.
|
||||
#
|
||||
AUTO_FILES_JAVA_DIRS = com/oracle/security/ucrypto
|
||||
|
||||
#
|
||||
# Java files that define native methods
|
||||
#
|
||||
FILES_export = \
|
||||
com/oracle/security/ucrypto/UcryptoProvider.java \
|
||||
com/oracle/security/ucrypto/NativeCipher.java \
|
||||
com/oracle/security/ucrypto/NativeDigest.java \
|
||||
com/oracle/security/ucrypto/NativeKey.java \
|
||||
com/oracle/security/ucrypto/NativeRSASignature.java \
|
||||
com/oracle/security/ucrypto/NativeRSACipher.java
|
||||
|
||||
#
|
||||
# Find native code
|
||||
#
|
||||
vpath %.c \
|
||||
$(CLOSED_PLATFORM_SRC)/native/com/oracle/security/ucrypto
|
||||
|
||||
#
|
||||
# Find include files
|
||||
#
|
||||
OTHER_INCLUDES += \
|
||||
-I$(CLOSED_PLATFORM_SRC)/native/com/oracle/security/ucrypto
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
CLASSDESTDIR = $(TEMPDIR)/classes
|
||||
JAVAHFLAGS = -bootclasspath \
|
||||
"$(CLASSDESTDIR)$(CLASSPATH_SEPARATOR)$(CLASSBINDIR)"
|
||||
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
#
|
||||
# Libraries to link
|
||||
#
|
||||
OTHER_LDLIBS = -ldl
|
||||
|
||||
# Default config file
|
||||
UCRYPTO_CFG_SRC = $(CLOSED_SRC)/share/lib/security/ucrypto-solaris.cfg
|
||||
UCRYPTO_CFG_BUILD = $(LIBDIR)/security/ucrypto-solaris.cfg
|
||||
|
||||
#
|
||||
# We use a variety of subdirectories in the $(TEMPDIR) depending on what
|
||||
# part of the build we're doing. Build is initially done in the unsigned
|
||||
# area and when files are signed, they will be placed in the appropriate area.
|
||||
#
|
||||
UNSIGNED_DIR = $(TEMPDIR)/unsigned
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
all: ucrypto-cfg build-jar install-prebuilt
|
||||
$(build-warning)
|
||||
|
||||
ucrypto-cfg: $(UCRYPTO_CFG_BUILD)
|
||||
|
||||
$(UCRYPTO_CFG_BUILD): $(UCRYPTO_CFG_SRC)
|
||||
$(install-file)
|
||||
|
||||
include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Build the unsigned ucrypto.jar file.
|
||||
#
|
||||
|
||||
JAR_DESTFILE = $(EXTDIR)/ucrypto.jar
|
||||
|
||||
#
|
||||
# The ucrypto.jar needs to be in the extension class directory,
|
||||
# therefore none of its classes can appear in $(CLASSBINDIR).
|
||||
# Currently no one is using any of the internals, so these files
|
||||
# should not have been built.
|
||||
#
|
||||
|
||||
#
|
||||
# Since the -C option to jar is used below, each directory entry must be
|
||||
# preceded with the appropriate directory to "cd" into.
|
||||
#
|
||||
JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
|
||||
|
||||
build-jar: $(UNSIGNED_DIR)/ucrypto.jar
|
||||
|
||||
#
|
||||
# Build ucrypto.jar.
|
||||
#
|
||||
$(UNSIGNED_DIR)/ucrypto.jar: build
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cf $@ $(JAR_DIRS) \
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
#
|
||||
# Sign ucrypto.jar
|
||||
#
|
||||
SIGNED_DIR = $(JCE_BUILD_DIR)/signed
|
||||
|
||||
sign: $(SIGNED_DIR)/ucrypto.jar
|
||||
|
||||
ifndef ALT_JCE_BUILD_DIR
|
||||
$(SIGNED_DIR)/ucrypto.jar: $(UNSIGNED_DIR)/ucrypto.jar
|
||||
else
|
||||
#
|
||||
# We have to remove the build dependency, otherwise, we'll try to rebuild it
|
||||
# which we can't do on a read-only filesystem.
|
||||
#
|
||||
$(SIGNED_DIR)/ucrypto.jar:
|
||||
@if [ ! -r $(UNSIGNED_DIR)/ucrypto.jar ] ; then \
|
||||
$(ECHO) "Couldn't find $(UNSIGNED_DIR)/ucrypto.jar"; \
|
||||
exit 1; \
|
||||
fi
|
||||
endif
|
||||
$(call sign-file, $(UNSIGNED_DIR)/ucrypto.jar)
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Create the Release Engineering files. Signed builds, etc.
|
||||
#
|
||||
|
||||
release: $(SIGNED_DIR)/ucrypto.jar
|
||||
$(RM) $(JCE_BUILD_DIR)/release/ucrypto.jar
|
||||
$(MKDIR) -p $(JCE_BUILD_DIR)/release
|
||||
$(CP) $(SIGNED_DIR)/ucrypto.jar $(JCE_BUILD_DIR)/release
|
||||
$(release-warning)
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Install routines.
|
||||
#
|
||||
|
||||
#
|
||||
# Install ucrypto.jar, depending on which type is requested.
|
||||
#
|
||||
jar: $(JAR_DESTFILE)
|
||||
$(release-warning)
|
||||
|
||||
$(JAR_DESTFILE): $(SIGNED_DIR)/ucrypto.jar
|
||||
$(install-file)
|
||||
|
||||
install-prebuilt:
|
||||
@$(ECHO) "\n>>>Installing prebuilt OracleUcrypto provider..."
|
||||
$(RM) $(JAR_DESTFILE)
|
||||
$(CP) $(PREBUILT_DIR)/ucrypto/ucrypto.jar $(JAR_DESTFILE)
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Support routines.
|
||||
#
|
||||
clobber clean::
|
||||
$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
|
||||
$(RM) -r $(UCRYPTO_CFG_BUILD)
|
||||
|
||||
.PHONY: build-jar jar sign release install-prebuilt
|
||||
|
||||
endif #ifneq ($(PLATFORM), solaris)
|
||||
endif #ifndef OPENJDK
|
||||
69
jdk/makefiles/com/oracle/security/ucrypto/mapfile-vers
Normal file
69
jdk/makefiles/com/oracle/security/ucrypto/mapfile-vers
Normal file
@ -0,0 +1,69 @@
|
||||
#
|
||||
# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Define public interface.
|
||||
|
||||
SUNWprivate_1.1 {
|
||||
global:
|
||||
JNI_OnLoad;
|
||||
Java_com_oracle_security_ucrypto_UcryptoProvider_loadLibraries;
|
||||
Java_com_oracle_security_ucrypto_UcryptoProvider_getMechList;
|
||||
Java_com_oracle_security_ucrypto_NativeDigest_nativeInit;
|
||||
Java_com_oracle_security_ucrypto_NativeDigest_nativeUpdate;
|
||||
Java_com_oracle_security_ucrypto_NativeDigest_nativeDigest;
|
||||
Java_com_oracle_security_ucrypto_NativeDigest_nativeClone;
|
||||
Java_com_oracle_security_ucrypto_NativeDigest_nativeFree;
|
||||
Java_com_oracle_security_ucrypto_NativeCipher_nativeInit;
|
||||
Java_com_oracle_security_ucrypto_NativeCipher_nativeUpdate;
|
||||
Java_com_oracle_security_ucrypto_NativeCipher_nativeFinal;
|
||||
Java_com_oracle_security_ucrypto_NativeKey_nativeFree;
|
||||
Java_com_oracle_security_ucrypto_NativeKey_00024RSAPrivateCrt_nativeInit;
|
||||
Java_com_oracle_security_ucrypto_NativeKey_00024RSAPublic_nativeInit;
|
||||
Java_com_oracle_security_ucrypto_NativeRSASignature_nativeInit;
|
||||
Java_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZ_3BII;
|
||||
Java_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZJI;
|
||||
Java_com_oracle_security_ucrypto_NativeRSASignature_nativeFinal;
|
||||
Java_com_oracle_security_ucrypto_NativeRSACipher_nativeAtomic;
|
||||
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeInit;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeUpdate;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeDigest;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeClone;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeDigest_nativeFree;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeCipher_nativeInit;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeCipher_nativeUpdate;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeCipher_nativeFinal;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeKey_nativeFree;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeKey_00024RSAPrivateCrt_nativeInit;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeKey_00024RSAPublic_nativeInit;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeInit;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZ_3BII;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeUpdate__JZJI;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeRSASignature_nativeFinal;
|
||||
JavaCritical_com_oracle_security_ucrypto_NativeRSACipher_nativeAtomic;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
54
jdk/makefiles/com/sun/Makefile
Normal file
54
jdk/makefiles/com/sun/Makefile
Normal file
@ -0,0 +1,54 @@
|
||||
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building com/sun
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
PRODUCT = sun
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
ifndef OPENJDK
|
||||
ORG_EXISTS := $(call DirExists,$(CLOSED_SRC)/share/classes/sun/org,,)
|
||||
ifneq ("$(ORG_EXISTS)", "")
|
||||
SCRIPT_SUBDIR = script
|
||||
endif
|
||||
endif
|
||||
|
||||
# jarsigner is part of JRE
|
||||
SUBDIRS =
|
||||
|
||||
SUBDIRS_management =
|
||||
SUBDIRS_enterprise = crypto/provider
|
||||
SUBDIRS_misc =
|
||||
|
||||
# Omit mirror since it's built with the apt tool.
|
||||
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
275
jdk/makefiles/com/sun/crypto/provider/Makefile
Normal file
275
jdk/makefiles/com/sun/crypto/provider/Makefile
Normal file
@ -0,0 +1,275 @@
|
||||
#
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building sunjce_provider.jar.
|
||||
#
|
||||
# This file was derived from make/javax/crypto/Makefile.
|
||||
#
|
||||
|
||||
#
|
||||
# (The terms "OpenJDK" and "JDK" below refer to OpenJDK and Sun JDK builds
|
||||
# respectively.)
|
||||
#
|
||||
# JCE builds are very different between OpenJDK and JDK. The OpenJDK JCE
|
||||
# jar files do not require signing, but those for JDK do. If an unsigned
|
||||
# jar file is installed into JDK, things will break when the crypto
|
||||
# routines are called.
|
||||
#
|
||||
# This Makefile does the "real" build of the JCE files. There are some
|
||||
# javac options currently specific to JCE, so we recompile now to make
|
||||
# sure any implicit compilations didn't use any incorrect flags.
|
||||
#
|
||||
# For OpenJDK, the jar files built here are installed directly into the
|
||||
# OpenJDK.
|
||||
#
|
||||
# For JDK, the binaries use pre-built/pre-signed binary files stored in
|
||||
# the closed workspace that are not shipped in the OpenJDK workspaces.
|
||||
# We still build the JDK files here to verify the files compile, and in
|
||||
# preparation for possible signing. Developers working on JCE in JDK
|
||||
# must sign the JCE files before testing. The JCE signing key is kept
|
||||
# separate from the JDK workspace to prevent its disclosure.
|
||||
#
|
||||
# SPECIAL NOTE TO JCE/JDK developers: The source files must eventually
|
||||
# be built and signed, and the resulting jar files MUST BE CHECKED INTO
|
||||
# THE CLOSED PART OF THE WORKSPACE*. This separate step *MUST NOT BE
|
||||
# FORGOTTEN*, otherwise a bug fixed in the source code will not be
|
||||
# reflected in the shipped binaries. The "release" target should be
|
||||
# used to generate the required files.
|
||||
#
|
||||
# There are a number of targets to help both JDK/OpenJDK developers.
|
||||
#
|
||||
# Main Targets (JDK/OPENJDK):
|
||||
#
|
||||
# all/clobber/clean The usual.
|
||||
# If OpenJDK, installs sunjce_provider.jar.
|
||||
# If JDK, installs prebuilt
|
||||
# sunjce_provider.jar.
|
||||
#
|
||||
# jar Builds/installs sunjce_provider.jar
|
||||
# If OpenJDK, does not sign.
|
||||
# If JDK, tries to sign.
|
||||
#
|
||||
# Other lesser-used Targets (JDK/OPENJDK):
|
||||
#
|
||||
# build-jar Builds sunjce_provider.jar
|
||||
# (does not sign/install)
|
||||
#
|
||||
# install-jar Alias for "jar" above.
|
||||
#
|
||||
# Other targets (JDK only):
|
||||
#
|
||||
# sign Alias for sign-jar
|
||||
# sign-jar Builds/signs sunjce_provider.jar (no install)
|
||||
#
|
||||
# release Builds all targets in preparation
|
||||
# for workspace integration.
|
||||
#
|
||||
# install-prebuilt Installs the pre-built jar files
|
||||
#
|
||||
# This makefile was written to support parallel target execution.
|
||||
#
|
||||
|
||||
BUILDDIR = ../../../..
|
||||
PACKAGE = com.sun.crypto.provider
|
||||
PRODUCT = sun
|
||||
|
||||
#
|
||||
# The following is for when we need to do postprocessing
|
||||
# (signing) against a read-only build. If the OUTPUTDIR
|
||||
# isn't writable, the build currently crashes out.
|
||||
#
|
||||
ifndef OPENJDK
|
||||
ifdef ALT_JCE_BUILD_DIR
|
||||
# =====================================================
|
||||
# Where to place the output, in case we're building from a read-only
|
||||
# build area. (e.g. a release engineering build.)
|
||||
JCE_BUILD_DIR=${ALT_JCE_BUILD_DIR}
|
||||
IGNORE_WRITABLE_OUTPUTDIR_TEST=true
|
||||
else
|
||||
JCE_BUILD_DIR=${TEMPDIR}
|
||||
endif
|
||||
endif
|
||||
|
||||
JAVAC_MAX_WARNINGS = false
|
||||
JAVAC_LINT_OPTIONS = -Xlint:all,-deprecation
|
||||
JAVAC_WARNINGS_FATAL = true
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Location for the newly built classfiles.
|
||||
#
|
||||
CLASSDESTDIR = $(TEMPDIR)/classes
|
||||
|
||||
#
|
||||
# Subdirectories of these are automatically included.
|
||||
#
|
||||
AUTO_FILES_JAVA_DIRS = \
|
||||
com/sun/crypto/provider
|
||||
|
||||
include $(BUILDDIR)/common/Classes.gmk
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
#
|
||||
# Some licensees do not get the security sources, but we still need to
|
||||
# be able to build "all" for them. Check here to see if the sources were
|
||||
# available. If not, then we don't need to continue this rule.
|
||||
#
|
||||
|
||||
ifdef OPENJDK
|
||||
all: build-jar install-jar
|
||||
else # OPENJDK
|
||||
ifeq ($(strip $(FILES_java)),)
|
||||
all: install-prebuilt
|
||||
$(no-source-warning)
|
||||
else # FILES_java available
|
||||
all: build-jar install-prebuilt
|
||||
$(build-warning)
|
||||
endif # $(FILES_java) available
|
||||
endif # OPENJDK
|
||||
|
||||
#
|
||||
# We use a variety of subdirectories in the $(TEMPDIR) depending on what
|
||||
# part of the build we're doing. Both OPENJDK/JDK builds are initially
|
||||
# done in the unsigned area. When files are signed in JDK, they will be
|
||||
# placed in the appropriate areas.
|
||||
#
|
||||
UNSIGNED_DIR = $(TEMPDIR)/unsigned
|
||||
|
||||
include $(BUILDDIR)/javax/crypto/Defs-jce.gmk
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Build the unsigned sunjce_provider.jar file.
|
||||
#
|
||||
|
||||
JAR_DESTFILE = $(EXTDIR)/sunjce_provider.jar
|
||||
|
||||
#
|
||||
# The sunjce_provider.jar needs to be in the extension class directory,
|
||||
# therefore none of its classes should appear in $(CLASSBINDIR).
|
||||
# Currently no one is using any of the SunJCE internals, so these files
|
||||
# should not have been built.
|
||||
#
|
||||
|
||||
#
|
||||
# Since the -C option to jar is used below, each directory entry must be
|
||||
# preceded with the appropriate directory to "cd" into.
|
||||
#
|
||||
JAR_DIRS = $(patsubst %, -C $(CLASSDESTDIR) %, $(AUTO_FILES_JAVA_DIRS))
|
||||
|
||||
build-jar: $(UNSIGNED_DIR)/sunjce_provider.jar
|
||||
|
||||
#
|
||||
# Build sunjce_provider.jar.
|
||||
#
|
||||
$(UNSIGNED_DIR)/sunjce_provider.jar: build $(JCE_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ $(JAR_DIRS) \
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
|
||||
ifndef OPENJDK
|
||||
# =====================================================
|
||||
# Sign the provider jar file. Not needed for OpenJDK.
|
||||
#
|
||||
|
||||
SIGNED_DIR = $(JCE_BUILD_DIR)/signed
|
||||
|
||||
sign: sign-jar
|
||||
|
||||
sign-jar: $(SIGNED_DIR)/sunjce_provider.jar
|
||||
|
||||
ifndef ALT_JCE_BUILD_DIR
|
||||
$(SIGNED_DIR)/sunjce_provider.jar: $(UNSIGNED_DIR)/sunjce_provider.jar
|
||||
else
|
||||
#
|
||||
# We have to remove the build dependency, otherwise, we'll try to rebuild it
|
||||
# which we can't do on a read-only filesystem.
|
||||
#
|
||||
$(SIGNED_DIR)/sunjce_provider.jar:
|
||||
@if [ ! -r $(UNSIGNED_DIR)/sunjce_provider.jar ] ; then \
|
||||
$(ECHO) "Couldn't find $(UNSIGNED_DIR)/sunjce_provider.jar"; \
|
||||
exit 1; \
|
||||
fi
|
||||
endif
|
||||
$(call sign-file, $(UNSIGNED_DIR)/sunjce_provider.jar)
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Create the Release Engineering files. Signed builds, etc.
|
||||
#
|
||||
|
||||
release: $(SIGNED_DIR)/sunjce_provider.jar
|
||||
$(RM) $(JCE_BUILD_DIR)/release/sunjce_provider.jar
|
||||
$(MKDIR) -p $(JCE_BUILD_DIR)/release
|
||||
$(CP) $(SIGNED_DIR)/sunjce_provider.jar $(JCE_BUILD_DIR)/release
|
||||
$(release-warning)
|
||||
|
||||
endif # OPENJDK
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Install routines.
|
||||
#
|
||||
|
||||
#
|
||||
# Install sunjce_provider.jar, depending on which type is requested.
|
||||
#
|
||||
install-jar jar: $(JAR_DESTFILE)
|
||||
ifndef OPENJDK
|
||||
$(release-warning)
|
||||
endif
|
||||
|
||||
ifdef OPENJDK
|
||||
$(JAR_DESTFILE): $(UNSIGNED_DIR)/sunjce_provider.jar
|
||||
else
|
||||
$(JAR_DESTFILE): $(SIGNED_DIR)/sunjce_provider.jar
|
||||
endif
|
||||
$(install-file)
|
||||
|
||||
ifndef OPENJDK
|
||||
install-prebuilt:
|
||||
@$(ECHO) "\n>>>Installing prebuilt SunJCE provider..."
|
||||
$(RM) $(JAR_DESTFILE)
|
||||
$(CP) $(PREBUILT_DIR)/jce/sunjce_provider.jar $(JAR_DESTFILE)
|
||||
endif
|
||||
|
||||
|
||||
# =====================================================
|
||||
# Support routines.
|
||||
#
|
||||
|
||||
clobber clean::
|
||||
$(RM) -r $(JAR_DESTFILE) $(TEMPDIR) $(JCE_BUILD_DIR)
|
||||
|
||||
.PHONY: build-jar jar install-jar
|
||||
ifndef OPENJDK
|
||||
.PHONY: sign sign-jar release install-prebuilt
|
||||
endif
|
||||
67
jdk/makefiles/common/Classes.gmk
Normal file
67
jdk/makefiles/common/Classes.gmk
Normal file
@ -0,0 +1,67 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
include $(JDK_TOPDIR)/makefiles/common/Rules.gmk
|
||||
|
||||
#
|
||||
# Say you built classes into $(ALT_CLASSBINDIR) and then at the end of
|
||||
# the build you might want to copy them over to $(ALT_CLASSDESTDIR);
|
||||
# this rule takes care of that. No one should really set these
|
||||
# variables except the bootstrap/recompile stage of the java compiler.
|
||||
#
|
||||
ifdef ALT_CLASSBINDIR
|
||||
|
||||
# By default post-processing is copying. Suppose you want to build
|
||||
# a jar file then set ALT_CLASSES_DISPOSITION to '../../dest/nameof.jar'
|
||||
# before including this file.
|
||||
ifndef ALT_CLASSES_DISPOSITION
|
||||
ALT_CLASSES_DISPOSITION = copy-classes
|
||||
endif
|
||||
|
||||
build : $(ALT_CLASSES_DISPOSITION)
|
||||
|
||||
copy-classes:
|
||||
ifneq ($(ALT_CLASSBINDIR), $(ALT_CLASSDESTDIR))
|
||||
@if [ -s $(TEMPDIR)/.classes.list ]; then \
|
||||
mkdir -p $(ALT_CLASSDESTDIR); \
|
||||
echo "Copying $(ALT_CLASSBINDIR)..."; \
|
||||
echo "(cd $(ALT_CLASSBINDIR); tar cf - .) | \
|
||||
(cd $(ALT_CLASSDESTDIR); tar xf -)"; \
|
||||
(cd $(ALT_CLASSBINDIR); tar cf - .) | \
|
||||
(cd $(ALT_CLASSDESTDIR); tar xf -); \
|
||||
fi
|
||||
else # ALT_CLASSBINDIR
|
||||
@if [ -s $(TEMPDIR)/.classes.list ]; then \
|
||||
echo "Copy source and destination are the same: $(ALT_CLASSBINDIR) -- Copy skipped..."; \
|
||||
fi
|
||||
endif # ALT_CLASSBINDIR
|
||||
|
||||
.PHONY: copy-classes
|
||||
endif # ALT_CLASSBINDIR
|
||||
|
||||
100
jdk/makefiles/common/Cscope.gmk
Normal file
100
jdk/makefiles/common/Cscope.gmk
Normal file
@ -0,0 +1,100 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# The cscope.out file is made in the current directory and spans the entire
|
||||
# source tree.
|
||||
#
|
||||
# Things to note:
|
||||
# 1. We use relative names for cscope.
|
||||
# 2. We *don't* remove the old cscope.out file, because cscope is smart
|
||||
# enough to only build what has changed. It can be confused, however,
|
||||
# if files are renamed or removed, so it may be necessary to manually
|
||||
# remove cscope.out if a lot of reorganization has occurred.
|
||||
#
|
||||
CSDIRS = $(JDK_TOPDIR)/src $(JDK_TOPDIR)/build
|
||||
CSINCS = $(CSDIRS:%=-I%)
|
||||
|
||||
#
|
||||
# Set CSFLAGS env variable to -b when using fast cscope to build the fast
|
||||
# (but large) cscope data bases.
|
||||
#
|
||||
CSCOPE = cscope-fast
|
||||
ifeq ($(CSCOPE), cscope-fast)
|
||||
CSFLAGS = -b
|
||||
endif
|
||||
|
||||
#
|
||||
# Adding .java files pushes the file count of a full workspace up about 2500
|
||||
# files, which slows database lookup. Thus allow these files to be added from
|
||||
# the environment (CSCLASSES=yes).
|
||||
#
|
||||
ifdef CSCLASSES
|
||||
ADDCLASSES= -o -name '*.java'
|
||||
endif
|
||||
|
||||
#
|
||||
# Adding CClassHeaders also pushes the file count of a full workspace up about
|
||||
# 200 files (these files also don't exist in a new workspace, and thus will
|
||||
# cause the recreation of the database as they get created, which might seem
|
||||
# A little confusing). Thus allow these files to be added from the environment
|
||||
# (CSHEADERS=yes).
|
||||
#
|
||||
ifndef CSHEADERS
|
||||
RMCCHEADERS= -o -name CClassHeaders
|
||||
endif
|
||||
|
||||
|
||||
.PRECIOUS: cscope.out
|
||||
|
||||
cscope.out: cscope.files FRC
|
||||
$(CSCOPE) $(CSFLAGS)
|
||||
|
||||
#
|
||||
# What files should we include? A simple rule might be just those files under
|
||||
# SCM control, however this would miss files we create like the opcodes and
|
||||
# CClassHeaders. The following attempts to find everything that is *useful*.
|
||||
# (demo directories contain many .java files
|
||||
# that probably aren't useful for development, and the pkgarchive may contain
|
||||
# duplicates of files within the source hierarchy). The ordering of the .raw
|
||||
# file is an attempt to make cscope display the most relevant files first.
|
||||
#
|
||||
cscope.files: FRC
|
||||
@-$(RM) cscope.files cscope.files.raw
|
||||
echo "$(CSINCS)" > cscope.files
|
||||
-find $(CSDIRS) $(SCM_DIRS_prune) -o -type d \( -name '.del-*' -o \
|
||||
-name '*demo' -o -name pkgarchive $(RMCCHEADERS) \) -prune -o \
|
||||
-type f \( -name '*.[Ccshlxy]' -o -name '*.il' -o -name '*.cc' -o \
|
||||
-name 'Makefile*' -o -name GNUmakefile -o -name '*.gmk' -o \
|
||||
-name '*.cpp' $(ADDCLASSES) \) -print > cscope.files.raw
|
||||
-egrep -v "\.java|\/build\/" cscope.files.raw >> cscope.files
|
||||
-fgrep ".java" cscope.files.raw >> cscope.files
|
||||
-fgrep "/build/" cscope.files.raw >> cscope.files
|
||||
@-$(RM) cscope.files.raw
|
||||
|
||||
cscope.clean:
|
||||
-$(RM) cscope.files cscope.files.raw cscope.out
|
||||
|
||||
FRC:
|
||||
76
jdk/makefiles/common/Defs-embedded.gmk
Normal file
76
jdk/makefiles/common/Defs-embedded.gmk
Normal file
@ -0,0 +1,76 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Variable definitions for SE Embedded builds. This file should
|
||||
# not contain rules.
|
||||
#
|
||||
ifdef JAVASE_EMBEDDED
|
||||
|
||||
# Compress jar files
|
||||
COMPRESS_JARS = true
|
||||
|
||||
# Don't mmap zip files
|
||||
LIBZIP_CAN_USE_MMAP = false
|
||||
|
||||
# Disable ALSA version check
|
||||
REQUIRED_ALSA_VERSION =
|
||||
|
||||
# Compilation settings
|
||||
OTHER_CPPFLAGS += -DJAVASE_EMBEDDED
|
||||
|
||||
# Product naming
|
||||
PRODUCT_SUFFIX = SE Runtime Environment for Embedded
|
||||
RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX)
|
||||
|
||||
# Reduced JRE locations
|
||||
JRE_REDUCED_HEADLESS_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2re-reduced-headless-image
|
||||
JRE_REDUCED_IMAGE_DIR = $(ABS_OUTPUTDIR)/j2re-reduced-image
|
||||
|
||||
# Override on linux to further reduce binary/lib sizes in product build
|
||||
ifeq ($(PLATFORM), linux)
|
||||
ifeq ($(VARIANT), OPT)
|
||||
ifneq ($(NO_STRIP), true)
|
||||
ifneq ($(DEBUG_BINARIES), true)
|
||||
POST_STRIP_PROCESS = $(STRIP) --strip-unneeded
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# NIO Platform specific source file location
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
NIO_PLATFORM_CLASSES_ROOT_DIR = $(CLOSED_PLATFORM_SRC)/classes/
|
||||
endif
|
||||
|
||||
# For ARM sflt we need to link to a library with improved FP accuracy
|
||||
# and it must be linked after fdlibm - this places it at the end after libc
|
||||
# -z muldefs avoids linker errors for duplicate symbols.
|
||||
ifeq ($(CROSS_COMPILE_ARCH), arm)
|
||||
EXTRA_LIBS += $(EXT_LIBS_PATH)/sflt_glibc_jdk.a -Xlinker -z -Xlinker muldefs
|
||||
endif
|
||||
|
||||
endif # JAVASE_EMBEDDED
|
||||
|
||||
430
jdk/makefiles/common/Defs-linux.gmk
Normal file
430
jdk/makefiles/common/Defs-linux.gmk
Normal file
@ -0,0 +1,430 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile to specify compiler flags for programs and libraries
|
||||
# targeted to Linux. Should not contain any rules.
|
||||
#
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
# Warning: the following variables are overriden by Defs.gmk. Set
|
||||
# values will be silently ignored:
|
||||
# CFLAGS (set $(OTHER_CFLAGS) instead)
|
||||
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
|
||||
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
|
||||
# LDFLAGS (set $(OTHER_LDFAGS) instead)
|
||||
# LDLIBS (set $(EXTRA_LIBS) instead)
|
||||
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
|
||||
|
||||
# Get shared JDK settings
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
|
||||
|
||||
# Part of INCREMENTAL_BUILD mechanism.
|
||||
# Compiler emits things like: path/file.o: file.h
|
||||
# We want something like: relative_path/file.o relative_path/file.d: file.h
|
||||
CC_DEPEND = -MM
|
||||
CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
|
||||
|
||||
ifndef PLATFORM_SRC
|
||||
PLATFORM_SRC = $(BUILDDIR)/../src/solaris
|
||||
endif # PLATFORM_SRC
|
||||
|
||||
# Platform specific closed sources
|
||||
ifndef OPENJDK
|
||||
ifndef CLOSED_PLATFORM_SRC
|
||||
CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
|
||||
endif
|
||||
endif
|
||||
|
||||
# platform specific include files
|
||||
PLATFORM_INCLUDE_NAME = $(PLATFORM)
|
||||
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
|
||||
|
||||
# suffix used for make dependencies files.
|
||||
DEPEND_SUFFIX = d
|
||||
# The suffix applied to the library name for FDLIBM
|
||||
FDDLIBM_SUFFIX = a
|
||||
# The suffix applied to scripts (.bat for windows, nothing for unix)
|
||||
SCRIPT_SUFFIX =
|
||||
# CC compiler object code output directive flag value
|
||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||
|
||||
# Default OBJCOPY comes from GNU Binutils on Linux:
|
||||
DEF_OBJCOPY=/usr/bin/objcopy
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
# don't try to generate .debuginfo files when cross compiling
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: cross compiling for ARCH $(CROSS_COMPILE_ARCH)," \
|
||||
"skipping .debuginfo generation.")
|
||||
OBJCOPY=
|
||||
else
|
||||
OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
|
||||
ifneq ($(ALT_OBJCOPY),)
|
||||
_JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
|
||||
# disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
|
||||
OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
|
||||
# The setting of OBJCOPY above enables the JDK build to import
|
||||
# .debuginfo files from the HotSpot build. However, adding FDS
|
||||
# support to the JDK build will occur in phases so a different
|
||||
# make variable is used to indicate that a particular library
|
||||
# supports FDS.
|
||||
|
||||
ifeq ($(OBJCOPY),)
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
|
||||
else
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
|
||||
|
||||
# Library stripping policies for .debuginfo configs:
|
||||
# all_strip - strips everything from the library
|
||||
# min_strip - strips most stuff from the library; leaves minimum symbols
|
||||
# no_strip - does not strip the library at all
|
||||
#
|
||||
# Oracle security policy requires "all_strip". A waiver was granted on
|
||||
# 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
|
||||
#
|
||||
DEF_STRIP_POLICY="min_strip"
|
||||
ifeq ($(ALT_STRIP_POLICY),)
|
||||
STRIP_POLICY=$(DEF_STRIP_POLICY)
|
||||
else
|
||||
STRIP_POLICY=$(ALT_STRIP_POLICY)
|
||||
endif
|
||||
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Default optimization
|
||||
#
|
||||
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O3
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# For all platforms, do not omit the frame pointer register usage.
|
||||
# We need this frame pointer to make it easy to walk the stacks.
|
||||
# This should be the default on X86, but ia64 and amd64 may not have this
|
||||
# as the default.
|
||||
CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
|
||||
CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
|
||||
CFLAGS_REQUIRED_ia64 += -fno-omit-frame-pointer -D_LITTLE_ENDIAN
|
||||
CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
|
||||
LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
|
||||
CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
|
||||
LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
|
||||
CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
|
||||
CFLAGS_REQUIRED_ppc += -fsigned-char -D_BIG_ENDIAN
|
||||
ifeq ($(ZERO_BUILD), true)
|
||||
CFLAGS_REQUIRED = $(ZERO_ARCHFLAG)
|
||||
ifeq ($(ZERO_ENDIANNESS), little)
|
||||
CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
|
||||
endif
|
||||
LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
|
||||
else
|
||||
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
|
||||
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
|
||||
endif
|
||||
|
||||
# If this is a --hash-style=gnu system, use --hash-style=both
|
||||
# The gnu .hash section won't work on some Linux systems like SuSE 10.
|
||||
_HAS_HASH_STYLE_GNU:=$(shell $(CC) -dumpspecs | $(GREP) -- '--hash-style=gnu')
|
||||
ifneq ($(_HAS_HASH_STYLE_GNU),)
|
||||
LDFLAGS_HASH_STYLE = -Wl,--hash-style=both
|
||||
endif
|
||||
LDFLAGS_COMMON += $(LDFLAGS_HASH_STYLE)
|
||||
|
||||
#
|
||||
# Selection of warning messages
|
||||
#
|
||||
GCC_INHIBIT = -Wno-unused -Wno-parentheses
|
||||
GCC_STYLE =
|
||||
GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
|
||||
|
||||
#
|
||||
# Treat compiler warnings as errors, if warnings not allowed
|
||||
#
|
||||
ifeq ($(COMPILER_WARNINGS_FATAL),true)
|
||||
GCC_WARNINGS += -Werror
|
||||
endif
|
||||
|
||||
#
|
||||
# Misc compiler options
|
||||
#
|
||||
ifneq ($(ARCH),ppc)
|
||||
CFLAGS_COMMON = -fno-strict-aliasing
|
||||
endif
|
||||
PIC_CODE_LARGE = -fPIC
|
||||
PIC_CODE_SMALL = -fpic
|
||||
GLOBAL_KPIC = $(PIC_CODE_LARGE)
|
||||
CFLAGS_COMMON += $(GLOBAL_KPIC) $(GCC_WARNINGS)
|
||||
ifeq ($(ARCH), amd64)
|
||||
CFLAGS_COMMON += -pipe
|
||||
endif
|
||||
|
||||
# Linux 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
|
||||
DEBUG_FLAG = -g
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
DEBUG_FLAG = -g1
|
||||
endif
|
||||
endif
|
||||
|
||||
# DEBUG_BINARIES overrides everything, use full -g debug information
|
||||
ifeq ($(DEBUG_BINARIES), true)
|
||||
DEBUG_FLAG = -g
|
||||
CFLAGS_REQUIRED += $(DEBUG_FLAG)
|
||||
endif
|
||||
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
CFLAGS_DBG = $(DEBUG_FLAG)
|
||||
CFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
|
||||
CXXFLAGS_OPT = $(CC_OPT)
|
||||
CXXFLAGS_DBG = $(DEBUG_FLAG)
|
||||
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
|
||||
CXXFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
|
||||
endif
|
||||
|
||||
CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
|
||||
|
||||
# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
|
||||
ifneq ($(ARCH),alpha)
|
||||
CPP_ARCH_FLAGS += -D$(ARCH)
|
||||
else
|
||||
CPP_ARCH_FLAGS += -D_$(ARCH)_
|
||||
endif
|
||||
|
||||
CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -DLINUX $(VERSION_DEFINES) \
|
||||
-D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
|
||||
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
CPPFLAGS_COMMON += -D_LP64=1
|
||||
endif
|
||||
|
||||
CPPFLAGS_OPT = -DNDEBUG
|
||||
CPPFLAGS_DBG = -DDEBUG
|
||||
ifneq ($(PRODUCT), java)
|
||||
CPPFLAGS_DBG += -DLOGGING
|
||||
endif
|
||||
|
||||
ifdef LIBRARY
|
||||
# Libraries need to locate other libraries at runtime, and you can tell
|
||||
# a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
|
||||
# buried inside the .so. The $ORIGIN says to look relative to where
|
||||
# the library itself is and it can be followed with relative paths from
|
||||
# that. By default we always look in $ORIGIN, optionally we add relative
|
||||
# paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
|
||||
# On Linux we add a flag -z origin, not sure if this is necessary, but
|
||||
# doesn't seem to hurt.
|
||||
# The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
|
||||
# Try: 'readelf -d lib*.so' to see these settings in a library.
|
||||
#
|
||||
Z_ORIGIN_FLAG/sparc = -Xlinker -z -Xlinker origin
|
||||
Z_ORIGIN_FLAG/i586 = -Xlinker -z -Xlinker origin
|
||||
Z_ORIGIN_FLAG/amd64 = -Xlinker -z -Xlinker origin
|
||||
Z_ORIGIN_FLAG/ia64 = -Xlinker -z -Xlinker origin
|
||||
Z_ORIGIN_FLAG/arm =
|
||||
Z_ORIGIN_FLAG/ppc =
|
||||
Z_ORIGIN_FLAG/zero = -Xlinker -z -Xlinker origin
|
||||
|
||||
LDFLAG_Z_ORIGIN = $(Z_ORIGIN_FLAG/$(ARCH_FAMILY))
|
||||
|
||||
LDFLAGS_COMMON += $(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN
|
||||
LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=$(LDFLAG_Z_ORIGIN) -Xlinker -rpath -Xlinker \$$ORIGIN/%)
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_LIBS += -lc
|
||||
|
||||
LDFLAGS_DEFS_OPTION = -Xlinker -z -Xlinker defs
|
||||
#LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION)
|
||||
|
||||
#
|
||||
# -L paths for finding and -ljava
|
||||
#
|
||||
LDFLAGS_OPT = -Xlinker -O1
|
||||
LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
|
||||
LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
|
||||
|
||||
#
|
||||
# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
|
||||
# statically link libgcc but will print a warning with the flag. We don't
|
||||
# want the warning, so check gcc version first.
|
||||
#
|
||||
ifeq ($(CC_MAJORVER),3)
|
||||
OTHER_LDFLAGS += -static-libgcc
|
||||
endif
|
||||
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
# (See Rules.gmk) The gcc 5 compiler might have an option for this?
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
|
||||
#
|
||||
# Post Processing of libraries/executables
|
||||
#
|
||||
ifeq ($(VARIANT), OPT)
|
||||
ifneq ($(NO_STRIP), true)
|
||||
ifneq ($(DEBUG_BINARIES), true)
|
||||
# Debug 'strip -g' leaves local function Elf symbols (better stack
|
||||
# traces)
|
||||
POST_STRIP_PROCESS = $(STRIP) -g
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
|
||||
#
|
||||
LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
|
||||
|
||||
#
|
||||
# Support for Quantify.
|
||||
#
|
||||
ifdef QUANTIFY
|
||||
QUANTIFY_CMD = quantify
|
||||
QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
|
||||
LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
|
||||
endif
|
||||
|
||||
#
|
||||
# Path and option to link against the VM, if you have to. Note that
|
||||
# there are libraries that link against only -ljava, but they do get
|
||||
# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
|
||||
# the library itself should not.
|
||||
#
|
||||
VM_NAME = server
|
||||
# First try to link against server, if that does not exist link against client.
|
||||
JVMLIB = -L$(LIBDIR)/$(LIBARCH)/server -L$(LIBDIR)/$(LIBARCH)/client -ljvm
|
||||
JAVALIB = -ljava $(JVMLIB)
|
||||
|
||||
#
|
||||
# We want to privatize JVM symbols on Solaris. This is so the user can
|
||||
# write a function called FindClass and this should not override the
|
||||
# FindClass that is inside the JVM. At this point in time we are not
|
||||
# concerned with other JNI libraries because we hope that there will
|
||||
# not be as many clashes there.
|
||||
#
|
||||
PRIVATIZE_JVM_SYMBOLS = false
|
||||
|
||||
USE_PTHREADS = true
|
||||
override ALT_CODESET_KEY = _NL_CTYPE_CODESET_NAME
|
||||
override AWT_RUNPATH =
|
||||
override HAVE_ALTZONE = false
|
||||
override HAVE_FILIOH = false
|
||||
override HAVE_GETHRTIME = false
|
||||
override HAVE_GETHRVTIME = false
|
||||
override HAVE_SIGIGNORE = true
|
||||
override LEX_LIBRARY = -lfl
|
||||
ifeq ($(STATIC_CXX),true)
|
||||
override LIBCXX = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
|
||||
else
|
||||
override LIBCXX = -lstdc++
|
||||
endif
|
||||
override LIBPOSIX4 =
|
||||
override LIBSOCKET =
|
||||
override LIBNSL =
|
||||
override LIBSCF =
|
||||
override LIBTHREAD =
|
||||
override LIBDL = -ldl
|
||||
override MOOT_PRIORITIES = true
|
||||
override NO_INTERRUPTIBLE_IO = true
|
||||
ifeq ($(ARCH), amd64)
|
||||
override OPENWIN_LIB = $(OPENWIN_HOME)/lib64
|
||||
else
|
||||
override OPENWIN_LIB = $(OPENWIN_HOME)/lib
|
||||
endif
|
||||
override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER
|
||||
override SUN_CMM_SUBDIR =
|
||||
override THREADS_FLAG = native
|
||||
override USE_GNU_M4 = true
|
||||
override USING_GNU_TAR = true
|
||||
override WRITE_LIBVERSION = false
|
||||
|
||||
# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
|
||||
# resulting resolved absolute name of the executable in the environment
|
||||
# variable EXECNAME. That executable name is then used that to locate the
|
||||
# installation area.
|
||||
override USE_EXECNAME = true
|
||||
|
||||
# If your platform has DPS, it will have Type1 fonts too, in which case
|
||||
# it is best to enable DPS support until such time as 2D's rasteriser
|
||||
# can fully handle Type1 fonts in all cases. Default is "yes".
|
||||
# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
|
||||
# DPS (Displayable PostScript) is available on Solaris machines
|
||||
HAVE_DPS = no
|
||||
|
||||
#
|
||||
# Japanese manpages
|
||||
#
|
||||
JA_SOURCE_ENCODING = eucJP
|
||||
JA_TARGET_ENCODINGS = UTF-8
|
||||
|
||||
# Settings for the JDI - Serviceability Agent binding.
|
||||
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
||||
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
||||
SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
|
||||
|
||||
# The JDI - Serviceability Agent binding is not currently supported
|
||||
# on Linux-ia64.
|
||||
ifeq ($(ARCH), ia64)
|
||||
INCLUDE_SA = false
|
||||
else
|
||||
INCLUDE_SA = true
|
||||
endif
|
||||
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
# X11 headers are not under /usr/include
|
||||
OTHER_CFLAGS += -I$(OPENWIN_HOME)/include
|
||||
OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include
|
||||
OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
|
||||
endif
|
||||
402
jdk/makefiles/common/Defs-macosx.gmk
Normal file
402
jdk/makefiles/common/Defs-macosx.gmk
Normal file
@ -0,0 +1,402 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile to specify compiler flags for programs and libraries
|
||||
# targeted to MACOSX. Should not contain any rules.
|
||||
#
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
# Warning: the following variables are overriden by Defs.gmk. Set
|
||||
# values will be silently ignored:
|
||||
# CFLAGS (set $(OTHER_CFLAGS) instead)
|
||||
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
|
||||
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
|
||||
# LDFLAGS (set $(OTHER_LDFAGS) instead)
|
||||
# LDLIBS (set $(EXTRA_LIBS) instead)
|
||||
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
|
||||
|
||||
# Get shared JDK settings
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
|
||||
|
||||
# Part of INCREMENTAL_BUILD mechanism.
|
||||
# Compiler emits things like: path/file.o: file.h
|
||||
# We want something like: relative_path/file.o relative_path/file.d: file.h
|
||||
CC_DEPEND = -MM
|
||||
CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g'
|
||||
|
||||
ifndef PLATFORM_SRC
|
||||
PLATFORM_SRC = $(BUILDDIR)/../src/solaris
|
||||
endif # PLATFORM_SRC
|
||||
|
||||
PLATFORM_SRC_MACOS = $(BUILDDIR)/../src/macosx
|
||||
|
||||
# BSD build pulls its platform sources from the solaris tree.
|
||||
JAVA_SRCDIR_LIST = src/$(PLATFORM) src/solaris src/share
|
||||
NATIVE_SRCDIR_LIST = src/$(PLATFORM) src/solaris src/share
|
||||
|
||||
# Platform specific closed sources
|
||||
ifndef OPENJDK
|
||||
ifndef CLOSED_PLATFORM_SRC
|
||||
CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
|
||||
endif
|
||||
endif
|
||||
|
||||
# platform specific include files
|
||||
PLATFORM_INCLUDE_NAME = $(OS_NAME)
|
||||
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
|
||||
|
||||
# suffix used for make dependencies files.
|
||||
DEPEND_SUFFIX = d
|
||||
# The suffix applied to the library name for FDLIBM
|
||||
FDDLIBM_SUFFIX = a
|
||||
# The suffix applied to scripts (.bat for windows, nothing for unix)
|
||||
SCRIPT_SUFFIX =
|
||||
# CC compiler object code output directive flag value
|
||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||
CC_PROGRAM_OUTPUT_FLAG = -o #trailing blank required!
|
||||
|
||||
#
|
||||
# Default optimization
|
||||
#
|
||||
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
|
||||
# For macosx use -Os by default, unless -O3 can be proved to be worth the cost, as per policy
|
||||
# <http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port+Compilers>
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -Os
|
||||
CC_OPT/HIGHER = -Os
|
||||
CC_OPT/HIGHEST = -Os
|
||||
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# For all platforms, do not omit the frame pointer register usage.
|
||||
# We need this frame pointer to make it easy to walk the stacks.
|
||||
# This should be the default on X86, but ia64 and amd64 may not have this
|
||||
# as the default.
|
||||
CFLAGS_REQUIRED_amd64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
|
||||
LDFLAGS_COMMON_amd64 += -m64
|
||||
CFLAGS_REQUIRED_i586 += -m32 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
|
||||
LDFLAGS_COMMON_i586 += -m32
|
||||
CFLAGS_REQUIRED_ia64 += -m64 -fno-omit-frame-pointer -D_LITTLE_ENDIAN
|
||||
CFLAGS_REQUIRED_sparcv9 += -m64 -mcpu=v9
|
||||
LDFLAGS_COMMON_sparcv9 += -m64 -mcpu=v9
|
||||
CFLAGS_REQUIRED_sparc += -m32 -mcpu=v9
|
||||
LDFLAGS_COMMON_sparc += -m32 -mcpu=v9
|
||||
CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
|
||||
CFLAGS_REQUIRED_ppc += -fsigned-char -D_BIG_ENDIAN
|
||||
ifeq ($(ZERO_BUILD), true)
|
||||
CFLAGS_REQUIRED = $(ZERO_ARCHFLAG)
|
||||
ifeq ($(ZERO_ENDIANNESS), little)
|
||||
CFLAGS_REQUIRED += -D_LITTLE_ENDIAN
|
||||
endif
|
||||
LDFLAGS_COMMON += $(ZERO_ARCHFLAG)
|
||||
else ifeq ($(ARCH), universal)
|
||||
CFLAGS_REQUIRED += -arch i386 -arch x86_64 -D_LITTLE_ENDIAN
|
||||
LDFLAGS_COMMON += -arch i386 -arch x86_64
|
||||
else
|
||||
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
|
||||
LDFLAGS_COMMON += $(LDFLAGS_COMMON_$(ARCH))
|
||||
endif
|
||||
# 16-byte stack re-alignment on 32-bit Darwin
|
||||
CFLAGS_REQUIRED_i586 += -mstackrealign
|
||||
|
||||
OTHER_CFLAGS = \
|
||||
-F/System/Library/Frameworks/JavaVM.framework/Frameworks \
|
||||
-F/System/Library/Frameworks/ApplicationServices.framework/Frameworks
|
||||
|
||||
#
|
||||
# Selection of warning messages
|
||||
#
|
||||
GCC_INHIBIT = -Wno-unused -Wno-parentheses
|
||||
GCC_STYLE =
|
||||
GCC_WARNINGS = -W -Wall $(GCC_STYLE) $(GCC_INHIBIT)
|
||||
|
||||
#
|
||||
# Treat compiler warnings as errors, if warnings not allowed
|
||||
#
|
||||
ifeq ($(COMPILER_WARNINGS_FATAL),true)
|
||||
GCC_WARNINGS += -Werror
|
||||
endif
|
||||
|
||||
#
|
||||
# Misc compiler options
|
||||
#
|
||||
ifneq ($(ARCH),ppc)
|
||||
CFLAGS_COMMON = -fno-strict-aliasing
|
||||
endif
|
||||
PIC_CODE_LARGE = -fPIC
|
||||
PIC_CODE_SMALL = -fpic
|
||||
GLOBAL_KPIC = $(PIC_CODE_LARGE)
|
||||
CFLAGS_COMMON += $(GLOBAL_KPIC) $(GCC_WARNINGS)
|
||||
ifeq ($(ARCH), amd64)
|
||||
CFLAGS_COMMON += -pipe
|
||||
endif
|
||||
|
||||
# BSD 64bit machines use Dwarf2, which can be HUGE, have fastdebug use -g1
|
||||
DEBUG_FLAG = -g
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
DEBUG_FLAG = -g1
|
||||
endif
|
||||
endif
|
||||
|
||||
# DEBUG_BINARIES overrides everything, use full -g debug information
|
||||
ifeq ($(DEBUG_BINARIES), true)
|
||||
DEBUG_FLAG = -g
|
||||
CFLAGS_REQUIRED += $(DEBUG_FLAG)
|
||||
endif
|
||||
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
CFLAGS_DBG = $(DEBUG_FLAG)
|
||||
CFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
CXXFLAGS_COMMON = $(GLOBAL_KPIC) -DCC_NOEX $(GCC_WARNINGS)
|
||||
CXXFLAGS_OPT = $(CC_OPT)
|
||||
CXXFLAGS_DBG = $(DEBUG_FLAG)
|
||||
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
# FASTDEBUG: Optimize the code in the -g versions, gives us a faster debug java
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
|
||||
CXXFLAGS_DBG += $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
|
||||
endif
|
||||
|
||||
CPP_ARCH_FLAGS = -DARCH='"$(ARCH)"'
|
||||
|
||||
# Alpha arch does not like "alpha" defined (potential general arch cleanup issue here)
|
||||
ifneq ($(ARCH),alpha)
|
||||
CPP_ARCH_FLAGS += -D$(ARCH)
|
||||
else
|
||||
CPP_ARCH_FLAGS += -D_$(ARCH)_
|
||||
endif
|
||||
CPPFLAGS_COMMON = $(CPP_ARCH_FLAGS) -D_ALLBSD_SOURCE $(VERSION_DEFINES) \
|
||||
-D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
|
||||
|
||||
CPPFLAGS_COMMON += -DMACOSX
|
||||
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
CPPFLAGS_COMMON += -D_LP64=1
|
||||
endif
|
||||
|
||||
CPPFLAGS_OPT = -DNDEBUG
|
||||
CPPFLAGS_DBG = -DDEBUG
|
||||
ifneq ($(PRODUCT), java)
|
||||
CPPFLAGS_DBG += -DLOGGING
|
||||
endif
|
||||
|
||||
# Libraries need to locate other libraries at runtime, and you can tell
|
||||
# a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
|
||||
# buried inside the .{so,dylib}. The {$ORIGIN,@loader_path/} says to look
|
||||
# relative to where the library itself is and it can be followed
|
||||
# with relative paths from that. By default we always look in
|
||||
# {$ORIGIN,@loader_path/}, optionally we add relative paths if the Makefile
|
||||
# sets LD_RUNPATH_EXTRAS to those relative paths.
|
||||
# Except on MacOS X we add a flag -z origin, not sure if this is necessary,
|
||||
# but doesn't seem to hurt.
|
||||
# The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
|
||||
# See 'man {dyld,rtld}' for more information.
|
||||
# Try: 'readelf -d lib*.so' to see these settings in a library.
|
||||
#
|
||||
LDFLAGS_COMMON += -Xlinker -rpath -Xlinker @loader_path/.
|
||||
LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=-Xlinker -rpath -Xlinker @loader_path/%)
|
||||
LDFLAGS_COMMON += -Xlinker -install_name -Xlinker @rpath/$(@F)
|
||||
|
||||
#
|
||||
# -L paths for finding and -ljava
|
||||
#
|
||||
LDFLAGS_COMMON += -L$(LIBDIR)
|
||||
|
||||
#
|
||||
# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always
|
||||
# statically link libgcc but will print a warning with the flag. We don't
|
||||
# want the warning, so check gcc version first.
|
||||
#
|
||||
ifeq ($(CC_MAJORVER),3)
|
||||
OTHER_LDFLAGS += -static-libgcc
|
||||
endif
|
||||
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
# (See Rules.gmk) The gcc 5 compiler might have an option for this?
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
|
||||
#
|
||||
# Post Processing of libraries/executables
|
||||
#
|
||||
ifeq ($(VARIANT), OPT)
|
||||
ifneq ($(NO_STRIP), true)
|
||||
ifneq ($(DEBUG_BINARIES), true)
|
||||
# Debug 'strip -S' leaves local function Elf symbols (better stack
|
||||
# traces)
|
||||
POST_STRIP_PROCESS = $(STRIP) -S
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Use: ld $(LD_MAPFILE_FLAG) mapfile *.o
|
||||
#
|
||||
LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
|
||||
|
||||
#
|
||||
# Support for Quantify.
|
||||
#
|
||||
ifdef QUANTIFY
|
||||
QUANTIFY_CMD = quantify
|
||||
QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
|
||||
LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
|
||||
endif
|
||||
|
||||
# Darwin does not support linker map files.
|
||||
LDNOMAP=true
|
||||
|
||||
#
|
||||
# Path and option to link against the VM, if you have to. Note that
|
||||
# there are libraries that link against only -ljava, but they do get
|
||||
# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
|
||||
# the library itself should not.
|
||||
#
|
||||
VM_NAME = server
|
||||
JVMLIB = -L$(LIBDIR)/server -L$(LIBDIR)/client -ljvm
|
||||
JAVALIB = -ljava $(JVMLIB)
|
||||
|
||||
#
|
||||
# We want to privatize JVM symbols on Solaris. This is so the user can
|
||||
# write a function called FindClass and this should not override the
|
||||
# FindClass that is inside the JVM. At this point in time we are not
|
||||
# concerned with other JNI libraries because we hope that there will
|
||||
# not be as many clashes there.
|
||||
#
|
||||
PRIVATIZE_JVM_SYMBOLS = false
|
||||
|
||||
USE_PTHREADS = true
|
||||
override ALT_CODESET_KEY = _NL_CTYPE_CODESET_NAME
|
||||
override AWT_RUNPATH =
|
||||
override HAVE_ALTZONE = false
|
||||
override HAVE_FILIOH = false
|
||||
override HAVE_GETHRTIME = false
|
||||
override HAVE_GETHRVTIME = false
|
||||
override HAVE_SIGIGNORE = true
|
||||
override LEX_LIBRARY = -lfl
|
||||
ifeq ($(STATIC_CXX),true)
|
||||
override LIBCXX = -Wl,-Bstatic -lstdc++ -lgcc -Wl,-Bdynamic
|
||||
else
|
||||
override LIBCXX = -lstdc++
|
||||
endif
|
||||
override LIBPOSIX4 =
|
||||
override LIBSOCKET =
|
||||
override LIBNSL =
|
||||
override LIBTHREAD =
|
||||
override LIBDL =
|
||||
override MOOT_PRIORITIES = true
|
||||
override NO_INTERRUPTIBLE_IO = true
|
||||
override OPENWIN_HOME = $(X11_PATH)
|
||||
override OPENWIN_LIB = $(OPENWIN_HOME)/lib
|
||||
override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER
|
||||
override SUN_CMM_SUBDIR =
|
||||
override THREADS_FLAG = native
|
||||
override USE_GNU_M4 = true
|
||||
override USING_GNU_TAR = true
|
||||
override WRITE_LIBVERSION = false
|
||||
|
||||
ifdef ALT_X11_PATH
|
||||
X11_PATH = $(ALT_X11_PATH)
|
||||
else
|
||||
X11_PATH = /usr/X11R6
|
||||
endif
|
||||
|
||||
ifdef ALT_PACKAGE_PATH
|
||||
PACKAGE_PATH = $(ALT_PACKAGE_PATH)
|
||||
else
|
||||
PACKAGE_PATH = /opt/local
|
||||
endif
|
||||
|
||||
# ALSA
|
||||
ifdef ALT_ALSA_LIB_PATH
|
||||
ALSA_LIB_PATH = $(ALT_ALSA_LIB_PATH)
|
||||
else
|
||||
ALSA_LIB_PATH = $(PACKAGE_PATH)/lib
|
||||
endif
|
||||
|
||||
ifdef ALT_ALSA_HEADERS_PATH
|
||||
ALSA_HEADERS_PATH = $(ALT_ALSA_HEADERS_PATH)
|
||||
else
|
||||
ALSA_HEADERS_PATH = $(PACKAGE_PATH)/include
|
||||
endif
|
||||
|
||||
# USE_EXECNAME forces the launcher to look up argv[0] on $PATH, and put the
|
||||
# resulting resolved absolute name of the executable in the environment
|
||||
# variable EXECNAME. That executable name is then used that to locate the
|
||||
# installation area.
|
||||
override USE_EXECNAME = true
|
||||
|
||||
# If your platform has DPS, it will have Type1 fonts too, in which case
|
||||
# it is best to enable DPS support until such time as 2D's rasteriser
|
||||
# can fully handle Type1 fonts in all cases. Default is "yes".
|
||||
# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
|
||||
# DPS (Displayable PostScript) is available on Solaris machines
|
||||
HAVE_DPS = no
|
||||
|
||||
SYSTEM_ZLIB = true
|
||||
|
||||
#
|
||||
# Japanese manpages
|
||||
#
|
||||
JA_SOURCE_ENCODING = eucJP
|
||||
JA_TARGET_ENCODINGS = UTF-8
|
||||
|
||||
# Settings for the JDI - Serviceability Agent binding.
|
||||
|
||||
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
||||
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
||||
|
||||
# The JDI - Serviceability Agent binding is not currently supported
|
||||
# on ia64.
|
||||
ifeq ($(ARCH), ia64)
|
||||
INCLUDE_SA = false
|
||||
else
|
||||
INCLUDE_SA = true
|
||||
endif
|
||||
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
# X11 headers are not under /usr/include
|
||||
OTHER_CFLAGS += -I$(OPENWIN_HOME)/include
|
||||
OTHER_CXXFLAGS += -I$(OPENWIN_HOME)/include
|
||||
OTHER_CPPFLAGS += -I$(OPENWIN_HOME)/include
|
||||
endif
|
||||
|
||||
LIB_LOCATION ?= $(LIBDIR)
|
||||
757
jdk/makefiles/common/Defs-solaris.gmk
Normal file
757
jdk/makefiles/common/Defs-solaris.gmk
Normal file
@ -0,0 +1,757 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile to specify compiler flags for programs and libraries
|
||||
# targeted to Solaris. Should not contain any rules.
|
||||
#
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
# Warning: the following variables are overridden by Defs.gmk. Set
|
||||
# values will be silently ignored:
|
||||
# CFLAGS (set $(OTHER_CFLAGS) instead)
|
||||
# CPPFLAGS (set $(OTHER_CPPFLAGS) instead)
|
||||
# CXXFLAGS (set $(OTHER_CXXFLAGS) instead)
|
||||
# LDFLAGS (set $(OTHER_LDFAGS) instead)
|
||||
# LDLIBS (set $(EXTRA_LIBS) instead)
|
||||
# LDLIBS_COMMON (set $(EXTRA_LIBS) instead)
|
||||
# LINTFLAGS (set $(OTHER_LINTFLAGS) instead)
|
||||
#
|
||||
# Note: CPPFLAGS are used in C and C++ compiles.
|
||||
#
|
||||
|
||||
# Get shared JDK settings
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
|
||||
|
||||
ifndef PLATFORM_SRC
|
||||
PLATFORM_SRC = $(BUILDDIR)/../src/solaris
|
||||
endif # PLATFORM_SRC
|
||||
|
||||
# Platform specific closed sources
|
||||
ifndef OPENJDK
|
||||
ifndef CLOSED_PLATFORM_SRC
|
||||
CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/solaris
|
||||
endif
|
||||
endif
|
||||
|
||||
# platform specific include files
|
||||
PLATFORM_INCLUDE_NAME = $(PLATFORM)
|
||||
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
|
||||
|
||||
# suffix used for make dependencies files
|
||||
DEPEND_SUFFIX = d
|
||||
# suffix used for lint files
|
||||
LINT_SUFFIX = ln
|
||||
# The suffix applied to the library name for FDLIBM
|
||||
FDDLIBM_SUFFIX = a
|
||||
# The suffix applied to scripts (.bat for windows, nothing for unix)
|
||||
SCRIPT_SUFFIX =
|
||||
# CC compiler object code output directive flag value
|
||||
CC_OBJECT_OUTPUT_FLAG = -o #trailing blank required!
|
||||
|
||||
ifdef ENABLE_FULL_DEBUG_SYMBOLS
|
||||
# Only check for Full Debug Symbols support on Solaris if it is
|
||||
# specifically enabled. Hopefully, it can be enabled by default
|
||||
# once the .debuginfo size issues are worked out.
|
||||
|
||||
# Default OBJCOPY comes from the SUNWbinutils package:
|
||||
DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
|
||||
ifeq ($(PLATFORM)-$(LIBARCH), solaris-amd64)
|
||||
# On Solaris AMD64/X64, gobjcopy is not happy and fails:
|
||||
#
|
||||
# usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.so
|
||||
# BFD: stKPaiop: Not enough room for program headers, try linking with -N
|
||||
# /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
|
||||
# BFD: stKPaiop: Not enough room for program headers, try linking with -N
|
||||
# /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
|
||||
# BFD: stKPaiop: Not enough room for program headers, try linking with -N
|
||||
# /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X64")
|
||||
OBJCOPY=
|
||||
else
|
||||
OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
|
||||
ifneq ($(ALT_OBJCOPY),)
|
||||
_JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
|
||||
# disable .debuginfo support by setting ALT_OBJCOPY to a non-existent path
|
||||
OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef LIBRARY_SUPPORTS_FULL_DEBUG_SYMBOLS
|
||||
# The setting of OBJCOPY above enables the JDK build to import
|
||||
# .debuginfo files from the HotSpot build. However, adding FDS
|
||||
# support to the JDK build will occur in phases so a different
|
||||
# make variable is used to indicate that a particular library
|
||||
# supports FDS.
|
||||
|
||||
ifeq ($(OBJCOPY),)
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: no objcopy cmd found so cannot create .debuginfo files.")
|
||||
else
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: $(OBJCOPY) cmd found so will create .debuginfo files.")
|
||||
|
||||
# Library stripping policies for .debuginfo configs:
|
||||
# all_strip - strips everything from the library
|
||||
# min_strip - strips most stuff from the library; leaves minimum symbols
|
||||
# no_strip - does not strip the library at all
|
||||
#
|
||||
# Oracle security policy requires "all_strip". A waiver was granted on
|
||||
# 2011.09.01 that permits using "min_strip" in the Java JDK and Java JRE.
|
||||
#
|
||||
DEF_STRIP_POLICY="min_strip"
|
||||
ifeq ($(ALT_STRIP_POLICY),)
|
||||
STRIP_POLICY=$(DEF_STRIP_POLICY)
|
||||
else
|
||||
STRIP_POLICY=$(ALT_STRIP_POLICY)
|
||||
endif
|
||||
_JUNK_ := $(shell \
|
||||
echo >&2 "INFO: STRIP_POLICY=$(STRIP_POLICY)")
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Java default optimization (-x04/-O2) etc. Applies to the VM.
|
||||
#
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
|
||||
#
|
||||
# If -Xa is in CFLAGS_COMMON it will end up ahead of $(CC_OPT) for the
|
||||
# optimized build, and that ordering of the flags completely freaks
|
||||
# out cc. Hence, -Xa is instead in each CFLAGS variant.
|
||||
#
|
||||
# The more unusual options to the Sun C compiler:
|
||||
# -v Stricter type checking, more error checking
|
||||
# (To turn ALL warnings into fatals, use -errwarn=%all)
|
||||
# -xstrconst Place string literals and constants in read-only area
|
||||
# (means you can't write on your string literals)
|
||||
# -xs Force debug information (stabs) into the .so or a.out
|
||||
# (makes the library/executable debuggable without the
|
||||
# .o files needing to be around, but at a space cost)
|
||||
# -g & -O If you add the -g option to the optimized compiles
|
||||
# you will get better stack retraces, the code is
|
||||
# still optimized. This includes a space cost too.
|
||||
# -xc99=%none Do NOT allow for c99 extensions to be used.
|
||||
# e.g. declarations must precede statements
|
||||
# -xCC Allow the C++ style of comments in C: //
|
||||
# Required with many of the source files.
|
||||
# -mt Assume multi-threaded (important)
|
||||
#
|
||||
# The more unusual options to the Sun C compiler:
|
||||
# +w Print more warnings
|
||||
# +w2 Maximum warnings
|
||||
#
|
||||
|
||||
#
|
||||
# Debug flag for C and C++ compiler
|
||||
#
|
||||
CFLAGS_DEBUG_OPTION = -g $(CC_OPT/NONE)
|
||||
CXXFLAGS_DEBUG_OPTION = -g $(CXX_OPT/NONE)
|
||||
|
||||
# Turn off -g if we are doing tcov build
|
||||
ifdef TCOV_BUILD
|
||||
CFLAGS_DEBUG_OPTION=
|
||||
CXXFLAGS_DEBUG_OPTION=
|
||||
endif
|
||||
|
||||
# FASTDEBUG: Optimize the -g builds, gives us a faster debug java
|
||||
# If true adds -O to the debug compiles. This allows for any assert
|
||||
# tests to remain and debug checking. The resulting code is faster
|
||||
# but less debuggable. Stack traces are still valid, although only
|
||||
# approximate line numbers are given. Printing of local variables
|
||||
# during a debugging session is not possible, but stepping and
|
||||
# printing of global or static variables should be possible.
|
||||
# Performance/size of files should be about the same, maybe smaller.
|
||||
#
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
CFLAGS_DEBUG_OPTION = -g $(CC_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
|
||||
CXXFLAGS_DEBUG_OPTION = -g0 $(CXX_OPT/$(FASTDEBUG_OPTIMIZATION_LEVEL))
|
||||
endif
|
||||
|
||||
CFLAGS_COMMON = -L$(OBJDIR)
|
||||
|
||||
# Do not allow C99 language features like declarations in code etc.
|
||||
CFLAGS_COMMON += -xc99=%none
|
||||
|
||||
# Allow C++ comments in C code
|
||||
CFLAGS_COMMON += -xCC
|
||||
|
||||
# Show error message tags on errors
|
||||
CFLAGS_COMMON += -errshort=tags
|
||||
CXXFLAGS_COMMON += -errtags=yes
|
||||
|
||||
# Optimization flags
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
|
||||
# Debug version flags
|
||||
CFLAGS_DBG = $(CFLAGS_DEBUG_OPTION)
|
||||
|
||||
# Required C compiler flags
|
||||
CFLAGS_COMMON += -Xa $(CFLAGS_REQUIRED)
|
||||
|
||||
# Maximum warnings all the time
|
||||
CXXFLAGS_COMMON += +w
|
||||
CFLAGS_COMMON += -v
|
||||
|
||||
# Assume MT behavior all the time (important)
|
||||
CXXFLAGS_COMMON += -mt
|
||||
CFLAGS_COMMON += -mt
|
||||
|
||||
# Assume no C++ exceptions are used
|
||||
CXXFLAGS_COMMON += -features=no%except -DCC_NOEX
|
||||
|
||||
# For C++, these options tell it to assume nothing about locating libraries
|
||||
# either at compile time, or at runtime. Use of these options will likely
|
||||
# require the use of -L and -R options to indicate where libraries will
|
||||
# be found at compile time (-L) and at runtime (-R).
|
||||
# The /usr/lib location comes for free, so no need to specify that one.
|
||||
# Note: C is much simplier and there is no need for these options. This
|
||||
# is mostly needed to avoid dependencies on libraries in the
|
||||
# Compiler install area, also see LIBCXX and LIBM.
|
||||
CXXFLAGS_COMMON += -norunpath -xnolib
|
||||
|
||||
#
|
||||
# Treat compiler warnings as errors, if requested
|
||||
#
|
||||
ifeq ($(COMPILER_WARNINGS_FATAL),true)
|
||||
CFLAGS_COMMON += -errwarn=%all
|
||||
CXXFLAGS_COMMON += -errwarn=%all
|
||||
endif
|
||||
|
||||
CXXFLAGS_OPT = $(CXX_OPT)
|
||||
CXXFLAGS_DBG = $(CXXFLAGS_DEBUG_OPTION)
|
||||
CXXFLAGS_COMMON += $(CFLAGS_REQUIRED)
|
||||
|
||||
# Add -xstrconst to the library compiles. This forces all string
|
||||
# literals into the read-only data section, which prevents them from
|
||||
# being written to and increases the runtime pages shared on the system.
|
||||
#
|
||||
ifdef LIBRARY
|
||||
CFLAGS_COMMON +=-xstrconst
|
||||
endif
|
||||
|
||||
# Source browser database
|
||||
#
|
||||
# COMPILE_WITH_SB
|
||||
# If defined adds -xsb to compiles and creates a
|
||||
# source browsing database during compilation.
|
||||
#
|
||||
ifdef COMPILE_WITH_SB
|
||||
ifeq ($(LIBRARY), java)
|
||||
CFLAGS_DBG += -xsb
|
||||
endif
|
||||
endif
|
||||
|
||||
# Lint Flags:
|
||||
# -Xa ANSI C plus K&R, favor ANSI rules
|
||||
# -fd report on old style func defs
|
||||
# -errchk=structarg report on 64bit struct args by value
|
||||
# -errchk=longptr64 report on 64bit to 32bit issues (ignores casts)
|
||||
# -errchk=parentheses report on suggested use of extra parens
|
||||
# -v suppress unused args
|
||||
# -x suppress unused externs
|
||||
# -u suppress extern func/vars used/defined
|
||||
# -errfmt=simple use one line errors with position info
|
||||
# $(LINT_XARCH_OPTION) See Compiler-sun.gwk
|
||||
|
||||
LINTFLAGS_COMMON = -Xa
|
||||
LINTFLAGS_COMMON += -fd
|
||||
LINTFLAGS_COMMON += -errchk=structarg,longptr64,parentheses
|
||||
LINTFLAGS_COMMON += -v
|
||||
LINTFLAGS_COMMON += -x
|
||||
LINTFLAGS_COMMON += -u
|
||||
LINTFLAGS_COMMON += -errfmt=simple
|
||||
LINTFLAGS_OPT =
|
||||
LINTFLAGS_DBG =
|
||||
|
||||
# The -W0,-noglobal tells the compiler to NOT generate mangled global
|
||||
# ELF data symbols for file local static data.
|
||||
# This can break fix&continue, but we'd rather do the same compilations
|
||||
# for deliverable bits as we do for non-deliverable bits
|
||||
# Tell the compilers to never generate globalized names, all the time.
|
||||
CFLAGS_COMMON += -W0,-noglobal
|
||||
|
||||
# If we have a specific arch value to use, add it
|
||||
CFLAGS_COMMON += $(XARCH_OPTION)
|
||||
CXXFLAGS_COMMON += $(XARCH_OPTION)
|
||||
ASFLAGS_COMMON += $(AS_XARCH_OPTION)
|
||||
EXTRA_LIBS += $(XARCH_OPTION)
|
||||
LINTFLAGS_COMMON += $(LINT_XARCH_OPTION)
|
||||
|
||||
#
|
||||
# uncomment the following to build with PERTURBALOT set
|
||||
#
|
||||
# OTHER_CFLAGS += -DPERTURBALOT
|
||||
#
|
||||
|
||||
CPPFLAGS_COMMON = -D__solaris__ -D$(ARCH_FAMILY)
|
||||
CPPFLAGS_OPT = -DNDEBUG
|
||||
CPPFLAGS_DBG = -DDEBUG
|
||||
|
||||
ifneq ($(PRODUCT), java)
|
||||
CPPFLAGS_DBG += -DLOGGING -DDBINFO
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
# The macro _LITTLE_ENDIAN needs to be defined the same to avoid the
|
||||
# Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN
|
||||
# (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h).
|
||||
# Note: -Dmacro is the same as #define macro 1
|
||||
# -Dmacro= is the same as #define macro
|
||||
#
|
||||
CPPFLAGS_COMMON += -DcpuIntel -D_LITTLE_ENDIAN= -D$(LIBARCH)
|
||||
# Turn off a superfluous compiler error message on Intel
|
||||
CFLAGS_COMMON += -erroff=E_BAD_PRAGMA_PACK_VALUE
|
||||
endif
|
||||
|
||||
# Java memory management is based on memory mapping by default, but a
|
||||
# system only assuming malloc/free can be built by adding -DUSE_MALLOC
|
||||
|
||||
CPPFLAGS_COMMON += -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS
|
||||
CPPFLAGS_OPT += -DTRIMMED
|
||||
|
||||
LDFLAGS_DEFS_OPTION = -z defs
|
||||
LDFLAGS_COMMON += $(LDFLAGS_DEFS_OPTION)
|
||||
|
||||
#
|
||||
# -L paths for finding and -ljava
|
||||
#
|
||||
LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
|
||||
LDFLAGS_OPT =
|
||||
LDFLAGS_DBG =
|
||||
|
||||
#
|
||||
# We never really want the incremental linker, ever
|
||||
# The -xildoff option tells Sun's compilers to NOT use incremental linker
|
||||
#
|
||||
LDFLAGS_COMMON += -xildoff
|
||||
|
||||
ifdef LIBRARY
|
||||
# Libraries need to locate other libraries at runtime, and you can tell
|
||||
# a library where to look by way of the dynamic runpaths (RPATH or RUNPATH)
|
||||
# buried inside the .so. The $ORIGIN says to look relative to where
|
||||
# the library itself is and it can be followed with relative paths from
|
||||
# that. By default we always look in $ORIGIN, optionally we add relative
|
||||
# paths if the Makefile sets LD_RUNPATH_EXTRAS to those relative paths.
|
||||
# The environment variable LD_LIBRARY_PATH will over-ride these runpaths.
|
||||
# Try: 'dump -Lv lib*.so' to see these settings in a library.
|
||||
#
|
||||
LDFLAGS_COMMON += -R\$$ORIGIN
|
||||
LDFLAGS_COMMON += $(LD_RUNPATH_EXTRAS:%=-R\$$ORIGIN/%)
|
||||
endif
|
||||
|
||||
EXTRA_LIBS += -lc
|
||||
|
||||
# Postprocessing is done on the images directories only
|
||||
#
|
||||
ifeq ($(VARIANT), OPT)
|
||||
ifeq ($(PARTIAL_GPROF), true)
|
||||
NO_STRIP = true
|
||||
endif
|
||||
ifeq ($(GPROF), true)
|
||||
NO_STRIP = true
|
||||
endif
|
||||
ifneq ($(NO_STRIP), true)
|
||||
# Debug 'strip -x' leaves local function Elf symbols (better stack traces)
|
||||
POST_STRIP_PROCESS = $(STRIP) -x
|
||||
endif
|
||||
endif
|
||||
POST_MCS_PROCESS=$(MCS) -d -a "JDK $(FULL_VERSION)"
|
||||
|
||||
#
|
||||
# Sun C compiler will take -M and pass it on to ld.
|
||||
# Usage: ld $(LD_MAPFILE_FLAG) mapfile *.o
|
||||
#
|
||||
ifeq ($(CC_VERSION),gcc)
|
||||
LD_MAPFILE_FLAG = -Xlinker -M -Xlinker
|
||||
else
|
||||
LD_MAPFILE_FLAG = -M
|
||||
endif
|
||||
|
||||
#
|
||||
# Variables globally settable from the make command line (default
|
||||
# values in brackets):
|
||||
# GPROF (false)
|
||||
# Eg: % gnumake GPROF=true
|
||||
GPROF = false
|
||||
ifeq ($(GPROF), true)
|
||||
CFLAGS_COMMON += -DGPROF -xpg
|
||||
EXTRA_LIBS += -xpg
|
||||
endif
|
||||
|
||||
# PARTIAL_GPROF is to be used ONLY during compilation - it should not
|
||||
# appear during linking of libraries or programs. It also should
|
||||
# prevent linking with -z defs to allow a symbol to remain undefined.
|
||||
#
|
||||
PARTIAL_GPROF = false
|
||||
ifeq ($(PARTIAL_GPROF), true)
|
||||
CFLAGS_GPROF += -xpg
|
||||
LDFLAGS_DEFS_OPTION = -z nodefs
|
||||
endif
|
||||
|
||||
#
|
||||
# For a TCOV build we add in the TCOV_OPTION
|
||||
#
|
||||
ifdef TCOV_BUILD
|
||||
TCOV_OPTION = -xprofile=tcov
|
||||
LDFLAGS_COMMON += $(TCOV_OPTION) -Kpic
|
||||
CFLAGS_COMMON += $(TCOV_OPTION)
|
||||
CXXFLAGS_COMMON += $(TCOV_OPTION)
|
||||
EXTRA_LIBS += $(TCOV_OPTION)
|
||||
LDNOMAP=true
|
||||
endif
|
||||
|
||||
#
|
||||
# Solaris only uses native threads.
|
||||
#
|
||||
THREADS_FLAG= native
|
||||
THREADS_DIR= threads
|
||||
|
||||
#
|
||||
# Support for Quantify.
|
||||
#
|
||||
ifdef QUANTIFY
|
||||
QUANTIFY_CMD = quantify
|
||||
QUANTIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
|
||||
LINK_PRE_CMD = $(QUANTIFY_CMD) $(QUANTIFY_OPTIONS)
|
||||
ifdef LIBRARY
|
||||
CFLAGS_COMMON += -K PIC
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Support for Purify.
|
||||
#
|
||||
ifdef PURIFY
|
||||
PURIFY_CMD = /net/suntools.eng/export/tools/sparc/bin/purify
|
||||
PURIFY_OPTIONS = -cache-dir=/tmp/quantify -always-use-cache-dir=yes
|
||||
LINK_PRE_CMD = $(PURIFY_CMD) $(PURIFY_OPTIONS)
|
||||
ifdef LIBRARY
|
||||
CFLAGS_COMMON += -K PIC
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Different "levels" of optimization.
|
||||
#
|
||||
ifeq ($(CC_VERSION),gcc)
|
||||
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O3
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
CXX_OPT/NONE =
|
||||
CXX_OPT/LOWER = -O2
|
||||
CXX_OPT/HIGHER = -O3
|
||||
CXX_OPT/HIGHEST = -O3
|
||||
|
||||
CFLAGS_REQUIRED_i586 += -fno-omit-frame-pointer
|
||||
CFLAGS_REQUIRED_amd64 += -fno-omit-frame-pointer
|
||||
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
# (See Rules.gmk) May need to wait for gcc 5?
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
|
||||
else
|
||||
|
||||
# Highest could be -xO5, but indications are that -xO5 should be reserved
|
||||
# for a per-file use, on sources with known performance impacts.
|
||||
OPT_LEVEL/LOWER = 2
|
||||
OPT_LEVEL/HIGHER = 4
|
||||
OPT_LEVEL/HIGHEST = 4
|
||||
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = $(OPT_LEVEL/LOWER:%=-xO%)
|
||||
CC_OPT/HIGHER = $(OPT_LEVEL/HIGHER:%=-xO%)
|
||||
CC_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%)
|
||||
|
||||
CXX_OPT/NONE =
|
||||
CXX_OPT/LOWER = $(OPT_LEVEL/LOWER:%=-xO%)
|
||||
CXX_OPT/HIGHER = $(OPT_LEVEL/HIGHER:%=-xO%)
|
||||
CXX_OPT/HIGHEST = $(OPT_LEVEL/HIGHEST:%=-xO%)
|
||||
|
||||
# We need stack frames at all times
|
||||
USE_XKEEPFRAME_OPTION = false
|
||||
ifeq ($(USE_XKEEPFRAME_OPTION),true)
|
||||
|
||||
# Unknown spelling on this option at this time (Maybe in SS13?)
|
||||
CC_XKEEPFRAME_OPTIONS = -xkeepframe
|
||||
CXX_XKEEPFRAME_OPTIONS = -xkeepframe
|
||||
|
||||
else
|
||||
|
||||
# On X86, make sure tail call optimization is off
|
||||
# The z and y are the tail call optimizations.
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
CC_NEWER_THAN_58 := \
|
||||
$(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
|
||||
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 8 \) )
|
||||
ifeq ($(CC_NEWER_THAN_58),1)
|
||||
# Somehow, tail call optimization is creeping in.
|
||||
# Make sure it is off.
|
||||
# WARNING: These may cause compiler warnings about duplicate -O options
|
||||
CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz
|
||||
endif
|
||||
endif
|
||||
|
||||
# On i586 we need to tell the code generator to ALWAYS use a
|
||||
# frame pointer.
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
# Note that in 5.7, this is done with -xregs=no%frameptr
|
||||
ifeq ($(CC_VER), 5.5)
|
||||
# It's not exactly clear when this optimization kicks in, the
|
||||
# current assumption is -xO4 or greater and for C++ with
|
||||
# the -features=no%except option and -xO4 and greater.
|
||||
# Bottom line is, we ALWAYS want a frame pointer!
|
||||
CC_XKEEPFRAME_OPTIONS += -Wu,-Z~B
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B
|
||||
endif
|
||||
|
||||
CC_NEWER_THAN_56 := \
|
||||
$(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
|
||||
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) )
|
||||
ifeq ($(CC_NEWER_THAN_56),1)
|
||||
# Do NOT use frame pointer register as a general purpose opt register
|
||||
CC_OPT/NONE += -xregs=no%frameptr
|
||||
CXX_OPT/NONE += -xregs=no%frameptr
|
||||
CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
|
||||
CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr
|
||||
endif
|
||||
endif
|
||||
|
||||
# Optimizer for sparc needs to be told not to do certain things
|
||||
# related to frames or save instructions.
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
# Do not use save instructions instead of add instructions
|
||||
# This was an optimization starting in SC5.0 that made it hard for us to
|
||||
# find the "save" instruction (which got turned into an "add")
|
||||
CC_XKEEPFRAME_OPTIONS += -Wc,-Qrm-s
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qrm-s
|
||||
# Don't allow tail call code optimization. Started in SC5.0.
|
||||
# We don't like code of this form:
|
||||
# save
|
||||
# <code>
|
||||
# call foo
|
||||
# restore
|
||||
# because we can't tell if the method will have a stack frame
|
||||
# and register windows or not.
|
||||
CC_XKEEPFRAME_OPTIONS += -Wc,-Qiselect-T0
|
||||
CXX_XKEEPFRAME_OPTIONS += -Qoption cg -Qiselect-T0
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# Extra options used with HIGHEST
|
||||
#
|
||||
# WARNING: Use of OPTIMIZATION_LEVEL=HIGHEST in your Makefile needs to be
|
||||
# done with care, there are some assumptions below that need to
|
||||
# be understood about the use of pointers, and IEEE behavior.
|
||||
#
|
||||
# Use non-standard floating point mode (not IEEE 754)
|
||||
CC_HIGHEST_EXTRAS += -fns
|
||||
# Do some simplification of floating point arithmetic (not IEEE 754)
|
||||
CC_HIGHEST_EXTRAS += -fsimple
|
||||
# Use single precision floating point with 'float'
|
||||
CC_HIGHEST_EXTRAS += -fsingle
|
||||
# Assume memory references via basic pointer types do not alias
|
||||
# (Source with excessing pointer casting and data access with mixed
|
||||
# pointer types are not recommended)
|
||||
CC_HIGHEST_EXTRAS += -xalias_level=basic
|
||||
# Use intrinsic or inline versions for math/std functions
|
||||
# (If you expect perfect errno behavior, do not use this)
|
||||
CC_HIGHEST_EXTRAS += -xbuiltin=%all
|
||||
# Loop data dependency optimizations (need -xO3 or higher)
|
||||
CC_HIGHEST_EXTRAS += -xdepend
|
||||
# Pointer parameters to functions do not overlap
|
||||
# (Similar to -xalias_level=basic usage, but less obvious sometimes.
|
||||
# If you pass in multiple pointers to the same data, do not use this)
|
||||
CC_HIGHEST_EXTRAS += -xrestrict
|
||||
# Inline some library routines
|
||||
# (If you expect perfect errno behavior, do not use this)
|
||||
CC_HIGHEST_EXTRAS += -xlibmil
|
||||
# Use optimized math routines
|
||||
# (If you expect perfect errno behavior, do not use this)
|
||||
# Can cause undefined external on Solaris 8 X86 on __sincos, removing for now
|
||||
# CC_HIGHEST_EXTRAS += -xlibmopt
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
# Assume at most 8byte alignment, raise SIGBUS on error
|
||||
### Presents an ABI issue with customer JNI libs?
|
||||
####CC_HIGHEST_EXTRAS += -xmemalign=8s
|
||||
# Automatic prefetch instructions, explicit prefetch macros
|
||||
CC_HIGHEST_EXTRAS += -xprefetch=auto,explicit
|
||||
# Pick ultra as the chip to optimize to
|
||||
CC_HIGHEST_EXTRAS += -xchip=ultra
|
||||
endif
|
||||
ifeq ($(ARCH), i586)
|
||||
# Pick pentium as the chip to optimize to
|
||||
CC_HIGHEST_EXTRAS += -xchip=pentium
|
||||
endif
|
||||
ifdef LIBRARY
|
||||
# The Solaris CBE (Common Build Environment) requires that the use
|
||||
# of appl registers be disabled when compiling a public library (or
|
||||
# a library that's loaded by a public library) on sparc.
|
||||
CFLAGS_REQUIRED_sparc += -xregs=no%appl
|
||||
CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl
|
||||
endif
|
||||
CC_NEWER_THAN_56 := \
|
||||
$(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \
|
||||
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) )
|
||||
ifeq ($(CC_NEWER_THAN_56),1)
|
||||
# Presents an ABI issue with customer JNI libs? We must be able to
|
||||
# to handle 4byte aligned objects? (rare occurance, but possible?)
|
||||
CFLAGS_REQUIRED_sparc += -xmemalign=4s
|
||||
endif
|
||||
# Just incase someone trys to use the SOS9 compilers
|
||||
ifeq ($(CC_VER), 5.6)
|
||||
# We MUST allow data alignment of 4 for sparc (sparcv9 is ok at 8s)
|
||||
CFLAGS_REQUIRED_sparc += -xmemalign=4s
|
||||
endif
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
# (See Rules.gmk) The SS11 -xpch=auto* options appear to be broken.
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
|
||||
# Add in keep frame options
|
||||
CC_OPT/LOWER += $(CC_XKEEPFRAME_OPTIONS)
|
||||
CC_OPT/HIGHER += $(CC_XKEEPFRAME_OPTIONS)
|
||||
CC_OPT/HIGHEST += $(CC_XKEEPFRAME_OPTIONS)
|
||||
CXX_OPT/LOWER += $(CXX_XKEEPFRAME_OPTIONS)
|
||||
CXX_OPT/HIGHER += $(CXX_XKEEPFRAME_OPTIONS)
|
||||
CXX_OPT/HIGHEST += $(CXX_XKEEPFRAME_OPTIONS)
|
||||
|
||||
# Add in highest optimization settings
|
||||
CC_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS)
|
||||
CXX_OPT/HIGHEST += $(CC_HIGHEST_EXTRAS)
|
||||
|
||||
endif
|
||||
|
||||
# Default optimization settings based on level.
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
CXX_OPT = $(CXX_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# Flags required all the time
|
||||
CFLAGS_REQUIRED = $(CFLAGS_REQUIRED_$(ARCH))
|
||||
|
||||
#
|
||||
# Path and option to link against the VM, if you have to. Note that
|
||||
# there are libraries that link against only -ljava, but they do get
|
||||
# -L to the -ljvm, this is because -ljava depends on -ljvm, whereas
|
||||
# the library itself should not.
|
||||
#
|
||||
VM_NAME = server
|
||||
JVMLIB = -L$(LIBDIR)/$(LIBARCH)/server -L$(LIBDIR)/$(LIBARCH)/client -ljvm
|
||||
JAVALIB = -ljava $(JVMLIB)
|
||||
|
||||
# Part of INCREMENTAL_BUILD mechanism.
|
||||
# Compiler emits things like: path/file.o: file.h
|
||||
# We want something like: relative_path/file.o relative_path/file.d: file.h
|
||||
# In addition on Solaris, any include file starting with / is deleted,
|
||||
# this gets rid of things like /usr/include files, which never change.
|
||||
CC_DEPEND = -xM1
|
||||
CC_DEPEND_FILTER = $(SED) -e '/:[ ]*[/]/d' -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)& $(dir $@)$*.$(DEPEND_SUFFIX)!g' | $(SORT) -u
|
||||
|
||||
# Location of openwin libraries (do we really need this anymore?)
|
||||
OPENWIN_HOME = /usr/openwin
|
||||
OPENWIN_LIB = $(OPENWIN_HOME)/lib$(ISA_DIR)
|
||||
|
||||
# Runtime graphics library search paths...
|
||||
OPENWIN_RUNTIME_LIB = /usr/openwin/lib$(ISA_DIR)
|
||||
AWT_RUNPATH = -R/usr/dt/lib$(ISA_DIR) -R$(OPENWIN_RUNTIME_LIB)
|
||||
|
||||
# C++ Runtime library (libCrun.so), use instead of -lCrun.
|
||||
# Originally used instead of -lCrun to guarantee use of the system
|
||||
# .so version and not the .a or .so that came with the compilers.
|
||||
# With the newer compilers this could probably change back to -lCrun but
|
||||
# in general this is ok to continue to do.
|
||||
LIBCXX = /usr/lib$(ISA_DIR)/libCrun.so.1
|
||||
|
||||
# JDK now requires Solaris 10, so pick up libm.so.2
|
||||
LIBM = /usr/lib$(ISA_DIR)/libm.so.2
|
||||
|
||||
# Socket library
|
||||
LIBSOCKET = -lsocket
|
||||
|
||||
# Network Services library
|
||||
LIBNSL = -lnsl
|
||||
|
||||
# service configuration facility library
|
||||
LIBSCF = -lscf
|
||||
|
||||
# Dynamic Loading library
|
||||
LIBDL = -ldl
|
||||
|
||||
# GLOBAL_KPIC: If set means all libraries are PIC, position independent code
|
||||
# EXCEPT for select compiles
|
||||
# If a .o file is compiled non-PIC then it should be forced
|
||||
# into the RW data segment with a mapfile option. This is done
|
||||
# with object files which generated from .s files.
|
||||
# The -ztext enforces that no relocations remain in the text segment
|
||||
# so that it remains purely read-only for optimum system performance.
|
||||
# Some libraries may use a smaller size (13bit -Kpic) on sparc instead of
|
||||
# (32 bit -KPIC) and will override GLOBAL_KPIC appropriately.
|
||||
#
|
||||
PIC_CODE_LARGE = -KPIC
|
||||
PIC_CODE_SMALL = -Kpic
|
||||
ifndef TCOV_BUILD
|
||||
GLOBAL_KPIC = $(PIC_CODE_LARGE)
|
||||
CXXFLAGS_COMMON += $(GLOBAL_KPIC)
|
||||
CFLAGS_COMMON += $(GLOBAL_KPIC)
|
||||
LDFLAGS_COMMON += -ztext
|
||||
endif # TCOV_BUILD
|
||||
|
||||
# If your platform has DPS, it will have Type1 fonts too, in which case
|
||||
# it is best to enable DPS support until such time as 2D's rasteriser
|
||||
# can fully handle Type1 fonts in all cases. Default is "yes".
|
||||
# HAVE_DPS should only be "no" if the platform has no DPS headers or libs
|
||||
# DPS (Displayable PostScript) is available on Solaris machines
|
||||
|
||||
HAVE_DPS = yes
|
||||
|
||||
#
|
||||
# Japanese manpages
|
||||
#
|
||||
JA_SOURCE_ENCODING = eucJP
|
||||
JA_TARGET_ENCODINGS = eucJP UTF-8 PCK
|
||||
|
||||
# Settings for the JDI - Serviceability Agent binding.
|
||||
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH)
|
||||
SALIB_NAME = $(LIB_PREFIX)saproc.$(LIBRARY_SUFFIX)
|
||||
SA_DEBUGINFO_NAME = $(LIB_PREFIX)saproc.debuginfo
|
||||
INCLUDE_SA=true
|
||||
|
||||
418
jdk/makefiles/common/Defs-windows.gmk
Normal file
418
jdk/makefiles/common/Defs-windows.gmk
Normal file
@ -0,0 +1,418 @@
|
||||
#
|
||||
# Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile to specify compiler flags for programs and libraries
|
||||
# targeted to Windows builds. Should not contain any rules.
|
||||
#
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
# Get shared JDK settings
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
|
||||
|
||||
# CC compiler object code output directive flag value
|
||||
CC_OBJECT_OUTPUT_FLAG = -Fo
|
||||
|
||||
# The suffix applied to the library name for FDLIBM
|
||||
FDDLIBM_SUFFIX = lib
|
||||
# The suffix applied to scripts (.bat for windows, nothing for unix)
|
||||
SCRIPT_SUFFIX = .bat
|
||||
|
||||
# LIB_LOCATION, which for windows identifies where .exe files go, may be
|
||||
# set by each GNUmakefile. The default is BINDIR.
|
||||
ifndef LIB_LOCATION
|
||||
LIB_LOCATION = $(BINDIR)
|
||||
endif # LIB_LOCATION
|
||||
|
||||
ifndef PLATFORM_SRC
|
||||
PLATFORM_SRC = $(BUILDDIR)/../src/windows
|
||||
endif # PLATFORM_SRC
|
||||
|
||||
# Platform specific closed sources
|
||||
ifndef OPENJDK
|
||||
ifndef CLOSED_PLATFORM_SRC
|
||||
CLOSED_PLATFORM_SRC = $(BUILDDIR)/../src/closed/windows
|
||||
endif
|
||||
endif
|
||||
|
||||
# for backwards compatability, the old "win32" is used here instead of
|
||||
# the more proper "windows"
|
||||
PLATFORM_INCLUDE_NAME = win32
|
||||
PLATFORM_INCLUDE = $(INCLUDEDIR)/$(PLATFORM_INCLUDE_NAME)
|
||||
|
||||
# The following DLL's are considered MS runtime libraries and should
|
||||
# not to be REBASEd, see deploy/make/common/Release.gmk.
|
||||
# msvcr*.dll: Microsoft runtimes
|
||||
ifeq ($(COMPILER_VERSION), VS2010)
|
||||
MSVCRNN_DLL = msvcr100.dll
|
||||
MSVCPNN_DLL = msvcp100.dll
|
||||
endif
|
||||
|
||||
EXTRA_LFLAGS += /LIBPATH:$(DXSDK_LIB_PATH)
|
||||
|
||||
# C Compiler flag definitions
|
||||
|
||||
#
|
||||
# Default optimization
|
||||
#
|
||||
|
||||
ifndef OPTIMIZATION_LEVEL
|
||||
ifeq ($(PRODUCT), java)
|
||||
OPTIMIZATION_LEVEL = HIGHER
|
||||
else
|
||||
OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
endif
|
||||
ifndef FASTDEBUG_OPTIMIZATION_LEVEL
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = LOWER
|
||||
endif
|
||||
|
||||
ifeq ($(CC_VERSION),msvc)
|
||||
# Visual Studio compiler option definitions:
|
||||
# -O1 Favors reduced size over speed (-Og -Os -Oy -Ob2 -Gs -GF -Gy)
|
||||
# -O2 Favors speed over reduced size (-Og -Oi -Ot -Oy -Ob2 -Gs -GF -Gy)
|
||||
# -Ob2 More aggressive inlining
|
||||
# -Og Global optimizations
|
||||
# -Oi Replace some functions with intrinsic or special forms
|
||||
# -fp:precise (should be the default)
|
||||
# Improve floating point calculations (disables some optimizations)
|
||||
# -Os Favor small code
|
||||
# -Ot Favor faster code
|
||||
# -Oy Frame pointer omission
|
||||
# -G6 Used to be -GB?
|
||||
# -GF Pool strings in read-only memory
|
||||
# -Gf Pool strings in read-write memory (the default)
|
||||
# -Gs Controls stack probess
|
||||
# -GS Adds buffer overflow checks on stacks (the default)
|
||||
# -EHsc Enables exception handling
|
||||
# -Gy Function level linking only
|
||||
#
|
||||
|
||||
CC_OPT/NONE = -Od
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O3
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
ifeq ($(COMPILER_VERSION), VS2010)
|
||||
# Automatic precompiled header option to use (if COMPILE_APPROACH=batch)
|
||||
AUTOMATIC_PCH_OPTION =
|
||||
GX_OPTION = -EHsc
|
||||
GZ_OPTION = -RTC1
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
CC_OPT/HIGHEST = -O2
|
||||
CC_OPT/HIGHER = -O1
|
||||
CC_OPT/LOWER = -O1
|
||||
else
|
||||
CC_OPT/HIGHEST = -O2
|
||||
CC_OPT/HIGHER = -O1
|
||||
CC_OPT/LOWER = -O1
|
||||
endif
|
||||
endif
|
||||
|
||||
else # CC_VERSION
|
||||
# GCC not supported, but left for historical reference...
|
||||
CC_OPT/NONE =
|
||||
CC_OPT/LOWER = -O2
|
||||
CC_OPT/HIGHER = -O2
|
||||
CC_OPT/HIGHEST = -O3
|
||||
|
||||
endif
|
||||
|
||||
CC_OPT = $(CC_OPT/$(OPTIMIZATION_LEVEL))
|
||||
|
||||
# Select the runtime support library carefully, need to be consistent
|
||||
#
|
||||
# Visual Studio Runtime compiler option definitions:
|
||||
# -MD Use dynamic multi-threaded runtime library
|
||||
# -MDd Use debug version (don't use, doesn't mix with -MD DLL's)
|
||||
# -MT Use static multi-threaded runtime library (-ML is going away)
|
||||
# -MTd Use static debug version (better than -MDd, no runtime issues)
|
||||
# -D_DEBUG Change use of malloc/free/etc to use special debug ones (-MTd)
|
||||
#
|
||||
# NOTE: We also will use /D _STATIC_CPPLIB so we don't need msvcpnn.dll
|
||||
#
|
||||
# If MS_RUNTIME_STATIC is requested we may have a problem, it is no longer
|
||||
# supported by VS2010
|
||||
ifneq ($(MS_RUNTIME_STATIC),true)
|
||||
MS_RUNTIME_OPTION=-MD
|
||||
endif
|
||||
# The _DEBUG macro option (changes things like malloc to use debug version)
|
||||
MS_RUNTIME_DEBUG_OPTION=
|
||||
MS_RC_DEBUG_OPTION=
|
||||
# Externally set environment variable can force any build to use the debug vers
|
||||
ifeq ($(MFC_DEBUG), true)
|
||||
ifeq ($(MS_RUNTIME_STATIC),true)
|
||||
MS_RUNTIME_OPTION=-MTd
|
||||
else
|
||||
# This MS debugging flag forces a dependence on the debug
|
||||
# version of the runtime library (MSVCR*D.DLL), as does -MDd.
|
||||
# We cannot re-distribute this debug runtime.
|
||||
MS_RUNTIME_OPTION=-MDd
|
||||
endif
|
||||
MS_RUNTIME_DEBUG_OPTION= -D_DEBUG
|
||||
MS_RC_DEBUG_OPTION= -d _DEBUG
|
||||
endif
|
||||
|
||||
# Always add _STATIC_CPPLIB definition
|
||||
STATIC_CPPLIB_OPTION = /D _STATIC_CPPLIB
|
||||
|
||||
# Silence the warning about using _STATIC_CPPLIB
|
||||
ifneq ($(SHOW_ALL_WARNINGS),true)
|
||||
# Needed with VS2010 to turn off the deprecated warning.
|
||||
STATIC_CPPLIB_OPTION += /D _DISABLE_DEPRECATE_STATIC_CPPLIB
|
||||
endif
|
||||
|
||||
MS_RUNTIME_OPTION += $(STATIC_CPPLIB_OPTION)
|
||||
|
||||
ifeq ($(CC_VERSION),msvc)
|
||||
# Visual Studio compiler option definitions:
|
||||
# -Zi Cause *.pdb file to be created, full debug information
|
||||
# -Z7 Full debug inside the .obj, no .pdb
|
||||
# -Zd Basic debug, no local variables? In the .obj
|
||||
# -Zl Don't add runtime library name to obj file?
|
||||
# -Od Turns off optimization and speeds compilation
|
||||
# -YX -Fp/.../foobar.pch Use precompiled headers (try someday?)
|
||||
# -nologo Don't print out startup message
|
||||
# /D _STATIC_CPPLIB
|
||||
# Use static link for the C++ runtime (so msvcpnn.dll not needed)
|
||||
#
|
||||
CFLAGS_COMMON += -Zi -nologo
|
||||
CFLAGS_OPT = $(CC_OPT)
|
||||
CFLAGS_DBG = -Od $(MS_RUNTIME_DEBUG_OPTION)
|
||||
|
||||
CFLAGS_VS2010 += -Zc:wchar_t-
|
||||
|
||||
# All builds get the same runtime setting
|
||||
CFLAGS_COMMON += $(MS_RUNTIME_OPTION) $(CFLAGS_$(COMPILER_VERSION))
|
||||
|
||||
LDEBUG = /debug
|
||||
|
||||
ifeq ($(VTUNE_SUPPORT), true)
|
||||
OTHER_CFLAGS = -Z7 -Ox
|
||||
LDEBUG += /pdb:NONE
|
||||
endif
|
||||
|
||||
# VS2010, always need safe exception handlers, not needed on 64bit
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
LFLAGS_VS2010 += -SAFESEH
|
||||
endif
|
||||
|
||||
# LFLAGS are the flags given to $(LINK) and used to build the actual DLL file
|
||||
BASELFLAGS = -nologo /opt:REF /incremental:no
|
||||
|
||||
LFLAGS = $(BASELFLAGS) $(LDEBUG) $(EXTRA_LFLAGS) $(LFLAGS_$(COMPILER_VERSION))
|
||||
LDDFLAGS += $(LFLAGS_$(COMPILER_VERSION))
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# Preprocessor macro definitions
|
||||
#
|
||||
CPPFLAGS_COMMON = -DWIN32 -DIAL -D_LITTLE_ENDIAN
|
||||
ifeq ($(ARCH), amd64)
|
||||
CPPFLAGS_COMMON += -D_AMD64_ -Damd64
|
||||
else
|
||||
CPPFLAGS_COMMON += -D_X86_ -Dx86
|
||||
endif
|
||||
CPPFLAGS_COMMON += -DWIN32_LEAN_AND_MEAN
|
||||
|
||||
#
|
||||
# Output options (use specific filenames to avoid parallel compile errors)
|
||||
#
|
||||
CFLAGS_COMMON += -Fd$(OBJDIR)/$(basename $(@F)).pdb -Fm$(OBJDIR)/$(basename $(@F)).map
|
||||
|
||||
#
|
||||
# Use -wdNNNN to disable warning NNNN.
|
||||
# C4800 is a warning about bool performance casts (can't make go away)
|
||||
#
|
||||
COMPILER_WARNINGS_TO_IGNORE = 4800
|
||||
CFLAGS_COMMON += $(COMPILER_WARNINGS_TO_IGNORE:%=-wd%)
|
||||
|
||||
#
|
||||
# Treat compiler warnings as errors, if requested
|
||||
#
|
||||
CFLAGS_COMMON += -W$(COMPILER_WARNING_LEVEL)
|
||||
ifeq ($(COMPILER_WARNINGS_FATAL),true)
|
||||
CFLAGS_COMMON += -WX
|
||||
endif
|
||||
|
||||
# Turn off some warnings by default, enable them all if asked.
|
||||
ifneq ($(SHOW_ALL_WARNINGS),true)
|
||||
# The -D _CRT_SECURE_NO_DEPRECATE turns off security/deprecated warnings on
|
||||
# the standard C library functions like strcpy.
|
||||
CFLAGS_COMMON += -D _CRT_SECURE_NO_DEPRECATE
|
||||
# The -D _CRT_NONSTDC_NO_DEPRECATE turns off deprecation warnings about using
|
||||
# non-standard C POSIX functions.
|
||||
CFLAGS_COMMON += -D _CRT_NONSTDC_NO_DEPRECATE
|
||||
endif
|
||||
|
||||
CPPFLAGS_OPT = -DNDEBUG
|
||||
CPPFLAGS_DBG = -DDEBUG -DLOGGING
|
||||
|
||||
CXXFLAGS_COMMON = $(CFLAGS_COMMON)
|
||||
CXXFLAGS_OPT = $(CFLAGS_OPT)
|
||||
CXXFLAGS_DBG = $(CFLAGS_DBG)
|
||||
|
||||
ifneq ($(LIBRARY),fdlibm)
|
||||
EXTRA_LIBS += advapi32.lib
|
||||
endif
|
||||
|
||||
#
|
||||
# Path and option to link against the VM, if you have to.
|
||||
#
|
||||
JVMLIB = $(LIBDIR)/jvm.lib
|
||||
JAVALIB = $(LIBDIR)/java.lib
|
||||
|
||||
ifeq ($(CC_VERSION), msvc)
|
||||
CC_DEPEND = -FD
|
||||
CC_DEPEND_FILTER =
|
||||
else # CC_VERSION
|
||||
# not supported, but left for historical reference...
|
||||
CC_DEPEND = -MM
|
||||
CC_DEPEND_FILTER = $(SED) -e 's!$*\.$(OBJECT_SUFFIX)!$(dir $@)&!g'
|
||||
endif # CC_VERSION
|
||||
|
||||
LIBRARY_SUFFIX = dll
|
||||
LIB_SUFFIX = lib
|
||||
|
||||
# Settings for the JDI - Serviceability Agent binding.
|
||||
HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/bin
|
||||
SALIB_NAME = $(LIB_PREFIX)sawindbg.$(LIBRARY_SUFFIX)
|
||||
SAMAP_NAME = $(LIB_PREFIX)sawindbg.map
|
||||
SAPDB_NAME = $(LIB_PREFIX)sawindbg.pdb
|
||||
|
||||
ifeq ($(ARCH), ia64)
|
||||
# SA will never be supported here.
|
||||
INCLUDE_SA = false
|
||||
else
|
||||
INCLUDE_SA = true
|
||||
endif
|
||||
|
||||
# Settings for the VERSIONINFO tap on windows.
|
||||
VERSIONINFO_RESOURCE = $(BUILDDIR)/../src/windows/resource/version.rc
|
||||
|
||||
ifneq ($(JDK_BUILD_NUMBER),)
|
||||
COOKED_BUILD_NUMBER = $(shell $(ECHO) $(JDK_BUILD_NUMBER) | $(SED) -e 's/^b//' -e 's/^0//')
|
||||
else
|
||||
COOKED_BUILD_NUMBER = 0
|
||||
endif
|
||||
|
||||
# If the update version contains non-numeric characters, we need
|
||||
# to massage it into a numeric format.
|
||||
# We use the following formula:
|
||||
# JDK_UPDATE_VER = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
|
||||
#
|
||||
# Here are some examples:
|
||||
# 1.5.0 b01 -> 5,0,0,1
|
||||
# 1.5.0_10 b01 -> 5,0,100,1
|
||||
# 1.4.2 b01 -> 4,2,0,1
|
||||
# 1.4.2_02 b01 -> 4,2,20,1
|
||||
# 1.4.2_02a b01 -> 4,2,21,1
|
||||
# 1.4.2_02b b01 -> 4,2,22,1
|
||||
ifdef JDK_UPDATE_VERSION
|
||||
VTMP := $(shell $(ECHO) $(JDK_UPDATE_VERSION) | $(TR) "abcde" "12345")
|
||||
CAB_CHAR1 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 1, 1);}')
|
||||
CAB_CHAR2 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 2, 1);}')
|
||||
CAB_CHAR3 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 3, 1);}')
|
||||
JDK_UPDATE_META_TAG := U$(MARKETING_NUMBER)
|
||||
ifeq ($(CAB_CHAR3),)
|
||||
CAB_CHAR3 := 0
|
||||
endif
|
||||
ifeq ($(CAB_CHAR1), 0)
|
||||
JDK_UPDATE_VER := $(CAB_CHAR2)$(CAB_CHAR3)
|
||||
else
|
||||
JDK_UPDATE_VER := $(CAB_CHAR1)$(CAB_CHAR2)$(CAB_CHAR3)
|
||||
endif
|
||||
else
|
||||
JDK_UPDATE_VER := 0
|
||||
endif
|
||||
|
||||
#RC_FLAGS = /l 0x409 /r
|
||||
|
||||
#ifeq ($(VARIANT), OPT)
|
||||
# RC_FLAGS += -d NDEBUG
|
||||
#else
|
||||
# RC_FLAGS += $(MS_RC_DEBUG_OPTION)
|
||||
#endif
|
||||
|
||||
# Values for the RC variables defined in RC_FLAGS
|
||||
#JDK_RC_BUILD_ID = $(FULL_VERSION)
|
||||
#JDK_RC_COMPANY = $(COMPANY_NAME)
|
||||
#JDK_RC_COMPONENT = $(PRODUCT_NAME) $(JDK_RC_PLATFORM_NAME) binary
|
||||
#JDK_RC_VER = \
|
||||
# $(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
|
||||
#JDK_RC_COPYRIGHT = Copyright \xA9 $(COPYRIGHT_YEAR)
|
||||
#JDK_RC_NAME = \
|
||||
# $(PRODUCT_NAME) $(JDK_RC_PLATFORM_NAME) $(JDK_MINOR_VERSION) $(JDK_UPDATE_META_TAG)
|
||||
#JDK_RC_FVER = \
|
||||
# $(JDK_MINOR_VERSION),$(JDK_MICRO_VERSION),$(JDK_UPDATE_VER),$(COOKED_BUILD_NUMBER)
|
||||
|
||||
# JDK name required here
|
||||
#RC_FLAGS += -d "JDK_BUILD_ID=$(JDK_RC_BUILD_ID)" \
|
||||
# -d "JDK_COMPANY=$(JDK_RC_COMPANY)" \
|
||||
# -d "JDK_COMPONENT=$(JDK_RC_COMPONENT)" \
|
||||
# -d "JDK_VER=$(JDK_RC_VER)" \
|
||||
# -d "JDK_COPYRIGHT=$(JDK_RC_COPYRIGHT)" \
|
||||
# -d "JDK_NAME=$(JDK_RC_NAME)" \
|
||||
# -d "JDK_FVER=$(JDK_RC_FVER)"
|
||||
|
||||
# Enable 7-Zip LZMA file (de)compression for Java Kernel if it is available
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifneq ($(KERNEL), off)
|
||||
# This is a hack to use until 7-Zip (and UPX) bundles can be put
|
||||
# under /java/devtools.
|
||||
ifndef DEPLOY_TOPDIR
|
||||
DEPLOY_TOPDIR=$(JDK_TOPDIR)/../deploy
|
||||
endif
|
||||
# Uncomment this block to cause build failure if above assumption false
|
||||
#DCHK = $(shell if [ ! -d $(DEPLOY_TOPDIR) ] ; then \
|
||||
# $(ECHO) deploy_not_a_peer_of_j2se ; \
|
||||
#fi )
|
||||
#ifeq ($(DCHK), deploy_not_a_peer_of_j2se)
|
||||
# If a build failure points to control coming here it means
|
||||
# it means deploy is not in the same directory
|
||||
# as j2se. Java Kernel can't tolerate that for the time being.
|
||||
#endif
|
||||
EC_TMP = $(shell if [ -d $(DEPLOY_TOPDIR)/make/lzma ] ; then \
|
||||
$(ECHO) true ; \
|
||||
else \
|
||||
$(ECHO) false ; \
|
||||
fi )
|
||||
ifeq ($(EC_TMP), true)
|
||||
EXTRA_COMP_INSTALL_PATH = lib\\\\deploy\\\\lzma.dll
|
||||
# Crazy but true: deploy/make/plugin/jinstall/Makefile.jkernel does
|
||||
# not include deploy/make/common/Defs-windows.gmk, either directly
|
||||
# or indirectly. But it does include this file, so redundantly declare
|
||||
# these variables that are in deploy/make/common/Defs-windows.gmk for
|
||||
# the sake of the Java Kernel part of the deploy build. Whew!
|
||||
EXTRA_COMP_LIB_NAME = lzma.dll
|
||||
EXTRA_COMP_PATH = $(OUTPUTDIR)/tmp/deploy/lzma/win32/obj
|
||||
EXTRA_COMP_CMD_PATH = $(EXTRA_COMP_PATH)/lzma.exe
|
||||
EXTRA_COMP_LIB_PATH = $(EXTRA_COMP_PATH)/$(EXTRA_COMP_LIB_NAME)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
577
jdk/makefiles/common/Defs.gmk
Normal file
577
jdk/makefiles/common/Defs.gmk
Normal file
@ -0,0 +1,577 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Common variables used by all the Java makefiles. This file should
|
||||
# not contain rules.
|
||||
#
|
||||
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
# Check for strange explicit settings (change to empty or true)
|
||||
ifdef OPENJDK
|
||||
ifneq ($(OPENJDK),true)
|
||||
x:=$(error "OPENJDK (if defined) can only be set to true")
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# On Solaris, the 'make' utility from Sun will not work with these makefiles.
|
||||
# This little rule is only understood by Sun's make, and is harmless
|
||||
# when seen by the GNU make tool. If using Sun's make, this causes the
|
||||
# make command to fail.
|
||||
#
|
||||
SUN_MAKE_TEST:sh = echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
|
||||
|
||||
include $(SPEC)
|
||||
include $(JDK_MAKE_SHARED_DIR)/Platform.gmk
|
||||
|
||||
# Historically PLATFORM_SRC used to be src/$(PLATFORM), but we switched it to
|
||||
# src/solaris so if you want to build on Linux you didn't need a src/linux
|
||||
# directory. In an ideal world it would be called src/genunix but we are not
|
||||
# there yet.
|
||||
#
|
||||
ifndef SHARE_SRC
|
||||
SHARE_SRC = $(BUILDDIR)/../src/share
|
||||
endif
|
||||
|
||||
# Files that cannot be included in the OpenJDK distribution are
|
||||
# collected under a parent directory which contains just those files.
|
||||
ifndef CLOSED_SRC
|
||||
CLOSED_SRC = $(BUILDDIR)/../src/closed
|
||||
endif
|
||||
|
||||
# If CLOSE_SRC_INCLUDED isn't set to true, check if there's any
|
||||
# closed directory.
|
||||
ifneq ($(CLOSED_SRC_INCLUDED), true)
|
||||
CLOSED_SRC_INCLUDED := $(shell \
|
||||
if [ -d $(CLOSED_SRC) ] ; then \
|
||||
echo true; \
|
||||
else \
|
||||
echo false; \
|
||||
fi)
|
||||
endif
|
||||
|
||||
# Set OPENJDK based on CLOSED_SRC_INCLUDED
|
||||
ifeq ($(CLOSED_SRC_INCLUDED), false)
|
||||
OPENJDK = true
|
||||
endif
|
||||
|
||||
# Define where closed directories are
|
||||
ifdef OPENJDK
|
||||
CLOSED_SRC =
|
||||
CLOSED_SHARE_SRC =
|
||||
else
|
||||
ifndef CLOSED_SHARE_SRC
|
||||
CLOSED_SHARE_SRC = $(CLOSED_SRC)/share
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Get platform definitions
|
||||
#
|
||||
|
||||
include $(JDK_TOPDIR)/makefiles/common/Defs-$(PLATFORM).gmk
|
||||
|
||||
#
|
||||
# SE-Embedded support, if enabled
|
||||
#
|
||||
|
||||
include $(JDK_TOPDIR)/makefiles/common/Defs-embedded.gmk
|
||||
|
||||
#
|
||||
# Cross-compilation Settings
|
||||
#
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
# Can't run the tools we just built
|
||||
USE_ONLY_BOOTDIR_TOOLS = true
|
||||
|
||||
# When cross-compiling CC generates code for the target, but
|
||||
# some parts of the build generate C code that has to be compiled
|
||||
# and executed on the build host - HOST_CC is the 'local' compiler.
|
||||
# For linux the default is /usr/bin/gcc; other platforms need to
|
||||
# set it explicitly
|
||||
ifeq ($(PLATFORM), linux)
|
||||
ifndef HOST_CC
|
||||
HOST_CC = $(USRBIN_PATH)gcc
|
||||
endif
|
||||
endif
|
||||
else
|
||||
# Must set HOST_CC if not already set
|
||||
ifndef HOST_CC
|
||||
HOST_CC = $(CC)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Reset the VM name for client-only builds
|
||||
ifeq ($(JVM_VARIANT),client)
|
||||
VM_NAME = client
|
||||
endif
|
||||
|
||||
#
|
||||
# Freetype logic is applicable to OpenJDK only
|
||||
#
|
||||
ifdef OPENJDK
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/win32/freetype-$(ARCH)
|
||||
endif
|
||||
ifeq ($(PLATFORM), linux)
|
||||
DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(PLATFORM)/freetype-$(ARCH)
|
||||
endif
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
# historically for Solaris we have slightly different devtools
|
||||
# naming conventions
|
||||
DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/freetype-$(ARCH)
|
||||
endif
|
||||
|
||||
DEVTOOLS_FT_DIR_EXISTS = $(shell \
|
||||
if [ -f $(DEVTOOLS_FT_DIR)/include/ft2build.h ] ; then \
|
||||
echo true; \
|
||||
else \
|
||||
echo false; \
|
||||
fi)
|
||||
|
||||
ifdef ALT_FREETYPE_LIB_PATH
|
||||
FREETYPE_LIB_PATH = $(ALT_FREETYPE_LIB_PATH)
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
USING_SYSTEM_FT_LIB=true
|
||||
endif
|
||||
else
|
||||
ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
|
||||
FREETYPE_LIB_PATH = $(DEVTOOLS_FT_DIR)/lib
|
||||
else
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
FREETYPE_LIB_PATH = /usr/X11R6/lib
|
||||
else
|
||||
FREETYPE_LIB_PATH = /usr/lib
|
||||
endif
|
||||
USING_SYSTEM_FT_LIB=true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef ALT_FREETYPE_HEADERS_PATH
|
||||
FREETYPE_HEADERS_PATH = $(ALT_FREETYPE_HEADERS_PATH)
|
||||
else
|
||||
ifeq ($(DEVTOOLS_FT_DIR_EXISTS), true)
|
||||
FREETYPE_HEADERS_PATH = $(DEVTOOLS_FT_DIR)/include
|
||||
else
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
FREETYPE_HEADERS_PATH = /usr/X11R6/include
|
||||
else
|
||||
FREETYPE_HEADERS_PATH = /usr/include
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# zlib version
|
||||
#
|
||||
ZLIB_VERSION = 1.2.5
|
||||
|
||||
|
||||
#
|
||||
# Localizations for the different parts of the product beyond English
|
||||
#
|
||||
|
||||
JRE_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK
|
||||
PLUGIN_LOCALES = de es fr it ja ko pt_BR sv zh_CN zh_TW zh_HK
|
||||
JDK_LOCALES = ja zh_CN
|
||||
|
||||
#
|
||||
# A list of locales we support but don't have resource files.
|
||||
# This is defined to optimize the search of resource bundles.
|
||||
#
|
||||
JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh
|
||||
|
||||
#
|
||||
# For now, most libraries except libjava and libjvm itself link against libjvm
|
||||
# and libjava, the latter for its exported common utilities. libjava only
|
||||
# links against libjvm. Programs' makefiles take their own responsibility for
|
||||
# adding other libs.
|
||||
#
|
||||
# The makefiles for these packages do not link against libjvm and libjava.
|
||||
# This list will eventually go away and each Programs' makefiles
|
||||
# will have to explicitly declare that they want to link to libjava/libjvm
|
||||
#
|
||||
NO_JAVALIB_PKGS = \
|
||||
sun.security.mscapi \
|
||||
sun.security.krb5 \
|
||||
sun.security.pkcs11 \
|
||||
sun.security.jgss \
|
||||
sun.security.jgss.wrapper \
|
||||
sun.security.ec \
|
||||
sun.security.smartcardio \
|
||||
com.sun.security.auth.module
|
||||
|
||||
ifdef PACKAGE
|
||||
# put JAVALIB first, but do not lose any platform specific values....
|
||||
ifeq (,$(findstring $(PACKAGE),$(NO_JAVALIB_PKGS)))
|
||||
LDLIBS_COMMON = $(JAVALIB)
|
||||
endif
|
||||
endif # PACKAGE
|
||||
|
||||
#
|
||||
# Libraries that must appear ahead of libc.so on the link command line
|
||||
#
|
||||
ifdef PROGRAM
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
LDLIBS_COMMON = -lthread -ldl
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), linux)
|
||||
LDLIBS_COMMON = -ldl
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
LDLIBS_COMMON = -pthread
|
||||
endif
|
||||
|
||||
endif # PROGRAM
|
||||
|
||||
LDLIBS_COMMON += $(EXTRA_LIBS)
|
||||
|
||||
# for generated binaries
|
||||
BINDIR = $(OUTPUTDIR)/bin$(ISA_DIR)
|
||||
# for generated libraries
|
||||
LIBDIR = $(OUTPUTDIR)/lib
|
||||
ABS_LIBDIR = $(ABS_OUTPUTDIR)/lib
|
||||
# Optional place to save the windows .lib files
|
||||
LIBFILES_DIR = $(OUTPUTDIR)/libfiles
|
||||
# for ext jre files
|
||||
EXTDIR = $(LIBDIR)/ext
|
||||
# for generated include files
|
||||
INCLUDEDIR = $(OUTPUTDIR)/include
|
||||
# for generated class files
|
||||
CLASSBINDIR = $(OUTPUTDIR)/classes
|
||||
DEMOCLASSDIR = $(OUTPUTDIR)/democlasses
|
||||
# for generated tool class files
|
||||
BUILDTOOLCLASSDIR = $(OUTPUTDIR)/btclasses
|
||||
# for build tool jar files
|
||||
BUILDTOOLJARDIR = $(OUTPUTDIR)/btjars
|
||||
ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
|
||||
# for generated tool class files
|
||||
BUILDTOOLBINDIR = $(OUTPUTDIR)/btbins
|
||||
# for generated java source files
|
||||
GENSRCDIR = $(OUTPUTDIR)/gensrc
|
||||
# for generated C source files (not javah)
|
||||
GENNATIVESRCDIR = $(OUTPUTDIR)/gennativesrc
|
||||
# for imported source files
|
||||
IMPORTSRCDIR = $(OUTPUTDIR)/impsrc
|
||||
# for imported documents
|
||||
IMPORTDOCDIR = $(OUTPUTDIR)/impdoc
|
||||
# for generated demo
|
||||
DEMODIR = $(OUTPUTDIR)/demo
|
||||
NEWDEMODIR = $(OUTPUTDIR)/newdemo
|
||||
# for sample code
|
||||
SAMPLEDIR = $(OUTPUTDIR)/sample
|
||||
# for generated documentation
|
||||
DOCSDIR = $(OUTPUTDIR)/docs$(DOCSDIRSUFFIX)
|
||||
DOCSDIRSUFFIX =
|
||||
|
||||
# The MESSAGE, WARNING and ERROR files are used to store sanityck and
|
||||
# warnings and errors.
|
||||
ifndef ERROR_FILE
|
||||
ERROR_FILE = $(OUTPUTDIR)/sanityCheckErrors.txt
|
||||
endif
|
||||
ifndef WARNING_FILE
|
||||
WARNING_FILE = $(OUTPUTDIR)/sanityCheckWarnings.txt
|
||||
endif
|
||||
ifndef MESSAGE_FILE
|
||||
MESSAGE_FILE = $(OUTPUTDIR)/sanityCheckMessages.txt
|
||||
endif
|
||||
|
||||
#where the demo source can be found
|
||||
DEMOSRCDIR = $(SHARE_SRC)/demo
|
||||
|
||||
#where the sample source can be found
|
||||
SAMPLESRCDIR = $(SHARE_SRC)/sample
|
||||
|
||||
# An attempt is made to generate unique enough directories for the
|
||||
# generated files to not have name collisisons. Most build units
|
||||
# defines PRODUCT (except Release.gmk), but then they may or may
|
||||
# not define PACKAGE, PROGRAM, and LIBRARY. This code attempts to
|
||||
# generate a unique OBJDIR/CLASSHDRDIR for each build unit based
|
||||
# on which of those values are set within each build unit.
|
||||
|
||||
UNIQUE_LOCATION_STRING = tmp
|
||||
|
||||
ifneq ($(PRODUCT),)
|
||||
UNIQUE_LOCATION_STRING += /$(PRODUCT)
|
||||
endif
|
||||
|
||||
ifneq ($(PACKAGE),)
|
||||
UNIQUE_LOCATION_STRING += /$(PACKAGE)
|
||||
endif
|
||||
|
||||
ifneq ($(PROGRAM),)
|
||||
UNIQUE_LOCATION_STRING += /$(PROGRAM)
|
||||
endif
|
||||
|
||||
ifneq ($(LIBRARY),)
|
||||
ifneq ($(LIBRARY_OUTPUT),)
|
||||
UNIQUE_LOCATION_STRING += /$(LIBRARY_OUTPUT)
|
||||
else
|
||||
UNIQUE_LOCATION_STRING += /$(LIBRARY)
|
||||
endif
|
||||
endif
|
||||
|
||||
# the use of += above makes a space separated list which we need to
|
||||
# remove for filespecs.
|
||||
#
|
||||
NULLSTRING :=
|
||||
ONESPACE := $(NULLSTRING) # space before this comment is required.
|
||||
UNIQUE_PATH = $(subst $(ONESPACE),,$(UNIQUE_LOCATION_STRING))
|
||||
|
||||
# TEMPDIR is a unique general purpose directory
|
||||
# need to use 'override' because GNU Make on Linux exports the wrong
|
||||
# value.
|
||||
TEMPDIR ?= $(OUTPUTDIR)/$(UNIQUE_PATH)
|
||||
ABS_TEMPDIR ?= $(ABS_OUTPUTDIR)/$(UNIQUE_PATH)
|
||||
|
||||
# This must be created right away for pattern rules in Sanity.gmk to work.
|
||||
dummy1:=$(shell $(MKDIR) -p $(TEMPDIR))
|
||||
dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK))
|
||||
|
||||
# OBJDIRNAME is the name of the directory where the object code is to
|
||||
# be placed. It's name depends on whether the data model architecture
|
||||
# is 32-bit or not.
|
||||
ifneq ($(ARCH_DATA_MODEL), 32)
|
||||
OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
|
||||
else
|
||||
OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX)
|
||||
endif
|
||||
OBJDIR = $(TEMPDIR)/$(OBJDIRNAME)
|
||||
|
||||
# CLASSHDRDIR is where the generated C Class Header files go.
|
||||
CLASSHDRDIR = $(TEMPDIR)/CClassHeaders
|
||||
|
||||
#
|
||||
# CLASSDESTDIR can be used to specify the directory where generated classes
|
||||
# are to be placed. The default is CLASSBINDIR.
|
||||
#
|
||||
ifndef CLASSDESTDIR
|
||||
CLASSDESTDIR = $(CLASSBINDIR)
|
||||
endif
|
||||
|
||||
INCLUDES = -I. -I$(CLASSHDRDIR) \
|
||||
$(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES)
|
||||
OTHER_CPPFLAGS += $(INCLUDES)
|
||||
|
||||
#
|
||||
# vpaths. These are the default locations searched for source files.
|
||||
# GNUmakefiles of individual areas often override the default settings.
|
||||
# There are no longer default vpath entries for C and assembler files
|
||||
# so we can ensure that libraries don't get their hands on JVM files.
|
||||
#
|
||||
# We define an intermediate variable for Java files because
|
||||
# we use its value later to help define $SOURCEPATH
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
VPATH0.java = $(subst $(ONESPACE),:,$(GENSRCDIR) $(call JavaSrcDirList,,classes))
|
||||
else
|
||||
VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
|
||||
endif
|
||||
|
||||
ifdef OPENJDK
|
||||
VPATH.java = $(VPATH0.java)
|
||||
else
|
||||
#
|
||||
# If filenames are duplicated between open/closed workspaces, prefer
|
||||
# the closed files.
|
||||
#
|
||||
# Source ordering is important: some targets depend on closed files
|
||||
# replacing open ones, and thus the closed file sources must be found
|
||||
# before the open ones.
|
||||
#
|
||||
# Don't reorder without consulting the teams that depend on this behavior.
|
||||
#
|
||||
VPATH.java = $(CLOSED_PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(CLOSED_SHARE_SRC)/classes$(CLASSPATH_SEPARATOR)$(VPATH0.java)
|
||||
endif
|
||||
vpath %.java $(VPATH.java)
|
||||
vpath %.class $(CLASSBINDIR)
|
||||
vpath %.$(OBJECT_SUFFIX) $(OBJDIR)
|
||||
|
||||
#
|
||||
# VPATH.h is used elsewhere to generate include flags. By default,
|
||||
# anyone has access to the include files that the JVM area exports,
|
||||
# namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific
|
||||
# relatives.
|
||||
#
|
||||
VPATH0.h = $(PLATFORM_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/export
|
||||
ifdef OPENJDK
|
||||
VPATH.h = $(VPATH0.h)
|
||||
else
|
||||
VPATH.h = $(CLOSED_SHARE_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(VPATH0.h)
|
||||
endif
|
||||
vpath %.h $(VPATH.h)
|
||||
|
||||
#
|
||||
# Used in two ways: helps link against libjava.so. Also if overridden
|
||||
# determines where your shared library is installed.
|
||||
#
|
||||
ifndef LIB_LOCATION
|
||||
LIB_LOCATION = $(LIBDIR)/$(LIBARCH)
|
||||
endif
|
||||
|
||||
#
|
||||
# Java header and stub variables
|
||||
#
|
||||
CLASSHDRS = $(patsubst %,$(CLASSHDRDIR)/%.h,$(subst .,_,$(CLASSES.export)))
|
||||
CLASSSTUBOBJS = classstubs.$(OBJECT_SUFFIX)
|
||||
STUBPREAMBLE = $(INCLUDEDIR)/StubPreamble.h
|
||||
|
||||
#
|
||||
# Classpath seen by javac (different from the one seen by the VM
|
||||
# running javac), and useful variables.
|
||||
#
|
||||
SOURCEPATH = $(VPATH.java)
|
||||
PKG = $(shell $(EXPR) $(PACKAGE) : '\([a-z]*\)')
|
||||
PKGDIR = $(subst .,/,$(PACKAGE))
|
||||
|
||||
#
|
||||
# The java/javac/jdk variables (JAVAC_CMD, JAVA_CMD, etc.)
|
||||
#
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs-java.gmk
|
||||
|
||||
UNIQUE_PATH_PATTERN = $(subst /,.,$(UNIQUE_PATH))
|
||||
|
||||
# Run MAKE $@ for a launcher:
|
||||
# $(call make-launcher, name, mainclass, java-args, main-args)
|
||||
define make-launcher
|
||||
$(CD) $(BUILDDIR)/launchers && \
|
||||
$(MAKE) -f Makefile.launcher \
|
||||
PROGRAM=$(strip $1) \
|
||||
MAIN_CLASS=$(strip $2) \
|
||||
MAIN_JAVA_ARGS="$(strip $3)" \
|
||||
MAIN_ARGS="$(strip $4)"
|
||||
endef
|
||||
|
||||
#
|
||||
# Convenient macros
|
||||
#
|
||||
|
||||
# Prepare $@ target, remove old one and making sure directory exists
|
||||
define prep-target
|
||||
mkdir -p $(@D)
|
||||
rm -f $@
|
||||
endef
|
||||
|
||||
# Simple install of $< file to $@
|
||||
define install-file
|
||||
$(prep-target)
|
||||
$(CP) $< $@
|
||||
endef
|
||||
|
||||
define chmod-file
|
||||
$(CHMOD) $1 $@
|
||||
endef
|
||||
|
||||
define install-sym-link
|
||||
$(LN) -s $1 $@
|
||||
endef
|
||||
|
||||
define install-manifest-file
|
||||
$(install-file)
|
||||
endef
|
||||
|
||||
# Cleanup rule for after debug java run (hotspot.log file is left around)
|
||||
# (This could be an old leftover file in a read-only area, use the @- prefix)
|
||||
HOTSPOT_LOG_NAME = hotspot.log
|
||||
define java-vm-cleanup
|
||||
if [ -w $(HOTSPOT_LOG_NAME) ] ; then rm -f $(HOTSPOT_LOG_NAME); fi
|
||||
endef
|
||||
|
||||
# Current directory
|
||||
CURRENT_DIRECTORY := $(shell $(PWD))
|
||||
|
||||
#
|
||||
# Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
|
||||
# used for this file, otherwise the default settings are used.
|
||||
#
|
||||
CFLAGS_$(VARIANT)/BYFILE = $(CFLAGS_$(VARIANT)/$(@F)) \
|
||||
$(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F)))
|
||||
CXXFLAGS_$(VARIANT)/BYFILE = $(CXXFLAGS_$(VARIANT)/$(@F)) \
|
||||
$(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F)))
|
||||
|
||||
#
|
||||
# Tool flags
|
||||
#
|
||||
# EXTRA_CFLAGS are used to define cross-compilation options
|
||||
#
|
||||
ASFLAGS = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS)
|
||||
CFLAGS = $(CFLAGS_$(VARIANT)/BYFILE) $(CFLAGS_COMMON) $(OTHER_CFLAGS) $(EXTRA_CFLAGS)
|
||||
CXXFLAGS = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS) $(EXTRA_CFLAGS)
|
||||
CPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \
|
||||
$(DEFINES) $(OPTIONS:%=-D%)
|
||||
LDFLAGS = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS)
|
||||
LDLIBS = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON)
|
||||
LINTFLAGS = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \
|
||||
$(OTHER_LINTFLAGS)
|
||||
|
||||
VERSION_DEFINES = -DRELEASE='"$(RELEASE)"'
|
||||
|
||||
ifdef INSANE
|
||||
export INSANE
|
||||
endif
|
||||
|
||||
ifdef ALT_COPYRIGHT_YEAR
|
||||
COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
|
||||
else
|
||||
COPYRIGHT_YEAR := $(shell $(DATE) '+%Y')
|
||||
endif
|
||||
|
||||
ifndef OPENJDK
|
||||
include $(JDK_TOPDIR)/make/closed/common/Defs.gmk
|
||||
endif
|
||||
|
||||
# Install of imported file (JDK_IMPORT_PATH, or some other external location)
|
||||
define install-importonly-file
|
||||
@$(ECHO) "ASSEMBLY_IMPORT: $@"
|
||||
$(prep-target)
|
||||
$(CP) $< $@
|
||||
@if [ "$(PLATFORM)" = "linux" -a "$(@F)" = "libjvm.so" ] ; then \
|
||||
if [ -x /usr/sbin/selinuxenabled ] ; then \
|
||||
/usr/sbin/selinuxenabled; \
|
||||
if [ $$? = 0 ] ; then \
|
||||
$(ECHO) "/usr/bin/chcon -t textrel_shlib_t $@"; \
|
||||
/usr/bin/chcon -t textrel_shlib_t $@; \
|
||||
if [ $$? != 0 ]; then \
|
||||
echo "ERROR: Cannot chcon $@"; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi
|
||||
endef
|
||||
|
||||
define install-import-file
|
||||
$(install-importonly-file)
|
||||
endef
|
||||
|
||||
.PHONY: all build clean clobber
|
||||
415
jdk/makefiles/common/Demo.gmk
Normal file
415
jdk/makefiles/common/Demo.gmk
Normal file
@ -0,0 +1,415 @@
|
||||
#
|
||||
# Copyright (c) 2004, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
# JDK Demo building jar file.
|
||||
|
||||
# Some names are defined with LIBRARY inside the Defs.gmk file
|
||||
LIBRARY=$(DEMONAME)
|
||||
OBJDIR=$(TEMPDIR)/$(DEMONAME)
|
||||
|
||||
# Input:
|
||||
# DEMONAME - name of the demo
|
||||
# DEMO_ROOT - path to root of all demo files
|
||||
# DEMO_DESTDIR - path to final demo destination directory
|
||||
#
|
||||
# Optional Input:
|
||||
# DEMO_SRCDIR - path to source if different from DEMO_ROOT
|
||||
# DEMO_PSRCDIR - path to additional platform specific source
|
||||
# DEMO_PKGDIR - sub directory of sources we want
|
||||
# DEMO_TOPFILES - names of top-level files relative to DEMO_ROOT
|
||||
# DEMO_MAINCLASS - name of the main class for the jar manifest
|
||||
# DEMO_NATIVECLASS - name of the class with native methods
|
||||
# DEMO_DESCRIPTOR - name of service file for jar (relative to DEMO_SRCDIR)
|
||||
# DEMO_EXTRA_SRCDIR - path to directory that holds extra sources to add
|
||||
# DEMO_EXTRA_FILES - extra sources relative to DEMO_EXTRA_SRCDIR
|
||||
# DEMO_OBJECTS - extra native object files needed
|
||||
# DEMO_MANIFEST_ATTR - extra line to add to the jar manifest file
|
||||
|
||||
# Assume the source directory is the root directory if not set
|
||||
ifndef DEMO_SRCDIR
|
||||
DEMO_SRCDIR = $(DEMO_ROOT)
|
||||
endif
|
||||
ifndef DEMO_PKGDIR
|
||||
DEMO_PKGDIR = .
|
||||
endif
|
||||
|
||||
# Some demos have special needs
|
||||
ifneq ($(DEMONAME),agent_util)
|
||||
DEMO_NEEDS_AGENT_UTIL = $(findstring agent_util,$(DEMO_OBJECTS))
|
||||
endif
|
||||
ifneq ($(DEMONAME),java_crw_demo)
|
||||
DEMO_NEEDS_JAVA_CRW_DEMO = $(findstring java_crw_demo,$(DEMO_OBJECTS))
|
||||
endif
|
||||
ifeq ($(DEMONAME),hprof)
|
||||
DEMO_NEEDS_NPT = true
|
||||
endif
|
||||
|
||||
# Place to hold the build area (kind of a temp area)
|
||||
DEMO_BUILD_AREA = $(DEMOCLASSDIR)/$(PRODUCT)/$(DEMONAME)
|
||||
|
||||
# Destination "src" directory
|
||||
DEMO_BUILD_SRCDIR = $(DEMO_BUILD_AREA)/src
|
||||
|
||||
ifndef DEMO_SKIP_SRCZIP
|
||||
DEMO_BUILD_SRCZIP = $(DEMO_BUILD_AREA)/src.zip
|
||||
DEMO_SOURCE_ZIP = $(DEMO_DESTDIR)/src.zip
|
||||
endif
|
||||
|
||||
# Place to hold the jar image we are creating
|
||||
DEMO_JAR_IMAGE = $(DEMO_BUILD_AREA)/jar_image
|
||||
|
||||
# The jar manifest file we will create and use
|
||||
DEMO_MANIFEST = $(DEMO_BUILD_AREA)/manifest.mf
|
||||
|
||||
# The list of source files or options we will supply to javac
|
||||
DEMO_JAVAC_INPUT = $(DEMO_BUILD_AREA)/javac_input.txt
|
||||
|
||||
# Any name of javah file
|
||||
DEMO_JAVAH_FILE = $(DEMO_NATIVECLASS:%=$(DEMO_BUILD_SRCDIR)/%.h)
|
||||
|
||||
# Get complete list of files for this demo
|
||||
ifdef DEMO_PSRCDIR
|
||||
DEMO_ALL_FILES2 := $(shell ( $(CD) $(DEMO_PSRCDIR) \
|
||||
&& $(FIND) $(DEMO_PKGDIR) $(SCM_DIRS_prune) -o -type f -print ) \
|
||||
| $(SED) 's@^\./@@' )
|
||||
DEMO_ALL_FILES += $(DEMO_ALL_FILES2)
|
||||
endif
|
||||
ifdef DEMO_EXTRA_SRCDIR
|
||||
DEMO_ALL_FILES += $(DEMO_EXTRA_FILES)
|
||||
endif
|
||||
DEMO_ALL_FILES1 := $(shell ( $(CD) $(DEMO_SRCDIR) \
|
||||
&& $(FIND) $(DEMO_PKGDIR) $(SCM_DIRS_prune) -o -type f -print ) \
|
||||
| $(SED) 's@^\./@@' )
|
||||
DEMO_ALL_FILES += $(DEMO_ALL_FILES1)
|
||||
|
||||
# Just the java sources
|
||||
DEMO_JAVA_SOURCES = $(filter %.java,$(DEMO_ALL_FILES))
|
||||
|
||||
# Just the C and C++ sources
|
||||
DEMO_C_SRC_FILES = $(filter %.c,$(DEMO_ALL_FILES))
|
||||
DEMO_CPP_SRC_FILES = $(filter %.cpp,$(DEMO_ALL_FILES))
|
||||
|
||||
# All the native source files
|
||||
DEMO_ALL_NATIVE_SOURCES = $(DEMO_C_SRC_FILES)
|
||||
DEMO_ALL_NATIVE_SOURCES += $(DEMO_CPP_SRC_FILES)
|
||||
DEMO_ALL_NATIVE_SOURCES += $(filter %.h,$(DEMO_ALL_FILES))
|
||||
DEMO_ALL_NATIVE_SOURCES += $(filter %.hpp,$(DEMO_ALL_FILES))
|
||||
|
||||
# If we have java sources, then define the jar file we will create
|
||||
ifndef DEMO_JAR_NAME
|
||||
DEMO_JAR_NAME = $(DEMONAME).jar
|
||||
endif
|
||||
ifneq ($(strip $(DEMO_JAVA_SOURCES)),)
|
||||
DEMO_JAR = $(DEMO_DESTDIR)/$(DEMO_JAR_NAME)
|
||||
endif
|
||||
|
||||
# If we have native sources, define the native library we will create
|
||||
ifneq ($(strip $(DEMO_ALL_NATIVE_SOURCES)),)
|
||||
# Path to native library we will create
|
||||
DEMO_LIBRARY = \
|
||||
$(DEMO_DESTDIR)/lib$(ISA_DIR)/$(LIB_PREFIX)$(DEMONAME).$(LIBRARY_SUFFIX)
|
||||
# C and C++ compiler flags we need to add to standard flags
|
||||
DEMO_CPPFLAGS += -I$(DEMO_BUILD_SRCDIR)
|
||||
# If the npt library is used we need to find the npt.h file
|
||||
ifneq ($(DEMO_NEEDS_NPT),)
|
||||
# The npt library is delivered as part of the JRE
|
||||
DEMO_CPPFLAGS += -I$(SHARE_SRC)/npt -I$(PLATFORM_SRC)/npt
|
||||
endif
|
||||
# Is the shared agent_util code needed
|
||||
ifneq ($(DEMO_NEEDS_AGENT_UTIL),)
|
||||
DEMO_FULL_SOURCES += $(DEMO_BUILD_SRCDIR)/agent_util.c
|
||||
DEMO_FULL_SOURCES += $(DEMO_BUILD_SRCDIR)/agent_util.h
|
||||
endif
|
||||
# Is the shared java_crw_demo code needed
|
||||
ifneq ($(DEMO_NEEDS_JAVA_CRW_DEMO),)
|
||||
DEMO_FULL_SOURCES += $(DEMO_BUILD_SRCDIR)/java_crw_demo.c
|
||||
DEMO_FULL_SOURCES += $(DEMO_BUILD_SRCDIR)/java_crw_demo.h
|
||||
endif
|
||||
# All the native object files we need to build the library
|
||||
DEMO_OBJECTS += $(DEMO_C_SRC_FILES:%.c=%.$(OBJECT_SUFFIX)) \
|
||||
$(DEMO_CPP_SRC_FILES:%.cpp=%.$(OBJECT_SUFFIX))
|
||||
# Linking is special depending on whether we had C++ code or on windows
|
||||
DEMO_NEEDS_CPP = $(strip $(DEMO_CPP_SRC_FILES))
|
||||
CPPFLAGS += $(DEMO_CPPFLAGS)
|
||||
ifeq ($(PLATFORM),windows)
|
||||
# Note: This is a link with cl.exe, not link.exe, options differ quite
|
||||
# bit between them.
|
||||
LINK.demo = $(LINK.c)
|
||||
LDLIBS.demo = $(EXTRA_LIBS) $(LFLAGS_$(COMPILER_VERSION))
|
||||
DEMO_VERSION_INFO = $(OBJDIR)/$(LIBRARY).res
|
||||
LDLIBS.demo += $(DEMO_VERSION_INFO)
|
||||
else
|
||||
ifneq ($(DEMO_NEEDS_CPP),)
|
||||
LINK.demo = $(LINK.cpp)
|
||||
LDLIBS.demo = $(LIBCXX)
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
LDLIBS.demo += -lc
|
||||
endif
|
||||
else
|
||||
LINK.demo = $(LINK.c)
|
||||
LDLIBS.demo = $(LDLIBS)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Files that are considered resources (need to be in the jar file)
|
||||
DEMO_RESOURCES += $(filter-out %.java,$(DEMO_ALL_FILES))
|
||||
|
||||
# All destination files (top level readme files and all sources)
|
||||
# Note: We exclude the topfiles from the src tree.
|
||||
DEMO_DEST_TOPFILES = $(DEMO_TOPFILES:%=$(DEMO_DESTDIR)/%)
|
||||
DEMO_FILTERED_SOURCES = $(filter-out $(DEMO_TOPFILES),$(DEMO_ALL_FILES))
|
||||
DEMO_FULL_SOURCES += $(DEMO_FILTERED_SOURCES:%=$(DEMO_BUILD_SRCDIR)/%)
|
||||
|
||||
# Default rule
|
||||
all: build demo_info
|
||||
|
||||
# Used to populate the destination directories
|
||||
$(DEMO_DESTDIR)/%: $(DEMO_ROOT)/%
|
||||
$(install-file)
|
||||
ifneq ($(DEMO_SRCDIR),$(DEMO_ROOT))
|
||||
$(DEMO_DESTDIR)/%: $(DEMO_SRCDIR)/%
|
||||
$(install-file)
|
||||
endif
|
||||
$(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/%
|
||||
$(install-file)
|
||||
ifdef DEMO_PSRCDIR
|
||||
$(DEMO_BUILD_SRCDIR)/%: $(DEMO_PSRCDIR)/%
|
||||
$(install-file)
|
||||
endif
|
||||
ifdef DEMO_EXTRA_SRCDIR
|
||||
$(DEMO_BUILD_SRCDIR)/%: $(DEMO_EXTRA_SRCDIR)/%
|
||||
$(install-file)
|
||||
endif
|
||||
ifneq ($(DEMO_NEEDS_AGENT_UTIL),)
|
||||
$(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../agent_util/%
|
||||
$(install-file)
|
||||
endif
|
||||
ifneq ($(DEMO_NEEDS_JAVA_CRW_DEMO),)
|
||||
$(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../java_crw_demo/%
|
||||
$(install-file)
|
||||
endif
|
||||
|
||||
# Jar manifest file
|
||||
MAINMANIFEST = $(JDK_TOPDIR)/make/tools/manifest.mf
|
||||
$(DEMO_MANIFEST): $(MAINMANIFEST)
|
||||
@$(prep-target)
|
||||
$(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \
|
||||
-e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \
|
||||
$(MAINMANIFEST) >> $@
|
||||
$(ECHO) "Main-Class: $(DEMO_MAINCLASS)" >> $@
|
||||
ifdef DEMO_MANIFEST_ATTR
|
||||
$(ECHO) "$(DEMO_MANIFEST_ATTR)" >> $@
|
||||
endif
|
||||
|
||||
# Populating the jar image directory
|
||||
$(DEMO_JAR_IMAGE)/%: $(DEMO_SRCDIR)/%
|
||||
$(install-file)
|
||||
ifdef DEMO_PSRCDIR
|
||||
$(DEMO_JAR_IMAGE)/%: $(DEMO_PSRCDIR)/%
|
||||
$(install-file)
|
||||
endif
|
||||
ifdef DEMO_EXTRA_SRCDIR
|
||||
$(DEMO_JAR_IMAGE)/%: $(DEMO_EXTRA_SRCDIR)/%
|
||||
$(install-file)
|
||||
endif
|
||||
ifdef DEMO_DESCRIPTOR
|
||||
$(DEMO_JAR_IMAGE)/META-INF/services/$(DEMO_DESCRIPTOR): \
|
||||
$(DEMO_SRCDIR)/$(DEMO_DESCRIPTOR)
|
||||
$(install-file)
|
||||
endif
|
||||
|
||||
# If we are creating a jar file (we have java code)
|
||||
ifdef DEMO_JAR
|
||||
|
||||
# Input file for javac
|
||||
$(DEMO_JAVAC_INPUT): $(DEMO_JAVA_SOURCES:%=$(DEMO_BUILD_SRCDIR)/%)
|
||||
@$(prep-target)
|
||||
@for i in $(DEMO_JAVA_SOURCES) ; do \
|
||||
$(ECHO) "$(DEMO_BUILD_SRCDIR)/$$i" >> $@ ; \
|
||||
done
|
||||
|
||||
# Jar file creation
|
||||
$(DEMO_JAR): \
|
||||
$(DEMO_JAVAC_INPUT) \
|
||||
$(DEMO_MANIFEST) \
|
||||
$(DEMO_DESCRIPTOR:%=$(DEMO_JAR_IMAGE)/META-INF/services/%) \
|
||||
$(DEMO_RESOURCES:%=$(DEMO_JAR_IMAGE)/%)
|
||||
@$(prep-target)
|
||||
$(MKDIR) -p $(DEMO_JAR_IMAGE)
|
||||
$(JAVAC_CMD) -d $(DEMO_JAR_IMAGE) -sourcepath $(DEMO_BUILD_SRCDIR) \
|
||||
@$(DEMO_JAVAC_INPUT)
|
||||
ifeq ($(DEMO_INCL_SRC),true)
|
||||
$(CP) $(DEMO_JAVA_SOURCES:%=$(DEMO_BUILD_SRCDIR)/%) $(DEMO_JAR_IMAGE)
|
||||
endif
|
||||
ifeq ($(DEMO_ONLY_SRC),true)
|
||||
$(RM) -r $(DEMO_JAR_IMAGE)
|
||||
$(MKDIR) -p $(DEMO_JAR_IMAGE)
|
||||
$(CP) -r $(DEMO_BUILD_SRCDIR)/* $(DEMO_JAR_IMAGE)
|
||||
ifneq ($(DEMO_TOPFILES),)
|
||||
$(CP) $(DEMO_ROOT)/$(DEMO_TOPFILES) $(DEMO_JAR_IMAGE)
|
||||
endif
|
||||
endif
|
||||
$(BOOT_JAR_CMD) -cfm $@ $(DEMO_MANIFEST) \
|
||||
-C $(DEMO_JAR_IMAGE) . \
|
||||
$(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
endif
|
||||
|
||||
ifndef DEMO_SKIP_SRCZIP
|
||||
# Create a src.zip file
|
||||
$(DEMO_BUILD_SRCZIP): $(DEMO_FULL_SOURCES)
|
||||
@$(prep-target)
|
||||
$(CD) $(DEMO_BUILD_AREA)/src && $(ZIPEXE) -q -r ../$(@F) .
|
||||
|
||||
# Install the destination src.zip file and create the src tree
|
||||
$(DEMO_SOURCE_ZIP): $(DEMO_BUILD_SRCZIP)
|
||||
$(install-file)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),windows)
|
||||
# JDK name required here
|
||||
RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
|
||||
/D "JDK_INTERNAL_NAME=$(LIBRARY)" \
|
||||
/D "JDK_FTYPE=0x2L"
|
||||
endif
|
||||
|
||||
# Native library building
|
||||
ifdef DEMO_LIBRARY
|
||||
|
||||
# Full paths to object files
|
||||
DEMO_FULL_OBJECTS = $(DEMO_OBJECTS:%=$(OBJDIR)/%)
|
||||
VPATH=
|
||||
|
||||
# Native compile rules
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): $(DEMO_BUILD_SRCDIR)/%.c
|
||||
@$(prep-target)
|
||||
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
|
||||
ifneq ($(DEMO_NEEDS_CPP),)
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): $(DEMO_BUILD_SRCDIR)/%.cpp
|
||||
@$(prep-target)
|
||||
$(COMPILE.cpp) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
|
||||
endif
|
||||
|
||||
# Actual creation of the native shared library (C++ and C are different)
|
||||
$(DEMO_LIBRARY): $(DEMO_FULL_OBJECTS)
|
||||
@$(prep-target)
|
||||
ifeq ($(PLATFORM),windows)
|
||||
$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(DEMO_VERSION_INFO) $(VERSIONINFO_RESOURCE)
|
||||
$(LINK.demo) $(SHARED_LIBRARY_FLAG) -Fe$@ \
|
||||
$(DEMO_FULL_OBJECTS) $(LDLIBS.demo)
|
||||
else
|
||||
$(LINK.demo) $(SHARED_LIBRARY_FLAG) -o $@ \
|
||||
$(DEMO_FULL_OBJECTS) $(LDLIBS.demo)
|
||||
endif
|
||||
@$(call binary_file_verification,$@)
|
||||
|
||||
# Generation of any javah include file, make sure objects are dependent on it
|
||||
ifdef DEMO_NATIVECLASS
|
||||
$(DEMO_JAVAH_FILE): $(DEMO_JAR)
|
||||
@$(prep-target)
|
||||
$(JAVAH_CMD) -d $(DEMO_BUILD_SRCDIR) -classpath $(DEMO_JAR) \
|
||||
$(DEMO_NATIVECLASS)
|
||||
@$(java-vm-cleanup)
|
||||
$(DEMO_FULL_OBJECTS): $(DEMO_JAVAH_FILE)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# Build involves populating the destination "src" tree, building the jar and
|
||||
# native library, and creating a source bundle
|
||||
|
||||
sources: $(DEMO_FULL_SOURCES)
|
||||
@$(ECHO) "Created $@"
|
||||
|
||||
objects:
|
||||
@$(ECHO) "Created $@"
|
||||
|
||||
# Why the nested make here? It only works this way, don't know why.
|
||||
bundles: $(DEMO_BUILD_SRCZIP)
|
||||
$(RM) -r $(DEMO_DESTDIR)
|
||||
$(MKDIR) -p $(DEMO_DESTDIR)
|
||||
$(MAKE) $(DEMO_LIBRARY) $(DEMO_JAR) $(DEMO_SOURCE_ZIP) $(DEMO_DEST_TOPFILES)
|
||||
# Applets are special, no jar file, no src.zip, everything expanded.
|
||||
ifdef DEMO_IS_APPLET
|
||||
@$(ECHO) "Expanding jar file into demos area at $(DEMO_DESTDIR)"
|
||||
( $(CD) $(DEMO_DESTDIR) && \
|
||||
$(BOOT_JAR_CMD) -xfv $(DEMO_JAR_NAME) \
|
||||
$(BOOT_JAR_JFLAGS) && \
|
||||
$(RM) -r META-INF $(DEMO_JAR_NAME) && \
|
||||
$(java-vm-cleanup) )
|
||||
@( $(CD) $(DEMO_DESTDIR) && $(java-vm-cleanup) )
|
||||
@$(ECHO) "Expanding source into demos area at $(DEMO_DESTDIR)"
|
||||
( $(CD) $(DEMO_DESTDIR) && $(UNZIP) -o src.zip && $(RM) src.zip )
|
||||
endif
|
||||
|
||||
build: sources bundles
|
||||
|
||||
# Printing out a demo information line
|
||||
define printDemoSetting
|
||||
if [ "$2" != "" ] ; then $(PRINTF) "%-20s %s\n" "$1:" "$2"; fi
|
||||
endef
|
||||
|
||||
# Print out the demo information
|
||||
demo_info:
|
||||
@$(ECHO) "========================================================="
|
||||
@$(call printDemoSetting,DEMONAME,$(DEMONAME))
|
||||
@$(call printDemoSetting,DEMO_ROOT,$(DEMO_ROOT))
|
||||
@$(call printDemoSetting,DEMO_SRCDIR,$(DEMO_SRCDIR))
|
||||
@$(call printDemoSetting,DEMO_DESTDIR,$(DEMO_DESTDIR))
|
||||
@$(call printDemoSetting,DEMO_JAR,$(DEMO_JAR))
|
||||
@$(call printDemoSetting,DEMO_MANIFEST_ATTR,$(DEMO_MANIFEST_ATTR))
|
||||
@$(call printDemoSetting,DEMO_PSRCDIR,$(DEMO_PSRCDIR))
|
||||
@$(call printDemoSetting,DEMO_EXTRA_SRCDIR,$(DEMO_EXTRA_SRCDIR))
|
||||
@$(call printDemoSetting,DEMO_EXTRA_FILES,$(DEMO_EXTRA_FILES))
|
||||
@$(call printDemoSetting,DEMO_TOPFILES,$(DEMO_TOPFILES))
|
||||
@$(call printDemoSetting,DEMO_MAINCLASS,$(DEMO_MAINCLASS))
|
||||
@$(call printDemoSetting,DEMO_DESCRIPTOR,$(DEMO_DESCRIPTOR))
|
||||
@$(call printDemoSetting,DEMO_NATIVECLASS,$(DEMO_NATIVECLASS))
|
||||
@$(call printDemoSetting,DEMO_LIBRARY,$(DEMO_LIBRARY))
|
||||
@$(call printDemoSetting,DEMO_OBJECTS,$(DEMO_OBJECTS))
|
||||
@$(call printDemoSetting,DEMO_SOURCE_ZIP,$(DEMO_SOURCE_ZIP))
|
||||
@$(ECHO) "========================================================="
|
||||
|
||||
# Clean rule
|
||||
clean clobber:
|
||||
$(RM) -r $(DEMO_BUILD_AREA)
|
||||
$(RM) -r $(DEMO_DESTDIR)
|
||||
|
||||
# This should not be needed, but some versions of GNU make have a bug that
|
||||
# sometimes deleted these files for some strange and unknown reason
|
||||
# (GNU make version 3.78.1 has the problem, GNU make version 3.80 doesn't?)
|
||||
.PRECIOUS: $(DEMO_FULL_SOURCES) $(DEMO_BUILD_SRCZIP) $(DEMO_SOURCE_ZIP)
|
||||
|
||||
# List phony targets
|
||||
.PHONY: all build clean clobber demo_info \
|
||||
sources bundles
|
||||
|
||||
326
jdk/makefiles/common/Library.gmk
Normal file
326
jdk/makefiles/common/Library.gmk
Normal file
@ -0,0 +1,326 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Generic makefile for building shared libraries.
|
||||
#
|
||||
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
include $(JDK_TOPDIR)/makefiles/common/Classes.gmk
|
||||
|
||||
#
|
||||
# It is important to define these *after* including Classes.gmk
|
||||
# in order to override the values defined inthat makefile.
|
||||
#
|
||||
|
||||
ifeq ($(LIBRARY), fdlibm)
|
||||
ifeq ($(PLATFORM),windows)
|
||||
ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(FDDLIBM_SUFFIX)
|
||||
ACTUAL_LIBRARY_DIR = $(OBJDIR)
|
||||
else # PLATFORM
|
||||
ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(ARCH).$(FDDLIBM_SUFFIX)
|
||||
ACTUAL_LIBRARY_DIR = $(OBJDIR)
|
||||
endif #PLATFORM
|
||||
else # LIBRARY
|
||||
ACTUAL_LIBRARY_NAME = $(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
|
||||
ACTUAL_LIBRARY_DIR = $(LIB_LOCATION)
|
||||
endif
|
||||
ACTUAL_LIBRARY = $(ACTUAL_LIBRARY_DIR)/$(ACTUAL_LIBRARY_NAME)
|
||||
|
||||
library:: $(ACTUAL_LIBRARY)
|
||||
|
||||
FILES_o = $(patsubst %.c, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
|
||||
FILES_o += $(patsubst %.s, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_s))))
|
||||
FILES_o += $(patsubst %.cpp, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_cpp))))
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
FILES_o += $(patsubst %.m, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_objc))))
|
||||
FILES_o += $(patsubst %.mm, %.$(OBJECT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_objcpp))))
|
||||
|
||||
INCREMENTAL_BUILD=false
|
||||
|
||||
endif # PLATFORM
|
||||
|
||||
ifeq ($(INCREMENTAL_BUILD),true)
|
||||
FILES_d = $(patsubst %.c, %.$(DEPEND_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
|
||||
FILES_d += $(patsubst %.cpp, %.$(DEPEND_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_cpp))))
|
||||
endif # INCREMENTAL_BUILD
|
||||
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
# List of all lint files, one for each .c file (only for C)
|
||||
FILES_ln = $(patsubst %.c, %.$(LINT_SUFFIX), $(addprefix $(OBJDIR)/, $(notdir $(FILES_c))))
|
||||
endif
|
||||
|
||||
LINK.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
|
||||
|
||||
#
|
||||
# C++ libraries must be linked with CC.
|
||||
#
|
||||
ifdef CPLUSPLUSLIBRARY
|
||||
LINKER=$(LINK.cc)
|
||||
else
|
||||
LINKER=$(LINK.c)
|
||||
endif
|
||||
|
||||
$(ACTUAL_LIBRARY):: $(INIT) $(TEMPDIR) $(LIBDIR) $(BINDIR) $(EXTDIR) classheaders
|
||||
@$(ECHO) Building lib:$(ACTUAL_LIBRARY)
|
||||
#
|
||||
# COMPILE_APPROACH: Different approaches to compile up the native object
|
||||
# files as quickly as possible.
|
||||
# The setting of parallel works best on Unix, batch on Windows.
|
||||
#
|
||||
|
||||
COMPILE_FILES_o = $(OBJDIR)/.files_compiled
|
||||
$(COMPILE_FILES_o): $(FILES_d) $(FILES_o)
|
||||
@$(ECHO) "$<" >> $@
|
||||
clean::
|
||||
$(RM) $(COMPILE_FILES_o)
|
||||
|
||||
#
|
||||
# COMPILE_APPROACH=parallel: Will trigger compilations (just compilations) to
|
||||
# happen in parallel. Greatly decreases Unix build time, even on single CPU
|
||||
# machines, more so on multiple CPU machines. Default is 2 compiles
|
||||
# at a time, but can be adjusted with ALT_PARALLEL_COMPILE_JOBS.
|
||||
# Note that each .d file will also be dependent on it's .o file, see
|
||||
# Rules.gmk.
|
||||
# Note this does not depend on Rules.gmk to work like batch (below)
|
||||
# and this technique doesn't seem to help Windows build time nor does
|
||||
# it work very well, it's possible the Windows Visual Studio compilers
|
||||
# don't work well in a parallel situation, this needs investigation.
|
||||
#
|
||||
|
||||
ifeq ($(COMPILE_APPROACH),parallel)
|
||||
|
||||
.PHONY: library_parallel_compile
|
||||
|
||||
library_parallel_compile:
|
||||
@$(ECHO) "Begin parallel compiles: $(shell $(PWD))"
|
||||
$(MAKE) -j $(PARALLEL_COMPILE_JOBS) $(COMPILE_FILES_o)
|
||||
@$(ECHO) "Done with parallel compiles: $(shell $(PWD))"
|
||||
|
||||
$(ACTUAL_LIBRARY):: library_parallel_compile
|
||||
|
||||
endif
|
||||
|
||||
#
|
||||
# COMPILE_APPROACH=batch: Will trigger compilations (just compilations) to
|
||||
# happen in batch mode. Greatly decreases Windows build time.
|
||||
# See logic in Rules.gmk for how compiles happen, the $(MAKE) in
|
||||
# library_batch_compile below triggers the actions in Rules.gmk.
|
||||
# Note that each .d file will also be dependent on it's .o file, see
|
||||
# Rules.gmk.
|
||||
#
|
||||
ifeq ($(COMPILE_APPROACH),batch)
|
||||
|
||||
.PHONY: library_batch_compile
|
||||
|
||||
library_batch_compile:
|
||||
@$(ECHO) "Begin BATCH compiles: $(shell $(PWD))"
|
||||
$(MAKE) $(COMPILE_FILES_o)
|
||||
$(MAKE) batch_compile
|
||||
@$(ECHO) "Done with BATCH compiles: $(shell $(PWD))"
|
||||
$(MAKE) COMPILE_APPROACH=normal $(COMPILE_FILES_o)
|
||||
|
||||
$(ACTUAL_LIBRARY):: library_batch_compile
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
|
||||
#
|
||||
# Library building rules.
|
||||
#
|
||||
|
||||
$(LIBRARY).lib:: $(OBJDIR)
|
||||
|
||||
ifeq ($(LIBRARY), fdlibm)
|
||||
$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lib
|
||||
|
||||
$(OBJDIR)/$(LIBRARY).lib:: $(OBJDIR)/$(LIBRARY).lcf
|
||||
@$(prep-target)
|
||||
$(AR) -NODEFAULTLIB:MSVCRT -out:$@ -nologo \
|
||||
@$(OBJDIR)/$(LIBRARY).lcf $(OTHER_LCF) $(LDLIBS_COMMON)
|
||||
else # LIBRARY
|
||||
# build it into $(OBJDIR) so that the other generated files get put
|
||||
# there, then copy just the DLL (and MAP file) to the requested directory.
|
||||
#
|
||||
$(ACTUAL_LIBRARY):: $(OBJDIR)/$(LIBRARY).lcf
|
||||
@$(prep-target)
|
||||
@$(MKDIR) -p $(OBJDIR)
|
||||
$(LD) -dll -out:$(OBJDIR)/$(@F) \
|
||||
-map:$(OBJDIR)/$(LIBRARY).map \
|
||||
$(LFLAGS) @$(OBJDIR)/$(LIBRARY).lcf \
|
||||
$(OTHER_LCF) $(LDLIBS)
|
||||
$(CP) $(OBJDIR)/$(@F) $@
|
||||
@$(call binary_file_verification,$@)
|
||||
$(CP) $(OBJDIR)/$(LIBRARY).map $(@D)
|
||||
$(CP) $(OBJDIR)/$(LIBRARY).pdb $(@D)
|
||||
|
||||
endif # LIBRARY
|
||||
|
||||
$(OBJDIR)/$(LIBRARY).lcf: $(OBJDIR)/$(LIBRARY).res $(COMPILE_FILES_o) $(FILES_m)
|
||||
@$(prep-target)
|
||||
@$(MKDIR) -p $(TEMPDIR)
|
||||
@$(ECHO) $(FILES_o) > $@
|
||||
ifndef LOCAL_RESOURCE_FILE
|
||||
@$(ECHO) $(OBJDIR)/$(LIBRARY).res >> $@
|
||||
endif
|
||||
@$(ECHO) Created $@
|
||||
|
||||
# JDK name required here
|
||||
RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
|
||||
/D "JDK_INTERNAL_NAME=$(LIBRARY)" \
|
||||
/D "JDK_FTYPE=0x2L"
|
||||
|
||||
$(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
|
||||
ifndef LOCAL_RESOURCE_FILE
|
||||
@$(prep-target)
|
||||
$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)
|
||||
endif
|
||||
|
||||
#
|
||||
# Install a .lib file if required.
|
||||
#
|
||||
ifeq ($(INSTALL_DOT_LIB), true)
|
||||
$(ACTUAL_LIBRARY):: $(LIBDIR)/$(LIBRARY).lib
|
||||
|
||||
clean::
|
||||
-$(RM) $(LIBDIR)/$(LIBRARY).lib
|
||||
|
||||
$(LIBDIR)/$(LIBRARY).lib:: $(OBJDIR)/$(LIBRARY).lib
|
||||
$(install-file)
|
||||
|
||||
$(LIBDIR)/$(LIBRARY).dll:: $(OBJDIR)/$(LIBRARY).dll
|
||||
$(install-file)
|
||||
|
||||
endif # INSTALL_DOT_LIB
|
||||
|
||||
else # PLATFORM
|
||||
|
||||
#
|
||||
# On Solaris, use mcs to write the version into the comment section of
|
||||
# the shared library. On other platforms set this to false at the
|
||||
# make command line.
|
||||
#
|
||||
|
||||
ifneq ($(PLATFORM), macosx)
|
||||
ARFLAGS = -r
|
||||
endif
|
||||
|
||||
$(ACTUAL_LIBRARY):: $(COMPILE_FILES_o) $(FILES_m) $(FILES_reorder)
|
||||
@$(prep-target)
|
||||
@$(ECHO) "STATS: LIBRARY=$(LIBRARY), PRODUCT=$(PRODUCT), OPTIMIZATION_LEVEL=$(OPTIMIZATION_LEVEL)"
|
||||
@$(ECHO) "Rebuilding $@ because of $?"
|
||||
ifeq ($(LIBRARY), fdlibm)
|
||||
$(AR) $(ARFLAGS) $@ $(FILES_o)
|
||||
else # LIBRARY
|
||||
$(LINKER) $(SHARED_LIBRARY_FLAG) -o $@ $(FILES_o) $(LDLIBS)
|
||||
@$(call binary_file_verification,$@)
|
||||
ifeq ($(WRITE_LIBVERSION),true)
|
||||
$(MCS) -d -a "$(FULL_VERSION)" $@
|
||||
endif # WRITE_LIBVERSION
|
||||
endif # LIBRARY
|
||||
|
||||
endif # PLATFORM
|
||||
|
||||
#
|
||||
# Cross check all linted files against each other
|
||||
#
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
lint.errors : $(FILES_ln)
|
||||
$(LINT.c) $(FILES_ln) $(LDLIBS)
|
||||
endif
|
||||
|
||||
#
|
||||
# Class libraries with JNI native methods get a include to the package.
|
||||
#
|
||||
ifdef PACKAGE
|
||||
vpath %.c $(PLATFORM_SRC)/native/$(PKGDIR)
|
||||
vpath %.c $(SHARE_SRC)/native/$(PKGDIR)
|
||||
OTHER_INCLUDES += -I$(SHARE_SRC)/native/common -I$(PLATFORM_SRC)/native/common
|
||||
OTHER_INCLUDES += -I$(SHARE_SRC)/native/$(PKGDIR) \
|
||||
-I$(PLATFORM_SRC)/native/$(PKGDIR)
|
||||
endif
|
||||
|
||||
#
|
||||
# Clean/clobber rules
|
||||
#
|
||||
clean::
|
||||
$(RM) -r $(ACTUAL_LIBRARY)
|
||||
|
||||
clobber:: clean
|
||||
|
||||
#
|
||||
# INCREMENTAL_BUILD means that this workspace will be built over and over
|
||||
# possibly incrementally. This means tracking the object file dependencies
|
||||
# on include files so that sources get re-compiled when the include files
|
||||
# change. When building from scratch and doing a one time build (like
|
||||
# release engineering or nightly builds) set INCREMENTAL_BUILD=false.
|
||||
#
|
||||
|
||||
ifeq ($(INCREMENTAL_BUILD),true)
|
||||
|
||||
#
|
||||
# Workaround: gnumake sometimes says files is empty when it shouldn't
|
||||
# was: files := $(foreach file, $(wildcard $(OBJDIR)/*.$(DEPEND_SUFFIX)), $(file))
|
||||
#
|
||||
files := $(shell $(LS) $(OBJDIR)/*.$(DEPEND_SUFFIX) 2>/dev/null)
|
||||
|
||||
#
|
||||
# Only include these files if we have any.
|
||||
#
|
||||
ifneq ($(strip $(files)),)
|
||||
|
||||
include $(files)
|
||||
|
||||
endif # files
|
||||
|
||||
endif # INCREMENTAL_BUILD
|
||||
|
||||
#
|
||||
# Default dependencies
|
||||
#
|
||||
|
||||
all: build
|
||||
|
||||
build: library
|
||||
|
||||
debug:
|
||||
$(MAKE) VARIANT=DBG build
|
||||
|
||||
fastdebug:
|
||||
$(MAKE) VARIANT=DBG FASTDEBUG=true build
|
||||
|
||||
openjdk:
|
||||
$(MAKE) OPENJDK=true build
|
||||
|
||||
FORCE:
|
||||
|
||||
.PHONY: all build debug fastdebug
|
||||
|
||||
97
jdk/makefiles/common/Mapfile-vers.gmk
Normal file
97
jdk/makefiles/common/Mapfile-vers.gmk
Normal file
@ -0,0 +1,97 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for linking with mapfiles.
|
||||
#
|
||||
# NOTE: Not using a mapfile will expose all your extern functions and
|
||||
# extern data symbols as part of your interface, so unless your
|
||||
# extern names are safe from being mistaken as names from other
|
||||
# libraries, you better use a mapfile, or use a unique naming
|
||||
# convention on all your extern symbols.
|
||||
#
|
||||
# The mapfile will establish versioning by defining the exported interface.
|
||||
#
|
||||
# The mapfile can also force certain .o files or elf sections into the
|
||||
# the different segments of the resulting library/program image.
|
||||
#
|
||||
# The macro FILES_m can contain any number of mapfiles.
|
||||
#
|
||||
|
||||
# Always make sure 'all' is the default rule
|
||||
mapfile_default_rule: all
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
|
||||
ifeq ($(VARIANT), OPT)
|
||||
# OPT build MUST have a mapfile?
|
||||
ifndef FILES_m
|
||||
FILES_m = mapfile-vers
|
||||
endif
|
||||
|
||||
# If we are re-ordering functions in this solaris library, we need to make
|
||||
# sure that -xF is added to the compile lines. This option is critical and
|
||||
# enables the functions to be reordered.
|
||||
ifdef FILES_reorder
|
||||
CFLAGS_OPT += -xF
|
||||
CXXFLAGS_OPT += -xF
|
||||
endif
|
||||
|
||||
INIT += $(TEMPDIR)/mapfile-vers
|
||||
|
||||
$(TEMPDIR)/mapfile-vers : $(FILES_m) $(FILES_reorder)
|
||||
$(prep-target)
|
||||
$(CAT) $(FILES_m) > $@
|
||||
ifdef FILES_reorder
|
||||
$(SED) -e 's=OUTPUTDIR=$(OUTPUTDIR)=' $(FILES_reorder) >> $@
|
||||
endif
|
||||
endif # VARIANT
|
||||
|
||||
ifndef LDNOMAP
|
||||
LDMAPFLAGS_OPT = -M$(TEMPDIR)/mapfile-vers
|
||||
LDMAPFLAGS_DBG = $(FILES_m:%=-M%)
|
||||
endif
|
||||
|
||||
endif # PLATFORM
|
||||
|
||||
ifeq ($(PLATFORM), linux)
|
||||
|
||||
ifeq ($(VARIANT), OPT)
|
||||
# OPT build MUST have a mapfile?
|
||||
ifndef FILES_m
|
||||
FILES_m = mapfile-vers
|
||||
endif
|
||||
endif # VARIANT
|
||||
|
||||
ifndef LDNOMAP
|
||||
LDMAPFLAGS_OPT = $(FILES_m:%=-Xlinker -version-script=%)
|
||||
LDMAPFLAGS_DBG = $(FILES_m:%=-Xlinker -version-script=%)
|
||||
endif
|
||||
|
||||
endif # PLATFORM
|
||||
|
||||
LDFLAGS_OPT += $(LDMAPFLAGS_OPT)
|
||||
LDFLAGS_DBG += $(LDMAPFLAGS_DBG)
|
||||
|
||||
479
jdk/makefiles/common/Modules.gmk
Normal file
479
jdk/makefiles/common/Modules.gmk
Normal file
@ -0,0 +1,479 @@
|
||||
#
|
||||
# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
JDK_MODULE_IMAGE_DIR = $(ABS_OUTPUTDIR)/jdk-module-image
|
||||
JRE_MODULE_IMAGE_DIR = $(ABS_OUTPUTDIR)/jre-module-image
|
||||
|
||||
#
|
||||
# modules Target to build jdk and jre module image
|
||||
#
|
||||
# There is one jar file per module containing classes only.
|
||||
# All module jars are currently placed under jre/lib directory.
|
||||
#
|
||||
# Open issues that need further investigation:
|
||||
# 1. Classes in jre/lib/ext/dnsns.jar are currently put in jre/lib/jndi-dns
|
||||
# module. META-INF/services file is not installed.
|
||||
# 2. Signed jars
|
||||
# For JDK build, signed jars are copied to the build.
|
||||
# All jars in the module image are unsigned.
|
||||
|
||||
MODULE_IMAGEBINDIR = bin
|
||||
|
||||
#
|
||||
# Targets.
|
||||
#
|
||||
INITIAL_MODULE_IMAGE_JRE=initial-module-image-jre
|
||||
INITIAL_MODULE_IMAGE_JDK=initial-module-image-jdk
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
INITIAL_MODULE_IMAGE_JRE=initial-module-image-jre-sol64
|
||||
INITIAL_MODULE_IMAGE_JDK=initial-module-image-jdk-sol64
|
||||
endif
|
||||
endif
|
||||
|
||||
modules modules-clobber \
|
||||
initial-module-image-jre initial-module-image-jdk \
|
||||
initial-module-image-jre-sol64 initial-module-image-jdk-sol64 \
|
||||
trim-module-image-jre trim-module-image-jdk \
|
||||
process-module-image-jre process-module-image-jdk ::
|
||||
@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
|
||||
|
||||
# Order is important here, trim jre after jdk image is created
|
||||
modules:: gen-modules \
|
||||
$(INITIAL_MODULE_IMAGE_JRE) $(INITIAL_MODULE_IMAGE_JDK) \
|
||||
trim-module-image-jre trim-module-image-jdk \
|
||||
process-module-image-jre process-module-image-jdk
|
||||
|
||||
# Don't use these
|
||||
module-image-jre:: initial-module-image-jre trim-module-image-jre process-module-image-jre
|
||||
module-image-jdk:: initial-module-image-jdk trim-module-image-jdk process-module-image-jdk
|
||||
|
||||
#
|
||||
# Paths to these files we need
|
||||
JDK_MODULE_LICENSES = $(LICENSE_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%)
|
||||
JDK_MODULE_64_LICENSES = $(LICENSE_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%64)
|
||||
JDK_MODULE_DOCFILES = $(OTHER_DOCLIST_JDK:%=$(JDK_MODULE_IMAGE_DIR)/%)
|
||||
|
||||
JRE_MODULE_LICENSES = $(LICENSE_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%)
|
||||
JRE_MODULE_64_LICENSES = $(LICENSE_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%64)
|
||||
JRE_MODULE_DOCFILES = $(OTHER_DOCLIST_JRE:%=$(JRE_MODULE_IMAGE_DIR)/%)
|
||||
JRE_MODULE_DOCFILES += $(JRE_NAMECHANGE_DOCLIST:%=$(JRE_MODULE_IMAGE_DIR)/%$(TEXT_SUFFIX))
|
||||
|
||||
###### RULES
|
||||
|
||||
# JDK files
|
||||
$(JDK_MODULE_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%
|
||||
$(process-doc-file)
|
||||
# Removes LICENSE_VERSION or not
|
||||
ifdef LICENSE_VERSION
|
||||
$(JDK_MODULE_IMAGE_DIR)/%: $(SHARE_JDK_DOC_SRC)/%$(LICENSE_VERSION)
|
||||
$(process-doc-file)
|
||||
$(JDK_MODULE_IMAGE_DIR)/%64: $(SHARE_JDK_DOC_SRC)/%$(LICENSE_VERSION)
|
||||
$(process-doc-file)
|
||||
else
|
||||
$(JDK_MODULE_IMAGE_DIR)/%64: $(SHARE_JDK_DOC_SRC)/%
|
||||
$(process-doc-file)
|
||||
endif
|
||||
|
||||
# JRE files
|
||||
$(JRE_MODULE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%
|
||||
$(process-doc-file)
|
||||
# Add $(TEXT_SUFFIX) suffix
|
||||
ifdef TEXT_SUFFIX
|
||||
$(JRE_MODULE_IMAGE_DIR)/%$(TEXT_SUFFIX): $(SHARE_JRE_DOC_SRC)/%
|
||||
$(process-doc-file)
|
||||
endif
|
||||
# Removes LICENSE_VERSION or not
|
||||
ifdef LICENSE_VERSION
|
||||
$(JRE_MODULE_IMAGE_DIR)/%: $(SHARE_JRE_DOC_SRC)/%$(LICENSE_VERSION)
|
||||
$(process-doc-file)
|
||||
$(JRE_MODULE_IMAGE_DIR)/%64: $(SHARE_JRE_DOC_SRC)/%$(LICENSE_VERSION)
|
||||
$(process-doc-file)
|
||||
else
|
||||
$(JRE_MODULE_IMAGE_DIR)/%64: $(SHARE_JRE_DOC_SRC)/%
|
||||
$(process-doc-file)
|
||||
endif
|
||||
|
||||
######################################################
|
||||
# JRE Image
|
||||
######################################################
|
||||
|
||||
MODULES_LIST = $(MODULES_TEMPDIR)/classlist/modules.list
|
||||
|
||||
# Modules in the jre/lib/security directory
|
||||
POLICY_MODULES = US_export_policy local_policy
|
||||
|
||||
# Modules in the modules/ext directory
|
||||
EXT_MODULES = localedata security-sunec security-sunjce
|
||||
|
||||
# Build PKCS#11 on all platforms except 64-bit Windows.
|
||||
PKCS11 = security-sunpkcs11
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
ifeq ($(PLATFORM), windows)
|
||||
PKCS11 =
|
||||
endif
|
||||
endif
|
||||
|
||||
EXT_MODULES += $(PKCS11)
|
||||
|
||||
# Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform.
|
||||
ifeq ($(PLATFORM), windows)
|
||||
ifneq ($(ARCH_DATA_MODEL), 64)
|
||||
EXT_MODULES += security-sunmscapi
|
||||
endif
|
||||
endif
|
||||
|
||||
# Modules for JDK only
|
||||
JDK_MODULES = tools
|
||||
|
||||
gen-modules:
|
||||
$(CD) modules; $(MAKE) all
|
||||
|
||||
initial-module-image-jre-setup:
|
||||
$(RM) -r $(JRE_MODULE_IMAGE_DIR)
|
||||
$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)
|
||||
|
||||
# 64-bit solaris jre image contains only the 64-bit add-on files.
|
||||
initial-module-image-jre-sol64:: initial-module-image-jre-setup \
|
||||
$(JRE_MODULE_LICENSES) $(JRE_MODULE_64_LICENSES)
|
||||
@# Use tar instead of cp to preserve the symbolic links
|
||||
for dir in bin lib ; do \
|
||||
( $(CD) $(OUTPUTDIR) && \
|
||||
$(TAR) cf - `$(FIND) $$dir -name '$(ARCH)' -print` | \
|
||||
($(CD) $(JRE_MODULE_IMAGE_DIR) && $(TAR) xf -) ) ; \
|
||||
done
|
||||
@# Remove some files from the jre area
|
||||
for t in $(NOTJRETOOLS) ; do \
|
||||
$(RM) $(JRE_MODULE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
|
||||
done
|
||||
$(RM) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'orb.idl'`
|
||||
$(RM) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'ir.idl'`
|
||||
|
||||
# Construct an initial jre image (initial jdk jre) no trimming or stripping
|
||||
initial-module-image-jre:: initial-module-image-jre-setup \
|
||||
$(JRE_LICENSES) $(JRE_MODULE_DOCFILES) \
|
||||
$(BUILDMETAINDEX_JARFILE)
|
||||
@# Copy in bin directory
|
||||
$(CD) $(OUTPUTDIR) && $(FIND) bin -depth | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR)
|
||||
@# CTE plugin security change require new empty directory lib/applet
|
||||
$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/applet
|
||||
@# Copy files but not .jar in lib directory
|
||||
$(CD) $(OUTPUTDIR) && $(FIND) lib -depth | $(EGREP) -v ".jar$$" | $(CPIO) -pdum $(JRE_MODULE_IMAGE_DIR)
|
||||
@#
|
||||
@# copy modules to jre/lib
|
||||
@#
|
||||
for m in `$(NAWK) '{print $$1}' $(MODULES_LIST)` ; do \
|
||||
$(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib ; \
|
||||
done
|
||||
$(MKDIR) -p $(JRE_MODULE_IMAGE_DIR)/lib/ext
|
||||
for m in $(EXT_MODULES) ; do \
|
||||
$(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/ext ; \
|
||||
done
|
||||
for m in $(POLICY_MODULES) ; do \
|
||||
$(MV) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar $(JRE_MODULE_IMAGE_DIR)/lib/security; \
|
||||
done
|
||||
@# Remove jdk modules
|
||||
for m in $(JDK_MODULES) ; do \
|
||||
$(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$$m.jar ; \
|
||||
done
|
||||
|
||||
@# Make sure all directories are read/execute for everyone
|
||||
$(CHMOD) a+rx `$(FIND) $(JRE_MODULE_IMAGE_DIR) -type d`
|
||||
@# Remove some files from the jre area
|
||||
for t in $(NOTJRETOOLS) ; do \
|
||||
$(RM) $(JRE_MODULE_IMAGE_DIR)/bin$(ISA_DIR)/$$t ; \
|
||||
done
|
||||
@# Remove orb.idl and ir.idl from jre
|
||||
$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'orb.idl' -exec $(RM) \{} \;
|
||||
$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -name 'ir.idl' -exec $(RM) \{} \;
|
||||
@# Generate meta-index to make boot and extension class loaders lazier
|
||||
$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && \
|
||||
$(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
|
||||
-o meta-index *.jar
|
||||
@$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && $(java-vm-cleanup)
|
||||
$(CD) $(JRE_MODULE_IMAGE_DIR)/lib/ext && \
|
||||
$(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \
|
||||
-o meta-index *.jar
|
||||
@$(CD) $(JRE_MODULE_IMAGE_DIR)/lib/ext && $(java-vm-cleanup)
|
||||
ifeq ($(PLATFORM), windows)
|
||||
@# Remove certain *.lib files
|
||||
$(CD) $(JRE_MODULE_IMAGE_DIR)/lib && \
|
||||
$(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \
|
||||
hpi.$(LIB_SUFFIX) awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
@# The Java Kernel JRE image ships with a special VM. It is not included
|
||||
@# in the full JRE image, so remove it. Also, is it only for 32-bit windows.
|
||||
$(CD) $(JRE_MODULE_IMAGE_DIR)/bin && $(RM) -r kernel
|
||||
endif
|
||||
endif # Windows
|
||||
ifneq ($(PLATFORM), windows)
|
||||
$(call copy-man-pages,$(JRE_MODULE_IMAGE_DIR),$(JRE_MAN_PAGES))
|
||||
endif # !windows
|
||||
|
||||
# Trim out any extra files not for the jre shipment but wanted in the jdk jre.
|
||||
# (Note the jdk WILL want the jre image before this trimming)
|
||||
# Removes server VM on Windows 32bit.
|
||||
# Remove certain shared libraries that should not be in the jre image
|
||||
# but should be in the jdk jre image.
|
||||
trim-module-image-jre::
|
||||
ifeq ($(PLATFORM), windows)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
$(RM) -r $(JRE_MODULE_IMAGE_DIR)/bin/server
|
||||
endif
|
||||
ifdef NOTJRE_SHARED_LIBS
|
||||
for l in $(NOTJRE_SHARED_LIBS) ; do \
|
||||
$(RM) $(JRE_MODULE_IMAGE_DIR)/bin/$$l ; \
|
||||
done ;
|
||||
endif
|
||||
else # PLATFORM
|
||||
ifdef NOTJRE_SHARED_LIBS
|
||||
for l in $(NOTJRE_SHARED_LIBS) ; do \
|
||||
$(RM) $(JRE_MODULE_IMAGE_DIR)/lib/$(LIBARCH)/$$l ; \
|
||||
done ;
|
||||
endif
|
||||
endif # PLATFORM
|
||||
|
||||
# Get list of all Elf files in the jre
|
||||
JRE_MODULE_ELF_LIST=$(MODULES_TEMPDIR)/jre-elf-files.list
|
||||
$(JRE_MODULE_ELF_LIST):
|
||||
@$(prep-target)
|
||||
ifneq ($(PLATFORM), windows)
|
||||
$(RM) $@
|
||||
$(FIND) $(JRE_MODULE_IMAGE_DIR)/lib -type f -name \*.$(LIB_SUFFIX) >> $@
|
||||
$(FILE) `$(FIND) $(JRE_MODULE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
|
||||
| $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
|
||||
endif
|
||||
|
||||
# Post process the image (strips and mcs on Elf files we are shipping)
|
||||
# (Note the jdk WILL want the jre image before this processing)
|
||||
process-module-image-jre:: $(JRE_MODULE_ELF_LIST)
|
||||
ifneq ($(POST_STRIP_PROCESS), )
|
||||
for f in `$(CAT) $(JRE_MODULE_ELF_LIST)`; do \
|
||||
$(CHMOD) u+w $${f}; \
|
||||
$(ECHO) $(POST_STRIP_PROCESS) $${f}; \
|
||||
$(POST_STRIP_PROCESS) $${f}; \
|
||||
$(CHMOD) go-w $${f}; \
|
||||
done
|
||||
endif
|
||||
ifneq ($(POST_MCS_PROCESS), )
|
||||
for f in `$(CAT) $(JRE_MODULE_ELF_LIST)`; do \
|
||||
$(CHMOD) u+w $${f}; \
|
||||
$(ECHO) $(POST_MCS_PROCESS) $${f}; \
|
||||
$(POST_MCS_PROCESS) $${f}; \
|
||||
$(CHMOD) go-w $${f}; \
|
||||
done
|
||||
endif
|
||||
$(RM) $(JRE_MODULE_ELF_LIST)
|
||||
|
||||
######################################################
|
||||
# JDK Image
|
||||
######################################################
|
||||
# Note: cpio ($(CPIO)) sometimes leaves directories without rx access.
|
||||
|
||||
initial-module-image-jdk-setup:
|
||||
$(RM) -r $(JDK_MODULE_IMAGE_DIR)
|
||||
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/jre
|
||||
($(CD) $(JRE_MODULE_IMAGE_DIR) && $(FIND) . -depth -print \
|
||||
| $(CPIO) -pdum $(JDK_MODULE_IMAGE_DIR)/jre )
|
||||
$(RM) -rf $(JDK_MODULE_IMAGE_DIR)/jre/man
|
||||
$(CHMOD) a+rx `$(FIND) $(JDK_MODULE_IMAGE_DIR) -type d`
|
||||
|
||||
initial-module-image-jdk64-bindemos:
|
||||
for dir in bin demo ; do \
|
||||
( $(CD) $(OUTPUTDIR) && \
|
||||
$(TAR) cf - `$(FIND) $$dir -name '$(LIBARCH)' -print` | \
|
||||
($(CD) $(JDK_MODULE_IMAGE_DIR) && $(TAR) xf -) ) ; \
|
||||
done
|
||||
|
||||
# Solaris 64 bit image is special
|
||||
initial-module-image-jdk-sol64:: initial-module-image-jdk-setup \
|
||||
initial-module-image-jdk64-bindemos \
|
||||
$(JDK_MODULE_LICENSES) $(JDK_MODULARLIZED_64_LICENSES)
|
||||
|
||||
# DB files to add
|
||||
ifeq ($(OPENJDK),true)
|
||||
|
||||
initial-module-image-jdk-db:
|
||||
|
||||
else
|
||||
|
||||
# Create the list of db *.zip files to bundle with jdk
|
||||
ABS_DB_PATH :=$(call FullPath,$(CLOSED_SHARE_SRC)/db)
|
||||
DB_ZIP_LIST = $(shell $(LS) $(ABS_DB_PATH)/*.zip 2>/dev/null)
|
||||
|
||||
initial-module-image-jdk-db: $(DB_ZIP_LIST)
|
||||
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/db
|
||||
for d in $(DB_ZIP_LIST); do \
|
||||
($(CD) $(JDK_MODULE_IMAGE_DIR)/db && $(UNZIP) -o $$d); \
|
||||
done
|
||||
|
||||
endif
|
||||
|
||||
# Standard jdk image
|
||||
initial-module-image-jdk:: initial-module-image-jdk-setup \
|
||||
initial-module-image-jdk-db \
|
||||
$(JDK_MODULE_LICENSES) $(JDK_MODULE_DOCFILES)
|
||||
$(MKDIR) $(JDK_MODULE_IMAGE_DIR)/lib
|
||||
@#
|
||||
@# copy jdk modules to jdk/lib
|
||||
@#
|
||||
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/lib
|
||||
for m in $(JDK_MODULES) ; do \
|
||||
$(CP) $(MODULES_DIR)/$$m/lib/$$m.jar $(JDK_MODULE_IMAGE_DIR)/lib ; \
|
||||
done
|
||||
ifeq ($(PLATFORM), windows)
|
||||
@#
|
||||
@# lib/
|
||||
@#
|
||||
$(CP) $(LIBDIR)/$(LIB_PREFIX)jvm.$(LIB_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/lib
|
||||
$(CP) $(LIBDIR)/$(LIB_PREFIX)jawt.$(LIB_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/lib
|
||||
@#
|
||||
@# bin/
|
||||
@#
|
||||
@# copy all EXE files and only certain DLL files from BINDIR
|
||||
$(MKDIR) -p $(JDK_MODULE_IMAGE_DIR)/bin
|
||||
$(CP) $(BINDIR)/*$(EXE_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
|
||||
$(CP) $(BINDIR)/jli.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
|
||||
ifeq ($(COMPILER_VERSION), VS2010)
|
||||
$(CP) $(BINDIR)/msvc*100.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
|
||||
endif
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifeq ($(COMPILER_VERSION), VS2003)
|
||||
$(CP) $(BINDIR)/msvc*71.$(LIBRARY_SUFFIX) $(JDK_MODULE_IMAGE_DIR)/bin
|
||||
endif
|
||||
endif
|
||||
else # PLATFORM
|
||||
@#
|
||||
@# bin/
|
||||
@#
|
||||
($(CD) $(BINDIR)/.. && $(TAR) cf - \
|
||||
`$(FIND) bin \( -type f -o -type l \) -print `) | \
|
||||
($(CD) $(JDK_MODULE_IMAGE_DIR) && $(TAR) xf -)
|
||||
endif # PLATFORM
|
||||
@#
|
||||
@# lib/ct.sym
|
||||
@#
|
||||
$(MKDIR) -p $(OUTPUTDIR)/symbols/META-INF/sym
|
||||
$(JAVAC_CMD) -XDprocess.packages -proc:only \
|
||||
-processor com.sun.tools.javac.sym.CreateSymbols \
|
||||
-Acom.sun.tools.javac.sym.Jar=$(RT_JAR) \
|
||||
-Acom.sun.tools.javac.sym.Dest=$(OUTPUTDIR)/symbols/META-INF/sym/rt.jar \
|
||||
$(CORE_PKGS) $(NON_CORE_PKGS) $(EXCLUDE_PROPWARN_PKGS)
|
||||
$(BOOT_JAR_CMD) c0f $(LIBDIR)/ct.sym \
|
||||
-C $(OUTPUTDIR)/symbols META-INF $(BOOT_JAR_JFLAGS)
|
||||
@$(java-vm-cleanup)
|
||||
$(CP) $(LIBDIR)/ct.sym $(JDK_MODULE_IMAGE_DIR)/lib/ct.sym
|
||||
@#
|
||||
@# CORBA supported orb.idl and ir.idl should be copied to lib
|
||||
@#
|
||||
$(CP) $(LIBDIR)/orb.idl $(JDK_MODULE_IMAGE_DIR)/lib/orb.idl
|
||||
$(CP) $(LIBDIR)/ir.idl $(JDK_MODULE_IMAGE_DIR)/lib/ir.idl
|
||||
ifeq ($(PLATFORM), linux)
|
||||
@#
|
||||
@# on Linux copy jexec from jre/lib to /lib
|
||||
@#
|
||||
$(CP) $(LIBDIR)/jexec $(JDK_MODULE_IMAGE_DIR)/lib/jexec
|
||||
endif # PLATFORM
|
||||
@#
|
||||
@# demo, include
|
||||
@#
|
||||
$(CP) -r -f $(DEMODIR) $(JDK_MODULE_IMAGE_DIR)
|
||||
$(CP) -r -f $(SAMPLEDIR) $(JDK_MODULE_IMAGE_DIR)
|
||||
$(CP) -r $(INCLUDEDIR) $(JDK_MODULE_IMAGE_DIR)
|
||||
@#
|
||||
@# Swing BeanInfo generation
|
||||
@#
|
||||
$(CD) javax/swing/beaninfo && $(MAKE) JDK_IMAGE_DIR=$(JDK_MODULE_IMAGE_DIR) swing-1.2-beans
|
||||
ifneq ($(PLATFORM), windows)
|
||||
$(call copy-man-pages,$(JDK_MODULE_IMAGE_DIR),$(JDK_MAN_PAGES))
|
||||
endif # !windows
|
||||
|
||||
# Trim out files we don't want to ship
|
||||
trim-module-image-jdk::
|
||||
@# Remove tools that should not be part of SDK.
|
||||
for t in $(NOTJDKTOOLS); do \
|
||||
$(RM) $(JDK_MODULE_IMAGE_DIR)/bin/$${t}$(EXE_SUFFIX) \
|
||||
$(JDK_MODULE_IMAGE_DIR)/bin/*/native_threads/$${t}$(EXE_SUFFIX); \
|
||||
done
|
||||
|
||||
# Get list of Elf files in the jdk
|
||||
JDK_MODULE_ELF_LIST=$(MODULES_TEMPDIR)/jdk-elf-files.list
|
||||
$(JDK_MODULE_ELF_LIST):
|
||||
@$(prep-target)
|
||||
ifneq ($(PLATFORM), windows)
|
||||
$(RM) $@
|
||||
$(FIND) $(JDK_MODULE_IMAGE_DIR)/jre/lib -type f -name \*.$(LIB_SUFFIX) >> $@
|
||||
$(FILE) `$(FIND) $(JDK_MODULE_IMAGE_DIR)/jre/bin -type f -name \*$(EXE_SUFFIX)` \
|
||||
| $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
|
||||
file `$(FIND) $(JDK_MODULE_IMAGE_DIR)/bin -type f -name \*$(EXE_SUFFIX)` \
|
||||
| $(EGREP) 'ELF' | $(CUT) -d':' -f1 >> $@
|
||||
endif
|
||||
|
||||
# Post process the image (strips and mcs on files we are shipping)
|
||||
process-module-image-jdk:: $(JDK_MODULE_ELF_LIST)
|
||||
ifneq ($(POST_STRIP_PROCESS), )
|
||||
for f in `$(CAT) $(JDK_MODULE_ELF_LIST)`; do \
|
||||
$(CHMOD) u+w $${f}; \
|
||||
$(ECHO) $(POST_STRIP_PROCESS) $${f}; \
|
||||
$(POST_STRIP_PROCESS) $${f}; \
|
||||
$(CHMOD) go-w $${f}; \
|
||||
done
|
||||
endif
|
||||
ifneq ($(POST_MCS_PROCESS), )
|
||||
for f in `$(CAT) $(JDK_MODULE_ELF_LIST)`; do \
|
||||
$(CHMOD) u+w $${f}; \
|
||||
$(ECHO) $(POST_MCS_PROCESS) $${f}; \
|
||||
$(POST_MCS_PROCESS) $${f}; \
|
||||
$(CHMOD) go-w $${f}; \
|
||||
done
|
||||
endif
|
||||
$(RM) $(JDK_MODULE_ELF_LIST)
|
||||
|
||||
######################################################
|
||||
# clobber
|
||||
######################################################
|
||||
modules-clobber::
|
||||
$(RM) -r $(JDK_MODULE_IMAGE_DIR)
|
||||
$(RM) -r $(JRE_MODULE_IMAGE_DIR)
|
||||
|
||||
modules modules-clobber::
|
||||
@$(ECHO) ">>>Finished making "$@" @ `$(DATE)` ..."
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
.PHONY: modules module-image-jre module-image-jdk \
|
||||
initial-module-image-jre initial-module-image-jdk \
|
||||
initial-module-image-jre-sol64 initial-module-image-jdk-sol64 \
|
||||
initial-module-image-jdk-setup \
|
||||
initial-module-image-jdk-db \
|
||||
initial-module-image-jdk64-bindemos \
|
||||
initial-module-image-jre-setup \
|
||||
trim-module-image-jre trim-module-image-jdk \
|
||||
process-module-image-jre process-module-image-jdk \
|
||||
install-previous-jre install-previous-jdk \
|
||||
modules-clobber
|
||||
|
||||
# Force rule
|
||||
FRC:
|
||||
|
||||
319
jdk/makefiles/common/Program.gmk
Normal file
319
jdk/makefiles/common/Program.gmk
Normal file
@ -0,0 +1,319 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Generic makefile for building executables.
|
||||
#
|
||||
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
#
|
||||
# If building programs, use a normal compile approach
|
||||
#
|
||||
ifeq ($(COMPILE_APPROACH),batch)
|
||||
override COMPILE_APPROACH = normal
|
||||
endif
|
||||
|
||||
# set the platform specific directory for macosx, also this platform shares
|
||||
# substantial family ties with its siblings (solaris and linux), thus we add
|
||||
# solaris src path to its compilation dependencies.
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
LAUNCHER_PLATFORM_SRC = $(BUILDDIR)/../src/macosx
|
||||
LAUNCHER_SOLARIS_PLATFORM_SRC = $(BUILDDIR)/../src/solaris
|
||||
else
|
||||
LAUNCHER_PLATFORM_SRC = $(PLATFORM_SRC)
|
||||
endif
|
||||
|
||||
ifndef LAUNCHER_SHARE_SRC
|
||||
LAUNCHER_SHARE_SRC = $(SHARE_SRC)
|
||||
endif
|
||||
|
||||
ACTUAL_PROGRAM_NAME = $(PROGRAM)$(EXE_SUFFIX)
|
||||
ACTUAL_PROGRAM_DIR = $(BINDIR)
|
||||
ACTUAL_PROGRAM = $(ACTUAL_PROGRAM_DIR)/$(ACTUAL_PROGRAM_NAME)
|
||||
|
||||
# Make sure the default rule is all
|
||||
program_default_rule: all
|
||||
|
||||
program: $(ACTUAL_PROGRAM)
|
||||
|
||||
# Work-around for missing processor specific mapfiles
|
||||
ifndef CROSS_COMPILE_ARCH
|
||||
# reuse the mapfiles in the launcher's directory, the same should
|
||||
# be applicable to the tool launchers as well.
|
||||
FILES_m = $(BUILDDIR)/java/main/java/mapfile-$(ARCH)
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
endif
|
||||
|
||||
include $(JDK_TOPDIR)/makefiles/common/Rules.gmk
|
||||
|
||||
ifdef NEVER_ACT_AS_SERVER_CLASS_MACHINE
|
||||
OTHER_CPPFLAGS += -DNEVER_ACT_AS_SERVER_CLASS_MACHINE
|
||||
endif
|
||||
|
||||
#
|
||||
# Create a dependency on libjli (Java Launcher Infrastructure)
|
||||
#
|
||||
# On UNIX, this is a relative dependency using $ORIGIN. Unfortunately, to
|
||||
# do this reliably on Linux takes a different syntax than Solaris.
|
||||
#
|
||||
# On Windows, this is done by using the same directory as the executable
|
||||
# itself, as with all the Windows libraries.
|
||||
#
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
ifneq ($(ARCH), universal)
|
||||
LDFLAGS += -Wl,-all_load
|
||||
endif
|
||||
LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
|
||||
|
||||
ifeq ($(SYSTEM_ZLIB),true)
|
||||
OTHER_LDLIBS += -lz
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq (,$(findstring $(PLATFORM), linux solaris)) # UNIX systems
|
||||
LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
|
||||
OTHER_LDLIBS += -ljli
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
LDFLAGS += -R \$$ORIGIN/../lib/$(LIBARCH)/jli
|
||||
LDFLAGS += -R \$$ORIGIN/../jre/lib/$(LIBARCH)/jli
|
||||
else
|
||||
LDFLAGS += -R \$$ORIGIN/../../lib/$(LIBARCH)/jli
|
||||
LDFLAGS += -R \$$ORIGIN/../../jre/lib/$(LIBARCH)/jli
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM), linux)
|
||||
LDFLAGS += $(LDFLAG_Z_ORIGIN)
|
||||
LDFLAGS += -Wl,--allow-shlib-undefined
|
||||
LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../lib/$(LIBARCH)/jli
|
||||
LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/../jre/lib/$(LIBARCH)/jli
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
JLI_LCF = $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/jli.lcf
|
||||
ifdef STATIC_JLI
|
||||
LDFLAGS += -libpath:$(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static
|
||||
else
|
||||
LDFLAGS += -libpath:$(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)
|
||||
endif
|
||||
OTHER_LDLIBS += jli.lib
|
||||
endif
|
||||
|
||||
#
|
||||
# Launcher specific files.
|
||||
#
|
||||
FILES_o = $(OBJDIR)/main.$(OBJECT_SUFFIX)
|
||||
|
||||
$(ACTUAL_PROGRAM):: classes $(INIT)
|
||||
|
||||
#
|
||||
# Windows only
|
||||
#
|
||||
ifeq ($(PLATFORM), windows)
|
||||
# JDK name required here
|
||||
RC_FLAGS += /D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
|
||||
/D "JDK_INTERNAL_NAME=$(PROGRAM)" \
|
||||
/D "JDK_FTYPE=0x1L"
|
||||
|
||||
$(OBJDIR)/$(PROGRAM).res: $(VERSIONINFO_RESOURCE)
|
||||
@$(prep-target)
|
||||
ifndef LOCAL_RESOURCE_FILE
|
||||
$(RC) $(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)
|
||||
endif
|
||||
|
||||
$(OBJDIR)/$(PROGRAM).lcf: $(OBJDIR)/$(PROGRAM).res $(FILES_o)
|
||||
@$(prep-target)
|
||||
@$(ECHO) $(FILES_o) > $@
|
||||
ifndef LOCAL_RESOURCE_FILE
|
||||
@$(ECHO) $(OBJDIR)/$(PROGRAM).res >> $@
|
||||
endif
|
||||
@$(ECHO) setargv.obj >> $@
|
||||
@$(ECHO) Created $@
|
||||
|
||||
$(ACTUAL_PROGRAM):: $(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX)
|
||||
@$(install-file)
|
||||
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
STACK_SIZE=327680
|
||||
else
|
||||
# We need more Stack for Windows 64bit
|
||||
STACK_SIZE=1048576
|
||||
endif
|
||||
|
||||
IMVERSION=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
|
||||
$(OBJDIR)/$(PROGRAM).exe.manifest: $(JDK_TOPDIR)/src/windows/resource/java.manifest
|
||||
@$(prep-target)
|
||||
$(SED) 's%IMVERSION%$(IMVERSION)%g;s%PROGRAM%$(PROGRAM)%g' $< > $@
|
||||
|
||||
# We used a hand-crafted manifest file for all executables.
|
||||
# It is tweaked to embed the build number and executable name.
|
||||
# Use ";#2" for .dll and ";#1" for .exe in the MT command below:
|
||||
$(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX):: $(OBJDIR)/$(PROGRAM).lcf $(FILES_o) $(JLI_LCF) $(OBJDIR)/$(PROGRAM).exe.manifest
|
||||
@$(prep-target)
|
||||
@set -- $?; \
|
||||
$(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
|
||||
$(LD) -out:$@ /STACK:$(STACK_SIZE) \
|
||||
-map:$(OBJDIR)/$(PROGRAM).map $(LFLAGS) $(LDFLAGS) \
|
||||
@$(OBJDIR)/$(PROGRAM).lcf $(LDLIBS)
|
||||
ifdef MT
|
||||
$(MT) /manifest $(OBJDIR)/$(PROGRAM).exe.manifest /outputresource:$@;#1
|
||||
endif
|
||||
@$(call binary_file_verification,$@)
|
||||
else
|
||||
#
|
||||
# Note that we have to link -lthread even when USE_PTHREADS is true.
|
||||
# This is becuase checkForCorrectLibthread() croaks otherwise.
|
||||
#
|
||||
LIBTHREAD = -lthread
|
||||
ifeq ($(USE_PTHREADS),true)
|
||||
THREADLIBS = -lpthread $(LIBTHREAD)
|
||||
else
|
||||
THREADLIBS = $(LIBTHREAD)
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
THREADLIBS = -pthread
|
||||
# Needed for linking the various launchers
|
||||
LDFLAGS += -framework Cocoa -framework Security \
|
||||
-framework ApplicationServices
|
||||
OTHER_CPPFLAGS += -DPACKAGE_PATH='"$(PACKAGE_PATH)"'
|
||||
|
||||
# Default Info.plist file for the command line tools. This gets overridden by
|
||||
# some of the jvmstat tools so that they have task_for_pid() privileges
|
||||
ifndef INFO_PLIST_FILE
|
||||
INFO_PLIST_FILE = Info-cmdline.plist
|
||||
endif
|
||||
LDFLAGS += -sectcreate __TEXT __info_plist $(LAUNCHER_PLATFORM_SRC)/lib/$(INFO_PLIST_FILE)
|
||||
else
|
||||
INFO_PLIST_FILE=
|
||||
endif
|
||||
|
||||
#
|
||||
# This rule only applies on unix. It supports quantify and its ilk.
|
||||
#
|
||||
$(ACTUAL_PROGRAM):: $(FILES_o)
|
||||
@$(prep-target)
|
||||
@set -- $?; \
|
||||
$(ECHO) Rebuilding $@ because of $$1 $$2 $$3 $$4 $$5 $$6 $${7:+...};
|
||||
@$(MKDIR) -p $(TEMPDIR)
|
||||
$(LINK_PRE_CMD) $(CC) $(CC_OBJECT_OUTPUT_FLAG)$@ $(LDFLAGS) \
|
||||
$(FILES_o) $(THREADLIBS) $(LDLIBS)
|
||||
ifeq ($(findstring privileged, $(INFO_PLIST_FILE)), privileged)
|
||||
-codesign -s openjdk_codesign $@
|
||||
endif
|
||||
@$(call binary_file_verification,$@)
|
||||
endif # PLATFORM
|
||||
|
||||
clean::
|
||||
ifeq ($(PLATFORM), windows)
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).rc
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).ico
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).lcf
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).map
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).exp
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).lib
|
||||
$(RM) $(OBJDIR)/$(PROGRAM)$(EXE_SUFFIX)
|
||||
$(RM) $(OBJDIR)/$(PROGRAM).ilk
|
||||
$(RM) *.pdb
|
||||
endif
|
||||
|
||||
|
||||
clobber::
|
||||
$(RM) $(ACTUAL_PROGRAM)
|
||||
|
||||
#
|
||||
# Now include make dependencies (created during compilation, see Rules.gmk)
|
||||
#
|
||||
ifeq ($(INCREMENTAL_BUILD),true)
|
||||
# Workaround: gnumake sometimes says files is empty when it shouldn't
|
||||
# was: files := $(foreach file, $(wildcard */$(ARCH)/*.$(DEPEND_SUFFIX)), $(file))
|
||||
files := $(shell $(LS) $(OBJDIR)/*.$(DEPEND_SUFFIX) 2>/dev/null)
|
||||
ifneq ($(strip $(files)),)
|
||||
include $(files)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef JAVA_ARGS
|
||||
OTHER_CPPFLAGS += -DJAVA_ARGS='$(JAVA_ARGS)'
|
||||
OTHER_CPPFLAGS += -DLAUNCHER_NAME='"$(LAUNCHER_NAME)"'
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
ifdef RELEASE
|
||||
OTHER_CPPFLAGS += -DVERSION='"$(RELEASE)"'
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
ifneq ($(PLATFORM), windows)
|
||||
HAVE_GETHRTIME=true
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_GETHRTIME),true)
|
||||
OTHER_CPPFLAGS += -DHAVE_GETHRTIME
|
||||
endif
|
||||
|
||||
OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC)/bin -I$(LAUNCHER_PLATFORM_SRC)/bin
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
OTHER_INCLUDES += -I$(LAUNCHER_SOLARIS_PLATFORM_SRC)/bin
|
||||
ifneq ($(SYSTEM_ZLIB), true)
|
||||
OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
|
||||
endif
|
||||
else
|
||||
OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/util/zip/zlib-1.1.3
|
||||
endif
|
||||
|
||||
OTHER_CPPFLAGS += -DPROGNAME='"$(PROGRAM)"'
|
||||
VERSION_DEFINES += -DFULL_VERSION='"$(FULL_VERSION)"'
|
||||
|
||||
VERSION_DEFINES += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
|
||||
-DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"'
|
||||
|
||||
|
||||
|
||||
$(OBJDIR)/main.$(OBJECT_SUFFIX): $(LAUNCHER_SHARE_SRC)/bin/main.c
|
||||
@$(prep-target)
|
||||
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$(OBJDIR)/main.$(OBJECT_SUFFIX) \
|
||||
$(VERSION_DEFINES) $<
|
||||
|
||||
#
|
||||
# Default dependencies
|
||||
#
|
||||
|
||||
all: build
|
||||
|
||||
build: program
|
||||
|
||||
debug:
|
||||
$(MAKE) VARIANT=DBG build
|
||||
|
||||
fastdebug:
|
||||
$(MAKE) VARIANT=DBG FASTDEBUG=true build
|
||||
|
||||
.PHONY: all build program clean clobber debug fastdebug
|
||||
230
jdk/makefiles/common/Release-embedded.gmk
Normal file
230
jdk/makefiles/common/Release-embedded.gmk
Normal file
@ -0,0 +1,230 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# SE-Embedded Reduced JRE targets
|
||||
#
|
||||
ifdef JAVASE_EMBEDDED
|
||||
|
||||
reduced-image-jre reduced-headless-image-jre ::
|
||||
@$(ECHO) ">>>Making "$@" @ `$(DATE)` ..."
|
||||
|
||||
# Add the reduced-jre images as pre-reqs. These will be processed last
|
||||
images:: reduced-image-jre reduced-headless-image-jre
|
||||
|
||||
|
||||
######################################################
|
||||
# Create the headless rt.jar
|
||||
######################################################
|
||||
|
||||
NOT_HEADLESS_RT_JAR_LIST = $(ABS_TEMPDIR)/not_hl_rt_jar.list
|
||||
HEADLESS_RT_JAR_FILELIST=$(JARFILELISTS_TEMPDIR)/hl_rt_jar_list
|
||||
TOTAL_HEADLESS_JAR_FILELIST=$(REORDER_TEMPDIR)/hl_file_list
|
||||
HEADLESS_CLASSLIST=$(ABS_TEMPDIR)/headless_classlist
|
||||
|
||||
# Add the jar file directories that we don't want in the
|
||||
# headless JRE. If you want to remove most classes in a
|
||||
# directory, put the directory in the NOT_HEADLESS_RT_JAR_LIST
|
||||
# and put the individual classes you want to keep in the
|
||||
# HEADLESS_CLASSLIST file.
|
||||
$(NOT_HEADLESS_RT_JAR_LIST): $(NOT_RT_JAR_LIST)
|
||||
$(RM) $(HEADLESS_CLASSLIST)
|
||||
$(RM) $(NOT_HEADLESS_RT_JAR_LIST)
|
||||
$(CP) $(NOT_RT_JAR_LIST) $(NOT_HEADLESS_RT_JAR_LIST)
|
||||
# List all the packages to be excluded
|
||||
$(ECHO) "sun/awt/motif/" >> $@
|
||||
$(ECHO) "sun/awt/X11/" >> $@
|
||||
$(ECHO) "sun/applet/" >> $@
|
||||
$(ECHO) "sun/java2d/opengl/" >> $@
|
||||
$(ECHO) "com/sun/java/swing/plaf/" >> $@
|
||||
# List all the individual classes to be included
|
||||
$(ECHO) "sun/awt/motif/MFontConfiguration.class" >$(HEADLESS_CLASSLIST)
|
||||
$(ECHO) "sun/applet/AppContextCreator.class" >>$(HEADLESS_CLASSLIST)
|
||||
$(ECHO) "sun/applet/AppletAudioClip.class" >>$(HEADLESS_CLASSLIST)
|
||||
$(ECHO) "sun/java2d/opengl/GLXSurfaceData.class" >>$(HEADLESS_CLASSLIST)
|
||||
$(ECHO) "sun/java2d/opengl/GLXSurfaceData"\$$"GLXOffScreenSurfaceData.class" >>$(HEADLESS_CLASSLIST)
|
||||
$(ECHO) "sun/java2d/opengl/GLXVolatileSurfaceManager.class" >>$(HEADLESS_CLASSLIST)
|
||||
$(ECHO) "sun/java2d/opengl/OGLSurfaceData.class" >>$(HEADLESS_CLASSLIST)
|
||||
|
||||
|
||||
$(TOTAL_HEADLESS_JAR_FILELIST): $(JARREORDER_JARFILE) $(NOT_HEADLESS_RT_JAR_LIST)
|
||||
$(prep-target)
|
||||
$(RM) $@.temp
|
||||
$(CD) $(CLASSBINDIR) ; \
|
||||
$(BOOT_JAVA_CMD) -jar $(JARREORDER_JARFILE) \
|
||||
-o $@.temp - $(NOT_HEADLESS_RT_JAR_LIST) .
|
||||
# Add on the explicitly included class files from the otherwise excluded packages
|
||||
$(CAT) $(HEADLESS_CLASSLIST) >> $@.temp
|
||||
$(MV) $@.temp $@
|
||||
@$(CD) $(CLASSBINDIR); $(java-vm-cleanup)
|
||||
|
||||
# Create the headless rt.jar file list & non-class files list
|
||||
MakeHeadlessJarFileList: $(TOTAL_HEADLESS_JAR_FILELIST) $(JARSPLIT_JARFILE)
|
||||
@$(RM) $(HEADLESS_RT_JAR_FILELIST) $(RES_JAR_FILELIST)
|
||||
$(BOOT_JAVA_CMD) -jar $(JARSPLIT_JARFILE) $(TOTAL_HEADLESS_JAR_FILELIST) \
|
||||
-o $(HEADLESS_RT_JAR_FILELIST) $(RES_JAR_FILELIST)
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
# Create headless rt.jar
|
||||
HL_RT_JAR=$(ABS_TEMPDIR)/rt-hl-orig.jar
|
||||
$(HL_RT_JAR): MakeHeadlessJarFileList $(RT_JAR_MANIFEST_FILE)
|
||||
$(prep-target)
|
||||
$(CD) $(CLASSBINDIR) ; \
|
||||
$(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \
|
||||
$(JAR_JFLAGS)
|
||||
@$(CD) $(CLASSBINDIR); $(java-vm-cleanup)
|
||||
|
||||
|
||||
#
|
||||
# Produce a reduced Headful JRE for Embedded Devices
|
||||
#
|
||||
# The deployment binaries are added during the deployment build process
|
||||
#
|
||||
|
||||
# Binaries that don't get included in reduced jre image bin directory
|
||||
NOT_REDUCEDJRE_BIN = \
|
||||
java_vm \
|
||||
kinit \
|
||||
klist \
|
||||
ktab \
|
||||
orbd \
|
||||
policytool \
|
||||
rmid \
|
||||
rmiregistry \
|
||||
servertool \
|
||||
tnameserv \
|
||||
pack200 \
|
||||
unpack200
|
||||
|
||||
# jars/resources/libs that don't get included in reduced jre image lib directory
|
||||
NOT_REDUCEDJRE_LIB = \
|
||||
charsets.jar \
|
||||
ext/dnsns.jar \
|
||||
ext/localedata.jar \
|
||||
$(LIBARCH)/client/classes.jsa \
|
||||
$(LIBARCH)/libjavaplugin_jni.so \
|
||||
$(LIBARCH)/libjavaplugin_nscp_gcc29.so \
|
||||
$(LIBARCH)/libjavaplugin_nscp.so \
|
||||
$(LIBARCH)/libjavaplugin_oji.so
|
||||
|
||||
# JRE docs that don't get included in reduced jre image top directory
|
||||
NOT_REDUCEDJRE_DOC = \
|
||||
Welcome.html
|
||||
|
||||
reduced-image-jre::
|
||||
@$(ECHO) Starting to Produce Reduced JRE
|
||||
@#
|
||||
@# First make a copy of the full JRE
|
||||
@#
|
||||
$(RM) -r $(JRE_REDUCED_IMAGE_DIR)
|
||||
$(MKDIR) -p $(JRE_REDUCED_IMAGE_DIR)
|
||||
$(CD) $(JRE_IMAGE_DIR); \
|
||||
$(TAR) cf - . | ($(CD) $(JRE_REDUCED_IMAGE_DIR); $(TAR) xf - );
|
||||
|
||||
@#
|
||||
@# Remove all of the files that are not needed for the
|
||||
@# reduced JRE
|
||||
@#
|
||||
for l in $(NOT_REDUCEDJRE_BIN) ; do \
|
||||
$(RM) $(JRE_REDUCED_IMAGE_DIR)/bin/$$l ; \
|
||||
done
|
||||
for l in $(NOT_REDUCEDJRE_LIB) ; do \
|
||||
$(RM) $(JRE_REDUCED_IMAGE_DIR)/lib/$$l ; \
|
||||
done
|
||||
for l in $(NOT_REDUCEDJRE_DOC) ; do \
|
||||
$(RM) $(JRE_REDUCED_IMAGE_DIR)/$$l ; \
|
||||
done
|
||||
|
||||
@# Remove misc. other files
|
||||
$(RM) -r $(JRE_REDUCED_IMAGE_DIR)/man
|
||||
$(RM) -f $(JRE_REDUCED_IMAGE_DIR)/CHANGES
|
||||
|
||||
@$(ECHO) Done Creating Reduced JRE
|
||||
|
||||
#
|
||||
# Produce a reduced Headless JRE
|
||||
#
|
||||
reduced-headless-image-jre:: $(RT_JAR) $(RESOURCES_JAR) $(BUILD_META_INDEX) $(HL_RT_JAR)
|
||||
@$(ECHO) Starting to Produce Reduced Headless JRE
|
||||
@#
|
||||
@# First make a copy of the reduced JRE we just built
|
||||
@#
|
||||
$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)
|
||||
$(MKDIR) -p $(JRE_REDUCED_HEADLESS_IMAGE_DIR)
|
||||
$(CD) $(JRE_REDUCED_IMAGE_DIR); \
|
||||
$(TAR) cf - . | ($(CD) $(JRE_REDUCED_HEADLESS_IMAGE_DIR); $(TAR) xf - );
|
||||
|
||||
@# Replace the full rt.jar with the headless rt.jar
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/rt.jar
|
||||
$(CP) $(HL_RT_JAR) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/rt.jar
|
||||
|
||||
@#
|
||||
@# Remove all of the files that are not needed for the
|
||||
@# reduced Headless JRE
|
||||
@#
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/gtkhelper
|
||||
$(RM) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libjsoundalsa.so
|
||||
$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/audio
|
||||
$(RM) -fr $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/applet
|
||||
$(RM) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/awt_robot
|
||||
$(RM) $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libawt_xawt.so
|
||||
$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/$(LIBARCH)/libsplashscreen.so
|
||||
@# Remove oblique fonts and reduce font support to LucidaSansRegular only
|
||||
$(RM) -fr $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/oblique-fonts
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightDemiBold.ttf
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightDemiItalic.ttf
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightItalic.ttf
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaBrightRegular.ttf
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaSansDemiBold.ttf
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaTypewriterBold.ttf
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/LucidaTypewriterRegular.ttf
|
||||
|
||||
ifeq ($(PLATFORM), linux)
|
||||
# put out minimal fonts.dir file for the remaining font
|
||||
$(RM) -f $(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) 6>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-1">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-2">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-4">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-5">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-7">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
$(ECHO) "LucidaSansRegular.ttf -b&h-lucidasans-medium-r-normal-sans-0-0-0-0-p-0-iso8859-9">>$(JRE_REDUCED_HEADLESS_IMAGE_DIR)/lib/fonts/fonts.dir
|
||||
|
||||
endif # Linux
|
||||
|
||||
@#
|
||||
@# all done with JRE reduced headless image
|
||||
@#
|
||||
|
||||
@$(ECHO) Done Creating Reduced Headless JRE
|
||||
|
||||
images-clobber::
|
||||
$(RM) -r $(JRE_REDUCED_IMAGE_DIR)
|
||||
$(RM) -r $(JRE_REDUCED_HEADLESS_IMAGE_DIR)
|
||||
|
||||
.PHONY: reduced-image-jre reduced-headless-image-jre
|
||||
|
||||
endif # JAVASE_EMBEDDED
|
||||
|
||||
75
jdk/makefiles/common/Release-macosx.gmk
Normal file
75
jdk/makefiles/common/Release-macosx.gmk
Normal file
@ -0,0 +1,75 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
MANBASEDIRS=$(JDK_TOPDIR)/src/bsd/doc $(IMPORTDOCDIR)
|
||||
MAN1SUBDIR = man
|
||||
JA_DIRNAME=ja_JP.UTF-8
|
||||
|
||||
# Defines the release targets for Mac OS X build products
|
||||
|
||||
JDK_BUNDLE_DIR = $(ABS_OUTPUTDIR)/j2sdk-bundle/$(THIS_JDK_VERSION).jdk/Contents
|
||||
JRE_BUNDLE_DIR = $(ABS_OUTPUTDIR)/j2re-bundle/$(THIS_JDK_VERSION).jre/Contents
|
||||
|
||||
MACOSX_SRC = $(JDK_TOPDIR)/src/macosx
|
||||
|
||||
BUNDLE_ID ?= net.java.openjdk
|
||||
BUNLDE_ID_JRE ?= $(BUNDLE_ID).jre
|
||||
BUNLDE_ID_JDK ?= $(BUNDLE_ID).jdk
|
||||
|
||||
BUNDLE_NAME ?= OpenJDK $(JDK_MINOR_VERSION)
|
||||
BUNDLE_NAME_JRE ?= $(BUNDLE_NAME)
|
||||
BUNDLE_NAME_JDK ?= $(BUNDLE_NAME)
|
||||
|
||||
BUNDLE_INFO ?= OpenJDK ($(JDK_VERSION))
|
||||
BUNDLE_INFO_JRE ?= $(BUNDLE_INFO)
|
||||
BUNDLE_INFO_JDK ?= $(BUNDLE_INFO)
|
||||
|
||||
BUNDLE_PLATFORM_VERSION ?= $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION)
|
||||
BUNDLE_VERSION ?= $(JDK_VERSION)
|
||||
BUNDLE_VENDOR ?= UNDEFINED
|
||||
|
||||
jre-bundle-setup:
|
||||
$(RM) -r $(JRE_BUNDLE_DIR)
|
||||
|
||||
jdk-bundle-setup:
|
||||
$(RM) -r $(JDK_BUNDLE_DIR)
|
||||
|
||||
jre-bundle-files:
|
||||
$(MKDIR) -p $(JRE_BUNDLE_DIR)/MacOS
|
||||
ln -s ../Home/lib/jli/libjli.dylib $(JRE_BUNDLE_DIR)/MacOS/
|
||||
$(CP) -r $(JRE_IMAGE_DIR) $(JRE_BUNDLE_DIR)/Home
|
||||
$(SED) -e "s/@@ID@@/$(BUNDLE_ID_JRE)/g" -e "s/@@NAME@@/$(BUNDLE_NAME_JRE)/g" -e "s/@@INFO@@/$(BUNDLE_INFO_JRE)/g" -e "s/@@PLATFORM_VERSION@@/$(BUNDLE_PLATFORM_VERSION)/g" -e "s/@@VERSION@@/$(BUNDLE_VERSION)/g" -e "s/@@VENDOR@@/$(BUNDLE_VENDOR)/g" < $(MACOSX_SRC)/bundle/JRE-Info.plist > $(JRE_BUNDLE_DIR)/Info.plist
|
||||
/usr/bin/SetFile -a B $(JRE_BUNDLE_DIR)/../
|
||||
|
||||
jdk-bundle-files:
|
||||
$(MKDIR) -p $(JDK_BUNDLE_DIR)/MacOS
|
||||
ln -s ../Home/jre/lib/jli/libjli.dylib $(JDK_BUNDLE_DIR)/MacOS/
|
||||
$(CP) -r $(JDK_IMAGE_DIR) $(JDK_BUNDLE_DIR)/Home
|
||||
$(SED) -e "s/@@ID@@/$(BUNDLE_ID_JDK)/g" -e "s/@@NAME@@/$(BUNDLE_NAME_JDK)/g" -e "s/@@INFO@@/$(BUNDLE_INFO_JDK)/g" -e "s/@@PLATFORM_VERSION@@/$(BUNDLE_PLATFORM_VERSION)/g" -e "s/@@VERSION@@/$(BUNDLE_VERSION)/g" -e "s/@@VENDOR@@/$(BUNDLE_VENDOR)/g" < $(MACOSX_SRC)/bundle/JDK-Info.plist > $(JDK_BUNDLE_DIR)/Info.plist
|
||||
/usr/bin/SetFile -a B $(JDK_BUNDLE_DIR)/../
|
||||
|
||||
EXTRA_IMAGE_TARGETS += jre-bundle-setup jdk-bundle-setup jre-bundle-files jdk-bundle-files
|
||||
|
||||
.PHONY: $(EXTRA_JRE_TARGETS) $(EXTRA_IMAGE_TARGETS)
|
||||
1301
jdk/makefiles/common/Release.gmk
Normal file
1301
jdk/makefiles/common/Release.gmk
Normal file
File diff suppressed because it is too large
Load Diff
357
jdk/makefiles/common/Rules.gmk
Normal file
357
jdk/makefiles/common/Rules.gmk
Normal file
@ -0,0 +1,357 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
#
|
||||
# Rules shared by all Java makefiles.
|
||||
#
|
||||
# Used to apply to source file $<, checks code conventions, issues warnings.
|
||||
define check-conventions
|
||||
if [ "$(CONVENTION_WATCH)" = "true" ] ; then \
|
||||
if [ "`$(CAT) -n -v -t $< | $(EGREP) -v '\@\(\#\)' | $(EGREP) '\^[MLI]'`" != "" ] ; then \
|
||||
$(ECHO) "WARNING: File contains tabs, ^M, or ^L characters: $<"; \
|
||||
if [ "$(CONVENTION_DETAILS)" = "true" ] ; then \
|
||||
$(CAT) -n -v -t $< | $(EGREP) -v '\@\(\#\)' | $(EGREP) '\^[MLI]' ; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Make sure the default rule is all
|
||||
rules_default_rule: all
|
||||
|
||||
#
|
||||
# Directory set up. (Needed by deploy workspace)
|
||||
#
|
||||
$(CLASSDESTDIR) $(CLASSHDRDIR) $(OBJDIR) $(OUTPUTDIR) $(BINDIR) $(LIBDIR) $(LIBDIR)/$(LIBARCH) $(TEMPDIR) $(EXTDIR):
|
||||
$(MKDIR) -p $@
|
||||
|
||||
#
|
||||
# All source tree areas for java/properties files (a few may be closed)
|
||||
#
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
ifdef OPENJDK
|
||||
ALL_CLASSES_SRC = $(call JavaSrcDirList,,classes)
|
||||
else
|
||||
ALL_CLASSES_SRC = \
|
||||
$(CLOSED_SHARE_SRC)/classes $(CLOSED_PLATFORM_SRC)/classes \
|
||||
$(call JavaSrcDirList,,classes)
|
||||
endif
|
||||
else
|
||||
ifdef OPENJDK
|
||||
ALL_CLASSES_SRC = $(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
|
||||
else
|
||||
ALL_CLASSES_SRC = \
|
||||
$(CLOSED_SHARE_SRC)/classes $(CLOSED_PLATFORM_SRC)/classes \
|
||||
$(SHARE_SRC)/classes $(PLATFORM_SRC)/classes
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# If AUTO_FILES_PROPERTIES_DIRS used, automatically find properties files
|
||||
#
|
||||
ifdef AUTO_FILES_PROPERTIES_DIRS
|
||||
AUTO_FILES_PROPERTIES_FILTERS1 = $(SCM_DIRs) ',*'
|
||||
AUTO_FILES_PROPERTIES_FILTERS1 += $(AUTO_PROPERTIES_PRUNE)
|
||||
FILES_properties_find_filters1 = $(AUTO_FILES_PROPERTIES_FILTERS1:%=-name % -prune -o)
|
||||
FILES_properties_auto1 := \
|
||||
$(shell \
|
||||
for dir in $(ALL_CLASSES_SRC) ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
( $(CD) $$dir; \
|
||||
for sdir in $(AUTO_FILES_PROPERTIES_DIRS); do \
|
||||
if [ -d $$sdir ] ; then \
|
||||
$(FIND) $$sdir $(FILES_properties_find_filters1) \
|
||||
-name '*.properties' -print ; \
|
||||
fi ; \
|
||||
done \
|
||||
); \
|
||||
fi; \
|
||||
done \
|
||||
)
|
||||
else
|
||||
FILES_properties_auto1 =
|
||||
endif # AUTO_FILES_PROPERTIES_DIRS
|
||||
|
||||
# Add any automatically found properties files to the properties file list
|
||||
FILES_properties += $(FILES_properties_auto1)
|
||||
|
||||
#
|
||||
# Get Resources help
|
||||
#
|
||||
include $(JDK_TOPDIR)/makefiles/common/internal/Resources.gmk
|
||||
|
||||
#
|
||||
# Compiling .java files.
|
||||
#
|
||||
|
||||
#
|
||||
# Automatically add to FILES_java if AUTO_FILES_JAVA_DIRS is defined
|
||||
#
|
||||
# There are two basic types of sources, normal source files and the
|
||||
# generated ones. The Normal sources will be located in:
|
||||
# $(ALL_CLASSES_SRC)
|
||||
# The generated sources, which might show up late to dinner, are at:
|
||||
# $(GENSRCDIR)
|
||||
# and since they could be generated late, we need to be careful that
|
||||
# we look for these sources late and not use the ':=' assignment which
|
||||
# might miss their generation.
|
||||
|
||||
ifdef AUTO_FILES_JAVA_DIRS
|
||||
# Filter out these files or directories
|
||||
AUTO_FILES_JAVA_SOURCE_FILTERS1 = $(SCM_DIRs) ',*'
|
||||
AUTO_FILES_JAVA_SOURCE_FILTERS2 =
|
||||
AUTO_FILES_JAVA_SOURCE_FILTERS1 += $(AUTO_JAVA_PRUNE)
|
||||
AUTO_FILES_JAVA_SOURCE_FILTERS2 += $(AUTO_JAVA_PRUNE)
|
||||
|
||||
# First list is the normal sources that should always be there,
|
||||
# by using the ':=', which means we do this processing once.
|
||||
FILES_java_find_filters1 = $(AUTO_FILES_JAVA_SOURCE_FILTERS1:%=-name % -prune -o)
|
||||
FILES_java_auto1 := \
|
||||
$(shell \
|
||||
for dir in $(ALL_CLASSES_SRC) ; do \
|
||||
if [ -d $$dir ] ; then \
|
||||
( $(CD) $$dir; \
|
||||
for sdir in $(AUTO_FILES_JAVA_DIRS); do \
|
||||
if [ -d $$sdir ] ; then \
|
||||
$(FIND) $$sdir $(FILES_java_find_filters1) \
|
||||
-name '*.java' -print ; \
|
||||
fi ; \
|
||||
done \
|
||||
); \
|
||||
fi; \
|
||||
done \
|
||||
)
|
||||
# Second list is the generated sources that should be rare, but will likely
|
||||
# show up late and we need to look for them at the last minute, so we
|
||||
# cannot use the ':=' assigment here. But if this gets expanded multiple
|
||||
# times, the if tests should make them relatively cheap.
|
||||
FILES_java_find_filters2 = $(AUTO_FILES_JAVA_SOURCE_FILTERS2:%=-name % -prune -o)
|
||||
FILES_java_auto2 = \
|
||||
$(shell \
|
||||
for dir in $(GENSRCDIR); do \
|
||||
if [ -d $$dir ] ; then \
|
||||
( $(CD) $$dir; \
|
||||
for sdir in $(AUTO_FILES_JAVA_DIRS); do \
|
||||
if [ -d $$sdir ] ; then \
|
||||
$(FIND) $$sdir $(FILES_java_find_filters2) \
|
||||
-name '*.java' -print ; \
|
||||
fi ; \
|
||||
done \
|
||||
); \
|
||||
fi; \
|
||||
done \
|
||||
)
|
||||
else
|
||||
FILES_java_auto1 =
|
||||
FILES_java_auto2 =
|
||||
endif
|
||||
|
||||
# Add all found java sources to FILES_java macro (if AUTO_FILES_JAVA_DIRS used)
|
||||
FILES_java += $(FILES_java_auto1) $(FILES_java_auto2)
|
||||
|
||||
# File that will hold java source names that need compiling
|
||||
JAVA_SOURCE_LIST=$(TEMPDIR)/.classes.list
|
||||
|
||||
# Add a java source to the list
|
||||
define add-java-file
|
||||
$(ECHO) "$?" >> $(JAVA_SOURCE_LIST)
|
||||
$(check-conventions)
|
||||
endef
|
||||
|
||||
ifdef DEMOS
|
||||
$(CLASSDESTDIR)/%.class: $(SOURCEPATH)/%.java
|
||||
$(add-java-file)
|
||||
#Redirect zh_HK java files to tmp directory which created from zh_TW
|
||||
#$(CLASSDESTDIR)/%_zh_HK.class: $(JDK_L10N_TMP_OUTPUTDIR)/%_zh_HK.java
|
||||
# $(add-java-file)
|
||||
else
|
||||
|
||||
#
|
||||
# Rules for closed files
|
||||
#
|
||||
# If filenames are duplicated between open/closed workspaces, prefer
|
||||
# the closed files.
|
||||
#
|
||||
# Rule ordering in this Makefile is important: some targets depend
|
||||
# on closed files replacing open ones, and thus the closed file rules
|
||||
# must be found before the open ones.
|
||||
#
|
||||
# Don't reorder without consulting teams that depend on this behavior.
|
||||
#
|
||||
ifndef OPENJDK
|
||||
$(CLASSDESTDIR)/%.class: $(CLOSED_PLATFORM_SRC)/classes/%.java
|
||||
$(add-java-file)
|
||||
$(CLASSDESTDIR)/%.class: $(CLOSED_SHARE_SRC)/classes/%.java
|
||||
$(add-java-file)
|
||||
endif
|
||||
|
||||
$(CLASSDESTDIR)/%.class: $(GENSRCDIR)/%.java
|
||||
$(add-java-file)
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
$(CLASSDESTDIR)/%.class: $(JDK_TOPDIR)/src/macosx/classes/%.java
|
||||
$(add-java-file)
|
||||
endif
|
||||
$(CLASSDESTDIR)/%.class: $(PLATFORM_SRC)/classes/%.java
|
||||
$(add-java-file)
|
||||
|
||||
$(CLASSDESTDIR)/%.class: $(SHARE_SRC)/classes/%.java
|
||||
$(add-java-file)
|
||||
|
||||
#Redirect zh_HK java files to tmp directory which created from zh_TW
|
||||
$(CLASSDESTDIR)/%_zh_HK.class: $(JDK_L10N_TMP_OUTPUTDIR)/%_zh_HK.java
|
||||
$(add-java-file)
|
||||
endif
|
||||
|
||||
# List of class files needed
|
||||
FILES_class = $(FILES_java:%.java=$(CLASSDESTDIR)/%.class)
|
||||
|
||||
# Got to include exported files.
|
||||
FILES_class += $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
|
||||
|
||||
# Construct list of java sources we need to compile
|
||||
source_list_prime:
|
||||
mkdir -p $(TEMPDIR)
|
||||
# Note that we slip resources in so that compiled properties files get created:
|
||||
$(JAVA_SOURCE_LIST) : source_list_prime resources $(FILES_class)
|
||||
touch $@
|
||||
|
||||
.delete.classlist:
|
||||
rm -f $(JAVA_SOURCE_LIST)
|
||||
|
||||
# Make sure all newer sources are compiled (in a batch)
|
||||
classes : $(CLASSES_INIT) .delete.classlist .compile.classlist
|
||||
|
||||
.compile.classlist : $(JAVA_SOURCE_LIST)
|
||||
$(MKDIR) -p $(CLASSDESTDIR)
|
||||
$(RM) $<.filtered
|
||||
$(CAT) $< | $(NAWK) 'length>0' | $(SORT) -u > $<.filtered
|
||||
numfiles=`$(WC) -l < $<.filtered` ; \
|
||||
if [ $$numfiles -ge 1 ] ; then \
|
||||
$(ECHO) "# Java sources to be compiled: (listed in file $<)"; \
|
||||
$(CAT) $<.filtered; \
|
||||
$(ECHO) "# Running javac: $$numfiles files; in $(CURDIR)"; \
|
||||
$(ECHO) $(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered; \
|
||||
$(JAVAC_CMD) -sourcepath "$(SOURCEPATH)" -d $(CLASSDESTDIR) @$<.filtered && \
|
||||
$(ECHO) "# javac finished"; \
|
||||
fi
|
||||
$(java-vm-cleanup)
|
||||
|
||||
clobber clean::
|
||||
rm -f $(JAVA_SOURCE_LIST)
|
||||
|
||||
ifndef DONT_CLOBBER_CLASSES
|
||||
ifndef PACKAGE
|
||||
DONT_CLOBBER_CLASSES = true
|
||||
else
|
||||
DONT_CLOBBER_CLASSES = false
|
||||
endif
|
||||
endif
|
||||
|
||||
packages.clean:
|
||||
ifeq ($(DONT_CLOBBER_CLASSES),false)
|
||||
ifdef AUTO_FILES_JAVA_DIRS
|
||||
for sdir in $(AUTO_FILES_JAVA_DIRS); do \
|
||||
echo "rm -f -r $(CLASSDESTDIR)/$$sdir"; \
|
||||
rm -f -r $(CLASSDESTDIR)/$$sdir; \
|
||||
done
|
||||
else
|
||||
rm -f -r $(CLASSDESTDIR)/$(PKGDIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef DEMOS
|
||||
classes.clean:
|
||||
rm -f -r $(DEMODST) $(CLASSDESTDIR)
|
||||
else
|
||||
classes.clean: packages.clean
|
||||
rm -f $(JAVA_SOURCE_LIST)
|
||||
endif
|
||||
|
||||
#
|
||||
# C and C++ make dependencies
|
||||
#
|
||||
include $(JDK_TOPDIR)/makefiles/common/internal/NativeCompileRules.gmk
|
||||
|
||||
#
|
||||
# Running Javah to generate stuff into CClassHeaders.
|
||||
#
|
||||
|
||||
ifdef FILES_export
|
||||
|
||||
CLASSES.export = $(subst /,.,$(FILES_export:%.java=%))
|
||||
CLASSES.export += $(subst /,.,$(FILES_export2:%.java=%))
|
||||
CLASSES.export += $(subst /,.,$(FILES_export3:%.java=%))
|
||||
CLASSES_export = $(FILES_export:%.java=$(CLASSDESTDIR)/%.class)
|
||||
CLASSES_export += $(FILES_export2:%.java=$(CLASSDESTDIR)/%.class)
|
||||
CLASSES_export += $(FILES_export3:%.java=$(CLASSDESTDIR)/%.class)
|
||||
|
||||
# Fix when deploy workspace makefiles don't depend on this name
|
||||
#CLASSHDR_DOTFILE=$(CLASSHDRDIR)/.classheaders
|
||||
|
||||
CLASSHDR_DOTFILE=$(OBJDIR)/.class.headers.$(ARCH)
|
||||
|
||||
classheaders: classes $(CLASSHDR_DOTFILE)
|
||||
|
||||
$(CLASSHDR_DOTFILE): $(CLASSES_export)
|
||||
$(prep-target)
|
||||
echo "# Running javah:"
|
||||
echo $(UNCYGDRIVE) $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
|
||||
$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
|
||||
$(UNCYGDRIVE) $(JAVAH_CMD) -d $(CLASSHDRDIR)/ \
|
||||
$(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
|
||||
$(java-vm-cleanup)
|
||||
touch $@
|
||||
|
||||
classheaders.clean:
|
||||
rm -f $(CLASSHDR_DOTFILE)
|
||||
rm -f -r $(CLASSHDRDIR)
|
||||
|
||||
else # FILES_export
|
||||
|
||||
classheaders: classes
|
||||
|
||||
classheaders.clean:
|
||||
|
||||
endif # FILES_export
|
||||
|
||||
clean clobber:: classheaders.clean classes.clean .delete.classlist
|
||||
|
||||
#
|
||||
# Default dependencies
|
||||
#
|
||||
|
||||
all: build
|
||||
|
||||
build: classheaders
|
||||
|
||||
default: all
|
||||
|
||||
.PHONY: all build clean clobber \
|
||||
.delete.classlist classes .compile.classlist classes.clean \
|
||||
classheaders classheaders.clean \
|
||||
batch_compile
|
||||
|
||||
148
jdk/makefiles/common/Subdirs.gmk
Normal file
148
jdk/makefiles/common/Subdirs.gmk
Normal file
@ -0,0 +1,148 @@
|
||||
# Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Generic makefile for building subdirectories.
|
||||
#
|
||||
# SUBDIRS variables to specify the subdirectories to build recursively.
|
||||
# Makefile has to include Subdirs.gmk AFTER all SUBDIRS variables are
|
||||
# defined.
|
||||
#
|
||||
# This file does not contain any rule.
|
||||
#
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
|
||||
#
|
||||
# SUBDIRS subdirs for the base module always get built
|
||||
# SUBDIRS_<group> subdirs for the named group
|
||||
#
|
||||
# By default, subdirs specified in the SUBDIRS and all SUBDIRS_*
|
||||
# variables will be built.
|
||||
#
|
||||
# Variables of the currently supported groups are:
|
||||
# SUBDIRS_desktop
|
||||
# SUBDIRS_management
|
||||
# SUBDIRS_enterprise
|
||||
# SUBDIRS_misc
|
||||
# SUBDIRS_tools
|
||||
#
|
||||
# Change to the above list also need to update
|
||||
# make/common/shared/Sanity.gmk. NOTE: this list is subject
|
||||
# to change.
|
||||
#
|
||||
# Eventually we want to restructure the make directory
|
||||
# according to these grouping (e.g. make/desktop/...) and
|
||||
# the SUBDIRS_<group> variables would not be needed.
|
||||
#
|
||||
|
||||
# Iterate the subdirectories specified in $1.
|
||||
# - cd into each subdir and make them
|
||||
|
||||
# Given a SUBDIRS* list (first argument), cd into them and make them
|
||||
# SUBDIRS_MAKEFLAGS Make settings for a subdir make
|
||||
# SUBDIRS_MAKEFLAGS-$@ Make settings specific to this target
|
||||
#
|
||||
define subdirs-group-loop
|
||||
$(ECHO) "Begin Processing SUBDIRS: $($1)"
|
||||
for i in DUMMY $($1) ; do \
|
||||
if [ "$$i" != "DUMMY" ] ; then \
|
||||
$(MAKE) -C $$i $@ $(SUBDIRS_MAKEFLAGS) $(SUBDIRS_MAKEFLAGS-$@) \
|
||||
FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE) || exit 1; \
|
||||
fi ; \
|
||||
done
|
||||
$(ECHO) "Done Processing SUBDIRS: $($1)"
|
||||
endef
|
||||
|
||||
# Given a OTHERSUBDIRS list, cd into them and make them (extra loop define)
|
||||
# OTHERSUBDIRS_MAKEFLAGS Make settings for a subdir make
|
||||
define OTHERSUBDIRS-loop
|
||||
$(ECHO) "Begin Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
|
||||
for i in DUMMY $(OTHERSUBDIRS) ; do \
|
||||
if [ "$$i" != "DUMMY" ] ; then \
|
||||
$(MAKE) -C $$i $@ $(OTHERSUBDIRS_MAKEFLAGS) \
|
||||
FULL_VERSION=$(FULL_VERSION) RELEASE=$(RELEASE) || exit 1; \
|
||||
fi ; \
|
||||
done
|
||||
$(ECHO) "Done Processing OTHERSUBDIRS: $(OTHERSUBDIRS)"
|
||||
endef
|
||||
|
||||
#
|
||||
# Iterate the list specified in SUBDIRS_<group> only if
|
||||
# SUBDIRS_<group> is set.
|
||||
#
|
||||
ifdef SUBDIRS_desktop
|
||||
define subdirs-desktop-loop
|
||||
$(call subdirs-group-loop,SUBDIRS_desktop)
|
||||
endef
|
||||
else
|
||||
define subdirs-desktop-loop
|
||||
endef
|
||||
endif # SUBDIRS_desktop
|
||||
|
||||
ifdef SUBDIRS_enterprise
|
||||
define subdirs-enterprise-loop
|
||||
$(call subdirs-group-loop,SUBDIRS_enterprise)
|
||||
endef
|
||||
else
|
||||
define subdirs-enterprise-loop
|
||||
endef
|
||||
endif # SUBDIRS_enterprise
|
||||
|
||||
ifdef SUBDIRS_management
|
||||
define subdirs-management-loop
|
||||
$(call subdirs-group-loop,SUBDIRS_management)
|
||||
endef
|
||||
else
|
||||
define subdirs-management-loop
|
||||
endef
|
||||
endif # SUBDIRS_management
|
||||
|
||||
ifdef SUBDIRS_misc
|
||||
define subdirs-misc-loop
|
||||
$(call subdirs-group-loop,SUBDIRS_misc)
|
||||
endef
|
||||
else
|
||||
define subdirs-misc-loop
|
||||
endef
|
||||
endif # SUBDIRS_misc
|
||||
|
||||
ifdef SUBDIRS_tools
|
||||
define subdirs-tools-loop
|
||||
$(call subdirs-group-loop,SUBDIRS_tools)
|
||||
endef
|
||||
else
|
||||
define subdirs-tools-loop
|
||||
endef
|
||||
endif # SUBDIRS_tools
|
||||
|
||||
#
|
||||
# If BUILD_MODULES is not set or it's set to "all",
|
||||
# iterate all groups.
|
||||
SUBDIRS_all = $(SUBDIRS) $(SUBDIRS_desktop) $(SUBDIRS_enterprise) \
|
||||
$(SUBDIRS_management) $(SUBDIRS_misc) $(SUBDIRS_tools)
|
||||
|
||||
define SUBDIRS-loop
|
||||
$(call subdirs-group-loop,SUBDIRS_all)
|
||||
endef
|
||||
63
jdk/makefiles/common/internal/Defs-corba.gmk
Normal file
63
jdk/makefiles/common/internal/Defs-corba.gmk
Normal file
@ -0,0 +1,63 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# The specific packages that come from or go to rt.jar and tools.jar
|
||||
IMPORT_RT_PACKAGES += \
|
||||
org/omg/CORBA \
|
||||
org/omg/CORBA_2_3 \
|
||||
org/omg/CosNaming \
|
||||
org/omg/Dynamic \
|
||||
org/omg/DynamicAny \
|
||||
org/omg/IOP \
|
||||
org/omg/Messaging \
|
||||
org/omg/PortableInterceptor \
|
||||
org/omg/PortableServer \
|
||||
org/omg/SendingContext \
|
||||
org/omg/stub/java/rmi \
|
||||
javax/rmi \
|
||||
javax/rmi/CORBA \
|
||||
javax/activity \
|
||||
javax/transaction \
|
||||
com/sun/corba/se/GiopIDL \
|
||||
com/sun/corba/se/PortableActivationIDL \
|
||||
com/sun/corba/se/impl \
|
||||
com/sun/corba/se/internal \
|
||||
com/sun/corba/se/org/omg/CORBA \
|
||||
com/sun/corba/se/pept \
|
||||
com/sun/corba/se/spi \
|
||||
com/sun/org/omg/CORBA \
|
||||
com/sun/org/omg/SendingContext \
|
||||
com/sun/tools/corba/se/logutil \
|
||||
sun/corba \
|
||||
sun/rmi/rmic/iiop
|
||||
|
||||
IMPORT_TOOLS_PACKAGES += \
|
||||
com/sun/tools/corba/se/idl \
|
||||
sun/rmi/rmic/iiop
|
||||
|
||||
IMPORT_CORBA_BINARIES += \
|
||||
lib/orb.idl \
|
||||
lib/ir.idl
|
||||
|
||||
53
jdk/makefiles/common/internal/Defs-jaxp.gmk
Normal file
53
jdk/makefiles/common/internal/Defs-jaxp.gmk
Normal file
@ -0,0 +1,53 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# The specific packages that come from or go to rt.jar and tools.jar
|
||||
IMPORT_RT_PACKAGES += \
|
||||
org/w3c/dom \
|
||||
org/xml/sax \
|
||||
javax/xml/XMLConstants.class \
|
||||
javax/xml/datatype \
|
||||
javax/xml/namespace \
|
||||
javax/xml/parsers \
|
||||
javax/xml/stream \
|
||||
javax/xml/transform \
|
||||
javax/xml/validation \
|
||||
javax/xml/xpath \
|
||||
com/sun/java_cup \
|
||||
com/sun/org/apache/bcel \
|
||||
com/sun/org/apache/regexp \
|
||||
com/sun/org/apache/xalan \
|
||||
com/sun/org/apache/xerces \
|
||||
com/sun/org/apache/xml/internal/dtm \
|
||||
com/sun/org/apache/xml/internal/res \
|
||||
com/sun/org/apache/xml/internal/resolver \
|
||||
com/sun/org/apache/xml/internal/serialize \
|
||||
com/sun/org/apache/xml/internal/serializer \
|
||||
com/sun/org/apache/xml/internal/utils \
|
||||
com/sun/org/apache/xpath \
|
||||
com/sun/xml/internal/stream
|
||||
|
||||
IMPORT_TOOLS_PACKAGES +=
|
||||
|
||||
63
jdk/makefiles/common/internal/Defs-jaxws.gmk
Normal file
63
jdk/makefiles/common/internal/Defs-jaxws.gmk
Normal file
@ -0,0 +1,63 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# The specific packages that come from or go to rt.jar and tools.jar
|
||||
IMPORT_RT_PACKAGES += \
|
||||
META-INF/mailcap.default \
|
||||
META-INF/mimetypes.default \
|
||||
javax/activation \
|
||||
com/sun/activation \
|
||||
javax/xml/bind \
|
||||
javax/xml/soap \
|
||||
javax/xml/ws \
|
||||
javax/jws \
|
||||
javax/annotation \
|
||||
com/sun/xml/internal/bind \
|
||||
com/sun/xml/internal/fastinfoset \
|
||||
com/sun/xml/internal/messaging \
|
||||
com/sun/xml/internal/org/jvnet \
|
||||
com/sun/xml/internal/txw2 \
|
||||
com/sun/xml/internal/ws \
|
||||
com/sun/xml/internal/stream/buffer
|
||||
|
||||
NOT_USED_PACKAGES += \
|
||||
com/sun/tools/internal/txw2
|
||||
|
||||
IMPORT_TOOLS_PACKAGES += \
|
||||
com/sun/codemodel \
|
||||
com/sun/istack/internal/tools \
|
||||
com/sun/xml/internal/rngom \
|
||||
com/sun/xml/internal/xsom \
|
||||
com/sun/xml/internal/dtdparser \
|
||||
com/sun/tools/internal/xjc \
|
||||
com/sun/tools/internal/ws \
|
||||
com/sun/tools/internal/jxc \
|
||||
org/relaxng \
|
||||
META-INF/services/com.sun.tools.internal.ws.wscompile.Plugin \
|
||||
META-INF/services/com.sun.tools.internal.xjc.Plugin \
|
||||
com/sun/tools/internal/jxc/ap \
|
||||
com/sun/tools/internal/ws/wscompile/plugin/at_generated
|
||||
|
||||
|
||||
42
jdk/makefiles/common/internal/Defs-langtools.gmk
Normal file
42
jdk/makefiles/common/internal/Defs-langtools.gmk
Normal file
@ -0,0 +1,42 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# The specific packages that come from or go to rt.jar and tools.jar
|
||||
|
||||
IMPORT_RT_PACKAGES += \
|
||||
javax/annotation/processing \
|
||||
javax/lang/model \
|
||||
javax/tools
|
||||
|
||||
IMPORT_TOOLS_PACKAGES += \
|
||||
com/sun/javadoc \
|
||||
com/sun/source \
|
||||
com/sun/tools/classfile \
|
||||
com/sun/tools/doclets \
|
||||
com/sun/tools/javac \
|
||||
com/sun/tools/javadoc \
|
||||
com/sun/tools/javah \
|
||||
com/sun/tools/javap
|
||||
|
||||
173
jdk/makefiles/common/internal/ImportComponents.gmk
Normal file
173
jdk/makefiles/common/internal/ImportComponents.gmk
Normal file
@ -0,0 +1,173 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
-include $(SPEC)
|
||||
|
||||
# JDK jars where component classes come from as second choice
|
||||
JDK_RT_JAR = $(JDK_IMPORT_PATH)/jre/lib/rt.jar
|
||||
JDK_TOOLS_JAR = $(JDK_IMPORT_PATH)/lib/tools.jar
|
||||
JDK_RESOURCES_JAR = $(JDK_IMPORT_PATH)/jre/lib/resources.jar
|
||||
|
||||
# The specific packages that come from or go to rt.jar and tools.jar
|
||||
# IF the component deliverables are not available.
|
||||
IMPORT_TOOLS_PACKAGES =
|
||||
IMPORT_RT_PACKAGES =
|
||||
|
||||
# The following will add to IMPORT_TOOLS_PACKAGES and/or IMPORT_RT_PACKAGES
|
||||
ifndef LANGTOOLS_DIST
|
||||
include $(BUILDDIR)/common/internal/Defs-langtools.gmk
|
||||
endif
|
||||
ifndef CORBA_DIST
|
||||
include $(BUILDDIR)/common/internal/Defs-corba.gmk
|
||||
endif
|
||||
ifndef JAXP_DIST
|
||||
include $(BUILDDIR)/common/internal/Defs-jaxp.gmk
|
||||
endif
|
||||
ifndef JAXWS_DIST
|
||||
include $(BUILDDIR)/common/internal/Defs-jaxws.gmk
|
||||
endif
|
||||
|
||||
# Clean up these lists so empty lists are empty
|
||||
IMPORT_TOOLS_PACKAGES := $(strip $(IMPORT_TOOLS_PACKAGES))
|
||||
IMPORT_RT_PACKAGES := $(strip $(IMPORT_RT_PACKAGES))
|
||||
|
||||
# Relative paths to import component deliverables
|
||||
CLASSES_JAR_FILE=lib/classes.jar
|
||||
SRC_ZIP_FILE=lib/src.zip
|
||||
BIN_ZIP_FILE=lib/bin.zip
|
||||
DOC_ZIP_FILE=lib/doc.zip
|
||||
|
||||
#################################################################
|
||||
# Macros:
|
||||
|
||||
# Importing component class files
|
||||
define import-one-classes
|
||||
if [ "$($1)" != "" ] ; then \
|
||||
$(ECHO) "Importing classes from component $1"; \
|
||||
$(call Unjar,$2,$($1)/$(CLASSES_JAR_FILE),); \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Importing optional component doc files (for man pages?)
|
||||
define import-one-docs
|
||||
if [ "$($1)" != "" -a -f $($1)/$(DOC_ZIP_FILE) ] ; then \
|
||||
$(ECHO) "Importing docs from component $1"; \
|
||||
$(call Unzipper,$2,$($1)/$(DOC_ZIP_FILE)); \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Importing optional component src files (for jdk src.zip and javadoc)
|
||||
define import-one-sources
|
||||
if [ "$($1)" != "" ] ; then \
|
||||
$(ECHO) "Importing sources from component $1"; \
|
||||
$(call Unzipper,$2,$($1)/$(SRC_ZIP_FILE)); \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Importing optional component bin files (for install image)
|
||||
define import-one-binaries
|
||||
if [ "$($1)" != "" -a -f $($1)/$(BIN_ZIP_FILE) ] ; then \
|
||||
$(ECHO) "Importing binaries from component $1"; \
|
||||
$(call Unzipper,$2,$($1)/$(BIN_ZIP_FILE)); \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Unzip zip file $2 into directory $1 (if $2 exists)
|
||||
# Warning: $2 must be absolute path not relative
|
||||
define Unzipper
|
||||
( \
|
||||
$(MKDIR) -p $1; \
|
||||
( $(CD) $1 && $(UNZIP) -o $2 > /dev/null ) \
|
||||
)
|
||||
endef
|
||||
|
||||
# Unjar directories $3 from jar file $2 into directory $1 (if $2 exists)
|
||||
# Warning: $2 must be absolute path not relative
|
||||
define Unjar
|
||||
( \
|
||||
$(MKDIR) -p $1; \
|
||||
( $(CD) $1 && $(BOOT_JAR_CMD) xf $2 $3 $(BOOT_JAR_JFLAGS) ) && \
|
||||
( $(CD) $1 && $(java-vm-cleanup) ) \
|
||||
)
|
||||
endef
|
||||
|
||||
# Import all component sources into directory $1
|
||||
define import-component-sources
|
||||
$(call import-one-sources,LANGTOOLS_DIST,$1)
|
||||
$(call import-one-sources,CORBA_DIST,$1)
|
||||
$(call import-one-sources,JAXP_DIST,$1)
|
||||
$(call import-one-sources,JAXWS_DIST,$1)
|
||||
endef
|
||||
|
||||
# Import all component docs into directory $1 (optional)
|
||||
define import-component-docs
|
||||
$(call import-one-docs,LANGTOOLS_DIST,$1)
|
||||
$(call import-one-docs,CORBA_DIST,$1)
|
||||
$(call import-one-docs,JAXP_DIST,$1)
|
||||
$(call import-one-docs,JAXWS_DIST,$1)
|
||||
endef
|
||||
|
||||
# Import all component bins into directory $1 (optional)
|
||||
define import-component-binaries
|
||||
$(call import-one-binaries,LANGTOOLS_DIST,$1)
|
||||
$(call import-one-binaries,CORBA_DIST,$1)
|
||||
$(call import-one-binaries,JAXP_DIST,$1)
|
||||
$(call import-one-binaries,JAXWS_DIST,$1)
|
||||
if [ "$(CORBA_DIST)" = "" ] ; then \
|
||||
$(MKDIR) -p $(OUTPUTDIR)/lib ; \
|
||||
( $(CD) $(JDK_IMPORT_PATH) && $(CP) $(IMPORT_CORBA_BINARIES) $(ABS_OUTPUTDIR)/lib ) ; \
|
||||
fi
|
||||
endef
|
||||
|
||||
# Import all component classes into directory $1
|
||||
# Here we special case classes coming from JDK when component not supplied
|
||||
define import-component-classes
|
||||
$(ECHO) "Import classes from $(JDK_IMPORT_PATH)"
|
||||
if [ "$(IMPORT_TOOLS_PACKAGES)" != "" ] ; then \
|
||||
$(call Unjar,$1,$(JDK_RESOURCES_JAR),$(IMPORT_TOOLS_PACKAGES)); \
|
||||
$(call Unjar,$1,$(JDK_TOOLS_JAR),$(IMPORT_TOOLS_PACKAGES)); \
|
||||
fi
|
||||
if [ "$(IMPORT_RT_PACKAGES)" != "" ] ; then \
|
||||
$(call Unjar,$1,$(JDK_RESOURCES_JAR),$(IMPORT_RT_PACKAGES)); \
|
||||
$(call Unjar,$1,$(JDK_RT_JAR),$(IMPORT_RT_PACKAGES)); \
|
||||
fi
|
||||
$(call import-one-classes,LANGTOOLS_DIST,$1)
|
||||
$(call import-one-classes,CORBA_DIST,$1)
|
||||
$(call import-one-classes,JAXP_DIST,$1)
|
||||
$(call import-one-classes,JAXWS_DIST,$1)
|
||||
endef
|
||||
|
||||
# Clean up import files
|
||||
define import-component-sources-clean
|
||||
$(RM) -r $1
|
||||
endef
|
||||
define import-component-docs-clean
|
||||
$(RM) -r $1
|
||||
endef
|
||||
define import-component-classes-clean
|
||||
$(RM) -r $(IMPORT_TOOLS_PACKAGES:%=$1/%)
|
||||
$(RM) -r $(IMPORT_RT_PACKAGES:%=$1/%)
|
||||
endef
|
||||
|
||||
238
jdk/makefiles/common/internal/NativeCompileRules.gmk
Normal file
238
jdk/makefiles/common/internal/NativeCompileRules.gmk
Normal file
@ -0,0 +1,238 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Native C/C++ Compile Rules
|
||||
#
|
||||
|
||||
-include $(SPEC)
|
||||
-include $(VARS)
|
||||
|
||||
COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) -c
|
||||
COMPILE.cc = $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c
|
||||
|
||||
#
|
||||
# INCREMENTAL_BUILD: Record the #include file dependencies.
|
||||
#
|
||||
# NOTE: We build make include files with the suffix
|
||||
# $(DEPEND_SUFFIX) on every compilation. These are initially
|
||||
# created as temp files just in case a ^C kills it in the middle.
|
||||
# Compiler is smart enough to handle ^C and not create the .o file, or
|
||||
# is supposed to be that smart, but the .$(DEPEND_SUFFIX) file
|
||||
# creation here isn't.
|
||||
# These .$(DEPEND_SUFFIX) files are included by Library.gmk and
|
||||
# Program.gmk, when they exist (Search for 'make dependencies').
|
||||
#
|
||||
|
||||
ifeq ($(INCREMENTAL_BUILD),true)
|
||||
|
||||
$(OBJDIR)/%.$(DEPEND_SUFFIX): %.c
|
||||
@$(prep-target)
|
||||
@$(ECHO) "Creating $@"
|
||||
@$(RM) $@.temp
|
||||
@$(CC) $(CC_DEPEND) $(CPPFLAGS) $< 2> $(DEV_NULL) | \
|
||||
$(CC_DEPEND_FILTER) > $@.temp
|
||||
@$(MV) $@.temp $@
|
||||
|
||||
$(OBJDIR)/%.$(DEPEND_SUFFIX): %.cpp
|
||||
@$(prep-target)
|
||||
@$(ECHO) "Creating $@"
|
||||
@$(RM) $@.temp
|
||||
@$(CXX) $(CC_DEPEND) $(CPPFLAGS) $(CXXFLAGS) $< 2> $(DEV_NULL) | \
|
||||
$(CC_DEPEND_FILTER) > $@.temp
|
||||
@$(MV) $@.temp $@
|
||||
|
||||
endif # INCREMENTAL_BUILD
|
||||
|
||||
#
|
||||
# C, C++, asm files.
|
||||
#
|
||||
# Normal or parallel compile rule is the same, but batch compiles require
|
||||
# we save up the sources files that use the same compile line so that we
|
||||
# can do one compile line.
|
||||
#
|
||||
|
||||
ifneq ($(COMPILE_APPROACH), batch)
|
||||
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
|
||||
@$(prep-target)
|
||||
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
|
||||
@$(check-conventions)
|
||||
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.cpp
|
||||
@$(prep-target)
|
||||
$(COMPILE.cc) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
|
||||
@$(check-conventions)
|
||||
|
||||
else
|
||||
|
||||
#
|
||||
# Batch compiling might be faster if the compiler was smart about recognizing
|
||||
# optimization opportunities available when all files are being compiled
|
||||
# the same way. Unfortunately this is rare.
|
||||
# Automatic pre-compiled headers (pch) might be a possibility so we
|
||||
# add any auto pch options here.
|
||||
# So we save all the source files that have the same compile line as the
|
||||
# first file. A normal compile pass is made after the batch compile
|
||||
# to catch anything missed.
|
||||
# If the compilers had a -o option that allowed us to direct where to
|
||||
# write the object files to, then we would not need to save the object
|
||||
# file list or move them from the make directory to the build directory.
|
||||
#
|
||||
|
||||
# Source names
|
||||
COMPILE_LIST.c = $(OBJDIR)/.source_names_c
|
||||
COMPILE_LIST.cpp = $(OBJDIR)/.source_names_cpp
|
||||
|
||||
# Object file list
|
||||
COMPILE_OBJ_LIST.c = $(OBJDIR)/.obj_names_c
|
||||
COMPILE_OBJ_LIST.cpp = $(OBJDIR)/.obj_names_cpp
|
||||
|
||||
# The compile line
|
||||
COMPILE_BATCH.c = $(OBJDIR)/.compile_c
|
||||
COMPILE_BATCH.cpp = $(OBJDIR)/.compile_cpp
|
||||
|
||||
# The compile line for the current target
|
||||
THIS_COMPILE_BATCH.c = $(COMPILE_BATCH.c)-$(@F)
|
||||
THIS_COMPILE_BATCH.cpp = $(COMPILE_BATCH.cpp)-$(@F)
|
||||
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
|
||||
@$(prep-target)
|
||||
@$(ECHO) "$(COMPILE.c) $(CFLAGS_GPROF)" > $(THIS_COMPILE_BATCH.c)
|
||||
@if [ ! -s $(COMPILE_BATCH.c) ] ; then \
|
||||
$(CP) $(THIS_COMPILE_BATCH.c) $(COMPILE_BATCH.c) ; \
|
||||
$(ECHO) $< > $(COMPILE_LIST.c); \
|
||||
$(ECHO) $(@F) > $(COMPILE_OBJ_LIST.c); \
|
||||
elif [ "`$(DIFF) -w -b $(THIS_COMPILE_BATCH.c) $(COMPILE_BATCH.c)`" \
|
||||
= "" ] ; then \
|
||||
$(ECHO) $< >> $(COMPILE_LIST.c); \
|
||||
$(ECHO) $(@F) >> $(COMPILE_OBJ_LIST.c); \
|
||||
fi
|
||||
@$(RM) $(THIS_COMPILE_BATCH.c)
|
||||
@$(check-conventions)
|
||||
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.cpp
|
||||
@$(prep-target)
|
||||
@$(ECHO) "$(COMPILE.cc) $(CFLAGS_GPROF)" > $(THIS_COMPILE_BATCH.cpp)
|
||||
@if [ ! -s $(COMPILE_BATCH.cpp) ] ; then \
|
||||
$(CP) $(THIS_COMPILE_BATCH.cpp) $(COMPILE_BATCH.cpp) ; \
|
||||
$(ECHO) $< > $(COMPILE_LIST.cpp); \
|
||||
$(ECHO) $(@F) > $(COMPILE_OBJ_LIST.cpp); \
|
||||
elif [ "`$(DIFF) -w -b $(THIS_COMPILE_BATCH.cpp) $(COMPILE_BATCH.cpp)`"\
|
||||
= "" ] ; then \
|
||||
$(ECHO) $< >> $(COMPILE_LIST.cpp); \
|
||||
$(ECHO) $(@F) >> $(COMPILE_OBJ_LIST.cpp); \
|
||||
fi
|
||||
@$(RM) $(THIS_COMPILE_BATCH.cpp)
|
||||
@$(check-conventions)
|
||||
|
||||
batch_compile: $(FILES_o)
|
||||
@$(ECHO) "Doing batch compilations"
|
||||
@if [ -s $(COMPILE_LIST.c) ] ; then \
|
||||
$(ECHO) "$(COMPILE.c) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
|
||||
`$(CAT) $(COMPILE_LIST.c)`" ; \
|
||||
( $(COMPILE.c) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
|
||||
`$(CAT) $(COMPILE_LIST.c)` && \
|
||||
$(ECHO) "$(MV) `$(CAT) $(COMPILE_OBJ_LIST.c)` $(OBJDIR)" && \
|
||||
$(MV) `$(CAT) $(COMPILE_OBJ_LIST.c)` $(OBJDIR) ) || exit 1 ; \
|
||||
fi
|
||||
@if [ -s $(COMPILE_LIST.cpp) ] ; then \
|
||||
$(ECHO) "$(COMPILE.cc) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
|
||||
`$(CAT) $(COMPILE_LIST.cpp)`" ; \
|
||||
( $(COMPILE.cc) $(CFLAGS_GPROF) $(AUTOMATIC_PCH_OPTION) \
|
||||
`$(CAT) $(COMPILE_LIST.cpp)` && \
|
||||
$(ECHO) "$(MV) `$(CAT) $(COMPILE_OBJ_LIST.cpp)` $(OBJDIR)" && \
|
||||
$(MV) `$(CAT) $(COMPILE_OBJ_LIST.cpp)` $(OBJDIR) ) || exit 1 ; \
|
||||
fi
|
||||
@$(RM) $(COMPILE_BATCH.c) $(COMPILE_LIST.c) $(COMPILE_OBJ_LIST.c)
|
||||
@$(RM) $(COMPILE_BATCH.cpp) $(COMPILE_LIST.cpp) $(COMPILE_OBJ_LIST.cpp)
|
||||
|
||||
endif
|
||||
|
||||
# newer as does not handle c++ style comments
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.s
|
||||
ifneq ($(CC_VERSION), gcc)
|
||||
@$(prep-target)
|
||||
$(COMPILE.s) $(CC_OBJECT_OUTPUT_FLAG)$@ $<
|
||||
else
|
||||
@$(prep-target)
|
||||
$(CPP) -x assembler-with-cpp $< | $(COMPILE.s) -o $@
|
||||
endif
|
||||
@$(check-conventions)
|
||||
|
||||
# Obj-C files (Mac OS X only).
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.m
|
||||
@$(prep-target)
|
||||
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
|
||||
@$(check-conventions)
|
||||
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.mm
|
||||
@$(prep-target)
|
||||
$(COMPILE.cc) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
|
||||
@$(check-conventions)
|
||||
|
||||
$(OBJDIR)/%.$(OBJECT_SUFFIX): %.c
|
||||
@$(prep-target)
|
||||
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ $(CFLAGS_GPROF) $<
|
||||
@$(check-conventions)
|
||||
endif # PLATFORM
|
||||
|
||||
#
|
||||
# Quick hack for making the compiler generate just the assembly file.
|
||||
# $ gnumake obj/sparc/myfile.s
|
||||
#
|
||||
$(OBJDIR)/%.s: %.c
|
||||
@$(prep-target)
|
||||
$(COMPILE.c) $(CC_OBJECT_OUTPUT_FLAG)$@ -S $<
|
||||
@$(check-conventions)
|
||||
|
||||
# remove the intermediate files from the directories.
|
||||
# (If VARIANT=OPT, this removes all debug and fastdebug files too)
|
||||
clobber clean::
|
||||
$(RM) -r $(OBJDIR)
|
||||
$(RM) -r $(OBJDIR)_*
|
||||
|
||||
#
|
||||
# Lint support
|
||||
# (The 'lint' rule below is an older rule not using the .$(LINT_SUFFIX) files)
|
||||
#
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
$(OBJDIR)/%.$(LINT_SUFFIX): %.c
|
||||
@$(prep-target)
|
||||
$(LINT.c) -dirout=$(OBJDIR) -c $<
|
||||
lint.clean:
|
||||
$(RM) $(OBJDIR)/*.$(LINT_SUFFIX)
|
||||
# Old rule
|
||||
lint: $(FILES_c)
|
||||
ifneq ($(FILES_c),)
|
||||
$(LINT.c) -Ncheck -Nlevel=3 $? $(LDLIBS) > lint.$(ARCH) 2>&1
|
||||
endif
|
||||
endif
|
||||
|
||||
.PHONY: batch_compile
|
||||
|
||||
|
||||
262
jdk/makefiles/common/internal/Resources.gmk
Normal file
262
jdk/makefiles/common/internal/Resources.gmk
Normal file
@ -0,0 +1,262 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Generic mechanism for installing properties files, resource bundles,
|
||||
# and other resource files.
|
||||
#
|
||||
# FILES_properties should be defined.
|
||||
# FILES_compiled_properties should be defined.
|
||||
#
|
||||
# If COMPILED_PROPERTIES_SUPERCLASS is defined, ALL the FILES_properties
|
||||
# files will be compiled into java with this super class.
|
||||
#
|
||||
# You can add locales to LOCALE_SUFFIXES explicitly, or use the
|
||||
# LOCALE_SET_DEFINITION variable to add some pre-defined locale lists.
|
||||
# The LOCALE_SET_DEFINITION can have the value: jre, plugin, or jdk.
|
||||
#
|
||||
# Resource bundles to be installed are identified using the following variables.
|
||||
# Note that only the file name of the base bundle is given; localized versions
|
||||
# are added automatically. For Java files, use a format suitable for inclusion
|
||||
# in the FILES_java list; dito for properties, all relative paths.
|
||||
#
|
||||
# NEW_RESOURCE_BUNDLES_JAVA - new resource bundles implemented in
|
||||
# Java, not localized
|
||||
# RESOURCE_BUNDLES_JAVA - resource bundles implemented in
|
||||
# Java, localized
|
||||
#
|
||||
# The following variable is now used for most .properties files in the JDK.
|
||||
# These properties files are converted into java and compiled with javac.
|
||||
# The resulting .class files are usually smaller and are always faster to load.
|
||||
# The relative path to the properties file becomes a relative path to a
|
||||
# java source file.
|
||||
#
|
||||
# RESOURCE_BUNDLES_COMPILED_PROPERTIES - resource bundles implemented as
|
||||
# properties files, localized
|
||||
# NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES - same as above, not localized
|
||||
#
|
||||
# For non-compiled properties files, use the following variables:
|
||||
#
|
||||
# NEW_RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES - new resource bundles implemented as
|
||||
# properties files, not localized
|
||||
# RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES - resource bundles implemented as
|
||||
# properties files, localized
|
||||
#
|
||||
# Other properties files to be installed are identified using the variable:
|
||||
#
|
||||
# OTHER_PROPERTIES
|
||||
#
|
||||
|
||||
include $(SPEC)
|
||||
include $(SRC_ROOT)/jdk/makefiles/Tools.gmk
|
||||
|
||||
# Compile properties files into java source?
|
||||
ifdef COMPILED_PROPERTIES_SUPERCLASS
|
||||
# Add all properties files to the compiled properties list (all or nothing)
|
||||
COMPILED_PROPERTIES += $(FILES_compiled_properties) $(FILES_properties)
|
||||
else
|
||||
COMPILED_PROPERTIES_SUPERCLASS = ListResourceBundle
|
||||
COMPILED_PROPERTIES += $(FILES_compiled_properties)
|
||||
endif
|
||||
|
||||
# Determine the locale suffixes needed beyond the base bundle
|
||||
|
||||
ifeq ($(LOCALE_SET_DEFINITION), plugin)
|
||||
LOCALE_SUFFIXES += $(PLUGIN_LOCALES)
|
||||
endif
|
||||
ifeq ($(LOCALE_SET_DEFINITION), jdk)
|
||||
LOCALE_SUFFIXES += $(JDK_LOCALES)
|
||||
endif
|
||||
ifeq ($(LOCALE_SET_DEFINITION), jre)
|
||||
LOCALE_SUFFIXES += $(JRE_LOCALES)
|
||||
endif
|
||||
|
||||
# Java files get tacked onto the standard list of files to compile
|
||||
RESOURCE_BUNDLE_FILES_java += $(NEW_RESOURCE_BUNDLES_JAVA)
|
||||
RESOURCE_BUNDLE_FILES_java += $(RESOURCE_BUNDLES_JAVA) \
|
||||
$(foreach file,$(RESOURCE_BUNDLES_JAVA), \
|
||||
$(foreach locale,$(LOCALE_SUFFIXES), \
|
||||
$(basename $(file))_$(locale).java))
|
||||
|
||||
# Add to java sources list
|
||||
FILES_java += $(RESOURCE_BUNDLE_FILES_java)
|
||||
|
||||
# Compiled properties files are translated to .java.
|
||||
# The .java files are generated into GENSRCDIR.
|
||||
COMPILED_PROPERTIES += $(NEW_RESOURCE_BUNDLES_COMPILED_PROPERTIES)
|
||||
COMPILED_PROPERTIES += $(RESOURCE_BUNDLES_COMPILED_PROPERTIES) \
|
||||
$(foreach file,$(RESOURCE_BUNDLES_COMPILED_PROPERTIES),\
|
||||
$(foreach locale,$(LOCALE_SUFFIXES),\
|
||||
$(basename $(file))_$(locale)$(suffix $(file))))
|
||||
|
||||
# Add to java sources list
|
||||
FILES_java += $(COMPILED_PROPERTIES:%.properties=%.java)
|
||||
|
||||
# Non-compiled files
|
||||
PROPERTIES_FILES += $(NEW_RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES)
|
||||
PROPERTIES_FILES += $(RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES) \
|
||||
$(foreach file,$(RESOURCE_BUNDLES_UNCOMPILED_PROPERTIES), \
|
||||
$(foreach locale,$(LOCALE_SUFFIXES), \
|
||||
$(basename $(file))_$(locale)$(suffix $(file))))
|
||||
# other properties
|
||||
PROPERTIES_FILES += $(OTHER_PROPERTIES)
|
||||
|
||||
#
|
||||
# Process and strip all non-compiled properties files (in a batch mode)
|
||||
#
|
||||
STRIP_PROP_FILES = $(PROPERTIES_FILES:%=$(CLASSDESTDIR)/%)
|
||||
# To efficiently strip properties we use one run of StripProperties.
|
||||
# This macro gathers an option for use later.
|
||||
STRIP_PROP_options=$(TEMPDIR)/strip_prop_options
|
||||
define install-properties-file
|
||||
$(install-file)
|
||||
$(call chmod-file, a+rw)
|
||||
@$(ECHO) "# Adding to strip properties list: $@"
|
||||
$(ECHO) "$@" >> $(STRIP_PROP_options)
|
||||
endef
|
||||
|
||||
# Constructs command line options file
|
||||
$(STRIP_PROP_options): $(STRIP_PROP_FILES)
|
||||
@$(TOUCH) $@
|
||||
strip_prop_options_clean:
|
||||
@$(RM) $(STRIP_PROP_options)
|
||||
|
||||
# Strip the properties files
|
||||
strip_all_props: $(BUILD_TOOLS) $(STRIP_PROP_options)
|
||||
@if [ -s $(STRIP_PROP_options) ] ; then \
|
||||
$(ECHO) "$(TOOL_STRIPPROPERTIES) @$(STRIP_PROP_options)" ; \
|
||||
$(TOOL_STRIPPROPERTIES) @$(STRIP_PROP_options) ; \
|
||||
fi
|
||||
@$(java-vm-cleanup)
|
||||
|
||||
#
|
||||
# Creates files in CLASSDESTDIR
|
||||
#
|
||||
|
||||
# In some cases, we move files from package to resources subdir
|
||||
$(CLASSDESTDIR)/$(PKGDIR)/resources/%.properties: \
|
||||
$(SHARE_SRC)/classes/$(PKGDIR)/%.properties
|
||||
$(install-properties-file)
|
||||
$(CLASSDESTDIR)/%.properties: $(SHARE_SRC)/classes/%.properties
|
||||
$(install-properties-file)
|
||||
$(CLASSDESTDIR)/%.res: $(SHARE_SRC)/classes/%.res
|
||||
$(install-file)
|
||||
$(CLASSDESTDIR)/%.dtd: $(SHARE_SRC)/classes/%.dtd
|
||||
$(install-file)
|
||||
$(CLASSDESTDIR)/%.xml: $(SHARE_SRC)/classes/%.xml
|
||||
$(install-file)
|
||||
$(CLASSDESTDIR)/%.prp: $(SHARE_SRC)/classes/%.prp
|
||||
$(install-file)
|
||||
|
||||
#
|
||||
# To efficiently compile properties into java sources we use one run
|
||||
# of compileproperties. This macro gathers an option for use later.
|
||||
# Note: The properties file and java source name can be different
|
||||
# locales, e.g. zh_TW and zh_HK. The java source filename
|
||||
# determines the name of the class.
|
||||
COMPILE_PROP_options=$(TEMPDIR)/compile_prop_options
|
||||
define add-property-java-file
|
||||
@$(prep-target)
|
||||
@$(ECHO) "# Adding to compile properties list: $? -> $@"
|
||||
$(ECHO) "-compile $? $@ $(COMPILED_PROPERTIES_SUPERCLASS)" \
|
||||
>> $(COMPILE_PROP_options)
|
||||
endef
|
||||
|
||||
$(GENSRCDIR)/%.java: $(PLATFORM_SRC)/classes/%.properties
|
||||
$(add-property-java-file)
|
||||
$(GENSRCDIR)/%.java: $(SHARE_SRC)/classes/%.properties
|
||||
$(add-property-java-file)
|
||||
$(GENSRCDIR)/%.java: $(GENSRCDIR)/%.properties
|
||||
$(add-property-java-file)
|
||||
ifndef OPENJDK
|
||||
$(GENSRCDIR)/%.java: $(CLOSED_PLATFORM_SRC)/classes/%.properties
|
||||
$(add-property-java-file)
|
||||
$(GENSRCDIR)/%.java: $(CLOSED_SHARE_SRC)/classes/%.properties
|
||||
$(add-property-java-file)
|
||||
endif
|
||||
|
||||
# Create HK java file from zh_TW (explicit resource bundles only)
|
||||
define create-hk-java-file
|
||||
@$(prep-target)
|
||||
$(CAT) $< | $(SED) -e '/class/s/_zh_TW/_zh_HK/' > $@
|
||||
endef
|
||||
|
||||
# Explicit resource bundles
|
||||
$(GENSRCDIR)/%_zh_HK.java: $(PLATFORM_SRC)/classes/%_zh_TW.java
|
||||
$(create-hk-java-file)
|
||||
$(GENSRCDIR)/%_zh_HK.java: $(SHARE_SRC)/classes/%_zh_TW.java
|
||||
$(create-hk-java-file)
|
||||
|
||||
# Compile of zh_HK properties just uses the zh_TW properties files
|
||||
$(GENSRCDIR)/%_zh_HK.java: $(PLATFORM_SRC)/classes/%_zh_TW.properties
|
||||
$(add-property-java-file)
|
||||
$(GENSRCDIR)/%_zh_HK.java: $(SHARE_SRC)/classes/%_zh_TW.properties
|
||||
$(add-property-java-file)
|
||||
|
||||
# Simple delivery of zh_HK properties files just copies zh_TW properties files
|
||||
$(CLASSDESTDIR)/%_zh_HK.properties: \
|
||||
$(PLATFORM_SRC)/classes/%_zh_TW.properties
|
||||
$(install-properties-file)
|
||||
$(CLASSDESTDIR)/%_zh_HK.properties: \
|
||||
$(SHARE_SRC)/classes/%_zh_TW.properties
|
||||
$(install-properties-file)
|
||||
|
||||
# List of java files converted from properties files needed
|
||||
COMPILE_PROP_JAVA_FILES = $(COMPILED_PROPERTIES:%.properties=$(GENSRCDIR)/%.java)
|
||||
|
||||
# Constructs command line options file
|
||||
$(COMPILE_PROP_options): $(COMPILE_PROP_JAVA_FILES)
|
||||
@$(TOUCH) $@
|
||||
compile_prop_options_clean:
|
||||
@$(RM) $(COMPILE_PROP_options)
|
||||
|
||||
# Make sure all are compiled, one compiler run
|
||||
compile_all_props: $(BUILD_TOOLS) $(COMPILE_PROP_options)
|
||||
@if [ `$(CAT) $(COMPILE_PROP_options) | $(WC) -l` -ge 1 ] ; then \
|
||||
$(MKDIR) -p $(GENSRCDIR); \
|
||||
$(ECHO) "$(TOOL_COMPILEPROPERTIES) @$(COMPILE_PROP_options)";\
|
||||
$(TOOL_COMPILEPROPERTIES) @$(COMPILE_PROP_options) ; \
|
||||
$(java-vm-cleanup); \
|
||||
fi
|
||||
|
||||
# Make sure the build rule creates all the properties
|
||||
resources:
|
||||
|
||||
ifneq ($(strip $(PROPERTIES_FILES)),)
|
||||
resources: strip_prop_options_clean strip_all_props
|
||||
clobber clean::
|
||||
$(RM) $(STRIP_PROP_FILES) $(STRIP_PROP_options)
|
||||
endif
|
||||
|
||||
ifneq ($(strip $(COMPILED_PROPERTIES)),)
|
||||
resources: compile_prop_options_clean compile_all_props
|
||||
clobber clean::
|
||||
$(RM) $(COMPILE_PROP_JAVA_FILES) $(COMPILE_PROP_options)
|
||||
endif
|
||||
|
||||
.PHONY: resources \
|
||||
compile_prop_options_clean compile_all_props \
|
||||
strip_prop_options_clean strip_all_props
|
||||
|
||||
98
jdk/makefiles/common/shared/Compiler-gcc.gmk
Normal file
98
jdk/makefiles/common/shared/Compiler-gcc.gmk
Normal file
@ -0,0 +1,98 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# GCC Compiler settings
|
||||
#
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
|
||||
# Settings specific to Windows, pretty stale, hasn't been used
|
||||
CC ?= $(COMPILER_PATH)gcc
|
||||
CPP ?= $(COMPILER_PATH)gcc -E
|
||||
CXX ?= $(COMPILER_PATH)g++
|
||||
CCC ?= $(COMPILER_PATH)g++
|
||||
AR ?= $(COMPILER_PATH)lib
|
||||
LINK ?= $(COMPILER_PATH)link
|
||||
RC ?= $(COMPILER_PATH)rc
|
||||
LINK32 = $(LINK)
|
||||
RSC = $(RC)
|
||||
# unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
|
||||
NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
CC_VER = UNKNOWN
|
||||
else
|
||||
CC_VER = UNKNOWN
|
||||
endif
|
||||
_LINK_VER :=$(shell $(LINK) 2>&1 | $(HEAD) -n 1)
|
||||
LINK_VER :=$(call GetVersion,"$(_LINK_VER)")
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), linux)
|
||||
|
||||
# Settings specific to Linux
|
||||
CC ?= $(COMPILER_PATH)gcc
|
||||
CPP ?= $(COMPILER_PATH)gcc -E
|
||||
# Acquire the paths to the compilers and tools
|
||||
# statically link libstdc++ before C++ ABI is stablized on Linux
|
||||
STATIC_CXX = true
|
||||
ifeq ($(STATIC_CXX),true)
|
||||
# g++ always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
|
||||
# We need to use gcc to statically link the C++ runtime. gcc and g++ use
|
||||
# the same subprocess to compile C++ files, so it is OK to build using gcc.
|
||||
CXX ?= $(CC)
|
||||
#$(COMPILER_PATH)gcc
|
||||
else
|
||||
# CXX = $(COMPILER_PATH)g++
|
||||
endif
|
||||
# Option used to create a shared library
|
||||
SHARED_LIBRARY_FLAG = -shared
|
||||
SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
|
||||
# Settings specific to Solaris
|
||||
CC ?= $(COMPILER_PATH)gcc
|
||||
CPP ?= $(COMPILER_PATH)gcc -E
|
||||
CXX ?= $(COMPILER_PATH)g++
|
||||
|
||||
# Option used to create a shared library
|
||||
SHARED_LIBRARY_FLAG = -G
|
||||
|
||||
endif
|
||||
|
||||
# Get gcc version
|
||||
_CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
|
||||
CC_VER :=$(call GetVersion,"$(_CC_VER)")
|
||||
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
|
||||
CC_MINORVER :=$(call MinorVersion,$(CC_VER))
|
||||
|
||||
# Name of compiler
|
||||
COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER))
|
||||
COMPILER_VERSION = $(COMPILER_NAME)
|
||||
|
||||
59
jdk/makefiles/common/shared/Compiler-llvm.gmk
Normal file
59
jdk/makefiles/common/shared/Compiler-llvm.gmk
Normal file
@ -0,0 +1,59 @@
|
||||
#
|
||||
# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# LLVM Compiler settings
|
||||
#
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
|
||||
# Settings specific to Mac OS X
|
||||
ifeq ($(origin CC), default)
|
||||
CC = $(COMPILER_PATH)llvm-gcc
|
||||
endif
|
||||
CPP = $(COMPILER_PATH)llvm-gcc -E
|
||||
ifeq ($(origin CXX), default)
|
||||
CXX = $(COMPILER_PATH)llvm-g++
|
||||
endif
|
||||
|
||||
REQUIRED_CC_VER = 4.2.1
|
||||
|
||||
# Option used to create a shared library
|
||||
SHARED_LIBRARY_FLAG = -Wl,-install_name,@rpath/$(@F) -dynamiclib -compatibility_version 1.0.0 -current_version 1.0.0
|
||||
SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 )
|
||||
|
||||
AR = $(CC)
|
||||
ARFLAGS = -nostdlib -r -arch i386 -arch x86_64 -o
|
||||
|
||||
endif
|
||||
|
||||
# Get llvm version
|
||||
_CC_VER :=$(shell $(CC) -dumpversion 2>&1 )
|
||||
CC_VER :=$(call GetVersion,"$(_CC_VER)")
|
||||
|
||||
# Name of compiler
|
||||
COMPILER_NAME = LLVM-GCC$(call MajorVersion,$(CC_VER))
|
||||
COMPILER_VERSION = $(COMPILER_NAME)
|
||||
|
||||
93
jdk/makefiles/common/shared/Compiler-msvc.gmk
Normal file
93
jdk/makefiles/common/shared/Compiler-msvc.gmk
Normal file
@ -0,0 +1,93 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# MSVC Compiler settings
|
||||
#
|
||||
|
||||
ifeq ($(PLATFORM), windows)
|
||||
CC ?= $(COMPILER_PATH)cl
|
||||
CPP ?= $(COMPILER_PATH)cl
|
||||
CXX ?= $(COMPILER_PATH)cl
|
||||
CCC ?= $(COMPILER_PATH)cl
|
||||
AR ?= $(COMPILER_PATH)lib
|
||||
LINK ?= $(COMPILER_PATH)link
|
||||
LINK32 ?= $(LINK)
|
||||
# TODO Add dumpbin.exe to configure
|
||||
DUMPBIN ?= $(COMPILER_PATH)dumpbin.exe
|
||||
|
||||
# Fill in unknown values
|
||||
COMPILER_NAME=Unknown MSVC Compiler
|
||||
COMPILER_VERSION=
|
||||
|
||||
# unset any GNU Make settings of MFLAGS and MAKEFLAGS which may mess up nmake
|
||||
NMAKE = MFLAGS= MAKEFLAGS= $(COMPILER_PATH)nmake -nologo
|
||||
|
||||
# Compiler version and type (Always get word after "Version")
|
||||
CC_VER := $(shell $(CC) 2>&1 | $(HEAD) -n 1 | $(SED) 's/.*\(Version.*\)/\1/' | $(NAWK) '{print $$2}')
|
||||
|
||||
LINK_VER := $(shell $(LINK) | $(HEAD) -n 1 | $(NAWK) '{print $$6}')
|
||||
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
|
||||
|
||||
# The VS2010 compiler is the same one used on both 32bit and 64bit
|
||||
ifeq ($(CC_MAJORVER), 16)
|
||||
COMPILER_NAME=Microsoft Visual Studio 10 (16.00.30319.01)
|
||||
COMPILER_VERSION=VS2010
|
||||
ifeq ($(WINDOWSSDKDIR),)
|
||||
WINDOWSSDKDIR := $(error WINDOWSSDKDIR cannot be empty here)
|
||||
endif
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
_OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin
|
||||
else
|
||||
ifeq ($(ARCH), ia64)
|
||||
_OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/ia64
|
||||
else
|
||||
_OTHER_TOOLS_BIN = $(WINDOWSSDKDIR)/Bin/x64
|
||||
endif
|
||||
endif
|
||||
RC = $(_OTHER_TOOLS_BIN)/RC.Exe
|
||||
REBASE = $(_OTHER_TOOLS_BIN)/ReBase.Exe
|
||||
MT = $(_OTHER_TOOLS_BIN)/mt.exe
|
||||
MTL = $(_OTHER_TOOLS_BIN)/midl.exe
|
||||
endif
|
||||
|
||||
# These variables can never be empty
|
||||
ifndef COMPILER_PATH
|
||||
COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
|
||||
endif
|
||||
ifndef COMPILER_VERSION
|
||||
COMPILER_VERSION := $(error COMPILER_VERSION cannot be empty here)
|
||||
endif
|
||||
ifneq ($(COMPILER_VERSION),VS2010)
|
||||
COMPILER_VERSION := $(error COMPILER_VERSION must be VS2010)
|
||||
endif
|
||||
|
||||
# Shared library generation flag
|
||||
SHARED_LIBRARY_FLAG = -LD
|
||||
# RSC is always same as RC (Not sure who uses this RSC variable)
|
||||
RSC = $(RC)
|
||||
|
||||
endif
|
||||
|
||||
138
jdk/makefiles/common/shared/Compiler-sun.gmk
Normal file
138
jdk/makefiles/common/shared/Compiler-sun.gmk
Normal file
@ -0,0 +1,138 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Sun Studio Compiler settings
|
||||
#
|
||||
|
||||
# Sun Studio Compiler settings specific to Solaris
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
CC ?= $(COMPILER_PATH)cc
|
||||
CPP ?= $(COMPILER_PATH)cc -E
|
||||
CXX ?= $(COMPILER_PATH)CC
|
||||
LINT ?= $(COMPILER_PATH)lint
|
||||
# Option used to create a shared library
|
||||
SHARED_LIBRARY_FLAG = -G
|
||||
GCC =$(GCC_COMPILER_PATH)gcc
|
||||
endif
|
||||
|
||||
# Sun Studio Compiler settings specific to Linux
|
||||
ifeq ($(PLATFORM), linux)
|
||||
# This has not been tested
|
||||
CC ?= $(COMPILER_PATH)cc
|
||||
CPP ?= $(COMPILER_PATH)cc -E
|
||||
CXX ?= $(COMPILER_PATH)CC
|
||||
LINT ?= $(COMPILER_PATH)lint
|
||||
# statically link libstdc++ before C++ ABI is stablized on Linux
|
||||
STATIC_CXX = true
|
||||
ifeq ($(STATIC_CXX),true)
|
||||
# CC always dynamically links libstdc++, even we use "-Wl,-Bstatic -lstdc++"
|
||||
# We need to use cc to statically link the C++ runtime.
|
||||
CXX ?= $(COMPILER_PATH)cc
|
||||
else
|
||||
CXX ?= $(COMPILER_PATH)CC
|
||||
endif
|
||||
# Option used to create a shared library
|
||||
SHARED_LIBRARY_FLAG = -G
|
||||
endif
|
||||
|
||||
# Get compiler version
|
||||
_CC_VER :=$(shell $(CC) -V 2>&1 | $(HEAD) -n 1)
|
||||
CC_VER :=$(call GetVersion,"$(_CC_VER)")
|
||||
CC_MAJORVER :=$(call MajorVersion,$(CC_VER))
|
||||
CC_MINORVER :=$(call MinorVersion,$(CC_VER))
|
||||
|
||||
# Name of compilers being used
|
||||
COMPILER_VERSION-5.7 = SS10
|
||||
COMPILER_NAME-5.7 = Sun Studio 10
|
||||
COMPILER_VERSION-5.8 = SS11
|
||||
COMPILER_NAME-5.8 = Sun Studio 11
|
||||
COMPILER_VERSION-5.9 = SS12
|
||||
COMPILER_NAME-5.9 = Sun Studio 12
|
||||
COMPILER_VERSION-5.10 = SS12u1
|
||||
COMPILER_NAME-5.10 = Sun Studio 12 Update 1
|
||||
COMPILER_VERSION-5.11 = OSS12u2
|
||||
COMPILER_NAME-5.11 = Oracle Solaris Studio 12 Update 2
|
||||
COMPILER_VERSION = $(COMPILER_VERSION-$(CC_VER))
|
||||
COMPILER_NAME = $(COMPILER_NAME-$(CC_VER))
|
||||
|
||||
# Arch specific settings (determines type of .o files and instruction set)
|
||||
# Starting in SS12 (5.9), the arch options changed.
|
||||
# The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
|
||||
# Note: We need to have both 32 and 64 values at all times for awt Makefiles.
|
||||
#
|
||||
XARCH_OPTION_OLD/32 =
|
||||
XARCH_OPTION_OLD/64 =
|
||||
XARCH_OPTION_NEW/32 = -m32
|
||||
XARCH_OPTION_NEW/64 = -m64
|
||||
# Lint options are slightly different
|
||||
LINT_XARCH_OPTION_OLD/32 =
|
||||
LINT_XARCH_OPTION_OLD/64 =
|
||||
LINT_XARCH_OPTION_NEW/32 = -m32
|
||||
LINT_XARCH_OPTION_NEW/64 = -m64
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
ifdef VIS_NEEDED
|
||||
XARCH_OPTION_OLD/32 += -xarch=v8plusa
|
||||
XARCH_OPTION_OLD/64 += -xarch=v9a
|
||||
XARCH_OPTION_NEW/32 += -xarch=sparcvis
|
||||
XARCH_OPTION_NEW/64 += -xarch=sparcvis
|
||||
else
|
||||
# Someday this should change to improve optimization on UltraSPARC
|
||||
# and abandon v8, even change to sparcvis or sparcvis2, this
|
||||
# abandons machines like the SPARCstation 10.
|
||||
# Indications with jdk6 is that alacrity runs do not show a
|
||||
# big improvement using v8plus over v8, but other benchmarks might.
|
||||
XARCH_OPTION_OLD/32 += -xarch=v8
|
||||
XARCH_OPTION_OLD/64 += -xarch=v9
|
||||
# Note that this new option (SS12+) effectively means v8plus
|
||||
XARCH_OPTION_NEW/32 += -xarch=sparc
|
||||
XARCH_OPTION_NEW/64 += -xarch=sparc
|
||||
endif
|
||||
LINT_XARCH_OPTION_OLD/64 += -Xarch=v9
|
||||
endif
|
||||
ifeq ($(ARCH_FAMILY), i586)
|
||||
XARCH_OPTION_OLD/64 += -xarch=amd64
|
||||
LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64
|
||||
endif
|
||||
# Pick the options we want based on the compiler being used. (5.9 or newer)
|
||||
CC_59_OR_NEWER := \
|
||||
$(shell expr $(CC_MAJORVER) \> 5 \| \
|
||||
\( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \>= 9 \) )
|
||||
ifeq ($(CC_59_OR_NEWER), 1)
|
||||
XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32)
|
||||
XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64)
|
||||
LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32)
|
||||
LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_NEW/64)
|
||||
else
|
||||
XARCH_OPTION/32 = $(XARCH_OPTION_OLD/32)
|
||||
XARCH_OPTION/64 = $(XARCH_OPTION_OLD/64)
|
||||
LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_OLD/32)
|
||||
LINT_XARCH_OPTION/64 = $(LINT_XARCH_OPTION_OLD/64)
|
||||
endif
|
||||
XARCH_OPTION = $(XARCH_OPTION/$(ARCH_DATA_MODEL))
|
||||
LINT_XARCH_OPTION = $(LINT_XARCH_OPTION/$(ARCH_DATA_MODEL))
|
||||
# The /usr/ccs/bin/as assembler always wants the older SS11 (5.8) options.
|
||||
AS_XARCH_OPTION = $(XARCH_OPTION_OLD/$(ARCH_DATA_MODEL))
|
||||
|
||||
143
jdk/makefiles/common/shared/Defs-control.gmk
Normal file
143
jdk/makefiles/common/shared/Defs-control.gmk
Normal file
@ -0,0 +1,143 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Common variables used by all the Java makefiles. This file should
|
||||
# not contain rules.
|
||||
#
|
||||
|
||||
# WARNING: This file is shared with other components.
|
||||
#
|
||||
|
||||
ifndef JDK_MAKE_SHARED_DIR
|
||||
JDK_MAKE_SHARED_DIR = $(JDK_TOPDIR)/makefiles/common/shared
|
||||
endif
|
||||
|
||||
ifndef HOTSPOT_TOPDIR
|
||||
HOTSPOT_TOPDIR=$(TOPDIR)/hotspot
|
||||
endif
|
||||
ifndef LANGTOOLS_TOPDIR
|
||||
LANGTOOLS_TOPDIR=$(TOPDIR)/langtools
|
||||
endif
|
||||
ifndef CORBA_TOPDIR
|
||||
CORBA_TOPDIR=$(TOPDIR)/corba
|
||||
endif
|
||||
ifndef JAXP_TOPDIR
|
||||
JAXP_TOPDIR=$(TOPDIR)/jaxp
|
||||
endif
|
||||
ifndef JAXWS_TOPDIR
|
||||
JAXWS_TOPDIR=$(TOPDIR)/jaxws
|
||||
endif
|
||||
ifndef JDK_TOPDIR
|
||||
JDK_TOPDIR=$(TOPDIR)/jdk
|
||||
endif
|
||||
ifndef INSTALL_TOPDIR
|
||||
INSTALL_TOPDIR=$(TOPDIR)/install
|
||||
endif
|
||||
ifndef SPONSORS_TOPDIR
|
||||
SPONSORS_TOPDIR=$(TOPDIR)/sponsors
|
||||
endif
|
||||
ifndef DEPLOY_TOPDIR
|
||||
DEPLOY_TOPDIR=$(TOPDIR)/deploy
|
||||
endif
|
||||
|
||||
# Get shared platform settings
|
||||
include $(JDK_MAKE_SHARED_DIR)/Platform.gmk
|
||||
|
||||
# Default directory immediately above the "build" output directory (OUTPUTDIR)
|
||||
BUILD_PARENT_DIRECTORY=$(TOPDIR)
|
||||
|
||||
# Get platform specific settings
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs.gmk
|
||||
|
||||
SRC_BUNDLEDIR = $(OUTPUTDIR)/source-bundles
|
||||
ABS_SRC_BUNDLEDIR = $(ABS_OUTPUTDIR)/source-bundles
|
||||
BIN_BUNDLEDIR = $(OUTPUTDIR)/bundles
|
||||
BIN_DEMOS_BUNDLEDIR = $(OUTPUTDIR)/demos-bundles
|
||||
ABS_BIN_BUNDLEDIR = $(ABS_OUTPUTDIR)/bundles
|
||||
|
||||
dummy := $(shell $(MKDIR) -p $(BIN_BUNDLEDIR))
|
||||
dummy := $(shell $(MKDIR) -p $(BIN_DEMOS_BUNDLEDIR) )
|
||||
dummy := $(shell $(MKDIR) -p $(SRC_BUNDLEDIR) )
|
||||
|
||||
TEMP_DIR = $(OUTPUTDIR)/tmp
|
||||
ABS_TEMP_DIR = $(ABS_OUTPUTDIR)/tmp
|
||||
|
||||
dummy := $(shell $(MKDIR) -p $(TEMP_DIR))
|
||||
|
||||
# The language version we want for this jdk build
|
||||
SOURCE_LANGUAGE_VERSION=7
|
||||
# The class version we want for this jdk build
|
||||
TARGET_CLASS_VERSION=7
|
||||
|
||||
# The MESSAGE, WARNING and ERROR files are used to store sanity check and
|
||||
# source check messages, warnings and errors.
|
||||
export ERROR_FILE := $(ABS_OUTPUTDIR)/sanityCheckErrors.txt
|
||||
export WARNING_FILE := $(ABS_OUTPUTDIR)/sanityCheckWarnings.txt
|
||||
export MESSAGE_FILE := $(ABS_OUTPUTDIR)/sanityCheckMessages.txt
|
||||
|
||||
# source bundle generation definitions
|
||||
BUNDLE_DATE := $(shell $(DATE) '+%d_%b_%Y' | $(TR) "[A-Z]" "[a-z]")
|
||||
ifdef ALT_BUNDLE_DATE
|
||||
BUNDLE_DATE := $(ALT_BUNDLE_DATE)
|
||||
endif
|
||||
|
||||
# If the update version contains non-numeric characters, we need
|
||||
# to massage it into a numeric format. Unfortunately, the
|
||||
# Windows VERSIONINFO resource that we stick in jvm.dll cannot
|
||||
# handle non-numeric characters. We have to do this here because
|
||||
# Hotspot (nmake) cannot handle calculations. So we use the
|
||||
# following formula:
|
||||
# COOKED_JDK_UPDATE_VERSION = JDK_UPDATE_VERSION * 10 + EXCEPTION_VERSION
|
||||
#
|
||||
# Here are some examples:
|
||||
# 1.5.0 b01 -> 5,0,0,1
|
||||
# 1.5.0_10 b01 -> 5,0,100,1
|
||||
# 1.4.2 b01 -> 4,2,0,1
|
||||
# 1.4.2_02 b01 -> 4,2,20,1
|
||||
# 1.4.2_02a b01 -> 4,2,21,1
|
||||
# 1.4.2_02b b01 -> 4,2,22,1
|
||||
ifdef JDK_UPDATE_VERSION
|
||||
VTMP := $(shell $(ECHO) $(JDK_UPDATE_VERSION) | $(TR) "abcde" "12345")
|
||||
CHAR1 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 1, 1);}')
|
||||
CHAR2 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 2, 1);}')
|
||||
CHAR3 := $(shell $(ECHO) $(VTMP) | $(NAWK) '{print substr($$1, 3, 1);}')
|
||||
ifeq ($(CHAR3),)
|
||||
CHAR3 := 0
|
||||
endif
|
||||
ifeq ($(CHAR1), 0)
|
||||
COOKED_JDK_UPDATE_VERSION := $(CHAR2)$(CHAR3)
|
||||
else
|
||||
COOKED_JDK_UPDATE_VERSION := $(CHAR1)$(CHAR2)$(CHAR3)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(JDK_BUILD_NUMBER),)
|
||||
COOKED_BUILD_NUMBER = $(shell $(ECHO) $(JDK_BUILD_NUMBER) \
|
||||
| $(SED) -e 's/^b//' | $(SED) -e 's/^0//')
|
||||
else
|
||||
COOKED_BUILD_NUMBER = 0
|
||||
endif
|
||||
|
||||
249
jdk/makefiles/common/shared/Defs-java.gmk
Normal file
249
jdk/makefiles/common/shared/Defs-java.gmk
Normal file
@ -0,0 +1,249 @@
|
||||
#
|
||||
# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Common java/javac/jdk variables used by all the Java makefiles.
|
||||
# This file should not contain rules.
|
||||
#
|
||||
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
# So when it includes other files, it must use JDK_TOPDIR.
|
||||
#
|
||||
|
||||
-include $(SPEC)
|
||||
|
||||
#
|
||||
# Memory related -J flags that all uses of java tools should use.
|
||||
#
|
||||
#JAVA_MEM_FLAGS = -Xmx$(MAX_VM_MEMORY)m
|
||||
#ifeq ($(ARCH), ia64)
|
||||
# Special flags for javac on ia64 to work around a VM problem with
|
||||
# bad code generation during inlining (what version had this problem?):
|
||||
# Suspect this may not be needed anymore.
|
||||
# JAVA_MEM_FLAGS += -Xms$(MAX_VM_MEMORY)m -XX:-Inline
|
||||
#else
|
||||
# JAVA_MEM_FLAGS += -Xms$(MIN_VM_MEMORY)m -XX:PermSize=32m -XX:MaxPermSize=160m
|
||||
#endif
|
||||
|
||||
#
|
||||
# All java tools (javac, javah, and javadoc) run faster with certain java
|
||||
# options, this macro should be used with all these tools.
|
||||
# In particular, the client VM makes these tools run faster when
|
||||
# it's available.
|
||||
#
|
||||
ADD_CLIENT_VM_OPTION = false
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ADD_CLIENT_VM_OPTION = true
|
||||
else
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ADD_CLIENT_VM_OPTION = true
|
||||
endif
|
||||
endif
|
||||
|
||||
# Options for hotspot to turn off printing of options with fastdebug version
|
||||
# and creating the hotspot.log file.
|
||||
#JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS = \
|
||||
# -XX:-PrintVMOptions -XX:+UnlockDiagnosticVMOptions -XX:-LogVMOutput
|
||||
|
||||
# JVM options
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS) -Djava.awt.headless=true
|
||||
else
|
||||
JAVA_JVM_FLAGS = $(JAVA_HOTSPOT_DISABLE_PRINT_VMOPTIONS)
|
||||
endif
|
||||
|
||||
#ifeq ($(ADD_CLIENT_VM_OPTION), true)
|
||||
# JAVA_JVM_FLAGS += -client
|
||||
#endif
|
||||
#ifdef USE_HOTSPOT_INTERPRETER_MODE
|
||||
# JAVA_JVM_FLAGS += -Xint
|
||||
#endif
|
||||
|
||||
# Various VM flags
|
||||
JAVA_TOOLS_FLAGS = $(JAVA_JVM_FLAGS) $(JAVA_MEM_FLAGS)
|
||||
|
||||
# The VM flags for javac
|
||||
JAVAC_JVM_FLAGS =
|
||||
|
||||
# 64-bit builds require a larger thread stack size.
|
||||
#ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
# JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=768
|
||||
#else
|
||||
# JAVAC_JVM_FLAGS += -J-XX:ThreadStackSize=1536
|
||||
#endif
|
||||
JAVAC_JVM_FLAGS += $(JAVA_TOOLS_FLAGS:%=-J%)
|
||||
|
||||
# The jar -J options are special, must be added at the end of the command line
|
||||
JAR_JFLAGS = $(JAVA_TOOLS_FLAGS:%=-J%)
|
||||
|
||||
# JAVA_TOOLS_DIR is the default location to find Java tools to run, if
|
||||
# langtools is not available.
|
||||
# This should be the latest promoted JDK javac.
|
||||
ifndef JAVA_TOOLS_DIR
|
||||
JAVA_TOOLS_DIR = $(JDK_IMPORT_PATH)/bin
|
||||
endif
|
||||
|
||||
#
|
||||
# Invoking the Java compiler. In leaf makefiles, choose as follows:
|
||||
# -- Use JAVAC if you want to take full control of what options get
|
||||
# passed to javac.
|
||||
# -- Use JAVAC_CMD if you want to take the defaults given to you.
|
||||
#
|
||||
|
||||
ifndef DEBUG_CLASSFILES
|
||||
ifeq ($(VARIANT), DBG)
|
||||
DEBUG_CLASSFILES = true
|
||||
endif
|
||||
endif
|
||||
JAVACFLAGS =
|
||||
ifeq ($(DEBUG_CLASSFILES),true)
|
||||
JAVACFLAGS += -g
|
||||
endif
|
||||
ifeq ($(JAVAC_MAX_WARNINGS), true)
|
||||
JAVAC_LINT_OPTIONS += -Xlint:all
|
||||
endif
|
||||
ifeq ($(JAVAC_WARNINGS_FATAL), true)
|
||||
JAVACFLAGS += -Werror
|
||||
endif
|
||||
|
||||
# TODO: Workaround for CR 7063027. Remove -path eventually.
|
||||
JAVAC_LINT_OPTIONS += -Xlint:-path
|
||||
|
||||
JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
|
||||
|
||||
#
|
||||
# Some licensees do not get the Security Source bundles. We will
|
||||
# fall back on the prebuilt jce.jar so that we can do a best
|
||||
# attempt at building. If sources exist, we always want to
|
||||
# build/use the most recent source instead of an older jce.jar, whether
|
||||
# built implicitly/explicitly.
|
||||
#
|
||||
ifeq ($(wildcard $(SHARE_SRC)/classes/javax/crypto/Cipher.java),)
|
||||
JCEFLAGS = $(CLASSPATH_SEPARATOR)$(LIBDIR)/jce.jar
|
||||
endif
|
||||
|
||||
# Add the source level
|
||||
SOURCE_LANGUAGE_VERSION = 7
|
||||
LANGUAGE_VERSION = -source $(SOURCE_LANGUAGE_VERSION)
|
||||
JAVACFLAGS += $(LANGUAGE_VERSION)
|
||||
|
||||
# Add the class version we want
|
||||
TARGET_CLASS_VERSION = 7
|
||||
CLASS_VERSION = -target $(TARGET_CLASS_VERSION)
|
||||
JAVACFLAGS += $(CLASS_VERSION)
|
||||
JAVACFLAGS += -encoding ascii
|
||||
JAVACFLAGS += "-Xbootclasspath:$(CLASSBINDIR)$(JCEFLAGS)"
|
||||
JAVACFLAGS += $(OTHER_JAVACFLAGS)
|
||||
|
||||
# Needed for javah
|
||||
JAVAHFLAGS += -bootclasspath "$(CLASSBINDIR)$(JCEFLAGS)"
|
||||
|
||||
# Needed for javadoc to ensure it builds documentation
|
||||
# against the newly built classes
|
||||
JAVADOCFLAGS += -bootclasspath $(CLASSBINDIR)
|
||||
|
||||
# Needed for JAVADOC and BOOT_JAVACFLAGS
|
||||
NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
|
||||
|
||||
# Langtools
|
||||
LANGTOOLS_DIST ?= $(ALT_LANGTOOLS_DIST)
|
||||
|
||||
ifdef LANGTOOLS_DIST
|
||||
JAVAC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javac.jar
|
||||
JAVAH_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javah.jar
|
||||
JAVADOC_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/javadoc.jar
|
||||
DOCLETS_JAR = $(LANGTOOLS_DIST)/bootstrap/lib/doclets.jar
|
||||
JAVAC_CMD = $(BOOT_JAVA_CMD) \
|
||||
"-Xbootclasspath/p:$(JAVAC_JAR)" \
|
||||
-jar $(JAVAC_JAR) $(JAVACFLAGS)
|
||||
JAVAH_CMD = $(BOOT_JAVA_CMD) \
|
||||
"-Xbootclasspath/p:$(JAVAH_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)" \
|
||||
-jar $(JAVAH_JAR) $(JAVAHFLAGS)
|
||||
JAVADOC_CMD = $(BOOT_JAVA_CMD) \
|
||||
"-Xbootclasspath/p:$(JAVADOC_JAR)$(CLASSPATH_SEPARATOR)$(JAVAC_JAR)$(CLASSPATH_SEPARATOR)$(DOCLETS_JAR)" \
|
||||
-jar $(JAVADOC_JAR) $(JAVADOCFLAGS)
|
||||
else
|
||||
# If no explicit tools, use boot tools (add VM flags in this case)
|
||||
JAVAC_CMD = $(UNCYGDRIVE) $(JAVA_TOOLS_DIR)/javac $(JAVAC_JVM_FLAGS) \
|
||||
$(JAVACFLAGS)
|
||||
JAVAH_CMD = $(UNCYGDRIVE) $(JAVA_TOOLS_DIR)/javah \
|
||||
$(JAVAHFLAGS)
|
||||
JAVADOC_CMD = $(UNCYGDRIVE) $(JAVA_TOOLS_DIR)/javadoc $(JAVA_TOOLS_FLAGS:%=-J%) \
|
||||
$(JAVADOCFLAGS)
|
||||
endif
|
||||
|
||||
# Override of what javac to use (see deploy workspace)
|
||||
#ifdef JAVAC
|
||||
# JAVAC_CMD = $(JAVAC)
|
||||
#endif
|
||||
|
||||
#
|
||||
# The bootstrap java compiler (defined as the javac in the ALT_BOOTDIR jdk).
|
||||
# Will be used to compile java code used to build the jdk, e.g. class files
|
||||
# created by this compiler will NOT become part of this built jdk, but just
|
||||
# used to build this jdk, e.g. run with the java in the ALT_BOOTDIR jdk.
|
||||
#
|
||||
# The javac supplied with the LANGTOOLS_DIST should be used to build the
|
||||
# classes that will be put into the built jdk. But note that this javac
|
||||
# will use the ALT_BOOTDIR java runtime. Any classes created by the
|
||||
# LANGTOOLS_DIST javac should not be run during this jdk build and indeed
|
||||
# may not even run with the ALT_BOOTDIR jdk because they may be a newer
|
||||
# class file version that the ALT_BOOTDIR jdk doesn't understand.
|
||||
#
|
||||
# The important observation here is that the built jdk is NOT run during
|
||||
# the build. If the built jdk needs to be verified that it can build this
|
||||
# same jdk, then it should be supplied to the build process as the ALT_BOOTDIR
|
||||
# jdk, and this resulting built jdk should be compared to the first one.
|
||||
# (They should be the same). Re-using this built jdk as the ALT_BOOTDIR
|
||||
# jdk will be the only way and the recommeneded way to verify the built jdk
|
||||
# can bootstrap itself.
|
||||
#
|
||||
|
||||
# The javac options supplied to the boot javac is limited. This compiler
|
||||
# should only be used to build the 'make/tools' sources, which are not
|
||||
# class files that end up in the classes directory.
|
||||
BOOT_JAVACFLAGS += $(JAVAC_LINT_OPTIONS)
|
||||
ifeq ($(JAVAC_WARNINGS_FATAL), true)
|
||||
BOOT_JAVACFLAGS += -Werror
|
||||
endif
|
||||
|
||||
BOOT_JAVACFLAGS += -encoding ascii
|
||||
BOOT_JAR_JFLAGS += $(JAR_JFLAGS)
|
||||
|
||||
BOOT_JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
|
||||
|
||||
BOOT_JAVA_CMD = $(UNCYGDRIVE) $(BOOTDIR)/bin/java $(JAVA_TOOLS_FLAGS)
|
||||
BOOT_JAVAC_CMD = $(UNCYGDRIVE) $(BOOTDIR)/bin/javac $(JAVAC_JVM_FLAGS) $(BOOT_JAVACFLAGS)
|
||||
BOOT_JAR_CMD = $(UNCYGDRIVE) $(BOOTDIR)/bin/jar
|
||||
BOOT_JARSIGNER_CMD = $(UNCYGDRIVE) $(BOOTDIR)/bin/jarsigner
|
||||
|
||||
# Various tools we need to run (FIXUP: Are these the right ones?)
|
||||
NATIVE2ASCII = $(UNCYGDRIVE) $(BOOTDIR)/bin/native2ascii $(JAVA_TOOLS_FLAGS:%=-J%)
|
||||
RMIC = $(UNCYGDRIVE) $(BOOTDIR)/bin/rmic $(JAVA_TOOLS_FLAGS:%=-J%)
|
||||
IDLJ = $(UNCYGDRIVE) $(BOOTDIR)/bin/idlj $(JAVA_TOOLS_FLAGS:%=-J%)
|
||||
|
||||
# Should not be used
|
||||
#JAVA = /should/not/be/used
|
||||
|
||||
71
jdk/makefiles/common/shared/Defs-javadoc.gmk
Normal file
71
jdk/makefiles/common/shared/Defs-javadoc.gmk
Normal file
@ -0,0 +1,71 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Copyright year for beginning of Java and some of the apis
|
||||
# (Needed when creating the javadocs)
|
||||
FIRST_COPYRIGHT_YEAR = 1993
|
||||
DOMAPI_FIRST_COPYRIGHT_YEAR = 2005
|
||||
MIRROR_FIRST_COPYRIGHT_YEAR = 2004
|
||||
DOCLETAPI_FIRST_COPYRIGHT_YEAR = 1993
|
||||
TAGLETAPI_FIRST_COPYRIGHT_YEAR = 1993
|
||||
JDI_FIRST_COPYRIGHT_YEAR = 1999
|
||||
JAAS_FIRST_COPYRIGHT_YEAR = 1998
|
||||
JGSS_FIRST_COPYRIGHT_YEAR = 2000
|
||||
SMARTCARDIO_FIRST_COPYRIGHT_YEAR = 2005
|
||||
HTTPSERVER_FIRST_COPYRIGHT_YEAR = 2005
|
||||
MGMT_FIRST_COPYRIGHT_YEAR = 2003
|
||||
ATTACH_FIRST_COPYRIGHT_YEAR = 2005
|
||||
JCONSOLE_FIRST_COPYRIGHT_YEAR = 2006
|
||||
SCTPAPI_FIRST_COPYRIGHT_YEAR = 2009
|
||||
TRACING_FIRST_COPYRIGHT_YEAR = 2008
|
||||
TREEAPI_FIRST_COPYRIGHT_YEAR = 2005
|
||||
JNLP_FIRST_COPYRIGHT_YEAR = 1998
|
||||
PLUGIN2_FIRST_COPYRIGHT_YEAR = 2007
|
||||
|
||||
# Oracle name
|
||||
FULL_COMPANY_NAME = Oracle and/or its affiliates
|
||||
|
||||
# Copyright address
|
||||
COMPANY_ADDRESS = 500 Oracle Parkway<br>Redwood Shores, CA 94065 USA.
|
||||
|
||||
# The trademark symbol
|
||||
TRADEMARK = ™
|
||||
|
||||
# Common copyright lines used
|
||||
# The word "Copyright" might optionally be a link to the file cpyr.html.
|
||||
# The first year of copyright may vary or not be available.
|
||||
# The address to the company might be optional.
|
||||
COMMA:= ,
|
||||
EMPTY:=
|
||||
SPACE:=$(EMPTY) $(EMPTY)
|
||||
COPYRIGHT_SYMBOL = &\#x00a9;
|
||||
# Macro to construct the copyright line
|
||||
# (The GNU make 3.78.1 "if" conditional is broken, fixed in GNU make 3.81)
|
||||
define CopyrightLine # optionalurl optionalfirstyear optionaladdress
|
||||
$(if $(strip $1),<a href="$(strip $1)">Copyright</a>,Copyright) \
|
||||
$(COPYRIGHT_SYMBOL) $(if $2,$2${COMMA},) $(COPYRIGHT_YEAR),\
|
||||
$(FULL_COMPANY_NAME). $3 All rights reserved.
|
||||
endef
|
||||
|
||||
213
jdk/makefiles/common/shared/Defs-linux.gmk
Normal file
213
jdk/makefiles/common/shared/Defs-linux.gmk
Normal file
@ -0,0 +1,213 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Definitions for Linux.
|
||||
#
|
||||
|
||||
# Default for COMPILER_WARNINGS_FATAL on Linux (C & C++ compiler warnings)
|
||||
ifndef COMPILER_WARNINGS_FATAL
|
||||
COMPILER_WARNINGS_FATAL=false
|
||||
endif
|
||||
|
||||
# Linux should use parallel compilation for best build times
|
||||
ifndef COMPILE_APPROACH
|
||||
COMPILE_APPROACH = parallel
|
||||
endif
|
||||
|
||||
# Indication that we are doing an incremental build.
|
||||
# This may trigger the creation of make depend files.
|
||||
ifndef INCREMENTAL_BUILD
|
||||
INCREMENTAL_BUILD = false
|
||||
endif
|
||||
|
||||
# FullPath just makes sure it never ends with a / and no duplicates
|
||||
define FullPath
|
||||
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
|
||||
# OptFullPath: Absolute path name of a dir that might not initially exist.
|
||||
define OptFullPath
|
||||
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
|
||||
endef
|
||||
|
||||
# Location on system where jdk installs might be
|
||||
USRJDKINSTANCES_PATH =/opt/java
|
||||
|
||||
# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
|
||||
else
|
||||
UNIXCOMMAND_PATH = /bin/
|
||||
endif
|
||||
|
||||
# USRBIN_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
|
||||
USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
|
||||
else
|
||||
USRBIN_PATH = /usr/bin/
|
||||
endif
|
||||
|
||||
# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
|
||||
UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
|
||||
else
|
||||
UNIXCCS_PATH = /usr/ccs/bin/
|
||||
endif
|
||||
|
||||
# SLASH_JAVA: location of all network accessable files
|
||||
ifdef ALT_SLASH_JAVA
|
||||
SLASH_JAVA :=$(ALT_SLASH_JAVA)
|
||||
else
|
||||
SLASH_JAVA := $(call DirExists,/java,/java,/NOT-SET)
|
||||
endif
|
||||
|
||||
# JDK_DEVTOOLS_DIR: common path for all the java devtools
|
||||
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||
JDK_DEVTOOLS_DIR =$(ALT_JDK_DEVTOOLS_DIR)
|
||||
else
|
||||
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
|
||||
endif
|
||||
|
||||
# COMPILER_PATH: path to where the compiler and tools are installed.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
|
||||
COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
|
||||
else
|
||||
COMPILER_PATH =/usr/bin/
|
||||
endif
|
||||
|
||||
# OPENWIN_HOME: path to where the X11 environment is installed.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq ($(ALT_OPENWIN_HOME),)
|
||||
OPENWIN_HOME :=$(call PrefixPath,$(ALT_OPENWIN_HOME))
|
||||
else
|
||||
OPENWIN_HOME ?=$(SYS_ROOT)/usr/X11R6/
|
||||
endif
|
||||
|
||||
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
|
||||
DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
|
||||
else
|
||||
DEVTOOLS_PATH =/usr/bin/
|
||||
endif
|
||||
|
||||
# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
|
||||
# _BOOTDIR2: Second choice
|
||||
ifndef ALT_BOOTDIR
|
||||
_BOOTDIR1 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
||||
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
|
||||
endif
|
||||
|
||||
# Always build headless on Linux
|
||||
BUILD_HEADLESS = true
|
||||
LIBM=-lm
|
||||
|
||||
# GCC29_COMPILER_PATH: is the path to where the gcc 2.9 compiler is installed
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifdef ALT_GCC29_COMPILER_PATH
|
||||
GCC29_COMPILER_PATH :=$(call PrefixPath,$(ALT_GCC29_COMPILER_PATH))
|
||||
else
|
||||
GCC29_COMPILER_PATH = $(JDK_DEVTOOLS_DIR)/$(PLATFORM)/gcc29/usr/
|
||||
endif
|
||||
|
||||
_CUPS_HEADERS_PATH=/usr/include
|
||||
|
||||
# Import JDK images allow for partial builds, components not built are
|
||||
# imported (or copied from) these import areas when needed.
|
||||
|
||||
# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
|
||||
# multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
|
||||
ifdef ALT_BUILD_JDK_IMPORT_PATH
|
||||
BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
|
||||
else
|
||||
BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
|
||||
endif
|
||||
|
||||
# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
|
||||
ifdef ALT_JDK_IMPORT_PATH
|
||||
JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
|
||||
else
|
||||
JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
|
||||
endif
|
||||
|
||||
# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
|
||||
ifdef ALT_HOTSPOT_IMPORT_PATH
|
||||
HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
|
||||
else
|
||||
HOTSPOT_IMPORT_PATH ?=$(JDK_IMPORT_PATH)
|
||||
endif
|
||||
|
||||
# HOTSPOT_CLIENT_PATH: location of client jvm library file.
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifdef ALT_HOTSPOT_CLIENT_PATH
|
||||
HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
|
||||
else
|
||||
HOTSPOT_CLIENT_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
|
||||
endif
|
||||
endif
|
||||
|
||||
# HOTSPOT_SERVER_PATH: location of server jvm library file.
|
||||
ifdef ALT_HOTSPOT_SERVER_PATH
|
||||
HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
|
||||
else
|
||||
HOTSPOT_SERVER_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
|
||||
endif
|
||||
|
||||
# Special define for checking the binaries
|
||||
|
||||
# Debug builds should downgrade warnings to just info
|
||||
MAPFILE_WARNING-DBG=INFO
|
||||
MAPFILE_WARNING-OPT=WARNING
|
||||
MAPFILE_WARNING-=WARNING
|
||||
MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
|
||||
|
||||
# Macro to check it's input file for banned dependencies and verify the
|
||||
# binary built properly. Relies on process exit code.
|
||||
ifndef CROSS_COMPILE_ARCH
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for mapfile use in: $1" && \
|
||||
if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
|
||||
$(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
|
||||
fi && \
|
||||
$(ECHO) "Library loads for: $1" && \
|
||||
$(LDD) $1 && \
|
||||
$(ECHO) "RUNPATH for: $1" && \
|
||||
( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
|
||||
)
|
||||
endef
|
||||
else
|
||||
define binary_file_verification
|
||||
( \
|
||||
$(ECHO) "Skipping binary file verification for cross-compile build" \
|
||||
)
|
||||
endef
|
||||
endif
|
||||
|
||||
252
jdk/makefiles/common/shared/Defs-macosx.gmk
Normal file
252
jdk/makefiles/common/shared/Defs-macosx.gmk
Normal file
@ -0,0 +1,252 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Definitions for Bsd.
|
||||
#
|
||||
|
||||
# Default for COMPILER_WARNINGS_FATAL on Bsd (C & C++ compiler warnings)
|
||||
ifndef COMPILER_WARNINGS_FATAL
|
||||
COMPILER_WARNINGS_FATAL=false
|
||||
endif
|
||||
|
||||
# Bsd should use parallel compilation for best build times
|
||||
ifndef COMPILE_APPROACH
|
||||
COMPILE_APPROACH = parallel
|
||||
endif
|
||||
|
||||
# Indication that we are doing an incremental build.
|
||||
# This may trigger the creation of make depend files.
|
||||
ifndef INCREMENTAL_BUILD
|
||||
INCREMENTAL_BUILD = false
|
||||
endif
|
||||
|
||||
# FullPath just makes sure it never ends with a / and no duplicates
|
||||
define FullPath
|
||||
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
|
||||
# OptFullPath: Absolute path name of a dir that might not initially exist.
|
||||
define OptFullPath
|
||||
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
|
||||
endef
|
||||
|
||||
# Location on system where jdk installs might be
|
||||
USRJDKINSTANCES_PATH = $(PACKAGE_PATH)
|
||||
|
||||
# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
|
||||
else
|
||||
UNIXCOMMAND_PATH = /bin/
|
||||
endif
|
||||
|
||||
# USRBIN_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_USRBIN_PATH)" "undefined"
|
||||
USRBIN_PATH :=$(call PrefixPath,$(ALT_USRBIN_PATH))
|
||||
else
|
||||
USRBIN_PATH = /usr/bin/
|
||||
endif
|
||||
|
||||
# UNIXCCS_PATH: path to where the Solaris ported UNIX commands can be found
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
|
||||
UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
|
||||
else
|
||||
UNIXCCS_PATH = /usr/ccs/bin/
|
||||
endif
|
||||
|
||||
# SLASH_JAVA: location of all network accessable files
|
||||
ifdef ALT_SLASH_JAVA
|
||||
SLASH_JAVA :=$(ALT_SLASH_JAVA)
|
||||
else
|
||||
SLASH_JAVA := $(call DirExists,/java,/java,/NOT-SET)
|
||||
endif
|
||||
|
||||
# JDK_DEVTOOLS_DIR: common path for all the java devtools
|
||||
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||
JDK_DEVTOOLS_DIR =$(ALT_JDK_DEVTOOLS_DIR)
|
||||
else
|
||||
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
|
||||
endif
|
||||
|
||||
# COMPILER_PATH: path to where the compiler and tools are installed.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
|
||||
COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
|
||||
else
|
||||
ifeq ($(OS_VENDOR), Apple)
|
||||
ifndef DEVELOPER_DIR
|
||||
DEVELOPER_DIR = $(shell /usr/bin/xcode-select -print-path)/usr/bin/
|
||||
endif
|
||||
|
||||
COMPILER_PATH := $(call DirExists,$(DEVELOPER_DIR),/usr/bin/,/NOT-SET)
|
||||
else
|
||||
COMPILER_PATH =/usr/bin/
|
||||
endif
|
||||
endif
|
||||
|
||||
# OPENWIN_HOME: path to where the X11 environment is installed.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq ($(ALT_OPENWIN_HOME),)
|
||||
OPENWIN_HOME :=$(call PrefixPath,$(ALT_OPENWIN_HOME))
|
||||
else
|
||||
OPENWIN_HOME ?=$(X11_PATH)
|
||||
endif
|
||||
|
||||
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
|
||||
DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
|
||||
else
|
||||
DEVTOOLS_PATH =$(PACKAGE_PATH)/bin/
|
||||
endif
|
||||
|
||||
# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
|
||||
# _BOOTDIR2: Second choice
|
||||
ifndef ALT_BOOTDIR
|
||||
_BOOTDIR1 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
||||
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
|
||||
endif
|
||||
|
||||
# Always build headless on Bsd
|
||||
BUILD_HEADLESS = true
|
||||
LIBM=-lm
|
||||
|
||||
ifeq ($(OS_VENDOR), Apple)
|
||||
_CUPS_HEADERS_PATH=/usr/include
|
||||
else
|
||||
_CUPS_HEADERS_PATH=$(PACKAGE_PATH)/include
|
||||
endif
|
||||
|
||||
# Import JDK images allow for partial builds, components not built are
|
||||
# imported (or copied from) these import areas when needed.
|
||||
|
||||
# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
|
||||
# multiple platforms, e.g. windows-i586, solaris-sparc, bsd-586, etc.
|
||||
ifdef ALT_BUILD_JDK_IMPORT_PATH
|
||||
BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
|
||||
else
|
||||
BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
|
||||
endif
|
||||
BUILD_JDK_IMPORT_PATH:=$(call AltCheckValue,BUILD_JDK_IMPORT_PATH)
|
||||
|
||||
# JDK_IMPORT_PATH: location of JDK install tree (this version) to import
|
||||
ifdef ALT_JDK_IMPORT_PATH
|
||||
JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
|
||||
else
|
||||
JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
|
||||
endif
|
||||
JDK_IMPORT_PATH:=$(call AltCheckValue,JDK_IMPORT_PATH)
|
||||
|
||||
# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
|
||||
ifdef ALT_HOTSPOT_IMPORT_PATH
|
||||
HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
|
||||
else
|
||||
HOTSPOT_IMPORT_PATH ?=$(JDK_IMPORT_PATH)
|
||||
endif
|
||||
HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
|
||||
|
||||
# HOTSPOT_CLIENT_PATH: location of client jvm library file.
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifdef ALT_HOTSPOT_CLIENT_PATH
|
||||
HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
|
||||
else
|
||||
HOTSPOT_CLIENT_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
|
||||
endif
|
||||
HOTSPOT_CLIENT_PATH:=$(call AltCheckValue,HOTSPOT_CLIENT_PATH)
|
||||
endif
|
||||
|
||||
# HOTSPOT_SERVER_PATH: location of server jvm library file.
|
||||
ifdef ALT_HOTSPOT_SERVER_PATH
|
||||
HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
|
||||
else
|
||||
HOTSPOT_SERVER_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
|
||||
endif
|
||||
HOTSPOT_SERVER_PATH:=$(call AltCheckValue,HOTSPOT_SERVER_PATH)
|
||||
|
||||
# Special define for checking the binaries
|
||||
|
||||
# Debug builds should downgrade warnings to just info
|
||||
MAPFILE_WARNING-DBG=INFO
|
||||
MAPFILE_WARNING-OPT=WARNING
|
||||
MAPFILE_WARNING-=WARNING
|
||||
MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
|
||||
|
||||
# Macro to check it's input file for banned dependencies and verify the
|
||||
# binary built properly. Relies on process exit code.
|
||||
ifndef CROSS_COMPILE_ARCH
|
||||
ifeq ($(OS_VENDOR), Apple)
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for mapfile use in: $1" && \
|
||||
if [ "`$(NM) -g $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
|
||||
$(ECHO) "WARNING: File was not built with a mapfile: $1"; \
|
||||
fi && \
|
||||
$(ECHO) "Library loads for: $1" && \
|
||||
$(OTOOL) -L $1 && \
|
||||
$(ECHO) "RUNPATH for: $1" && \
|
||||
( $(OTOOL) -l $1 | $(EGREP) 'path ' ) \
|
||||
) || true
|
||||
endef
|
||||
else
|
||||
ifeq ($(OS_VENDOR), OpenBSD)
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for mapfile use in: $1" && \
|
||||
if [ "`$(OBJDUMP) -T $1 | $(EGREP) '[0-9a-f]* g *DF \.text.*SUNWprivate'`" = "" ] ; then \
|
||||
$(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
|
||||
fi && \
|
||||
$(ECHO) "Library loads for: $1" && \
|
||||
$(LDD) $1 && \
|
||||
$(ECHO) "RUNPATH for: $1" && \
|
||||
( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
|
||||
) || true
|
||||
endef
|
||||
else
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for mapfile use in: $1" && \
|
||||
if [ "`$(NM) -D -g --defined-only $1 | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
|
||||
$(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
|
||||
fi && \
|
||||
$(ECHO) "Library loads for: $1" && \
|
||||
$(LDD) $1 && \
|
||||
$(ECHO) "RUNPATH for: $1" && \
|
||||
( $(READELF) -d $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
|
||||
)
|
||||
endef
|
||||
endif # OS_VENDOR == OpenBSD
|
||||
endif # OS_VENDOR == Apple
|
||||
else
|
||||
define binary_file_verification
|
||||
( \
|
||||
$(ECHO) "Skipping binary file verification for cross-compile build" \
|
||||
)
|
||||
endef
|
||||
endif
|
||||
|
||||
239
jdk/makefiles/common/shared/Defs-solaris.gmk
Normal file
239
jdk/makefiles/common/shared/Defs-solaris.gmk
Normal file
@ -0,0 +1,239 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Definitions for Solaris.
|
||||
#
|
||||
|
||||
# Default for COMPILER_WARNINGS_FATAL on Solaris (C & C++ compiler warnings)
|
||||
ifndef COMPILER_WARNINGS_FATAL
|
||||
COMPILER_WARNINGS_FATAL=false
|
||||
endif
|
||||
|
||||
# Solaris should use parallel compilation for best build times
|
||||
ifndef COMPILE_APPROACH
|
||||
COMPILE_APPROACH = parallel
|
||||
endif
|
||||
|
||||
# Indication that we are doing an incremental build.
|
||||
# This may trigger the creation of make depend files.
|
||||
ifndef INCREMENTAL_BUILD
|
||||
INCREMENTAL_BUILD = false
|
||||
endif
|
||||
|
||||
# FullPath just makes sure it never ends with a / and no duplicates
|
||||
define FullPath
|
||||
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
|
||||
# OptFullPath: Absolute path name of a dir that might not initially exist.
|
||||
define OptFullPath
|
||||
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
|
||||
endef
|
||||
|
||||
# Location on system where jdk installs might be
|
||||
USRJDKINSTANCES_PATH =/usr/jdk/instances
|
||||
|
||||
# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCOMMAND_PATH)" "undefined"
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
|
||||
else
|
||||
UNIXCOMMAND_PATH = /usr/bin/
|
||||
endif
|
||||
|
||||
# UNIXCCS_PATH: path to where the less common UNIX commands can be found
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_UNIXCCS_PATH)" "undefined"
|
||||
UNIXCCS_PATH :=$(call PrefixPath,$(ALT_UNIXCCS_PATH))
|
||||
else
|
||||
UNIXCCS_PATH = /usr/ccs/bin/
|
||||
endif
|
||||
|
||||
# SLASH_JAVA: location of all network accessable files
|
||||
ifdef ALT_SLASH_JAVA
|
||||
SLASH_JAVA :=$(ALT_SLASH_JAVA)
|
||||
else
|
||||
SLASH_JAVA := $(call DirExists,/java,/java,/NOT-SET)
|
||||
endif
|
||||
|
||||
# JDK_DEVTOOLS_DIR: common path for all the java devtools
|
||||
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||
JDK_DEVTOOLS_DIR =$(ALT_JDK_DEVTOOLS_DIR)
|
||||
else
|
||||
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
|
||||
endif
|
||||
|
||||
# COMPILER_PATH: path to where the compiler and tools are installed.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_COMPILER_PATH)" "undefined"
|
||||
COMPILER_PATH :=$(call PrefixPath,$(ALT_COMPILER_PATH))
|
||||
else
|
||||
# If the place where we keep a set of Sun Studio compilers doesn't exist,
|
||||
# try and use /opt/SUNWspro, the default location for the SS compilers.
|
||||
# (DirExists checks for this path twice, an automount double check)
|
||||
_SUNSTUDIO_SET_ROOT=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/SUNWspro
|
||||
SUNSTUDIO_SET_ROOT:=$(call DirExists,$(_SUNSTUDIO_SET_ROOT),$(_SUNSTUDIO_SET_ROOT),)
|
||||
ifneq ($(SUNSTUDIO_SET_ROOT),)
|
||||
COMPILER_PATH =$(SUNSTUDIO_SET_ROOT)/$(REQUIRED_COMPILER_VERSION)/bin/
|
||||
else
|
||||
COMPILER_PATH =/opt/SUNWspro/bin/
|
||||
endif
|
||||
endif
|
||||
|
||||
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_DEVTOOLS_PATH)" "undefined"
|
||||
DEVTOOLS_PATH :=$(call PrefixPath,$(ALT_DEVTOOLS_PATH))
|
||||
else
|
||||
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||
DEVTOOLS_PATH =$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/bin/
|
||||
else
|
||||
ifdef OPENJDK
|
||||
DEVTOOLS_PATH = /usr/bin/
|
||||
else
|
||||
DEVTOOLS_PATH =$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/bin/
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
|
||||
# _BOOTDIR2: Second choice
|
||||
ifndef ALT_BOOTDIR
|
||||
_BOOTDIR1 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
||||
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
|
||||
endif
|
||||
|
||||
# GCC_COMPILER_PATH: path to where the gcc/g++ compiler and tools are installed
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifneq "$(origin ALT_GCC_COMPILER_PATH)" "undefined"
|
||||
GCC_COMPILER_PATH :=$(call PrefixPath,$(ALT_GCC_COMPILER_PATH))
|
||||
else
|
||||
GCC_COMPILER_PATH = $(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/gnucc/bin/
|
||||
endif
|
||||
|
||||
|
||||
# Always build headless on Solaris
|
||||
BUILD_HEADLESS = true
|
||||
|
||||
_CUPS_HEADERS_PATH=/opt/sfw/cups/include
|
||||
|
||||
# Import JDK images allow for partial builds, components not built are
|
||||
# imported (or copied from) these import areas when needed.
|
||||
|
||||
# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
|
||||
# multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
|
||||
ifdef ALT_BUILD_JDK_IMPORT_PATH
|
||||
BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
|
||||
else
|
||||
BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
|
||||
endif
|
||||
|
||||
# JDK_IMPORT_PATH: location of previously built JDK (this version) to import
|
||||
ifdef ALT_JDK_IMPORT_PATH
|
||||
JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
|
||||
else
|
||||
JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
|
||||
endif
|
||||
|
||||
# HOTSPOT_IMPORT_PATH: location of hotspot pre-built files
|
||||
ifdef ALT_HOTSPOT_IMPORT_PATH
|
||||
HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
|
||||
else
|
||||
HOTSPOT_IMPORT_PATH ?=$(JDK_IMPORT_PATH)
|
||||
endif
|
||||
|
||||
# HOTSPOT_CLIENT_PATH: location of client jvm library file.
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifdef ALT_HOTSPOT_CLIENT_PATH
|
||||
HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
|
||||
else
|
||||
HOTSPOT_CLIENT_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
|
||||
endif
|
||||
endif
|
||||
|
||||
# HOTSPOT_SERVER_PATH: location of server jvm library file.
|
||||
ifdef ALT_HOTSPOT_SERVER_PATH
|
||||
HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
|
||||
else
|
||||
HOTSPOT_SERVER_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
|
||||
endif
|
||||
|
||||
# Special define for checking the binaries
|
||||
|
||||
# Debug builds should downgrade warnings to just info
|
||||
MAPFILE_WARNING-DBG=INFO
|
||||
MAPFILE_WARNING-OPT=WARNING
|
||||
MAPFILE_WARNING-=WARNING
|
||||
MAPFILE_WARNING=$(MAPFILE_WARNING-$(VARIANT))
|
||||
|
||||
# Some libraries do not have mapfiles for multiple reasons.
|
||||
# These libraries for sparc and sparcv9 are exceptions to the mapfile rule:
|
||||
# libjdgaSUNWafb.so
|
||||
# libjdgaSUNWcg6.so
|
||||
# libjdgaSUNWffb.so
|
||||
# libjdgaSUNWm64.so
|
||||
# libxinerama.so
|
||||
# The library libJdbcOdbc.so has also been given an exception.
|
||||
# The JNI/JVMTI demo libraries are also missing mapfiles, no exceptions yet.
|
||||
ifeq ($(ARCH_FAMILY),sparc)
|
||||
MAPFILE_EXCEPTIONS = \
|
||||
(libJdbcOdbc|libjdgaSUNWafb|libjdgaSUNWcg6|libjdgaSUNWffb|libjdgaSUNWm64|libxinerama)
|
||||
else
|
||||
MAPFILE_EXCEPTIONS = (libJdbcOdbc)
|
||||
endif
|
||||
|
||||
# Macro to check it's input file for banned dependencies and verify the
|
||||
# binary built properly. Relies on process exit code.
|
||||
ifndef CROSS_COMPILE_ARCH
|
||||
ifneq (,$(DUMP))
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for mapfile use in: $1" && \
|
||||
if [ "`$(ECHO) $(basename $(notdir $1)) | $(EGREP) '$(MAPFILE_EXCEPTIONS)'`" = "" \
|
||||
-a "`$(NM) -g -D $1 | $(EGREP) -v 'UNDEF' | $(EGREP) 'SUNWprivate'`" = "" ] ; then \
|
||||
$(ECHO) "$(MAPFILE_WARNING): File was not built with a mapfile: $1"; \
|
||||
fi && \
|
||||
$(ECHO) "Library loads for: $1" && \
|
||||
$(LDD) $1 && \
|
||||
$(ECHO) "RUNPATH for: $1" && \
|
||||
( $(DUMP) -L -v $1 | $(EGREP) 'NEEDED|RUNPATH|RPATH' ) \
|
||||
)
|
||||
endef
|
||||
else
|
||||
define binary_file_verification
|
||||
( \
|
||||
$(ECHO) "Skipping binary file verification since no dump command found" \
|
||||
)
|
||||
endef
|
||||
endif
|
||||
else
|
||||
define binary_file_verification
|
||||
( \
|
||||
$(ECHO) "Skipping binary file verification for cross-compile build" \
|
||||
)
|
||||
endef
|
||||
endif
|
||||
|
||||
215
jdk/makefiles/common/shared/Defs-versions.gmk
Normal file
215
jdk/makefiles/common/shared/Defs-versions.gmk
Normal file
@ -0,0 +1,215 @@
|
||||
#
|
||||
# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# WARNING: This file is shared with other workspaces.
|
||||
#
|
||||
|
||||
# This file needs these set: PLATFORM, ARCH_FAMILY, and ARCH_DATA_MODEL.
|
||||
|
||||
# Windows uses Microsoft compilers by default
|
||||
ifeq ($(PLATFORM), windows)
|
||||
override CC_VERSION = msvc
|
||||
endif
|
||||
|
||||
# Solaris uses Sun Studio compilers by default
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
override CC_VERSION = sun
|
||||
endif
|
||||
|
||||
# Linux uses GNU compilers by default
|
||||
ifeq ($(PLATFORM), linux)
|
||||
override CC_VERSION = gcc
|
||||
endif
|
||||
|
||||
# Mac OS X uses LLVM by default
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
override CC_VERSION = llvm
|
||||
endif
|
||||
|
||||
##########################################################################
|
||||
#
|
||||
# List of JDK official minimum, expected, or required versions:
|
||||
#
|
||||
# REQUIRED_ALSA_VERSION
|
||||
# Linux only: The ALSA sound library version expected.
|
||||
#
|
||||
# REQUIRED_ANT_VER
|
||||
# The minimum 'ant' version.
|
||||
#
|
||||
# REQUIRED_BOOT_VER
|
||||
# The minimum boot jdk version.
|
||||
#
|
||||
# REQUIRED_CC_VER
|
||||
# The primary C compiler version expected.
|
||||
#
|
||||
# REQUIRED_COMPILER_NAME
|
||||
# The long descriptive name of the compiler we should use
|
||||
#
|
||||
# REQUIRED_COMPILER_VERSION
|
||||
# The one word name that identifies the compilers being used.
|
||||
#
|
||||
# REQUIRED_CYGWIN_VER
|
||||
# Windows only: If CYGWIN is used, the minimum CYGWIN version.
|
||||
#
|
||||
# REQUIRED_DXSDK_VER
|
||||
# Windows only: The version of DirectX SDK expected.
|
||||
#
|
||||
# REQUIRED_FREETYPE_VERSION
|
||||
# If we are using freetype, the freetype version expected.
|
||||
#
|
||||
# REQUIRED_GCC_VER
|
||||
# Solaris and Linux only. The required version of gcc/g++ for the legacy OJI plugin.
|
||||
#
|
||||
# REQUIRED_LINK_VER
|
||||
# Windows only: The version of link.exe expected.
|
||||
#
|
||||
# REQUIRED_MAKE_VER
|
||||
# The minimum version of GNU make.
|
||||
#
|
||||
# REQUIRED_MKS_VER
|
||||
# Windows only: If MKS used instead of CYGWIN, the minimum version of MKS.
|
||||
#
|
||||
# REQUIRED_OS_VARIANT_NAME
|
||||
# The OS variation name required.
|
||||
# Solaris: Solaris or OpenSolaris
|
||||
# Windows: Windows2000, WindowsXP, Windows2003, etc.
|
||||
# Linux: Fedora, RedHat, SuSE, Ubuntu, etc.
|
||||
#
|
||||
# REQUIRED_OS_VARIANT_VERSION
|
||||
# The version number associated with the above OS variant name.
|
||||
# Solaris: output of uname -r
|
||||
# Windows: 5.0 for Windows2000, 5.1 for WindowsXP, 5.2 for Windows2003, etc.
|
||||
# Linux: number for the variant, e.g. 9 for Fedora 9
|
||||
#
|
||||
# REQUIRED_OS_VERSION
|
||||
# The formal OS version number.
|
||||
# Solaris & Windows: same as REQUIRED_OS_VARIANT_VERSION
|
||||
# Linux: the kernel version, or output of uname -r
|
||||
#
|
||||
# REQUIRED_UNZIP_VER
|
||||
# The minimum version of unzip.
|
||||
#
|
||||
# REQUIRED_ZIP_VER
|
||||
# The minimum version of unzip.
|
||||
#
|
||||
###########
|
||||
#
|
||||
# Differences in the build platform from these versions may trigger warnings
|
||||
# messages during the sanity checking when building the JDK.
|
||||
#
|
||||
# When building the OpenJDK most of these required or expected versions are
|
||||
# ignored or allowed to vary widely to accomodate the many build situations
|
||||
# of the OpenJDK.
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
# Solaris specific
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
REQUIRED_OS_NAME = SunOS
|
||||
REQUIRED_OS_VERSION = 5.10
|
||||
REQUIRED_OS_VARIANT_NAME = Solaris
|
||||
REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION)
|
||||
REQUIRED_COMPILER_NAME = Sun Studio 12 Update 1
|
||||
REQUIRED_COMPILER_VERSION = SS12u1
|
||||
# Cross-compilation compiler versions are target specific
|
||||
# so don't set a required version if cross-compiling
|
||||
ifndef CROSS_COMPILE_ARCH
|
||||
ifeq ($(CC_VERSION),sun)
|
||||
REQUIRED_CC_VER = 5.10
|
||||
endif
|
||||
ifeq ($(CC_VERSION),gcc)
|
||||
REQUIRED_CC_VER = 3.4.3
|
||||
endif
|
||||
endif
|
||||
REQUIRED_GCC_VER = 2.95.2
|
||||
endif
|
||||
|
||||
# Linux specific
|
||||
ifeq ($(PLATFORM), linux)
|
||||
REQUIRED_OS_NAME = Linux
|
||||
REQUIRED_OS_VERSION = 2.6
|
||||
REQUIRED_OS_VARIANT_NAME = Fedora
|
||||
REQUIRED_OS_VARIANT_VERSION = 9
|
||||
REQUIRED_ALSA_VERSION = 0.9.1
|
||||
REQUIRED_COMPILER_NAME = GCC4
|
||||
REQUIRED_COMPILER_VERSION = GCC4
|
||||
REQUIRED_GCC_VER = 2.95
|
||||
# Cross-compilation compiler versions are target specific
|
||||
# so don't set a required version if cross-compiling
|
||||
ifndef CROSS_COMPILE_ARCH
|
||||
ifeq ($(CC_VERSION),gcc)
|
||||
REQUIRED_CC_VER = 4.3.0
|
||||
endif
|
||||
ifeq ($(CC_VERSION),sun)
|
||||
REQUIRED_CC_VER = 5.10
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Mac specific
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
REQUIRED_OS_NAME = Darwin
|
||||
REQUIRED_OS_VERSION = 11.2
|
||||
REQUIRED_OS_VARIANT_NAME = MacOSX
|
||||
REQUIRED_OS_VARIANT_VERSION = 10.7.2
|
||||
REQUIRED_COMPILER_NAME = GCC4
|
||||
REQUIRED_COMPILER_VERSION = GCC4
|
||||
REQUIRED_CC_VER = 4.2.1
|
||||
endif
|
||||
|
||||
# Windows specific
|
||||
ifeq ($(PLATFORM), windows)
|
||||
REQUIRED_OS_NAME = Windows
|
||||
ifeq ($(ARCH_DATA_MODEL),64)
|
||||
REQUIRED_OS_VERSION = 5.2
|
||||
REQUIRED_OS_VARIANT_NAME = Windows2003
|
||||
else
|
||||
REQUIRED_OS_VERSION = 5.1
|
||||
REQUIRED_OS_VARIANT_NAME = WindowsXP
|
||||
endif
|
||||
REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION)
|
||||
REQUIRED_CYGWIN_VER = 4.0
|
||||
REQUIRED_MKS_VER = 6.1
|
||||
REQUIRED_DXSDK_VER = 0x0900
|
||||
ifeq ($(CC_VERSION),msvc)
|
||||
REQUIRED_COMPILER_NAME = Visual Studio 10
|
||||
REQUIRED_COMPILER_VERSION = VS2010
|
||||
REQUIRED_CC_VER = 16.00.30319.01
|
||||
REQUIRED_LINK_VER = 10.00.30319.01
|
||||
endif
|
||||
ifeq ($(CC_VERSION),gcc)
|
||||
REQUIRED_CC_VER = 3.4.3
|
||||
endif
|
||||
endif
|
||||
|
||||
# Generic
|
||||
REQUIRED_ANT_VER = 1.7.1
|
||||
REQUIRED_BOOT_VER = 1.7
|
||||
REQUIRED_FREETYPE_VERSION = 2.3.0
|
||||
REQUIRED_MAKE_VER = 3.81
|
||||
REQUIRED_UNZIP_VER = 5.12
|
||||
REQUIRED_ZIP_VER = 2.2
|
||||
|
||||
696
jdk/makefiles/common/shared/Defs-windows.gmk
Normal file
696
jdk/makefiles/common/shared/Defs-windows.gmk
Normal file
@ -0,0 +1,696 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Definitions for Windows.
|
||||
#
|
||||
|
||||
# Default for COMPILER_WARNINGS_FATAL on Windows (C++ compiler warnings)
|
||||
# Level: Default is 3, 0 means none, 4 is the most but may be unreliable
|
||||
# Some makefiles may have set this to 0 to turn off warnings completely,
|
||||
# which also effectively creates a COMPILER_WARNINGS_FATAL=false situation.
|
||||
# Program.gmk may turn this down to 2 (building .exe's).
|
||||
# Windows 64bit platforms are less likely to be warning free.
|
||||
# Historically, Windows 32bit builds should be mostly warning free.
|
||||
# VS2010 introduced a large number of security warnings that are off by
|
||||
# default but will be turned back on with SHOW_ALL_WARNINGS=true.
|
||||
ifndef COMPILER_WARNING_LEVEL
|
||||
COMPILER_WARNING_LEVEL=3
|
||||
endif
|
||||
ifndef COMPILER_WARNINGS_FATAL
|
||||
COMPILER_WARNINGS_FATAL=false
|
||||
endif
|
||||
ifndef SHOW_ALL_WARNINGS
|
||||
SHOW_ALL_WARNINGS = false
|
||||
endif
|
||||
|
||||
# Windows should use parallel compilation for best build times
|
||||
ifndef COMPILE_APPROACH
|
||||
COMPILE_APPROACH = normal
|
||||
endif
|
||||
|
||||
# Indication that we are doing an incremental build.
|
||||
# This may trigger the creation of make depend files.
|
||||
# (This may not be working on windows yet, always force to false.)
|
||||
override INCREMENTAL_BUILD = false
|
||||
|
||||
# WARNING: This is extremely touch stuff, between CYGWIN vs. MKS and all
|
||||
# variations of MKS and CYGWIN releases, and 32bit vs 64bit,
|
||||
# this file can give you nightmares.
|
||||
#
|
||||
# Notes:
|
||||
# Keep all paths in the windows "mixed" style except CYGWIN UNXIXCOMMAND_PATH.
|
||||
# Use of PrefixPath is critical, some variables must end with / (see NOTE).
|
||||
# Use of quotes is critical due to possible spaces in paths coming from
|
||||
# the environment variables, be careful.
|
||||
# First convert \ to / with subst, keep it quoted due to blanks, then
|
||||
# use cygpath -s or dosname -s to get the short non-blank name.
|
||||
# If the MKS is old and doesn't have a dosname -s, you will be forced
|
||||
# to set ALT variables with the short non-space directory names.
|
||||
# If dosname doesn't appear to work, we won't use it.
|
||||
# The dosname utility also wants to accept stdin if it is not supplied
|
||||
# any path on the command line, this is really dangerous when using
|
||||
# make variables that can easily become empty, so I use:
|
||||
# echo $1 | dosname -s instead of dosname -s $1
|
||||
# to prevent dosname from hanging up the make process when $1 is empty.
|
||||
# The cygpath utility does not have this problem.
|
||||
# The ALT values should never really have spaces or use \.
|
||||
# Suspect these environment variables to have spaces and/or \ characters:
|
||||
# SYSTEMROOT, SystemRoot, WINDIR, windir, PROGRAMFILES, ProgramFiles,
|
||||
# DXSDK_DIR, MSTOOLS, Mstools, MSSDK, MSSdk, VCnnCOMNTOOLS,
|
||||
# MSVCDIR, MSVCDir.
|
||||
# So use $(subst \,/,) on them first adding quotes and placing them in
|
||||
# their own variable assigned with :=, then use FullPath.
|
||||
#
|
||||
|
||||
ifdef USING_CYGWIN
|
||||
# Macro to effectively do a toupper without an exec
|
||||
define ToUpper
|
||||
$(subst a,A,$(subst b,B,$(subst c,C,$(subst d,D,$(subst e,E,$(subst f,F,\
|
||||
$(subst g,G,$(subst h,H,$(subst i,I,$(subst j,J,$(subst k,K,$(subst l,L,\
|
||||
$(subst m,M,$(subst n,N,$(subst o,O,$(subst p,P,$(subst q,Q,$(subst r,R,\
|
||||
$(subst s,S,$(subst t,T,$(subst u,U,$(subst v,V,$(subst w,W,$(subst x,X,\
|
||||
$(subst y,Y,$(subst z,Z,$1))))))))))))))))))))))))))
|
||||
endef
|
||||
# All possible drive letters
|
||||
drives=a b c d e f g h i j k l m n o p q r s t v u w x y z
|
||||
# Convert /cygdrive/ paths to the mixed style without an exec of cygpath
|
||||
# Must be a path with no spaces. /cygdrive/letter is always lowercase
|
||||
# and letter:/ is always uppercase coming from cygpath.
|
||||
define MixedPath
|
||||
$(patsubst /%,$(CYGWIN_HOME)/%,$(sort $(filter-out /cygdrive/%,$(foreach drive,$(drives),$(patsubst /cygdrive/$(drive)/%,$(call ToUpper,$(drive)):/%,$1)))))
|
||||
endef
|
||||
# Use FullPath to get C:/ style non-spaces path. Never ends with a /!
|
||||
# We assume cygpath is available in the search path
|
||||
# NOTE: Use of 'pwd' with CYGWIN will not get you a mixed style path!
|
||||
define FullPath
|
||||
$(if $(word 2,$1),$(shell $(CYGPATH_CMD) $1 2> $(DEV_NULL)),$(call MixedPath,$(realpath $(subst ",,$1))))
|
||||
endef
|
||||
define OptFullPath
|
||||
$(shell if [ "$1" != "" -a -d "$1" ]; then $(CYGPATH_CMD) "$1" 2> $(DEV_NULL); else echo "$1"; fi)
|
||||
endef
|
||||
else
|
||||
# Temporary until we upgrade to MKS 8.7, MKS pwd returns mixed mode path
|
||||
define FullPath
|
||||
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
define OptFullPath
|
||||
$(shell if [ "$1" != "" -a -d "$1" ]; then (cd $1 && pwd); else echo "$1"; fi)
|
||||
endef
|
||||
endif
|
||||
|
||||
# System drive
|
||||
ifdef SYSTEMDRIVE
|
||||
_system_drive =$(SYSTEMDRIVE)
|
||||
else
|
||||
ifdef SystemDrive
|
||||
_system_drive =$(SystemDrive)
|
||||
endif
|
||||
endif
|
||||
_system_drive:=$(call CheckValue,_system_drive,C:)
|
||||
|
||||
# UNIXCOMMAND_PATH: path to where the most common Unix commands are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
# With cygwin, just use this as is don't use FullPath on it.
|
||||
ifdef ALT_UNIXCOMMAND_PATH
|
||||
ifdef USING_CYGWIN
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(ALT_UNIXCOMMAND_PATH))
|
||||
else
|
||||
xALT_UNIXCOMMAND_PATH :="$(subst \,/,$(ALT_UNIXCOMMAND_PATH))"
|
||||
fxALT_UNIXCOMMAND_PATH :=$(call FullPath,$(xALT_UNIXCOMMAND_PATH))
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(fxALT_UNIXCOMMAND_PATH))
|
||||
endif
|
||||
else
|
||||
ifdef USING_CYGWIN
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,/usr/bin)
|
||||
else
|
||||
ifdef ROOTDIR
|
||||
xROOTDIR :="$(subst \,/,$(ROOTDIR))"
|
||||
_rootdir :=$(call FullPath,$(xROOTDIR))
|
||||
else
|
||||
xROOTDIR :="$(_system_drive)/mksnt"
|
||||
_rootdir :=$(call FullPath,$(xROOTDIR))
|
||||
endif
|
||||
ifneq ($(_rootdir),)
|
||||
UNIXCOMMAND_PATH :=$(call PrefixPath,$(_rootdir)/mksnt)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
UNIXCOMMAND_PATH:=$(call AltCheckSpaces,UNIXCOMMAND_PATH)
|
||||
|
||||
# Get version of MKS or CYGWIN
|
||||
ifndef USING_CYGWIN
|
||||
_MKS_VER :=$(shell $(MKSINFO) 2>&1 | $(GREP) Release | $(TAIL) -1 | $(SED) -e 's@.*\(Release.*\)@\1@')
|
||||
MKS_VER :=$(call GetVersion,$(_MKS_VER))
|
||||
# At this point, we can re-define FullPath to use DOSNAME_CMD
|
||||
CHECK_MKS87:=$(call CheckVersions,$(MKS_VER),8.7)
|
||||
TRY_DOSNAME:=false
|
||||
ifeq ($(CHECK_MKS87),same)
|
||||
TRY_DOSNAME:=true
|
||||
endif
|
||||
# Newer should be ok
|
||||
ifeq ($(CHECK_MKS87),newer)
|
||||
TRY_DOSNAME:=true
|
||||
endif
|
||||
ifeq ($(TRY_DOSNAME),true)
|
||||
ifeq ($(shell $(UNIXCOMMAND_PATH)dosname -s $(_system_drive)/ 2> $(DEV_NULL)),$(_system_drive)/)
|
||||
_DOSNAME=$(UNIXCOMMAND_PATH)dosname
|
||||
DOSNAME_CMD:=$(_DOSNAME) -s
|
||||
define FullPath
|
||||
$(subst //,/,$(shell echo $1 | $(DOSNAME_CMD) 2> $(DEV_NULL)))
|
||||
endef
|
||||
endif # test dosname -s
|
||||
endif # TRY_DOSNAME
|
||||
endif # MKS
|
||||
|
||||
# We try to get references to what we need via the default component
|
||||
# environment variables, or what was used historically.
|
||||
|
||||
# Process Windows values into FullPath values, these paths may have \ chars
|
||||
|
||||
# System root
|
||||
ifdef SYSTEMROOT
|
||||
xSYSTEMROOT :="$(subst \,/,$(SYSTEMROOT))"
|
||||
_system_root :=$(call FullPath,$(xSYSTEMROOT))
|
||||
else
|
||||
ifdef SystemRoot
|
||||
xSYSTEMROOT :="$(subst \,/,$(SystemRoot))"
|
||||
_system_root :=$(call FullPath,$(xSYSTEMROOT))
|
||||
else
|
||||
ifdef WINDIR
|
||||
xWINDIR :="$(subst \,/,$(WINDIR))"
|
||||
_system_root :=$(call FullPath,$(xWINDIR))
|
||||
else
|
||||
ifdef windir
|
||||
xWINDIR :="$(subst \,/,$(windir))"
|
||||
_system_root :=$(call FullPath,$(xWINDIR))
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
_system_root:=$(call CheckValue,_system_root,$(_system_drive)/WINNT)
|
||||
|
||||
# Program Files directory
|
||||
ifdef PROGRAMFILES
|
||||
xPROGRAMFILES :="$(subst \,/,$(PROGRAMFILES))"
|
||||
else
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
xPROGRAMFILES :="$(_system_drive)/Program Files"
|
||||
else
|
||||
xPROGRAMFILES :="$(_system_drive)/Program Files (x86)"
|
||||
endif
|
||||
endif
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
_program_files :=$(call FullPath,$(xPROGRAMFILES))
|
||||
_program_files32 :=$(_program_files)
|
||||
else
|
||||
ifdef PROGRAMW6432
|
||||
xPROGRAMW6432 :="$(subst \,/,$(PROGRAMW6432))"
|
||||
else
|
||||
xPROGRAMW6432 :="$(_system_drive)/Program Files"
|
||||
endif
|
||||
_program_files :=$(call FullPath,$(xPROGRAMW6432))
|
||||
_program_files32 :=$(call FullPath,$(xPROGRAMFILES))
|
||||
ifneq ($(word 1,$(_program_files32)),$(_program_files32))
|
||||
_program_files32:=
|
||||
endif
|
||||
endif
|
||||
ifneq ($(word 1,$(_program_files)),$(_program_files))
|
||||
_program_files:=
|
||||
endif
|
||||
|
||||
# DirectX SDK
|
||||
ifdef ALT_DXSDK_DRIVE
|
||||
_dx_sdk_dir =$(ALT_DXSDK_DRIVE):/DXSDK
|
||||
else
|
||||
ifdef DXSDK_DIR
|
||||
xDXSDK_DIR :="$(subst \,/,$(DXSDK_DIR))"
|
||||
else
|
||||
xDXSDK_DIR :="$(_system_drive)/DXSDK"
|
||||
endif
|
||||
_dx_sdk_dir :=$(call FullPath,$(xDXSDK_DIR))
|
||||
endif
|
||||
|
||||
# Use of the Visual Studio compilers requires certain env variables be set:
|
||||
# PATH should include the path to cl.exe
|
||||
# INCLUDE should be defined
|
||||
# LIB should be defined
|
||||
# LIBPATH should be defined
|
||||
# VS100COMNTOOLS should be defined
|
||||
# WINDOWSSDKDIR should be defined
|
||||
# The 7.0a path is from VS2010 Pro, the 7.1 path is the standalone SDK.
|
||||
# For 64bit either will work for us.
|
||||
# If a developer chooses to install the standalone SDK in some other
|
||||
# location, then they need to set WINDOWSSDKDIR.
|
||||
#
|
||||
# Compilers for 64bit may be from the free SDK, or Visual Studio Professional.
|
||||
# The free Express compilers don't contain 64 bit compilers, which is why
|
||||
# you instead need the SDK.
|
||||
# Release enginering will use VS2010 Pro, so the frequency of testing of
|
||||
# SDK based builds will depend entirely on individual usage.
|
||||
|
||||
# We only need to do this once
|
||||
ifndef VS2010_EXISTS
|
||||
# The 2 key paths we need are WINDOWSSDKDIR and VS100COMNTOOLS.
|
||||
# If not defined try to see if default location exists.
|
||||
# If defined make sure that the path has no spaces.
|
||||
# Finally, export path with no spaces so logic minimizes FullPath calls.
|
||||
ifndef WINDOWSSDKDIR
|
||||
# The 7.0a SDK is the second choice.
|
||||
xWINDOWSSDKDIR :="$(_program_files32)/Microsoft SDKs/Windows/v7.0a/"
|
||||
fWINDOWSSDKDIR :=$(call FullPath,$(xWINDOWSSDKDIR))
|
||||
# The 7.1 SDK is the second choice.
|
||||
ifeq ($(fWINDOWSSDKDIR),)
|
||||
xWINDOWSSDKDIR :="$(_program_files32)/Microsoft SDKs/Windows/v7.1/"
|
||||
fWINDOWSSDKDIR :=$(call FullPath,$(xWINDOWSSDKDIR))
|
||||
endif
|
||||
else
|
||||
ifneq ($(word 2,$(WINDOWSSDKDIR)),)
|
||||
xWINDOWSSDKDIR :="$(subst \,/,$(WINDOWSSDKDIR))"
|
||||
fWINDOWSSDKDIR :=$(call FullPath,$(xWINDOWSSDKDIR))
|
||||
else
|
||||
fWINDOWSSDKDIR :=$(WINDOWSSDKDIR)
|
||||
endif
|
||||
endif
|
||||
ifneq ($(fWINDOWSSDKDIR),)
|
||||
WINDOWSSDKDIR :=$(fWINDOWSSDKDIR)/
|
||||
endif
|
||||
ifndef VS100COMNTOOLS
|
||||
xVS100COMNTOOLS :="$(_program_files32)/Microsoft Visual Studio 10.0/Common7/Tools/"
|
||||
fVS100COMNTOOLS :=$(call FullPath,$(xVS100COMNTOOLS))
|
||||
else
|
||||
xVS100COMNTOOLS :="$(subst \,/,$(VS100COMNTOOLS))"
|
||||
ifneq ($(word 2,$(VS100COMNTOOLS)),)
|
||||
fVS100COMNTOOLS :=$(call FullPath,$(xVS100COMNTOOLS))
|
||||
else
|
||||
fVS100COMNTOOLS :=$(xVS100COMNTOOLS)
|
||||
endif
|
||||
endif
|
||||
ifneq ($(fVS100COMNTOOLS),)
|
||||
VS100COMNTOOLS :=$(fVS100COMNTOOLS)/
|
||||
endif
|
||||
# Check to see that both exist
|
||||
ifeq ($(WINDOWSSDKDIR),)
|
||||
_vs2010_message := No WINDOWSSDKDIR found on system. $(_vs2010_message)
|
||||
VS2010_EXISTS := false
|
||||
endif
|
||||
ifeq ($(VS100COMNTOOLS),)
|
||||
_vs2010_message := No VS100COMNTOOLS found on system. $(_vs2010_message)
|
||||
VS2010_EXISTS := false
|
||||
endif
|
||||
ifeq ($(VS2010_EXISTS),false)
|
||||
x:=$(warning WARNING: No VS2010 available. $(_vs2010_message))
|
||||
VS100COMNTOOLS :=
|
||||
WINDOWSSDKDIR :=
|
||||
else
|
||||
VS2010_EXISTS := true
|
||||
_msvc_dir :=$(VS100COMNTOOLS)/../../Vc
|
||||
endif
|
||||
export VS2010_EXISTS
|
||||
export VS100COMNTOOLS
|
||||
export WINDOWSSDKDIR
|
||||
endif
|
||||
|
||||
ifneq ($(VS2010_EXISTS),true)
|
||||
x:=$(error ERROR: No VS2010 found on system.)
|
||||
endif
|
||||
|
||||
# VS2010 Compiler root directory
|
||||
_msvc_dir :=$(VS100COMNTOOLS)/../../Vc
|
||||
# SDK root directory
|
||||
_ms_sdk :=$(WINDOWSSDKDIR)
|
||||
# Compiler bin directory and redist directory
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
_compiler_bin :=$(_msvc_dir)/Bin
|
||||
_redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x86/Microsoft.VC100.CRT)
|
||||
endif
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
_compiler_bin :=$(_msvc_dir)/bin/amd64
|
||||
_redist_sdk :=$(call FullPath,$(_msvc_dir)/redist/x64/Microsoft.VC100.CRT)
|
||||
endif
|
||||
ifeq ($(_redist_sdk),)
|
||||
_redist_sdk :=$(_system_root)/system32
|
||||
endif
|
||||
|
||||
# Location on system where jdk installs might be
|
||||
ifneq ($(_program_files),)
|
||||
USRJDKINSTANCES_PATH =$(_program_files)/Java
|
||||
else
|
||||
USRJDKINSTANCES_PATH =$(_system_drive)/
|
||||
endif
|
||||
|
||||
# SLASH_JAVA: location of all network accessable files
|
||||
# NOTE: Do not use FullPath on this because it's often a drive letter and
|
||||
# plain drive letters are ambiguous, so just use this 'as is'.
|
||||
ifdef ALT_SLASH_JAVA
|
||||
xALT_SLASH_JAVA :="$(subst \,/,$(ALT_SLASH_JAVA))"
|
||||
SLASH_JAVA :=$(xALT_SLASH_JAVA)
|
||||
else
|
||||
ifdef ALT_JDK_JAVA_DRIVE
|
||||
SLASH_JAVA =$(JDK_JAVA_DRIVE)
|
||||
else
|
||||
SLASH_JAVA =J:
|
||||
endif
|
||||
endif
|
||||
#SLASH_JAVA:=$(call AltCheckSpaces,SLASH_JAVA)
|
||||
|
||||
# JDK_DEVTOOLS_DIR: common path for all the java devtools
|
||||
ifdef ALT_JDK_DEVTOOLS_DIR
|
||||
xALT_JDK_DEVTOOLS_DIR :="$(subst \,/,$(ALT_JDK_DEVTOOLS_DIR))"
|
||||
JDK_DEVTOOLS_DIR :=$(call FullPath,$(xALT_JDK_DEVTOOLS_DIR))
|
||||
else
|
||||
JDK_DEVTOOLS_DIR =$(SLASH_JAVA)/devtools
|
||||
endif
|
||||
JDK_DEVTOOLS_DIR:=$(call AltCheckSpaces,JDK_DEVTOOLS_DIR)
|
||||
|
||||
# COMPILER_PATH: path to where the compiler and tools are installed.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifdef ALT_COMPILER_PATH
|
||||
xALT_COMPILER_PATH :="$(subst \,/,$(ALT_COMPILER_PATH))"
|
||||
fxALT_COMPILER_PATH :=$(call FullPath,$(xALT_COMPILER_PATH))
|
||||
COMPILER_PATH :=$(call PrefixPath,$(fxALT_COMPILER_PATH))
|
||||
else
|
||||
COMPILER_PATH :=$(call PrefixPath,$(_compiler_bin))
|
||||
endif
|
||||
COMPILER_PATH :=$(call AltCheckSpaces,COMPILER_PATH)
|
||||
|
||||
# MSDEVTOOLS_PATH: path to where the additional MS Compiler tools are.
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifdef ALT_MSDEVTOOLS_PATH
|
||||
xALT_MSDEVTOOLS_PATH :="$(subst \,/,$(ALT_MSDEVTOOLS_PATH))"
|
||||
fxALT_MSDEVTOOLS_PATH :=$(call FullPath,$(xALT_MSDEVTOOLS_PATH))
|
||||
MSDEVTOOLS_PATH :=$(call PrefixPath,$(fxALT_MSDEVTOOLS_PATH))
|
||||
else
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
ifdef MSTOOLS
|
||||
xMSTOOLS :="$(subst \,/,$(MSTOOLS))"
|
||||
_ms_tools :=$(call FullPath,$(xMSTOOLS))
|
||||
else
|
||||
ifdef Mstools
|
||||
xMSTOOLS :="$(subst \,/,$(Mstools))"
|
||||
_ms_tools :=$(call FullPath,$(xMSTOOLS))
|
||||
else
|
||||
_ms_tools :=
|
||||
endif
|
||||
endif
|
||||
ifneq ($(_ms_tools),)
|
||||
_ms_tools_bin :=$(_ms_tools)/Bin
|
||||
else
|
||||
# Assumes compiler bin is .../Bin/win64/x86/AMD64, rc.exe is 3 levels up
|
||||
_ms_tools_bin :=$(_compiler_bin)/../../..
|
||||
endif
|
||||
else
|
||||
_ms_tools_bin :=$(_compiler_bin)
|
||||
endif
|
||||
MSDEVTOOLS_PATH :=$(call PrefixPath,$(_ms_tools_bin))
|
||||
endif
|
||||
MSDEVTOOLS_PATH:=$(call AltCheckSpaces,MSDEVTOOLS_PATH)
|
||||
|
||||
# DEVTOOLS_PATH: for other tools required for building (such as zip, etc.)
|
||||
# NOTE: Must end with / so that it could be empty, allowing PATH usage.
|
||||
ifdef ALT_DEVTOOLS_PATH
|
||||
xALT_DEVTOOLS_PATH :="$(subst \,/,$(ALT_DEVTOOLS_PATH))"
|
||||
fxALT_DEVTOOLS_PATH :=$(call FullPath,$(xALT_DEVTOOLS_PATH))
|
||||
DEVTOOLS_PATH :=$(call PrefixPath,$(fxALT_DEVTOOLS_PATH))
|
||||
else
|
||||
ifdef USING_CYGWIN
|
||||
DEVTOOLS_PATH :=$(UNIXCOMMAND_PATH)
|
||||
else
|
||||
xDEVTOOLS_PATH :="$(_system_drive)/utils"
|
||||
fxDEVTOOLS_PATH :=$(call FullPath,$(xDEVTOOLS_PATH))
|
||||
DEVTOOLS_PATH :=$(call PrefixPath,$(fxDEVTOOLS_PATH))
|
||||
endif
|
||||
endif
|
||||
DEVTOOLS_PATH:=$(call AltCheckSpaces,DEVTOOLS_PATH)
|
||||
|
||||
# _BOOTDIR1: First choice for a Bootstrap JDK, previous released JDK.
|
||||
# _BOOTDIR2: Second choice
|
||||
# The _BOOTDIR3 is defind optionally.
|
||||
ifndef ALT_BOOTDIR
|
||||
_BOOTDIR1 =$(_system_drive)/jdk$(PREVIOUS_JDK_VERSION)
|
||||
_BOOTDIR2 =$(USRJDKINSTANCES_PATH)/jdk$(PREVIOUS_JDK_VERSION)
|
||||
_BOOTDIR3 =$(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs/binaries/$(PLATFORM)-$(ARCH)
|
||||
endif
|
||||
|
||||
# Everybody needs the MSVCRNN runtime starting with VS2010
|
||||
_NEEDS_MSVCRNN = true
|
||||
|
||||
ifeq ($(_NEEDS_MSVCRNN), true)
|
||||
# MSVCRNN_DLL_PATH: location of msvcrnn.dll that will be re-distributed
|
||||
ifdef ALT_MSVCRNN_DLL_PATH
|
||||
xALT_MSVCRNN_DLL_PATH :="$(subst \,/,$(ALT_MSVCRNN_DLL_PATH))"
|
||||
MSVCRNN_DLL_PATH :=$(call FullPath,$(xALT_MSVCRNN_DLL_PATH))
|
||||
else
|
||||
MSVCRNN_DLL_PATH :=$(_redist_sdk)
|
||||
endif
|
||||
MSVCRNN_DLL_PATH :=$(call AltCheckSpaces,MSVCRNN_DLL_PATH)
|
||||
endif
|
||||
|
||||
# DXSDK_PATH: path to Microsoft DirectX SDK Include and Lib
|
||||
ifdef ALT_DXSDK_PATH
|
||||
xALT_DXSDK_PATH :="$(subst \,/,$(ALT_DXSDK_PATH))"
|
||||
DXSDK_PATH :=$(call FullPath,$(xALT_DXSDK_PATH))
|
||||
else
|
||||
_DXSDK_PATH1 :=$(_dx_sdk_dir)
|
||||
_DXSDK_PATH2 :=$(JDK_DEVTOOLS_DIR)/windows/dxsdk
|
||||
DXSDK_PATH :=$(call DirExists,$(_DXSDK_PATH1),$(_DXSDK_PATH2),$(_dx_sdk_dir))
|
||||
endif
|
||||
DXSDK_PATH :=$(call AltCheckSpaces,DXSDK_PATH)
|
||||
|
||||
# DXSDK_INCLUDE_PATH: path to Microsoft DirectX SDK Include
|
||||
ifdef ALT_DXSDK_INCLUDE_PATH
|
||||
xALT_DXSDK_INCLUDE_PATH :="$(subst \,/,$(ALT_DXSDK_INCLUDE_PATH))"
|
||||
DXSDK_INCLUDE_PATH :=$(call FullPath,$(xALT_DXSDK_INCLUDE_PATH))
|
||||
else
|
||||
DXSDK_INCLUDE_PATH =$(subst //,/,$(DXSDK_PATH)/Include)
|
||||
endif
|
||||
|
||||
# DXSDK_LIB_PATH: path to Microsoft DirectX SDK Lib
|
||||
ifdef ALT_DXSDK_LIB_PATH
|
||||
xALT_DXSDK_LIB_PATH :="$(subst \,/,$(ALT_DXSDK_LIB_PATH))"
|
||||
DXSDK_LIB_PATH :=$(call FullPath,$(xALT_DXSDK_LIB_PATH))
|
||||
else
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
# 64bit libs are located in "Lib/x64" subdir
|
||||
DXSDK_LIB_PATH =$(subst //,/,$(DXSDK_PATH)/Lib/x64)
|
||||
else
|
||||
DXSDK_LIB_PATH =$(subst //,/,$(DXSDK_PATH)/Lib)
|
||||
endif
|
||||
endif
|
||||
|
||||
# DEPLOY_MSSDK: Microsoft SDK for this platform (for deploy)
|
||||
ifdef ALT_DEPLOY_MSSDK
|
||||
xALT_DEPLOY_MSSDK :="$(subst \,/,$(ALT_DEPLOY_MSSDK))"
|
||||
DEPLOY_MSSDK :=$(call FullPath,$(xALT_DEPLOY_MSSDK))
|
||||
else
|
||||
DEPLOY_MSSDK :=$(_ms_sdk)
|
||||
endif
|
||||
DEPLOY_MSSDK:=$(call AltCheckSpaces,DEPLOY_MSSDK)
|
||||
|
||||
# INSTALL_MSSDK: Microsoft Installer SDK for this platform (for install)
|
||||
ifdef ALT_INSTALL_MSSDK
|
||||
xALT_INSTALL_MSSDK :="$(subst \,/,$(ALT_INSTALL_MSSDK))"
|
||||
INSTALL_MSSDK :=$(call FullPath,$(xALT_INSTALL_MSSDK))
|
||||
else
|
||||
INSTALL_MSSDK :=$(_ms_sdk)
|
||||
endif
|
||||
INSTALL_MSSDK:=$(call AltCheckSpaces,INSTALL_MSSDK)
|
||||
|
||||
# WSCRIPT: path to wscript.exe (used in creating install bundles)
|
||||
ifdef ALT_WSCRIPT
|
||||
xALT_WSCRIPT :="$(subst \,/,$(ALT_WSCRIPT))"
|
||||
WSCRIPT =$(xALT_WSCRIPT)
|
||||
else
|
||||
_WSCRIPT1 :=$(_system_root)/system32/wscript.exe
|
||||
_WSCRIPT2 :=$(DEVTOOLS_PATH)wscript.exe
|
||||
WSCRIPT :=$(call FileExists,$(_WSCRIPT1),$(_WSCRIPT2))
|
||||
endif
|
||||
WSCRIPT:=$(call AltCheckSpaces,WSCRIPT)
|
||||
# batch mode no modal dialogs on errors, please.
|
||||
WSCRIPT += -B
|
||||
|
||||
# CSCRIPT: path to cscript.exe (used in creating install bundles)
|
||||
ifdef ALT_CSCRIPT
|
||||
xALT_CSCRIPT :="$(subst \,/,$(ALT_CSCRIPT))"
|
||||
CSCRIPT =$(xALT_CSCRIPT)
|
||||
else
|
||||
_CSCRIPT1 :=$(_system_root)/system32/cscript.exe
|
||||
_CSCRIPT2 :=$(DEVTOOLS_PATH)cscript.exe
|
||||
CSCRIPT :=$(call FileExists,$(_CSCRIPT1),$(_CSCRIPT2))
|
||||
endif
|
||||
CSCRIPT:=$(call AltCheckSpaces,CSCRIPT)
|
||||
|
||||
# CABARC: path to cabarc.exe (used in creating install bundles)
|
||||
ifdef ALT_CABARC
|
||||
xALT_CABARC :="$(subst \,/,$(ALT_CABARC))"
|
||||
CABARC =$(xALT_CABARC)
|
||||
else
|
||||
_CABARC1 :=$(_system_root)/system32/cabarc.exe
|
||||
_CABARC2 :=$(DEVTOOLS_PATH)cabarc.exe
|
||||
CABARC :=$(call FileExists,$(_CABARC1),$(_CABARC2))
|
||||
endif
|
||||
CABARC:=$(call AltCheckSpaces,CABARC)
|
||||
|
||||
# MSICERT: path to msicert.exe (used in creating install bundles)
|
||||
ifdef ALT_MSICERT
|
||||
xALT_MSICERT :="$(subst \,/,$(ALT_MSICERT))"
|
||||
MSICERT =$(xALT_MSICERT)
|
||||
else
|
||||
_MSICERT1 :=$(INSTALL_MSSDK)/Bin/msicert.exe
|
||||
_MSICERT2 :=$(DEVTOOLS_PATH)msicert.exe
|
||||
MSICERT :=$(call FileExists,$(_MSICERT1),$(_MSICERT2))
|
||||
endif
|
||||
MSICERT:=$(call AltCheckSpaces,MSICERT)
|
||||
|
||||
# Import JDK images allow for partial builds, components not built are
|
||||
# imported (or copied from) these import areas when needed.
|
||||
|
||||
# BUILD_JDK_IMPORT_PATH: location of JDK install trees to import for
|
||||
# multiple platforms, e.g. windows-i586, solaris-sparc, linux-586, etc.
|
||||
ifdef ALT_BUILD_JDK_IMPORT_PATH
|
||||
BUILD_JDK_IMPORT_PATH :=$(call FullPath,$(ALT_BUILD_JDK_IMPORT_PATH))
|
||||
else
|
||||
BUILD_JDK_IMPORT_PATH = $(PROMOTED_BUILD_BINARIES)
|
||||
endif
|
||||
BUILD_JDK_IMPORT_PATH:=$(call AltCheckSpaces,BUILD_JDK_IMPORT_PATH)
|
||||
|
||||
# JDK_IMPORT_PATH: location of previously built JDK (this version) to import
|
||||
ifdef ALT_JDK_IMPORT_PATH
|
||||
JDK_IMPORT_PATH :=$(call FullPath,$(ALT_JDK_IMPORT_PATH))
|
||||
else
|
||||
JDK_IMPORT_PATH = $(BUILD_JDK_IMPORT_PATH)/$(PLATFORM)-$(ARCH)$(_JDK_IMPORT_VARIANT)
|
||||
endif
|
||||
JDK_IMPORT_PATH:=$(call AltCheckSpaces,JDK_IMPORT_PATH)
|
||||
|
||||
# HOTSPOT_CLIENT_PATH: location of client jvm library file.
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifdef ALT_HOTSPOT_CLIENT_PATH
|
||||
HOTSPOT_CLIENT_PATH :=$(call FullPath,$(ALT_HOTSPOT_CLIENT_PATH))
|
||||
else
|
||||
HOTSPOT_CLIENT_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/client
|
||||
endif
|
||||
HOTSPOT_CLIENT_PATH:=$(call AltCheckSpaces,HOTSPOT_CLIENT_PATH)
|
||||
endif
|
||||
|
||||
# HOTSPOT_SERVER_PATH: location of server jvm library file.
|
||||
ifdef ALT_HOTSPOT_SERVER_PATH
|
||||
HOTSPOT_SERVER_PATH :=$(call FullPath,$(ALT_HOTSPOT_SERVER_PATH))
|
||||
else
|
||||
HOTSPOT_SERVER_PATH =$(HOTSPOT_IMPORT_PATH)/$(ARCH_VM_SUBDIR)/server
|
||||
endif
|
||||
HOTSPOT_SERVER_PATH:=$(call AltCheckSpaces,HOTSPOT_SERVER_PATH)
|
||||
|
||||
# HOTSPOT_LIB_PATH: location of jvm.lib file.
|
||||
ifdef ALT_HOTSPOT_LIB_PATH
|
||||
xALT_HOTSPOT_LIB_PATH :="$(subst \,/,$(ALT_HOTSPOT_LIB_PATH))"
|
||||
HOTSPOT_LIB_PATH :=$(call FullPath,$(xALT_HOTSPOT_LIB_PATH))
|
||||
else
|
||||
HOTSPOT_LIB_PATH =$(HOTSPOT_IMPORT_PATH)/lib
|
||||
endif
|
||||
HOTSPOT_LIB_PATH:=$(call AltCheckSpaces,HOTSPOT_LIB_PATH)
|
||||
|
||||
# Special define for checking the binaries
|
||||
|
||||
# All windows dll and exe files should have been built with /NXCOMPAT
|
||||
# and be setup for dynamic base addresses.
|
||||
# In addition, we should not be dependent on certain dll files that
|
||||
# we do not or cannot redistribute.
|
||||
|
||||
# List of filenames we should NOT be dependent on
|
||||
ifeq ($(MFC_DEBUG),true)
|
||||
BANNED_DLLS=msvcp100[.]dll
|
||||
else
|
||||
BANNED_DLLS=msvcp100[.]dll|msvcr100d[.]dll|msvcrtd[.]dll
|
||||
endif
|
||||
|
||||
# Check for /safeseh (only used on 32bit)
|
||||
define binary_file_safeseh_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for /SAFESEH usage in: $1" && \
|
||||
if [ "`$(DUMPBIN) /loadconfig $1 | $(EGREP) -i 'Safe Exception Handler Table'`" = "" ] ; then \
|
||||
$(ECHO) "ERROR: Did not find 'Safe Exception Handler Table' in loadconfig: $1" ; \
|
||||
$(DUMPBIN) /loadconfig $1 ; \
|
||||
exit 6 ; \
|
||||
fi ; \
|
||||
)
|
||||
endef
|
||||
|
||||
# Check for /NXCOMPAT usage
|
||||
define binary_file_nxcompat_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for /NXCOMPAT usage in: $1" && \
|
||||
if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'NX compatible'`" = "" ] ; then \
|
||||
$(ECHO) "ERROR: Did not find 'NX compatible' in headers: $1" ; \
|
||||
$(DUMPBIN) /headers $1 ; \
|
||||
exit 7 ; \
|
||||
fi ; \
|
||||
)
|
||||
endef
|
||||
|
||||
# Check for /DYNAMICBASE usage
|
||||
define binary_file_dynamicbase_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for /DYNAMICBASE usage in: $1" && \
|
||||
if [ "`$(DUMPBIN) /headers $1 | $(EGREP) -i 'Dynamic base'`" = "" ] ; then \
|
||||
$(ECHO) "ERROR: Did not find 'Dynamic base' in headers: $1" ; \
|
||||
$(DUMPBIN) /headers $1 ; \
|
||||
exit 8 ; \
|
||||
fi ; \
|
||||
)
|
||||
endef
|
||||
|
||||
# Check for banned dll usage
|
||||
define binary_file_dll_verification # binary_file
|
||||
( \
|
||||
$(ECHO) "Checking for banned dependencies in: $1" && \
|
||||
if [ "`$(DUMPBIN) /dependents $1 | $(EGREP) -i '$(BANNED_DLLS)'`" != "" ] ; then \
|
||||
$(ECHO) "ERROR: Found use of $(BANNED_DLLS)"; \
|
||||
$(DUMPBIN) /dependents $1 ; \
|
||||
exit 9 ; \
|
||||
fi ; \
|
||||
)
|
||||
endef
|
||||
|
||||
# Macro to check it's input file for properly built executables.
|
||||
# Relies on process exit code. Different for 32bit vs 64bit.
|
||||
ifeq ($(ARCH_DATA_MODEL),32)
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(call binary_file_safeseh_verification,$1); \
|
||||
$(call binary_file_nxcompat_verification,$1); \
|
||||
$(call binary_file_dynamicbase_verification,$1); \
|
||||
$(call binary_file_dll_verification,$1); \
|
||||
)
|
||||
endef
|
||||
else
|
||||
define binary_file_verification # binary_file
|
||||
( \
|
||||
$(call binary_file_nxcompat_verification,$1); \
|
||||
$(call binary_file_dynamicbase_verification,$1); \
|
||||
$(call binary_file_dll_verification,$1); \
|
||||
)
|
||||
endef
|
||||
endif
|
||||
|
||||
666
jdk/makefiles/common/shared/Defs.gmk
Normal file
666
jdk/makefiles/common/shared/Defs.gmk
Normal file
@ -0,0 +1,666 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Definitions for all platforms.
|
||||
#
|
||||
# Normally the convention is that these alternate definitions of
|
||||
# primary make variables are never defined inside the Makefiles anywhere
|
||||
# but are defined via environment variables or set on the make command
|
||||
# line. So you should never see an ALT_* variable defined in any
|
||||
# makefiles, just used. This is the convention and there are some
|
||||
# exceptions, either mistakes or unusual circumstances.
|
||||
#
|
||||
# The naming convention for the default value of one of these variables
|
||||
# that has an ALT_* override capability is to name the default value with a
|
||||
# leading underscore (_). So for XXX you would have:
|
||||
# _XXX default value
|
||||
# ALT_XXX any override the user is providing if any
|
||||
# XXX the final value, either the default _XXX or the ALT_XXX value.
|
||||
#
|
||||
|
||||
# On Directory names. In very rare cases should the Windows directory
|
||||
# names use the backslash, please use the C:/ style of windows paths.
|
||||
# Avoid duplicating the // characters in paths, this has known to cause
|
||||
# strange problems with jar and other utilities, e.g. /a//b/ != /a/b/.
|
||||
# Some of these variables have an explicit trailing / character, but in
|
||||
# general, they should NOT have the trailing / character.
|
||||
|
||||
-include $(SPEC)
|
||||
-include $(VARS)
|
||||
|
||||
# Get shared system utilities macros defined
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs-utils.gmk
|
||||
|
||||
# Assumes ARCH, PLATFORM, ARCH_VM_SUBDIR, JDK_TOPDIR, etc. have been defined.
|
||||
|
||||
# Simple pwd path
|
||||
# NOTE: Just use the shell's cd and pwd here, more reliable at sanity time.
|
||||
define PwdPath
|
||||
$(shell cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
define AbsPwdPathCheck
|
||||
$(shell cd .. 2> $(DEV_NULL) && cd $1 2> $(DEV_NULL) && pwd)
|
||||
endef
|
||||
|
||||
# Checks an ALT value for spaces (should be one word),
|
||||
# warns and returns Check_ALT_$1 if spaces
|
||||
define AltCheckSpaces
|
||||
$(if $(word 2,$($1)),$(warning "WARNING: Value of $1 contains a space: '$($1)', check or set ALT_$1")Check_ALT_$1,$($1))
|
||||
endef
|
||||
|
||||
# Checks an ALT value for empty, warns and returns Check_ALT_$1 if empty
|
||||
define AltCheckValue
|
||||
$(if $($1),$($1),$(warning "WARNING: Value of $1 cannot be empty, check or set ALT_$1")Check_ALT_$1)
|
||||
endef
|
||||
|
||||
# Checks any value for empty, warns and returns $2 if empty
|
||||
define CheckValue
|
||||
$(if $($1),$($1),$(warning "WARNING: Value of $1 cannot be empty, will use '$2'")$2)
|
||||
endef
|
||||
|
||||
# Prefix for a utility prefix path, if empty leave alone, otherwise end with a /
|
||||
define PrefixPath
|
||||
$(if $1,$(subst //,/,$1/),)
|
||||
endef
|
||||
|
||||
# Select a directory if it exists, or the alternate 2 or the alternate 3
|
||||
define DirExists
|
||||
$(shell \
|
||||
if [ -d "$1" ]; then \
|
||||
echo "$1"; \
|
||||
elif [ -d "$2" ]; then \
|
||||
echo "$2"; \
|
||||
else \
|
||||
echo "$3"; \
|
||||
fi)
|
||||
endef
|
||||
|
||||
# Select a directory if it exists, or the alternate 2, or the alternate 3, or the alternate 4
|
||||
define DirExists4
|
||||
$(shell \
|
||||
if [ -d "$1" ]; then \
|
||||
echo "$1"; \
|
||||
elif [ -d "$2" ]; then \
|
||||
echo "$2"; \
|
||||
elif [ -d "$3" ]; then \
|
||||
echo "$3"; \
|
||||
else \
|
||||
echo "$4"; \
|
||||
fi)
|
||||
endef
|
||||
|
||||
|
||||
# Select a writable directory if it exists and is writable, or the alternate
|
||||
define WriteDirExists
|
||||
$(shell \
|
||||
if [ -d "$1" -a -w "$1" ]; then \
|
||||
echo "$1"; \
|
||||
else \
|
||||
echo "$2"; \
|
||||
fi)
|
||||
endef
|
||||
|
||||
# Select a file if it exists, or the alternate 1, or the alternate 2
|
||||
define FileExists
|
||||
$(shell \
|
||||
if [ -r "$1" ]; then \
|
||||
echo "$1"; \
|
||||
elif [ -r "$2" ]; then \
|
||||
echo "$2"; \
|
||||
else \
|
||||
echo "NO_FILE_EXISTS"; \
|
||||
fi)
|
||||
endef
|
||||
|
||||
# Given a line of text, get the version number from it
|
||||
define GetVersion
|
||||
$(shell echo $1 | sed -e 's@[^0-9]*\([0-9][0-9]*\.[0-9][.0-9]*\).*@\1@' )
|
||||
endef
|
||||
|
||||
# Return one part of the version numbers, watch out for non digits.
|
||||
define VersionWord # Number Version
|
||||
$(word $1,$(subst ., ,$(subst -, ,$2)))
|
||||
endef
|
||||
|
||||
# Given a major.minor.micro version, return the major, minor, or micro number
|
||||
define MajorVersion
|
||||
$(if $(call VersionWord,1,$1),$(call VersionWord,1,$1),0)
|
||||
endef
|
||||
define MinorVersion
|
||||
$(if $(call VersionWord,2,$1),$(call VersionWord,2,$1),0)
|
||||
endef
|
||||
define MicroVersion
|
||||
$(if $(call VersionWord,3,$1),$(call VersionWord,3,$1),0)
|
||||
endef
|
||||
|
||||
# Macro that returns missing, same, newer, or older $1=version $2=required
|
||||
define CheckVersions
|
||||
$(shell \
|
||||
if [ "$1" = "" -o "$2" = "" ]; then \
|
||||
echo missing; \
|
||||
elif [ "$1" = "$2" ]; then \
|
||||
echo same; \
|
||||
elif [ $(call MajorVersion,$1) -lt $(call MajorVersion,$2) ] ; then \
|
||||
echo older; \
|
||||
elif [ $(call MajorVersion,$1) -gt $(call MajorVersion,$2) ] ; then \
|
||||
echo newer; \
|
||||
elif [ $(call MinorVersion,$1) -lt $(call MinorVersion,$2) ]; then \
|
||||
echo older; \
|
||||
elif [ $(call MinorVersion,$1) -gt $(call MinorVersion,$2) ]; then \
|
||||
echo newer; \
|
||||
elif [ $(call MicroVersion,$1) -lt $(call MicroVersion,$2) ]; then \
|
||||
echo older; \
|
||||
elif [ $(call MicroVersion,$1) -gt $(call MicroVersion,$2) ]; then \
|
||||
echo newer; \
|
||||
else \
|
||||
echo same; \
|
||||
fi)
|
||||
endef
|
||||
|
||||
# Expand SRCDIR_LIST, which is used to automatically include various
|
||||
# platform and shared sources/headers. This is mainly useful for the
|
||||
# Mac OS X build, which pulls its platform sources from the solaris and/or
|
||||
# macosx trees, depending on the component.
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
define JavaSrcDirList
|
||||
$(JAVA_SRCDIR_LIST:%=$1$(JDK_TOPDIR)/%/$2)
|
||||
endef
|
||||
define NativeSrcDirList
|
||||
$(NATIVE_SRCDIR_LIST:%=$1$(JDK_TOPDIR)/%/$2)
|
||||
endef
|
||||
endif
|
||||
|
||||
# Make sure certain variables are non-empty at this point
|
||||
_check_values:=\
|
||||
$(call CheckValue,ARCH,),\
|
||||
$(call CheckValue,ARCH_DATA_MODEL,),\
|
||||
$(call CheckValue,ARCH_VM_SUBDIR,),\
|
||||
$(call CheckValue,JDK_TOPDIR,),\
|
||||
$(call CheckValue,JDK_MAKE_SHARED_DIR,),\
|
||||
$(call CheckValue,VARIANT,),\
|
||||
$(call CheckValue,PLATFORM,)
|
||||
|
||||
# Misc common settings for all workspaces
|
||||
# This determines the version of the product, and the previous version or boot
|
||||
ifndef JDK_MAJOR_VERSION
|
||||
JDK_MAJOR_VERSION = 1
|
||||
PREVIOUS_MAJOR_VERSION = 1
|
||||
endif
|
||||
|
||||
ifndef JDK_MINOR_VERSION
|
||||
JDK_MINOR_VERSION = 8
|
||||
PREVIOUS_MINOR_VERSION = 7
|
||||
endif
|
||||
|
||||
ifndef JDK_MICRO_VERSION
|
||||
JDK_MICRO_VERSION = 0
|
||||
PREVIOUS_MICRO_VERSION = 0
|
||||
endif
|
||||
|
||||
ifndef MILESTONE
|
||||
MILESTONE = internal
|
||||
endif
|
||||
|
||||
# Default names
|
||||
ifdef OPENJDK
|
||||
LAUNCHER_NAME = openjdk
|
||||
PRODUCT_NAME = OpenJDK
|
||||
PRODUCT_SUFFIX = Runtime Environment
|
||||
JDK_RC_PLATFORM_NAME = Platform
|
||||
COMPANY_NAME = N/A
|
||||
else
|
||||
LAUNCHER_NAME = java
|
||||
PRODUCT_NAME = Java(TM)
|
||||
PRODUCT_SUFFIX = SE Runtime Environment
|
||||
JDK_RC_PLATFORM_NAME = Platform SE
|
||||
COMPANY_NAME = Oracle Corporation
|
||||
endif
|
||||
|
||||
RUNTIME_NAME = $(PRODUCT_NAME) $(PRODUCT_SUFFIX)
|
||||
|
||||
ifndef BUILD_NUMBER
|
||||
JDK_BUILD_NUMBER = b00
|
||||
else
|
||||
ifndef JDK_BUILD_NUMBER
|
||||
JDK_BUILD_NUMBER = $(BUILD_NUMBER)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Default variant is the optimized version of everything
|
||||
# can be OPT or DBG, default is OPT
|
||||
# Determine the extra pattern to add to the release name for debug/fastdebug.
|
||||
# Determine the JDK_IMPORT_VARIANT, so we get the right VM files copied over.
|
||||
# Determine suffix for obj directory or OBJDIR, for .o files.
|
||||
# (by keeping .o files separate, just .o files, they don't clobber each
|
||||
# other, however, the library files will clobber each other).
|
||||
#
|
||||
ifeq ($(VARIANT), DBG)
|
||||
BUILD_VARIANT_RELEASE=-debug
|
||||
OBJDIRNAME_SUFFIX=_g
|
||||
else
|
||||
BUILD_VARIANT_RELEASE=
|
||||
OBJDIRNAME_SUFFIX=
|
||||
endif
|
||||
ifeq ($(FASTDEBUG), true)
|
||||
VARIANT=DBG
|
||||
BUILD_VARIANT_RELEASE=-fastdebug
|
||||
OBJDIRNAME_SUFFIX=_gO
|
||||
_JDK_IMPORT_VARIANT=/fastdebug
|
||||
endif
|
||||
|
||||
# Depending on the flavor of the build, add a -debug or -fastdebug to the name
|
||||
ifdef DEBUG_NAME
|
||||
BUILD_VARIANT_RELEASE=-$(DEBUG_NAME)
|
||||
endif
|
||||
|
||||
# These default values are redefined during a release build.
|
||||
# CTE can set JDK_UPDATE_VERSION during the update release
|
||||
ifdef JDK_UPDATE_VERSION
|
||||
JDK_VERSION = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)_$(JDK_UPDATE_VERSION)
|
||||
MARKETING_NUMBER := $(shell \
|
||||
$(ECHO) $(JDK_UPDATE_VERSION) | $(NAWK) '{if (substr($$0,1,1)=="0") print substr($$0, 2); else print $$0;}')
|
||||
MARKET_NAME= $(shell $(ECHO) " Update $(MARKETING_NUMBER)")
|
||||
JDK_MKTG_VERSION = $(JDK_MINOR_VERSION)u$(MARKETING_NUMBER)
|
||||
else
|
||||
JDK_VERSION = $(JDK_MAJOR_VERSION).$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION)
|
||||
JDK_MKTG_VERSION = $(JDK_MINOR_VERSION)
|
||||
MARKET_NAME=
|
||||
endif
|
||||
JDK_UNDERSCORE_VERSION = $(subst .,_,$(JDK_VERSION))
|
||||
JDK_MKTG_UNDERSCORE_VERSION = $(subst .,_,$(JDK_MKTG_VERSION))
|
||||
|
||||
# RELEASE is JDK_VERSION and -MILESTONE if MILESTONE is set
|
||||
ifneq ($(MILESTONE),fcs)
|
||||
RELEASE = $(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
|
||||
else
|
||||
RELEASE = $(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
|
||||
endif
|
||||
|
||||
# FULL_VERSION is RELEASE and -BUILD_NUMBER if BUILD_NUMBER is set
|
||||
ifdef BUILD_NUMBER
|
||||
FULL_VERSION = $(RELEASE)-$(BUILD_NUMBER)
|
||||
else
|
||||
BUILD_NUMBER = b00
|
||||
ifndef USER_RELEASE_SUFFIX
|
||||
BUILD_DATE := $(shell $(DATE) '+%Y_%m_%d_%H_%M')
|
||||
# Avoid [:alnum:] since it depends on the locale.
|
||||
CLEAN_USERNAME := $(shell $(ECHO) "$(USER)" | $(TR) -d -c 'abcdefghijklmnopqrstuvqxyz0123456789')
|
||||
USER_RELEASE_SUFFIX := $(shell $(ECHO) "$(CLEAN_USERNAME)_$(BUILD_DATE)" | $(TR) 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvqxyz')
|
||||
endif
|
||||
export USER_RELEASE_SUFFIX
|
||||
FULL_VERSION = $(RELEASE)-$(USER_RELEASE_SUFFIX)-$(BUILD_NUMBER)
|
||||
endif
|
||||
|
||||
# Promoted build location
|
||||
PROMOTED_RE_AREA = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted
|
||||
PROMOTED_BUILD_LATEST = latest
|
||||
PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
|
||||
PROMOTED_BUILD_DISTDIR = $(PROMOTED_BUILD_BASEDIR)/dist/$(PLATFORM)-$(ARCH)
|
||||
PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
|
||||
|
||||
# PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel.
|
||||
# If the user sets ALT_PARALLEL_COMPILE_JOBS, then COMPILE_APPROACH is set
|
||||
# to parallel.
|
||||
#
|
||||
# Recommended setting: 2 seems to be ideal for single cpu machines,
|
||||
# 2 times the number of CPU's is a basic formula,
|
||||
# but probably not more than 4 if the machine is
|
||||
# being shared by others, or the machine is limited
|
||||
# in RAM or swap.
|
||||
#
|
||||
ifdef ALT_PARALLEL_COMPILE_JOBS
|
||||
PARALLEL_COMPILE_JOBS=$(ALT_PARALLEL_COMPILE_JOBS)
|
||||
else
|
||||
PARALLEL_COMPILE_JOBS=2
|
||||
endif
|
||||
|
||||
# Previous JDK release (version of BOOTDIR version)
|
||||
ifdef ALT_PREVIOUS_JDK_VERSION
|
||||
PREVIOUS_JDK_VERSION = $(ALT_PREVIOUS_JDK_VERSION)
|
||||
else
|
||||
PREVIOUS_JDK_VERSION = $(PREVIOUS_MAJOR_VERSION).$(PREVIOUS_MINOR_VERSION).$(PREVIOUS_MICRO_VERSION)
|
||||
endif
|
||||
export PREVIOUS_JDK_VERSION
|
||||
PREVIOUS_JDK_VERSION:=$(call AltCheckSpaces,PREVIOUS_JDK_VERSION)
|
||||
|
||||
# Version with _ instead of . in number
|
||||
ifeq ($(PREVIOUS_MINOR_VERSION),5)
|
||||
PREVIOUS_JDK_UNDERSCORE_VERSION = $(subst .,_,$(PREVIOUS_JDK_VERSION))
|
||||
else
|
||||
PREVIOUS_JDK_UNDERSCORE_VERSION = $(PREVIOUS_MINOR_VERSION)
|
||||
endif
|
||||
|
||||
# Include any private definitions for this set of workspaces
|
||||
_PRIVATE_DEFS_FILE=$(JDK_MAKE_SHARED_DIR)/PrivateDefs.gmk
|
||||
ifeq ($(USING_PRIVATE_DEFS),)
|
||||
USING_PRIVATE_DEFS:=$(shell if [ -f $(_PRIVATE_DEFS_FILE) ]; then echo true; else echo false; fi)
|
||||
endif
|
||||
ifeq ($(USING_PRIVATE_DEFS),true)
|
||||
dummy:=$(warning "WARNING: Using definitions from $(_PRIVATE_DEFS_FILE)")
|
||||
include $(_PRIVATE_DEFS_FILE)
|
||||
endif
|
||||
|
||||
# OUTPUTDIR: Location of all output for the build
|
||||
ifdef ALT_OUTPUTDIR
|
||||
OUTPUTDIR:=$(subst \,/,$(ALT_OUTPUTDIR))
|
||||
# Assumes this is absolute (checks later)
|
||||
ABS_OUTPUTDIR:=$(OUTPUTDIR)
|
||||
else
|
||||
ifndef _OUTPUTDIR
|
||||
# Default: Get "build" parent directory, which should always exist
|
||||
ifndef BUILD_PARENT_DIRECTORY
|
||||
BUILD_PARENT_DIRECTORY=$(BUILDDIR)/..
|
||||
endif
|
||||
ifdef OPENJDK
|
||||
_OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)$(OPENJDK_SUFFIX)
|
||||
else
|
||||
_OUTPUTDIRNAME=$(PLATFORM)-$(ARCH)
|
||||
endif
|
||||
_OUTPUTDIR=$(BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
|
||||
endif
|
||||
OUTPUTDIR:=$(_OUTPUTDIR)
|
||||
endif
|
||||
# Check for spaces and null value
|
||||
OUTPUTDIR:=$(call AltCheckSpaces,OUTPUTDIR)
|
||||
|
||||
# Get platform specific settings
|
||||
# NB: OUTPUTDIR must be defined. Otherwise hotspot import detection will not work correctly
|
||||
# On other hand this must be included early as it provides platform specific defines such as FullPath
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs-versions.gmk
|
||||
|
||||
# Get platform specific settings (defines COMPILER_PATH)
|
||||
include $(JDK_MAKE_SHARED_DIR)/Defs-$(PLATFORM).gmk
|
||||
|
||||
# Components
|
||||
ifdef ALT_LANGTOOLS_DIST
|
||||
LANGTOOLS_DIST :=$(call FullPath,$(ALT_LANGTOOLS_DIST))
|
||||
else
|
||||
LANGTOOLS_DIST =
|
||||
endif
|
||||
ifdef ALT_CORBA_DIST
|
||||
CORBA_DIST :=$(call FullPath,$(ALT_CORBA_DIST))
|
||||
else
|
||||
CORBA_DIST =
|
||||
endif
|
||||
ifdef ALT_JAXP_DIST
|
||||
JAXP_DIST :=$(call FullPath,$(ALT_JAXP_DIST))
|
||||
else
|
||||
JAXP_DIST =
|
||||
endif
|
||||
ifdef ALT_JAXWS_DIST
|
||||
JAXWS_DIST :=$(call FullPath,$(ALT_JAXWS_DIST))
|
||||
else
|
||||
JAXWS_DIST =
|
||||
endif
|
||||
|
||||
# HOTSPOT_DOCS_IMPORT_PATH: Path to hotspot docs files to import into the docs generation
|
||||
ifdef ALT_HOTSPOT_DOCS_IMPORT_PATH
|
||||
HOTSPOT_DOCS_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_DOCS_IMPORT_PATH))
|
||||
else
|
||||
HOTSPOT_DOCS_IMPORT_PATH :=$(call DirExists,$(HOTSPOT_IMPORT_PATH)/docs,$(PROMOTED_BUILD_BASEDIR)/docs,/NO_DOCS_DIR)
|
||||
endif
|
||||
|
||||
# These are the same on all platforms but require the above platform include 1st
|
||||
|
||||
# BOOTDIR: Bootstrap JDK, previous released JDK.
|
||||
# _BOOTDIR1 and _BOOTDIR2 picked by platform
|
||||
# Platform may optionally define _BOOTDIR3 as well.
|
||||
ifdef ALT_BOOTDIR
|
||||
BOOTDIR =$(ALT_BOOTDIR)
|
||||
else
|
||||
ifdef _BOOTDIR3
|
||||
BOOTDIR :=$(call DirExists4,$(_BOOTDIR1),$(_BOOTDIR2),$(_BOOTDIR3),/NO_BOOTDIR)
|
||||
else
|
||||
BOOTDIR :=$(call DirExists,$(_BOOTDIR1),$(_BOOTDIR2),/NO_BOOTDIR)
|
||||
endif
|
||||
endif
|
||||
export BOOTDIR
|
||||
BOOTDIR:=$(call AltCheckSpaces,BOOTDIR)
|
||||
|
||||
# PREVIOUS_FCS_RE_AREA: re path to where previous release binaries/bundles are
|
||||
PREVIOUS_FCS_RE_AREA = $(SLASH_JAVA)/re/jdk/$(PREVIOUS_JDK_VERSION)/archive/fcs
|
||||
|
||||
# PREVIOUS_RELEASE_IMAGE: Previous install image to compare against
|
||||
ifdef ALT_PREVIOUS_RELEASE_IMAGE
|
||||
|
||||
# Explicit image provided, no bundle access needed
|
||||
PREVIOUS_RELEASE_IMAGE :=$(call FullPath,$(ALT_PREVIOUS_RELEASE_IMAGE))
|
||||
|
||||
else
|
||||
|
||||
# PREVIOUS_RELEASE_PATH: path to where previous release bundles are
|
||||
ifdef ALT_PREVIOUS_RELEASE_PATH
|
||||
PREVIOUS_RELEASE_PATH :=$(call OptFullPath,$(ALT_PREVIOUS_RELEASE_PATH))
|
||||
else
|
||||
PREVIOUS_RELEASE_PATH := \
|
||||
$(call DirExists,$(PREVIOUS_FCS_RE_AREA)/bundles/$(PLATFORM)-$(ARCH),,)
|
||||
endif
|
||||
|
||||
# Depending on if we have access to these bundles
|
||||
ifeq ($(PREVIOUS_RELEASE_PATH),)
|
||||
# Use images in re area or BOOTDIR (which is normally the previous release)
|
||||
PREVIOUS_RELEASE_IMAGE := \
|
||||
$(call DirExists,$(PREVIOUS_FCS_RE_AREA)/binaries/$(PLATFORM)-$(ARCH),$(BOOTDIR),)
|
||||
else
|
||||
# Get names of and paths to bundles
|
||||
PREVIOUS_RELEASE_PATH:=$(call AltCheckSpaces,PREVIOUS_RELEASE_PATH)
|
||||
export PREVIOUS_RELEASE_PATH
|
||||
|
||||
# PREVIOUS_JDK_FILE: filename of install bundle for previous JDK
|
||||
ifdef ALT_PREVIOUS_JDK_FILE
|
||||
PREVIOUS_JDK_FILE =$(ALT_PREVIOUS_JDK_FILE)
|
||||
else
|
||||
PREVIOUS_JDK_FILE = \
|
||||
jdk-$(PREVIOUS_JDK_UNDERSCORE_VERSION)-$(PLATFORM)-$(ARCH)$(BUNDLE_FILE_SUFFIX)
|
||||
endif
|
||||
export PREVIOUS_JDK_FILE
|
||||
PREVIOUS_JDK_FILE:=$(call AltCheckSpaces,PREVIOUS_JDK_FILE)
|
||||
|
||||
# PREVIOUS_JRE_FILE: filename of install bundle for previous JRE
|
||||
ifdef ALT_PREVIOUS_JRE_FILE
|
||||
PREVIOUS_JRE_FILE =$(ALT_PREVIOUS_JRE_FILE)
|
||||
else
|
||||
PREVIOUS_JRE_FILE = \
|
||||
jre-$(PREVIOUS_JDK_UNDERSCORE_VERSION)-$(PLATFORM)-$(ARCH)$(BUNDLE_FILE_SUFFIX)
|
||||
endif
|
||||
export PREVIOUS_JRE_FILE
|
||||
PREVIOUS_JRE_FILE:=$(call AltCheckSpaces,PREVIOUS_JRE_FILE)
|
||||
|
||||
# Paths to these bundles
|
||||
PREVIOUS_JRE_BUNDLE = $(PREVIOUS_RELEASE_PATH)/$(PREVIOUS_JRE_FILE)
|
||||
PREVIOUS_JDK_BUNDLE = $(PREVIOUS_RELEASE_PATH)/$(PREVIOUS_JDK_FILE)
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# Indicate we are using an image comparison
|
||||
ifneq ($(PREVIOUS_RELEASE_IMAGE),)
|
||||
PREVIOUS_RELEASE_PATH = USING-PREVIOUS_RELEASE_IMAGE
|
||||
PREVIOUS_JRE_BUNDLE = USING-PREVIOUS_RELEASE_IMAGE
|
||||
PREVIOUS_JDK_BUNDLE = USING-PREVIOUS_RELEASE_IMAGE
|
||||
endif
|
||||
|
||||
# CACERTS_FILE: if OPENJDK is false and the internal version of the file
|
||||
# (that is, non-empty) is available, use it, otherwise use an
|
||||
# empty keystore.
|
||||
#
|
||||
# We put this variable here for sanity checks and in case another
|
||||
# components will need to know which cacerts file is being used.
|
||||
#
|
||||
ifdef ALT_CACERTS_FILE
|
||||
CACERTS_FILE = $(ALT_CACERTS_FILE)
|
||||
else
|
||||
CACERTS_EXT = $(SHARE_SRC)/lib/security/cacerts
|
||||
ifdef OPENJDK
|
||||
CACERTS_FILE :=$(CACERTS_EXT)
|
||||
else # (!OPENJDK)
|
||||
CACERTS_INT = $(CLOSED_SHARE_SRC)/lib/security/cacerts.internal
|
||||
CACERTS_FILE :=$(call FileExists,$(CACERTS_INT),$(CACERTS_EXT))
|
||||
endif # (OPENJDK)
|
||||
endif
|
||||
CACERTS_FILE:=$(call AltCheckSpaces,CACERTS_FILE)
|
||||
|
||||
#
|
||||
# When signing the JCE framework and provider, we could be using built
|
||||
# bits on a read-only filesystem. If so, this test will fail and crash
|
||||
# the build.
|
||||
#
|
||||
ifndef IGNORE_WRITABLE_OUTPUTDIR_TEST
|
||||
# Create the output directory and make sure it exists and is writable
|
||||
_create_outputdir:=$(shell $(MKDIR) -p "$(OUTPUTDIR)" > $(DEV_NULL) 2>&1)
|
||||
ifeq ($(call WriteDirExists,$(OUTPUTDIR),/dev/null),/dev/null)
|
||||
_outputdir_error:=$(error "ERROR: OUTPUTDIR '$(OUTPUTDIR)' not created or not writable")
|
||||
endif
|
||||
endif
|
||||
|
||||
# Define absolute path if needed and check for spaces and null value
|
||||
ifndef ABS_OUTPUTDIR
|
||||
ifdef _OUTPUTDIRNAME
|
||||
#Could not define this at the same time as _OUTPUTDIRNAME as FullPath is not defined at that point
|
||||
ABS_BUILD_PARENT_DIRECTORY:=$(call FullPath,$(BUILD_PARENT_DIRECTORY))
|
||||
ABS_OUTPUTDIR:=$(ABS_BUILD_PARENT_DIRECTORY)/build/$(_OUTPUTDIRNAME)
|
||||
else
|
||||
ABS_OUTPUTDIR:=$(call FullPath,$(OUTPUTDIR))
|
||||
endif
|
||||
endif
|
||||
ABS_OUTPUTDIR:=$(call AltCheckSpaces,ABS_OUTPUTDIR)
|
||||
# Make doubly sure this is a full path
|
||||
ifeq ($(call AbsPwdPathCheck,$(ABS_OUTPUTDIR)), )
|
||||
ifdef ALT_OUTPUTDIR
|
||||
_outputdir_error:=$(error "ERROR: Trouble with the absolute path for OUTPUTDIR '$(OUTPUTDIR)', was ALT_OUTPUTDIR '$(ALT_OUTPUTDIR)' an absolute path?")
|
||||
else
|
||||
_outputdir_error:=$(error "ERROR: Trouble with the absolute path for OUTPUTDIR '$(OUTPUTDIR)'")
|
||||
endif
|
||||
endif
|
||||
_dir1:=$(call FullPath,$(ABS_OUTPUTDIR))
|
||||
_dir2:=$(call FullPath,$(OUTPUTDIR))
|
||||
ifneq ($(_dir1),$(_dir2))
|
||||
_outputdir_error:=$(error "ERROR: ABS_OUTPUTDIR '$(ABS_OUTPUTDIR)' is not the same directory as OUTPUTDIR '$(OUTPUTDIR)', '$(_dir1)'!='$(_dir2)'")
|
||||
endif
|
||||
|
||||
# Bin directory
|
||||
# NOTE: ISA_DIR is usually empty, on Solaris it might be /sparcv9 or /amd64
|
||||
BINDIR = $(OUTPUTDIR)/bin$(ISA_DIR)
|
||||
|
||||
# MOZILLA_HEADERS_PATH: path to mozilla header files for plugin
|
||||
ifdef ALT_MOZILLA_HEADERS_PATH
|
||||
MOZILLA_HEADERS_PATH :=$(call FullPath,$(ALT_MOZILLA_HEADERS_PATH))
|
||||
else
|
||||
MOZILLA_HEADERS_PATH =$(JDK_DEVTOOLS_DIR)/share/plugin
|
||||
endif
|
||||
MOZILLA_HEADERS_PATH:=$(call AltCheckSpaces,MOZILLA_HEADERS_PATH)
|
||||
|
||||
# CUPS_HEADERS_PATH: path to Cups headers files for Unix printing
|
||||
#ifneq ($(PLATFORM), windows)
|
||||
#JDK_CUPS_HEADERS_PATH=$(JDK_DEVTOOLS_DIR)/share/cups/include
|
||||
# ifdef ALT_CUPS_HEADERS_PATH
|
||||
# CUPS_HEADERS_PATH:=$(call FullPath,$(ALT_CUPS_HEADERS_PATH))
|
||||
# CUPS_HEADERS_PATH:=$(call AltCheckValue,CUPS_HEADERS_PATH)
|
||||
# else
|
||||
# CUPS_HEADERS_PATH:= \
|
||||
# $(shell if [ -d "$(JDK_CUPS_HEADERS_PATH)" ]; then \
|
||||
# echo "$(JDK_CUPS_HEADERS_PATH)"; \
|
||||
# else \
|
||||
# echo "$(_CUPS_HEADERS_PATH)";\
|
||||
# fi)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
# Utilities ant
|
||||
ifeq ($(PLATFORM), windows)
|
||||
ifeq ($(ANT_HOME),)
|
||||
ANT_HOME := $(call DirExists,$(JDK_DEVTOOLS_DIR)/share/ant/latest,,)
|
||||
endif
|
||||
endif
|
||||
|
||||
# There are few problems with ant we need to workaround:
|
||||
# 1) ant is using temporary directory java.io.tmpdir
|
||||
# However, this directory is not unique enough and two separate ant processes
|
||||
# can easily end up using the exact same temp directory. This may lead to weird build failures
|
||||
# To workaround this we will define tmp dir explicitly
|
||||
# 2) ant attempts to detect JDK location based on java.exe location
|
||||
# This is fragile as developer may have JRE first on the PATH.
|
||||
# To workaround this we will specify JAVA_HOME explicitly
|
||||
|
||||
ANT_TMPDIR = $(ABS_OUTPUTDIR)/tmp
|
||||
ANT_WORKAROUNDS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)' JAVA_HOME='$(BOOTDIR)'
|
||||
|
||||
ifeq ($(ANT_HOME),)
|
||||
ANT = $(ANT_WORKAROUNDS) ant
|
||||
else
|
||||
ANT = $(ANT_WORKAROUNDS) $(ANT_HOME)/bin/ant
|
||||
endif
|
||||
|
||||
ifdef ALT_COPYRIGHT_YEAR
|
||||
COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
|
||||
else
|
||||
COPYRIGHT_YEAR = $(shell $(DATE) '+%Y')
|
||||
endif
|
||||
|
||||
# Create file with source information
|
||||
SOURCE_TIPS=$(ABS_OUTPUTDIR)/source_tips
|
||||
|
||||
# The source tips can come from the Mercurial repository, or in the files
|
||||
# $(HGTIP_FILENAME) which contains the tip but is also positioned in the same
|
||||
# directory as the original $(HGDIR) directory.
|
||||
# These should not be := assignments, only used from the root Makefile.
|
||||
HG_VERSION = $(shell $(HG) version 2> $(DEV_NULL))
|
||||
HG_DIRECTORY=.hg
|
||||
HGTIP_FILENAME=.hgtip
|
||||
HG_SEARCH = ./REPO ./*/REPO ./*/*/REPO ./*/*/*/REPO
|
||||
REPO_LIST = $(patsubst ./%,%,$(patsubst %/,%,$(sort $(dir \
|
||||
$(shell ( $(LS) -d $(HG_SEARCH:%/REPO=%/$(HG_DIRECTORY)) ; \
|
||||
$(LS) $(HG_SEARCH:%/REPO=%/$(HGTIP_FILENAME)) ) \
|
||||
2> $(DEV_NULL))))))
|
||||
|
||||
# Emit the repo:tip pairs to $@
|
||||
define GetSourceTips
|
||||
for i in $(REPO_LIST) IGNORE ; do \
|
||||
if [ "$${i}" = "IGNORE" ] ; then \
|
||||
continue; \
|
||||
elif [ -d $${i}/$(HG_DIRECTORY) -a "$(HG_VERSION)" != "" ] ; then \
|
||||
$(PRINTF) " %s:%s" \
|
||||
"$${i}" `$(HG) tip --repository $${i} --template '{node|short}\n'` ; \
|
||||
elif [ -f $${i}/$(HGTIP_FILENAME) ] ; then \
|
||||
$(PRINTF) " %s:%s" \
|
||||
"$${i}" `$(CAT) $${i}/$(HGTIP_FILENAME)` ; \
|
||||
fi; \
|
||||
done >> $@
|
||||
$(PRINTF) "\n" >> $@
|
||||
endef
|
||||
|
||||
# Create the HGTIP_FILENAME file
|
||||
define CreateHgTip
|
||||
$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME);\
|
||||
$(ECHO) $1/$(HGTIP_FILENAME)
|
||||
endef
|
||||
|
||||
# Get the compiler specific settings (will run the compiler to find out)
|
||||
# NOTE: COMPILER_PATH must be set by this time.
|
||||
# Up until we include this file, we don't know what specific compiler
|
||||
# version is actually being used (i.e. what is in PATH or COMPILER_PATH).
|
||||
include $(JDK_MAKE_SHARED_DIR)/Compiler-$(CC_VERSION).gmk
|
||||
|
||||
526
jdk/makefiles/common/shared/Platform.gmk
Normal file
526
jdk/makefiles/common/shared/Platform.gmk
Normal file
@ -0,0 +1,526 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Shared platform (OS/ARCH) variable settings for the JDK builds.
|
||||
#
|
||||
# Includes basic system requirements, versions of utilities required,
|
||||
# suffixes on files, and basic defaults attributed to the build platform.
|
||||
#
|
||||
|
||||
#
|
||||
# Assumes some basic unix system utilities (e.g. uname) are in the search path
|
||||
# in order to figure out the system.
|
||||
#
|
||||
|
||||
ifndef PLATFORM_SHARED
|
||||
|
||||
PLATFORM_SHARED=done
|
||||
|
||||
# Possible Input variables:
|
||||
# ARCH_DATA_MODEL 32 or 64, default to 32
|
||||
# USER, LOGNAME user name (runs logname, or id if not set)
|
||||
# PROCESSOR_IDENTIFIER windows only: needed in environment
|
||||
#
|
||||
# (Also gets input by running the utilities uname, logname, isainfo, or id.)
|
||||
#
|
||||
# Variables set by this file:
|
||||
# SYSTEM_UNAME what 'uname' says this system is
|
||||
# USER login name of user (minus blanks)
|
||||
# PLATFORM windows, solaris, or linux
|
||||
# VARIANT OPT or DBG, OPT is the default
|
||||
# TEMP_DISK /tmp or C:/temp
|
||||
# ARCH_DATA_MODEL 32 or 64
|
||||
# ARCH sparc, sparcv9, i586, amd64, or ia64
|
||||
# ARCH_FAMILY sparc or i586
|
||||
# ARCHPROP sparc or x86
|
||||
# ARCH_VM_SUBDIR jre/bin, jre/lib/sparc, etc.
|
||||
# LIBARCH sparc, sparcv9, i386, amd64, or ia64
|
||||
# DEV_NULL destination of /dev/null, NUL or /dev/NULL
|
||||
# CLASSPATH_SEPARATOR separator in classpath, ; or :
|
||||
# LIB_PREFIX dynamic or static library prefix, lib or empty
|
||||
# LIB_SUFFIX static library file suffix, .lib or .a?
|
||||
# LIBRARY_SUFFIX dynamic library file suffix, .dll or .so
|
||||
# OBJECT_SUFFIX object file suffix, .o or .obj
|
||||
# EXE_SUFFIX executable file suffix, .exe or empty
|
||||
# BUNDLE_FILE_SUFFIX suffix for bundles: .tar or .tar.gz
|
||||
# ISA_DIR solaris only: /sparcv9 or /amd64
|
||||
# LIBARCH32 solaris only: sparc or i386
|
||||
# LIBARCH64 solaris only: sparcv9 or amd64
|
||||
# USING_CYGWIN windows only: true or false
|
||||
# ISHIELD_TEMP_MIN windows only: minimum disk space in temp area
|
||||
|
||||
# Only run uname once in this make session.
|
||||
ifndef SYSTEM_UNAME
|
||||
SYSTEM_UNAME := $(shell uname)
|
||||
export SYSTEM_UNAME
|
||||
endif
|
||||
|
||||
#
|
||||
# Prune out all known SCM (Source Code Management) directories
|
||||
# so they will not be included when copying directory trees
|
||||
# or packaging up .jar files, etc. This applies to all workspaces.
|
||||
#
|
||||
SCM_DIRs = .hg .svn CVS RCS SCCS Codemgr_wsdata deleted_files .hgignore .hgtags
|
||||
# When changing SCM_DIRs also change SCM_DIRS_rexp and SCM_DIRS_prune:
|
||||
SCM_DIRS_rexp = ".hg|.svn|CVS|RCS|SCCS|Codemgr_wsdata|deleted_files|.hgignore|.hgtags"
|
||||
SCM_DIRS_prune = \( -name .hg -o -name .svn -o -name CVS -o -name RCS -o -name SCCS -o -name Codemgr_wsdata -o -name deleted_files -o -name .hgignore -o -name .hgtags \) -prune
|
||||
|
||||
# Don't define this unless it's not defined
|
||||
ifndef VARIANT
|
||||
VARIANT=OPT
|
||||
endif
|
||||
|
||||
# Platform settings specific to Solaris
|
||||
ifeq ($(SYSTEM_UNAME), SunOS)
|
||||
PLATFORM = solaris
|
||||
# Solaris sparc build can be either 32-bit or 64-bit.
|
||||
# Default to 32, but allow explicit setting to 32 or 64.
|
||||
ifndef ARCH_DATA_MODEL
|
||||
ARCH_DATA_MODEL=32
|
||||
endif
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
processor := $(shell uname -p)
|
||||
archExpr = case "$(processor)" in \
|
||||
i[3-9]86) \
|
||||
echo i586 \
|
||||
;; \
|
||||
sparc*) \
|
||||
echo sparc \
|
||||
;; \
|
||||
*) \
|
||||
echo $(processor) \
|
||||
;; \
|
||||
esac
|
||||
ARCH := $(shell $(archExpr))
|
||||
else
|
||||
ARCH := $(shell isainfo -n)
|
||||
# ISA_DIR is used to locate 64-bit specific libraries which are generally
|
||||
# in the same general place as other libraries under the ./$(ARCH) directory
|
||||
ISA_DIR = /$(ARCH)
|
||||
endif
|
||||
# Need to maintain the jre/lib/i386 location for 32-bit Intel
|
||||
ifeq ($(ARCH), i586)
|
||||
ARCH_FAMILY = $(ARCH)
|
||||
LIBARCH = i386
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP = x86
|
||||
else
|
||||
ifeq ($(ARCH), amd64)
|
||||
ARCH_FAMILY = i586
|
||||
else
|
||||
ARCH_FAMILY = sparc
|
||||
endif
|
||||
LIBARCH = $(ARCH)
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP = $(LIBARCH)
|
||||
endif
|
||||
# The two LIBARCH names
|
||||
ifeq ($(ARCH_FAMILY), sparc)
|
||||
LIBARCH32 = sparc
|
||||
LIBARCH64 = sparcv9
|
||||
else
|
||||
LIBARCH32 = i386
|
||||
LIBARCH64 = amd64
|
||||
endif
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar
|
||||
# How much RAM does this machine have (zones send an error to stderr):
|
||||
MB_OF_MEMORY:=$(shell /usr/sbin/prtconf 2>/dev/null | fgrep 'Memory size:' | expand | cut -d' ' -f3)
|
||||
endif
|
||||
|
||||
# Platform settings specific to Linux
|
||||
ifeq ($(SYSTEM_UNAME), Linux)
|
||||
PLATFORM = linux
|
||||
# Arch and OS name/version
|
||||
ifdef CROSS_COMPILE_ARCH
|
||||
mach := $(CROSS_COMPILE_ARCH)
|
||||
else
|
||||
mach := $(shell uname -m)
|
||||
endif
|
||||
archExpr = case "$(mach)" in \
|
||||
i[3-9]86) \
|
||||
echo i586 \
|
||||
;; \
|
||||
ia64) \
|
||||
echo ia64 \
|
||||
;; \
|
||||
x86_64) \
|
||||
echo amd64 \
|
||||
;; \
|
||||
sparc*) \
|
||||
echo sparc \
|
||||
;; \
|
||||
arm*) \
|
||||
echo arm \
|
||||
;; \
|
||||
*) \
|
||||
echo $(mach) \
|
||||
;; \
|
||||
esac
|
||||
ARCH := $(shell $(archExpr) )
|
||||
ARCH_FAMILY := $(ARCH)
|
||||
|
||||
# Linux builds may be 32-bit or 64-bit data model.
|
||||
ifeq ($(ARCH), sparc)
|
||||
# Linux sparc build can be either 32-bit or 64-bit.
|
||||
# Default to 32, but allow explicit setting to 32 or 64.
|
||||
ifndef ARCH_DATA_MODEL
|
||||
ARCH_DATA_MODEL=32
|
||||
endif
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ARCH=sparc
|
||||
else
|
||||
ARCH=sparcv9
|
||||
endif
|
||||
else
|
||||
# Most archs are 32-bit
|
||||
ifndef ARCH_DATA_MODEL
|
||||
ARCH_DATA_MODEL=32
|
||||
ifeq ($(ARCH), amd64)
|
||||
ARCH_DATA_MODEL=64
|
||||
endif
|
||||
ifeq ($(ARCH), ia64)
|
||||
ARCH_DATA_MODEL=64
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# Need to maintain the jre/lib/i386 location for 32-bit Intel
|
||||
ifeq ($(ARCH), i586)
|
||||
LIBARCH = i386
|
||||
else
|
||||
LIBARCH = $(ARCH)
|
||||
endif
|
||||
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP = $(LIBARCH)
|
||||
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar.gz
|
||||
# How much RAM does this machine have:
|
||||
MB_OF_MEMORY := $(shell free -m | fgrep Mem: | awk '{print $$2;}' )
|
||||
endif
|
||||
|
||||
ifeq ($(SYSTEM_UNAME), Darwin)
|
||||
PLATFORM = macosx
|
||||
OS_NAME = darwin
|
||||
OS_VENDOR = Apple
|
||||
GB_OF_MEMORY := $(shell system_profiler SPHardwareDataType | fgrep Memory: | awk '{print $$2}')
|
||||
MB_OF_MEMORY := $(shell expr ${GB_OF_MEMORY} '*' 1024)
|
||||
endif
|
||||
|
||||
# Platform settings specific to BSD/Mac OS X
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
OS_VERSION := $(shell uname -r)
|
||||
|
||||
# Arch and OS name/version
|
||||
# Darwin x86 builds are i386/amd64 universal by default.
|
||||
# Allow arch to be set from the environment to avoid this.
|
||||
ifeq ($(origin ARCH), undefined)
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
# ifdef OPENJDK -- when universal 32/64 binaries available in Hotspot
|
||||
# mach := universal
|
||||
# else
|
||||
mach := x86_64
|
||||
# endif
|
||||
else
|
||||
mach := $(shell uname -m)
|
||||
endif
|
||||
else
|
||||
mach := $(ARCH)
|
||||
endif
|
||||
|
||||
archExpr = case "$(mach)" in \
|
||||
i[3-9]86) \
|
||||
echo i586 \
|
||||
;; \
|
||||
sparc64) \
|
||||
echo sparcv9 \
|
||||
;; \
|
||||
sparc*) \
|
||||
echo sparc \
|
||||
;; \
|
||||
x86_64) \
|
||||
echo amd64 \
|
||||
;; \
|
||||
universal) \
|
||||
echo universal \
|
||||
;; \
|
||||
"Power Macintosh") \
|
||||
echo ppc \
|
||||
;; \
|
||||
*) \
|
||||
echo $(mach) \
|
||||
;; \
|
||||
esac
|
||||
ARCH := $(shell $(archExpr) )
|
||||
ARCH_FAMILY := $(ARCH)
|
||||
|
||||
# i586, sparc, and ppc are 32 bit, amd64 and sparc64 are 64
|
||||
# ARCH_DATA_MODEL does not exactly mean anything in universal
|
||||
# but it has to be one or the other, so pick 32
|
||||
ifneq (,$(findstring $(ARCH), i586 sparc ppc universal))
|
||||
ARCH_DATA_MODEL=32
|
||||
else
|
||||
ARCH_DATA_MODEL=64
|
||||
endif
|
||||
|
||||
# Need to maintain the jre/lib/i386 location for 32-bit Intel
|
||||
ifeq ($(ARCH), i586)
|
||||
LIBARCH = i386
|
||||
else
|
||||
LIBARCH = $(ARCH)
|
||||
endif
|
||||
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP = $(LIBARCH)
|
||||
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar.gz
|
||||
# How much RAM does this machine have:
|
||||
endif
|
||||
|
||||
# Windows with and without CYGWIN will be slightly different
|
||||
ifeq ($(SYSTEM_UNAME), Windows_NT)
|
||||
PLATFORM = windows
|
||||
endif
|
||||
ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
|
||||
PLATFORM = windows
|
||||
USING_CYGWIN = true
|
||||
export USING_CYGWIN
|
||||
CYGPATH_CMD=cygpath -a -s -m
|
||||
# Only run "cygpath /" once in this make session.
|
||||
ifndef CYGWIN_HOME
|
||||
CYGWIN_HOME := $(shell $(CYGPATH_CMD) /)
|
||||
export CYGWIN_HOME
|
||||
endif
|
||||
endif
|
||||
|
||||
# Platform settings specific to Windows
|
||||
ifeq ($(PLATFORM), windows)
|
||||
# Windows builds default to the appropriate for the underlaying
|
||||
# architecture.
|
||||
# Temporary disk area
|
||||
TEMP_DISK=C:/temp
|
||||
# GNU Make or MKS overrides $(PROCESSOR_ARCHITECTURE) to always
|
||||
# return "x86". Use the first word of $(PROCESSOR_IDENTIFIER) instead.
|
||||
# And sometimes PROCESSOR_IDENTIFIER is not defined at all
|
||||
# (in some restricted shells), so we use uname if we have to.
|
||||
ifeq ($(PROCESSOR_IDENTIFIER),)
|
||||
# Only run uname -m once in this make session.
|
||||
ifndef SYSTEM_UNAME_M
|
||||
SYSTEM_UNAME_M := $(shell uname -m)
|
||||
export SYSTEM_UNAME_M
|
||||
endif
|
||||
PROC_ARCH:=$(SYSTEM_UNAME_M)
|
||||
else
|
||||
PROC_ARCH:=$(word 1, $(PROCESSOR_IDENTIFIER))
|
||||
endif
|
||||
# Cover all the possibilities, MKS uname, CYGWIN uname, PROCESSOR_IDENTIFIER
|
||||
# Get: X86, X64, or IA64
|
||||
PROC_ARCH:=$(patsubst 386,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst 486,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst 586,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst 686,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst i386,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst i486,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst i586,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst i686,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst x86,X86,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst intel64,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst Intel64,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst INTEL64,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst em64t,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst EM64T,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst amd64,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst AMD64,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst 8664,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst x86_64,X64,$(PROC_ARCH))
|
||||
PROC_ARCH:=$(patsubst ia64,IA64,$(PROC_ARCH))
|
||||
ifndef ARCH_DATA_MODEL
|
||||
ifeq ($(PROC_ARCH),IA64)
|
||||
ARCH_DATA_MODEL=64
|
||||
else
|
||||
ifeq ($(PROC_ARCH),X64)
|
||||
ARCH_DATA_MODEL=64
|
||||
else
|
||||
ARCH_DATA_MODEL=32
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
export ARCH_DATA_MODEL
|
||||
ifeq ($(ARCH_DATA_MODEL), 64)
|
||||
# If the user wants to perform a cross compile build then they must
|
||||
# - set ARCH_DATA_MODEL=64 and either
|
||||
# + set ARCH to ia64 or amd64, or
|
||||
ifeq ($(PROC_ARCH),X64)
|
||||
ARCH=amd64
|
||||
else
|
||||
ifeq ($(PROC_ARCH),IA64)
|
||||
ARCH=ia64
|
||||
endif
|
||||
endif
|
||||
LIBARCH=$(ARCH)
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP=$(LIBARCH)
|
||||
else
|
||||
# LIBARCH is used to preserve the jre/lib/i386 directory name for 32-bit intel
|
||||
ARCH=i586
|
||||
LIBARCH=i386
|
||||
# Value of Java os.arch property
|
||||
ARCHPROP=x86
|
||||
endif
|
||||
ARCH_FAMILY = $(ARCH)
|
||||
# Where is unwanted output to be delivered?
|
||||
# MKS uses the special file "NUL", cygwin uses the customary unix file.
|
||||
ifeq ($(USING_CYGWIN),true)
|
||||
DEV_NULL = /dev/null
|
||||
else
|
||||
DEV_NULL = NUL
|
||||
endif
|
||||
export DEV_NULL
|
||||
# Classpath separator
|
||||
CLASSPATH_SEPARATOR = ;
|
||||
# The suffix used for object file (.o for unix .obj for windows)
|
||||
OBJECT_SUFFIX = obj
|
||||
# The suffix applied to executables (.exe for windows, nothing for solaris)
|
||||
EXE_SUFFIX = .exe
|
||||
# The prefix applied to library files (lib for solaris, nothing for windows)
|
||||
LIB_PREFIX=
|
||||
LIBRARY_SUFFIX = dll
|
||||
LIB_SUFFIX = lib
|
||||
# User name determination (set _USER)
|
||||
ifndef USER
|
||||
ifdef USERNAME
|
||||
_USER := $(USERNAME)
|
||||
else
|
||||
ifdef LOGNAME
|
||||
_USER := $(LOGNAME)
|
||||
else
|
||||
_USER := $(shell id -un)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
_USER:=$(USER)
|
||||
endif
|
||||
# Location of client/server directories
|
||||
ARCH_VM_SUBDIR=jre/bin
|
||||
# Suffix for file bundles used in previous release
|
||||
BUNDLE_FILE_SUFFIX=.tar
|
||||
# ISHIELD_TEMP_MIN is the difference of an empty C:\TEMP vs. one after a
|
||||
# bundles build on windows.
|
||||
ISHIELD_TEMP_MIN=250000
|
||||
# How much RAM does this machine have:
|
||||
ifeq ($(JDK_HAS_MEM_INFO),)
|
||||
MB_OF_MEMORY := 1024
|
||||
endif
|
||||
endif
|
||||
|
||||
# Unix type settings (same for all unix platforms)
|
||||
ifneq ($(PLATFORM), windows)
|
||||
# Temporary disk area
|
||||
TEMP_DISK=/tmp
|
||||
# Where is unwanted output to be delivered?
|
||||
DEV_NULL = /dev/null
|
||||
export DEV_NULL
|
||||
# Character used between entries in classpath
|
||||
CLASSPATH_SEPARATOR = :
|
||||
# suffix used for object file (.o for unix .obj for windows)
|
||||
OBJECT_SUFFIX = o
|
||||
# The suffix applied to runtime libraries
|
||||
LIBRARY_SUFFIX = so
|
||||
# The suffix applied to link libraries
|
||||
LIB_SUFFIX = so
|
||||
# The suffix applied to executables (.exe for windows, nothing for solaris)
|
||||
EXE_SUFFIX =
|
||||
# The prefix applied to library files (lib for solaris, nothing for windows)
|
||||
LIB_PREFIX = lib
|
||||
# User name determination (set _USER)
|
||||
ifndef USER
|
||||
ifdef LOGNAME
|
||||
_USER := $(LOGNAME)
|
||||
else
|
||||
_USER := $(shell logname)
|
||||
endif
|
||||
else
|
||||
_USER:=$(USER)
|
||||
endif
|
||||
# Location of client/server directories
|
||||
ARCH_VM_SUBDIR=jre/lib/$(LIBARCH)
|
||||
endif
|
||||
|
||||
# Darwin-specific Overrides
|
||||
ifeq ($(SYSTEM_UNAME),Darwin)
|
||||
# The suffix applied to runtime libraries
|
||||
LIBRARY_SUFFIX = dylib
|
||||
# The suffix applied to link libraries
|
||||
ifeq ($(ARCH), universal)
|
||||
LIB_SUFFIX = o
|
||||
else
|
||||
LIB_SUFFIX = a
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
ARCH_VM_SUBDIR=jre/lib/$(LIBARCH)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Machines with 512Mb or less of real memory are considered low memory
|
||||
# build machines and adjustments will be made to prevent excessing
|
||||
# system swapping during the build.
|
||||
ifeq ($(JDK_HAS_MEM_INFO),)
|
||||
JDK_HAS_MEM_INFO=true
|
||||
export JDK_HAS_MEM_INFO
|
||||
ifneq ($(MB_OF_MEMORY),)
|
||||
LOW_MEMORY_MACHINE := $(shell \
|
||||
if [ $(MB_OF_MEMORY) -le 512 ] ; then \
|
||||
echo "true"; \
|
||||
else \
|
||||
echo "false"; \
|
||||
fi)
|
||||
MAX_VM_MEMORY := 512
|
||||
MIN_VM_MEMORY := $(MAX_VM_MEMORY)
|
||||
else
|
||||
MB_OF_MEMORY := unknown
|
||||
LOW_MEMORY_MACHINE := true
|
||||
MAX_VM_MEMORY := 384
|
||||
MIN_VM_MEMORY := 128
|
||||
endif
|
||||
export MB_OF_MEMORY
|
||||
export LOW_MEMORY_MACHINE
|
||||
export MAX_VM_MEMORY
|
||||
export MIN_VM_MEMORY
|
||||
endif
|
||||
|
||||
# If blanks in the username, use the first 4 words and pack them together
|
||||
_USER1:=$(subst ', ,$(_USER))
|
||||
_USER2:=$(subst ", ,$(_USER1))
|
||||
USER:=$(word 1,$(_USER2))$(word 2,$(_USER2))$(word 3,$(_USER2))$(word 4,$(_USER2))
|
||||
export USER
|
||||
|
||||
export PLATFORM
|
||||
endif
|
||||
|
||||
19
jdk/makefiles/common/shared/PrivateDefs.gmk-example
Normal file
19
jdk/makefiles/common/shared/PrivateDefs.gmk-example
Normal file
@ -0,0 +1,19 @@
|
||||
|
||||
# This file, when re-named to PrivateDefs.gmk will get included in the
|
||||
# makefile definitions (before the ALT_ variables are read) so that you can
|
||||
# override makefile settings permanently for a workspace.
|
||||
# Use of this file will cause WARNING errors, repeatedly, for a reason.
|
||||
#
|
||||
# WARNING: Use with caution.
|
||||
#
|
||||
|
||||
# EXAMPLE: Testing a special build of hotspot
|
||||
# (this is the build/solaris/export-solaris-sparc directory from doing
|
||||
# a 'cd hotspot/make; gnumake' build)
|
||||
#
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
ifeq ($(ARCH),sparc)
|
||||
ALT_HOTSPOT_IMPORT_PATH=$(JDK_TOPDIR)/../export-solaris-sparc
|
||||
endif
|
||||
endif
|
||||
|
||||
267
jdk/makefiles/common/shared/Sanity-Settings.gmk
Normal file
267
jdk/makefiles/common/shared/Sanity-Settings.gmk
Normal file
@ -0,0 +1,267 @@
|
||||
#
|
||||
# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Shared sanity settings file. Fills in the variable ALL_SETTINGS.
|
||||
#
|
||||
|
||||
# On Windows in particular, it can happen that quotes get into the PATH
|
||||
# variable. This is very bad, and must be caught early or you can
|
||||
# see errors like: sh: -c: line 0: syntax error near unexpected token
|
||||
#
|
||||
ifneq ($(PATH), $(subst ",,$(PATH)))
|
||||
dummy1:=$(error ERROR: PATH variable contains double quotes, fix your PATH.)
|
||||
endif
|
||||
ifneq ($(PATH), $(subst ',,$(PATH)))
|
||||
dummy1:=$(error ERROR: PATH variable contains single quotes, fix your PATH.)
|
||||
endif
|
||||
|
||||
# Used to add a heading to ALL_SETTINGS
|
||||
define addHeading
|
||||
"\n$1:\n"
|
||||
endef
|
||||
|
||||
# Used to add a line to ALL_SETTINGS for an optional value
|
||||
# (need if test for windows which has issues with ; characters in values)
|
||||
define addOptionalSetting
|
||||
$(if $($1)," $1 = $($1)\n"," $1 = $($1)\n")
|
||||
endef
|
||||
|
||||
# Used to add a line to ALL_SETTINGS for something that must have a value
|
||||
define addRequiredSetting
|
||||
$(if $($1)," $1 = $($1)\n",$(warning WARNING: $1 should not be empty [Sanity-Settings.gmk]))
|
||||
endef
|
||||
|
||||
# Used to add a line to ALL_SETTINGS for something that must have a value
|
||||
define addRequiredVersionSetting
|
||||
$(if $($1)," $1 = $($1) [requires at least $(REQUIRED_$1)]\n",$(warning WARNING: $1 should not be empty [Sanity-Settings.gmk]))
|
||||
endef
|
||||
|
||||
# Used to add a series of lines to ALL_SETTINGS
|
||||
define addAltSetting
|
||||
" $1 = $($1)\n ALT_$1 = $(ALT_$1)\n"
|
||||
endef
|
||||
|
||||
# Variable that contains a string of all information
|
||||
|
||||
# Make sure this is a 'do it now' variable.
|
||||
ALL_SETTINGS:=$(call addHeading,Bootstrap Settings)
|
||||
ALL_SETTINGS+=$(call addAltSetting,BOOTDIR)
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,BOOT_VER)
|
||||
ALL_SETTINGS+=$(call addAltSetting,OUTPUTDIR)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,ABS_OUTPUTDIR)
|
||||
|
||||
|
||||
ALL_SETTINGS+=$(call addHeading,Build Tool Settings)
|
||||
ALL_SETTINGS+=$(call addAltSetting,SLASH_JAVA)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,VARIANT)
|
||||
ALL_SETTINGS+=$(call addAltSetting,JDK_DEVTOOLS_DIR)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,ANT_HOME)
|
||||
ALL_SETTINGS+=$(call addAltSetting,UNIXCOMMAND_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,COMPILER_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,DEVTOOLS_PATH)
|
||||
ifeq ($(PLATFORM),linux)
|
||||
ALL_SETTINGS+=$(call addAltSetting,UNIXCCS_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,USRBIN_PATH)
|
||||
ifndef OPENJDK
|
||||
ALL_SETTINGS+=$(call addAltSetting,GCC29_COMPILER_PATH)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
ALL_SETTINGS+=$(call addAltSetting,UNIXCCS_PATH)
|
||||
ifndef OPENJDK
|
||||
ALL_SETTINGS+=$(call addAltSetting,GCC_COMPILER_PATH)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),windows)
|
||||
ifneq ($(MSVCRNN_DLL),)
|
||||
ALL_SETTINGS+=$(call addAltSetting,MSVCRNN_DLL_PATH)
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,INCLUDE)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,LIB)
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,COMPILER_NAME)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,COMPILER_VERSION)
|
||||
ifdef REQUIRED_CC_VER
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,CC_VER)
|
||||
else
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,CC_VER)
|
||||
endif
|
||||
ifeq ($(PLATFORM),solaris)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ifndef OPENJDK
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,GCC_VER)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,ZIP_VER)
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,UNZIP_VER)
|
||||
ifeq ($(PLATFORM),windows)
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,LINK_VER)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,CC)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,LINK)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,DUMPBIN)
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,ANT_VER)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,TEMPDIR)
|
||||
|
||||
|
||||
ALL_SETTINGS+=$(call addHeading,Build Directives)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,OPENJDK)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,USE_HOTSPOT_INTERPRETER_MODE)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,PEDANTIC)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,DEV_ONLY)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,NO_DOCS)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,NO_DEMOS)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,NO_SAMPLES)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,NO_IMAGES)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,TOOLS_ONLY)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,INSANE)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,COMPILE_APPROACH)
|
||||
ifeq ($(COMPILE_APPROACH), parallel)
|
||||
ALL_SETTINGS+=$(call addAltSetting,PARALLEL_COMPILE_JOBS)
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,FASTDEBUG)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,COMPILER_WARNINGS_FATAL)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,COMPILER_WARNING_LEVEL)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,SHOW_ALL_WARNINGS)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,INCREMENTAL_BUILD)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,CC_HIGHEST_OPT)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,CC_HIGHER_OPT)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,CC_LOWER_OPT)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,CXXFLAGS)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,CFLAGS)
|
||||
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JAVA_CMD)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JAVAC_CMD)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JAR_CMD)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,BOOT_JARSIGNER_CMD)
|
||||
|
||||
# These don't print out well with windows due to the ';' characters
|
||||
ifneq ($(PLATFORM),windows)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,JAVAC_CMD)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,JAVAH_CMD)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,JAVADOC_CMD)
|
||||
endif
|
||||
|
||||
ALL_SETTINGS+=$(call addHeading,Build Platform Settings)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,USER)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,PLATFORM)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,ARCH)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,LIBARCH)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,ARCH_FAMILY)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,ARCH_DATA_MODEL)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,ARCHPROP)
|
||||
ifeq ($(PLATFORM),windows)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_ARCHITECTURE)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,PROCESSOR_IDENTIFIER)
|
||||
ifdef USING_CYGWIN
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,USING_CYGWIN)
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,CYGWIN_VER)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,CYGPATH_CMD)
|
||||
else
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,MKS_VER)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,DOSNAME_CMD)
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),linux)
|
||||
ifdef REQUIRED_ALSA_VERSION
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,ALSA_VERSION)
|
||||
endif
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_NAME)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_VERSION)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY)
|
||||
|
||||
|
||||
ALL_SETTINGS+=$(call addHeading,GNU Make Settings)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,MAKE)
|
||||
ALL_SETTINGS+=$(call addRequiredVersionSetting,MAKE_VER)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,MAKECMDGOALS)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,MAKEFLAGS)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,SHELL)
|
||||
|
||||
|
||||
ALL_SETTINGS+=$(call addHeading,Target Build Versions)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,JDK_VERSION)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,MILESTONE)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,RELEASE)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,FULL_VERSION)
|
||||
ALL_SETTINGS+=$(call addOptionalSetting,BUILD_NUMBER)
|
||||
|
||||
|
||||
ALL_SETTINGS+=$(call addHeading,External File/Binary Locations)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,USRJDKINSTANCES_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,BUILD_JDK_IMPORT_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,JDK_IMPORT_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,LANGTOOLS_DIST)
|
||||
ALL_SETTINGS+=$(call addAltSetting,CORBA_DIST)
|
||||
ALL_SETTINGS+=$(call addAltSetting,JAXP_DIST)
|
||||
ALL_SETTINGS+=$(call addAltSetting,JAXWS_DIST)
|
||||
ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_DOCS_IMPORT_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_IMPORT_PATH)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_CLIENT_PATH)
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_SERVER_PATH)
|
||||
ifeq ($(PLATFORM),windows)
|
||||
ALL_SETTINGS+=$(call addAltSetting,HOTSPOT_LIB_PATH)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,DXSDK_VER)
|
||||
ALL_SETTINGS+=$(call addAltSetting,DXSDK_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,DXSDK_INCLUDE_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,DXSDK_LIB_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,WINDOWSSDKDIR)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,RC)
|
||||
ALL_SETTINGS+=$(call addRequiredSetting,REBASE)
|
||||
ifndef OPENJDK
|
||||
ALL_SETTINGS+=$(call addAltSetting,DEPLOY_MSSDK)
|
||||
ALL_SETTINGS+=$(call addAltSetting,INSTALL_MSSDK)
|
||||
ALL_SETTINGS+=$(call addAltSetting,WSCRIPT)
|
||||
ALL_SETTINGS+=$(call addAltSetting,MSICERT)
|
||||
endif
|
||||
endif
|
||||
ALL_SETTINGS+=$(call addAltSetting,CACERTS_FILE)
|
||||
ifndef OPENJDK
|
||||
ALL_SETTINGS+=$(call addAltSetting,MOZILLA_HEADERS_PATH)
|
||||
endif
|
||||
ifneq ($(PLATFORM),windows)
|
||||
ALL_SETTINGS+=$(call addAltSetting,CUPS_HEADERS_PATH)
|
||||
endif
|
||||
|
||||
ifdef OPENJDK
|
||||
ALL_SETTINGS+=$(call addHeading,OpenJDK-specific settings)
|
||||
ALL_SETTINGS+=$(call addAltSetting,FREETYPE_HEADERS_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,FREETYPE_LIB_PATH)
|
||||
endif
|
||||
|
||||
ifdef OPENJDK
|
||||
ALL_SETTINGS+=$(call addHeading,Previous JDK Settings)
|
||||
ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_RELEASE_PATH)
|
||||
ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_JDK_VERSION)
|
||||
ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_JDK_FILE)
|
||||
ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_JRE_FILE)
|
||||
ALL_SETTINGS+=$(call addAltSetting,PREVIOUS_RELEASE_IMAGE)
|
||||
endif
|
||||
293
jdk/makefiles/docs/CORE_PKGS.gmk
Normal file
293
jdk/makefiles/docs/CORE_PKGS.gmk
Normal file
@ -0,0 +1,293 @@
|
||||
#
|
||||
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# EXCLUDE_PKGS is the list of packages to exclude from the
|
||||
# Java API Specification. Do not add these to CORE_PKGS.
|
||||
# The concatenation of EXCLUDE_PKGS and CORE_PKGS
|
||||
# should make up the list of all packages under the
|
||||
# src/shared/classes directory of the JDK source tree.
|
||||
#
|
||||
EXCLUDE_PKGS = \
|
||||
java.awt.peer \
|
||||
java.awt.dnd.peer \
|
||||
sun.* \
|
||||
sunw.* \
|
||||
com.sun.* \
|
||||
org.apache.* \
|
||||
org.jcp.* \
|
||||
org.w3c.dom.css \
|
||||
org.w3c.dom.html \
|
||||
org.w3c.dom.stylesheets \
|
||||
org.w3c.dom.traversal \
|
||||
org.w3c.dom.ranges \
|
||||
org.w3c.dom.views \
|
||||
org.omg.stub.javax.management.remote.rmi
|
||||
|
||||
#
|
||||
# ACTIVE_JSR_PKGS are packages that are part of an active JSR process--
|
||||
# one that is doing its own review. These packages are not included when
|
||||
# creating diff pages for the platform's JCP process.
|
||||
#
|
||||
# (see /java/pubs/apisrc/jdk/6.0/beta/make/docs/active_jsr_pkgs)
|
||||
# Note:
|
||||
# This is a list of regular expressions. So foo.* matches "foo" and "foo.bar".
|
||||
#
|
||||
ACTIVE_JSR_PKGS= \
|
||||
java.lang.invoke \
|
||||
java.sql \
|
||||
javax.activation \
|
||||
javax.annotation.* \
|
||||
javax.jws.* \
|
||||
javax.lang.* \
|
||||
javax.management.* \
|
||||
javax.script \
|
||||
javax.sql.* \
|
||||
javax.tools \
|
||||
javax.xml.* \
|
||||
org.w3c.* \
|
||||
org.xml.sax
|
||||
|
||||
#
|
||||
# CORE_PKGS is the list of packages that form the
|
||||
# Java API Specification.
|
||||
#
|
||||
### ***IMPORTANT NOTE***
|
||||
### There is also a "REGEXP" variable in the docs/makefile that
|
||||
### determines which table the packages go in on the main page.
|
||||
### Currently, there is only table ("Platform Packages") and
|
||||
### everything goes in it, so REGEXP is "*". But if that policy
|
||||
### changes, packages added will need to be reflected in that
|
||||
### list of wildcard expressions, as well.
|
||||
###
|
||||
CORE_PKGS = \
|
||||
java.applet \
|
||||
java.awt \
|
||||
java.awt.color \
|
||||
java.awt.datatransfer \
|
||||
java.awt.dnd \
|
||||
java.awt.event \
|
||||
java.awt.font \
|
||||
java.awt.geom \
|
||||
java.awt.im \
|
||||
java.awt.im.spi \
|
||||
java.awt.image \
|
||||
java.awt.image.renderable \
|
||||
java.awt.print \
|
||||
java.beans \
|
||||
java.beans.beancontext \
|
||||
java.io \
|
||||
java.lang \
|
||||
java.lang.annotation \
|
||||
java.lang.instrument \
|
||||
java.lang.invoke \
|
||||
java.lang.management \
|
||||
java.lang.ref \
|
||||
java.lang.reflect \
|
||||
java.math \
|
||||
java.net \
|
||||
java.nio \
|
||||
java.nio.channels \
|
||||
java.nio.channels.spi \
|
||||
java.nio.charset \
|
||||
java.nio.charset.spi \
|
||||
java.nio.file \
|
||||
java.nio.file.attribute \
|
||||
java.nio.file.spi \
|
||||
java.rmi \
|
||||
java.rmi.activation \
|
||||
java.rmi.dgc \
|
||||
java.rmi.registry \
|
||||
java.rmi.server \
|
||||
java.security \
|
||||
java.security.acl \
|
||||
java.security.cert \
|
||||
java.security.interfaces \
|
||||
java.security.spec \
|
||||
java.sql \
|
||||
java.text \
|
||||
java.text.spi \
|
||||
java.util \
|
||||
java.util.concurrent \
|
||||
java.util.concurrent.atomic \
|
||||
java.util.concurrent.locks \
|
||||
java.util.jar \
|
||||
java.util.logging \
|
||||
java.util.prefs \
|
||||
java.util.regex \
|
||||
java.util.spi \
|
||||
java.util.zip \
|
||||
javax.accessibility \
|
||||
javax.activation \
|
||||
javax.activity \
|
||||
javax.annotation \
|
||||
javax.annotation.processing \
|
||||
javax.crypto \
|
||||
javax.crypto.interfaces \
|
||||
javax.crypto.spec \
|
||||
javax.imageio \
|
||||
javax.imageio.event \
|
||||
javax.imageio.metadata \
|
||||
javax.imageio.plugins.jpeg \
|
||||
javax.imageio.plugins.bmp \
|
||||
javax.imageio.spi \
|
||||
javax.imageio.stream \
|
||||
javax.jws \
|
||||
javax.jws.soap \
|
||||
javax.lang.model \
|
||||
javax.lang.model.element \
|
||||
javax.lang.model.type \
|
||||
javax.lang.model.util \
|
||||
javax.management \
|
||||
javax.management.loading \
|
||||
javax.management.monitor \
|
||||
javax.management.relation \
|
||||
javax.management.openmbean \
|
||||
javax.management.timer \
|
||||
javax.management.modelmbean \
|
||||
javax.management.remote \
|
||||
javax.management.remote.rmi \
|
||||
javax.naming \
|
||||
javax.naming.directory \
|
||||
javax.naming.event \
|
||||
javax.naming.ldap \
|
||||
javax.naming.spi \
|
||||
javax.net \
|
||||
javax.net.ssl \
|
||||
javax.print \
|
||||
javax.print.attribute \
|
||||
javax.print.attribute.standard \
|
||||
javax.print.event \
|
||||
javax.rmi \
|
||||
javax.rmi.CORBA \
|
||||
javax.rmi.ssl \
|
||||
javax.script \
|
||||
javax.security.auth \
|
||||
javax.security.auth.callback \
|
||||
javax.security.auth.kerberos \
|
||||
javax.security.auth.login \
|
||||
javax.security.auth.spi \
|
||||
javax.security.auth.x500 \
|
||||
javax.security.cert \
|
||||
javax.security.sasl \
|
||||
javax.sound.sampled \
|
||||
javax.sound.sampled.spi \
|
||||
javax.sound.midi \
|
||||
javax.sound.midi.spi \
|
||||
javax.sql \
|
||||
javax.sql.rowset \
|
||||
javax.sql.rowset.serial \
|
||||
javax.sql.rowset.spi \
|
||||
javax.swing \
|
||||
javax.swing.border \
|
||||
javax.swing.colorchooser \
|
||||
javax.swing.filechooser \
|
||||
javax.swing.event \
|
||||
javax.swing.table \
|
||||
javax.swing.text \
|
||||
javax.swing.text.html \
|
||||
javax.swing.text.html.parser \
|
||||
javax.swing.text.rtf \
|
||||
javax.swing.tree \
|
||||
javax.swing.undo \
|
||||
javax.swing.plaf \
|
||||
javax.swing.plaf.basic \
|
||||
javax.swing.plaf.metal \
|
||||
javax.swing.plaf.multi \
|
||||
javax.swing.plaf.nimbus \
|
||||
javax.swing.plaf.synth \
|
||||
javax.tools \
|
||||
javax.transaction \
|
||||
javax.transaction.xa \
|
||||
javax.xml.parsers \
|
||||
javax.xml.bind \
|
||||
javax.xml.bind.annotation \
|
||||
javax.xml.bind.annotation.adapters \
|
||||
javax.xml.bind.attachment \
|
||||
javax.xml.bind.helpers \
|
||||
javax.xml.bind.util \
|
||||
javax.xml.soap \
|
||||
javax.xml.ws \
|
||||
javax.xml.ws.handler \
|
||||
javax.xml.ws.handler.soap \
|
||||
javax.xml.ws.http \
|
||||
javax.xml.ws.soap \
|
||||
javax.xml.ws.spi \
|
||||
javax.xml.ws.spi.http \
|
||||
javax.xml.ws.wsaddressing \
|
||||
javax.xml.transform \
|
||||
javax.xml.transform.sax \
|
||||
javax.xml.transform.dom \
|
||||
javax.xml.transform.stax \
|
||||
javax.xml.transform.stream \
|
||||
javax.xml \
|
||||
javax.xml.crypto \
|
||||
javax.xml.crypto.dom \
|
||||
javax.xml.crypto.dsig \
|
||||
javax.xml.crypto.dsig.dom \
|
||||
javax.xml.crypto.dsig.keyinfo \
|
||||
javax.xml.crypto.dsig.spec \
|
||||
javax.xml.datatype \
|
||||
javax.xml.validation \
|
||||
javax.xml.namespace \
|
||||
javax.xml.xpath \
|
||||
javax.xml.stream \
|
||||
javax.xml.stream.events \
|
||||
javax.xml.stream.util \
|
||||
org.ietf.jgss \
|
||||
org.omg.CORBA \
|
||||
org.omg.CORBA.DynAnyPackage \
|
||||
org.omg.CORBA.ORBPackage \
|
||||
org.omg.CORBA.TypeCodePackage \
|
||||
org.omg.stub.java.rmi \
|
||||
org.omg.CORBA.portable \
|
||||
org.omg.CORBA_2_3 \
|
||||
org.omg.CORBA_2_3.portable \
|
||||
org.omg.CosNaming \
|
||||
org.omg.CosNaming.NamingContextExtPackage \
|
||||
org.omg.CosNaming.NamingContextPackage \
|
||||
org.omg.SendingContext \
|
||||
org.omg.PortableServer \
|
||||
org.omg.PortableServer.CurrentPackage \
|
||||
org.omg.PortableServer.POAPackage \
|
||||
org.omg.PortableServer.POAManagerPackage \
|
||||
org.omg.PortableServer.ServantLocatorPackage \
|
||||
org.omg.PortableServer.portable \
|
||||
org.omg.PortableInterceptor \
|
||||
org.omg.PortableInterceptor.ORBInitInfoPackage \
|
||||
org.omg.Messaging \
|
||||
org.omg.IOP \
|
||||
org.omg.IOP.CodecFactoryPackage \
|
||||
org.omg.IOP.CodecPackage \
|
||||
org.omg.Dynamic \
|
||||
org.omg.DynamicAny \
|
||||
org.omg.DynamicAny.DynAnyPackage \
|
||||
org.omg.DynamicAny.DynAnyFactoryPackage \
|
||||
org.w3c.dom \
|
||||
org.w3c.dom.events \
|
||||
org.w3c.dom.bootstrap \
|
||||
org.w3c.dom.ls \
|
||||
org.xml.sax \
|
||||
org.xml.sax.ext \
|
||||
org.xml.sax.helpers
|
||||
1174
jdk/makefiles/docs/Makefile
Normal file
1174
jdk/makefiles/docs/Makefile
Normal file
File diff suppressed because it is too large
Load Diff
104
jdk/makefiles/docs/NON_CORE_PKGS.gmk
Normal file
104
jdk/makefiles/docs/NON_CORE_PKGS.gmk
Normal file
@ -0,0 +1,104 @@
|
||||
#
|
||||
# Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# This file contains the package names of all the "non-core"
|
||||
# API published in the Java 2 SDK documentation. "Non-core" means
|
||||
# it includes all published API outside of the JDK API specification.
|
||||
#
|
||||
# These environment variables are used by javadoc in
|
||||
# make/docs/Makefile and are referenced by the localization
|
||||
# team when determining which APIs to extract javadoc
|
||||
# comments from.
|
||||
|
||||
DOMAPI_PKGS = com.sun.java.browser.dom \
|
||||
org.w3c.dom \
|
||||
org.w3c.dom.bootstrap \
|
||||
org.w3c.dom.ls \
|
||||
org.w3c.dom.ranges \
|
||||
org.w3c.dom.traversal \
|
||||
org.w3c.dom.html \
|
||||
org.w3c.dom.stylesheets \
|
||||
org.w3c.dom.css \
|
||||
org.w3c.dom.events \
|
||||
org.w3c.dom.views
|
||||
|
||||
JDI_PKGS = com.sun.jdi \
|
||||
com.sun.jdi.event \
|
||||
com.sun.jdi.request \
|
||||
com.sun.jdi.connect \
|
||||
com.sun.jdi.connect.spi
|
||||
|
||||
MGMT_PKGS = com.sun.management
|
||||
|
||||
JAAS_PKGS = com.sun.security.auth \
|
||||
com.sun.security.auth.callback \
|
||||
com.sun.security.auth.login \
|
||||
com.sun.security.auth.module
|
||||
|
||||
JGSS_PKGS = com.sun.security.jgss
|
||||
|
||||
OLD_JSSE_PKGS = com.sun.net.ssl
|
||||
|
||||
HTTPSERVER_PKGS = com.sun.net.httpserver \
|
||||
com.sun.net.httpserver.spi
|
||||
|
||||
NIO_PKGS = com.sun.nio.file
|
||||
|
||||
DOCLETAPI_PKGS = com.sun.javadoc
|
||||
|
||||
TAGLETAPI_FILE = com/sun/tools/doclets/Taglet.java
|
||||
|
||||
ATTACH_PKGS = com.sun.tools.attach \
|
||||
com.sun.tools.attach.spi
|
||||
|
||||
JCONSOLE_PKGS = com.sun.tools.jconsole
|
||||
|
||||
TREEAPI_PKGS = com.sun.source.tree \
|
||||
com.sun.source.util
|
||||
|
||||
SMARTCARDIO_PKGS = javax.smartcardio
|
||||
|
||||
SCTPAPI_PKGS = com.sun.nio.sctp
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
APPLE_EXT_PKGS = com.apple.concurrent \
|
||||
com.apple.eawt \
|
||||
com.apple.eawt.event \
|
||||
com.apple.eio
|
||||
endif
|
||||
|
||||
# non-core packages in rt.jar
|
||||
NON_CORE_PKGS = $(DOMAPI_PKGS) \
|
||||
$(MGMT_PKGS) \
|
||||
$(JAAS_PKGS) \
|
||||
$(JGSS_PKGS) \
|
||||
$(NIO_PKGS) \
|
||||
$(OLD_JSSE_PKGS) \
|
||||
$(HTTPSERVER_PKGS) \
|
||||
$(SMARTCARDIO_PKGS) \
|
||||
$(SCTPAPI_PKGS) \
|
||||
$(APPLE_EXT_PKGS)
|
||||
|
||||
49
jdk/makefiles/docs/Notes.html
Normal file
49
jdk/makefiles/docs/Notes.html
Normal file
@ -0,0 +1,49 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>Doc Process Notes</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h3><a name="REGEXP"></a><br>
|
||||
REGEXP</h3>
|
||||
<p> REGEXP is a list of wildcard patterns that determines which packages listed
|
||||
in CORE_PKGS.gmk go into which summary-table on the main API index page. It
|
||||
was motivated by the need to divide the world into "core packages"
|
||||
(java.*) and "extension packages" (javax.*). In time, the distinction
|
||||
went away. The whole table is now called "Platform Packages"--which
|
||||
eliminated the need for this list of regular expressions. But it lingered on,
|
||||
accreting all of the packages in the JVM, one by one. I pruned it back to "*",
|
||||
so it now covers every package in the Java platform API docs. If some separation
|
||||
is needed in the future, it can grow back into a colon-separated list, starting
|
||||
with this, which is in all respects equivalent to "*" at this point
|
||||
in time:</p>
|
||||
<blockquote>
|
||||
<pre>REGEXP = "java.*:javax.*:org.ietf*:org.omg.</pre>
|
||||
</blockquote>
|
||||
<h3><a name="releaseTargets"></a><br>
|
||||
Release Targets</h3>
|
||||
<p> (Thanks to Kelly O'Hair for this info.)</p>
|
||||
<p> The <tt>rel-coredocs</tt> and <tt>rel-docs</tt> targets were added by Eric
|
||||
Armstrong. <tt>rel-coredocs</tt> assumes the kind of large, 32-bit machine used
|
||||
in the javapubs group's docs-release process. It specifies memory settings accordingly
|
||||
to maximize performance.</p>
|
||||
<p> The performance settings, like the sanity check, are most important for the
|
||||
core docs--the platform APIs. Running javadoc on those APIs takes a significant
|
||||
amount of time and memory. Setting the initial heap size as large as possible
|
||||
is important to prevent thrashing as the heap grows. Setting the maximum as
|
||||
large as necessary is also important to keep the job from failing.</p>
|
||||
<blockquote>
|
||||
<p> <tt>-J-Xmx512</tt> sets a maximum of 512, which became necessary in 6.0<br>
|
||||
<tt>-J-Xms256</tt> sets starting size to 256 (default is 8)</p>
|
||||
</blockquote>
|
||||
<p> <tt>rel-coredocs</tt> also includes a sanity check to help ensure that <tt>BUILD_NUMBER</tt>
|
||||
and <tt>MILESTONE</tt> are specified properly when docs are built outside of
|
||||
the normal release engineering process, with the intention of releasing them
|
||||
on the web or in a downloaded docs bundle. (When invoked in release engineering's
|
||||
control build, the values are always set properly. But when the targets are
|
||||
run by themselves, they default to b00 and "internal"--which silently
|
||||
sabotage the result of a build that can take many hours to complete.</p>
|
||||
</body>
|
||||
</html>
|
||||
69
jdk/makefiles/java/Makefile
Normal file
69
jdk/makefiles/java/Makefile
Normal file
@ -0,0 +1,69 @@
|
||||
#
|
||||
# Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for building all of java
|
||||
#
|
||||
|
||||
PRODUCT=java
|
||||
BUILDDIR=..
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# The order of subdirs here is important
|
||||
#
|
||||
SUBDIRS += jvm redist verify fdlibm java sun_nio jli main
|
||||
|
||||
# Others
|
||||
# Note: java_crw_demo java_hprof_demo are demos but must be delivered built in sdk
|
||||
|
||||
SUBDIRS += security util net nio
|
||||
|
||||
SUBDIRS_management = management
|
||||
SUBDIRS_misc = npt java_crw_demo java_hprof_demo \
|
||||
instrument
|
||||
#TODO Check invoke
|
||||
# logging instrument invoke sql rmi
|
||||
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifeq ($(ARCH_DATA_MODEL), 32)
|
||||
SUBDIRS += jexec
|
||||
endif
|
||||
endif # PLATFORM
|
||||
|
||||
ifeq ($(PLATFORM), linux)
|
||||
SUBDIRS += jexec
|
||||
endif # PLATFORM
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
SUBDIRS += jobjc
|
||||
endif # PLATFORM
|
||||
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
|
||||
88
jdk/makefiles/java/fdlibm/FILES_c.gmk
Normal file
88
jdk/makefiles/java/fdlibm/FILES_c.gmk
Normal file
@ -0,0 +1,88 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
FILES_c = \
|
||||
k_standard.c \
|
||||
k_rem_pio2.c \
|
||||
k_cos.c \
|
||||
k_sin.c \
|
||||
k_tan.c \
|
||||
e_acos.c \
|
||||
e_asin.c \
|
||||
e_atan2.c \
|
||||
e_atanh.c \
|
||||
e_cosh.c \
|
||||
e_exp.c \
|
||||
e_fmod.c \
|
||||
e_hypot.c \
|
||||
e_log.c \
|
||||
e_log10.c \
|
||||
e_pow.c \
|
||||
e_rem_pio2.c \
|
||||
e_remainder.c \
|
||||
e_scalb.c \
|
||||
e_sinh.c \
|
||||
e_sqrt.c \
|
||||
w_acos.c \
|
||||
w_asin.c \
|
||||
w_atan2.c \
|
||||
w_atanh.c \
|
||||
w_cosh.c \
|
||||
w_exp.c \
|
||||
w_fmod.c \
|
||||
w_hypot.c \
|
||||
w_log.c \
|
||||
w_log10.c \
|
||||
w_pow.c \
|
||||
w_remainder.c \
|
||||
w_scalb.c \
|
||||
w_sinh.c \
|
||||
w_sqrt.c \
|
||||
s_atan.c \
|
||||
s_cbrt.c \
|
||||
s_ceil.c \
|
||||
s_copysign.c \
|
||||
s_cos.c \
|
||||
s_expm1.c \
|
||||
s_fabs.c \
|
||||
s_finite.c \
|
||||
s_floor.c \
|
||||
s_frexp.c \
|
||||
s_ilogb.c \
|
||||
s_isnan.c \
|
||||
s_ldexp.c \
|
||||
s_lib_version.c \
|
||||
s_log1p.c \
|
||||
s_logb.c \
|
||||
s_matherr.c \
|
||||
s_modf.c \
|
||||
s_nextafter.c \
|
||||
s_rint.c \
|
||||
s_scalbn.c \
|
||||
s_signgam.c \
|
||||
s_significand.c \
|
||||
s_sin.c \
|
||||
s_tan.c \
|
||||
s_tanh.c
|
||||
93
jdk/makefiles/java/fdlibm/Makefile
Normal file
93
jdk/makefiles/java/fdlibm/Makefile
Normal file
@ -0,0 +1,93 @@
|
||||
#
|
||||
# Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for fdlibm
|
||||
#
|
||||
# Note:
|
||||
# The fdlibm libraries are built using special rules in Library.gmk.
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
LIBRARY = fdlibm
|
||||
PRODUCT = java
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Where is fdlibm in the source tree?
|
||||
#
|
||||
FDLIBM_SRC = $(SHARE_SRC)/native/java/lang/fdlibm
|
||||
|
||||
# Windows: compiler flags
|
||||
ifeq ($(PLATFORM),windows)
|
||||
# Turn all optimizations off
|
||||
OPTIMIZATION_LEVEL = NONE
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = NONE
|
||||
OTHER_CFLAGS =
|
||||
CPPFLAGS_DBG += -DLOGGING
|
||||
endif
|
||||
|
||||
#
|
||||
# Linux: Disable optimization to get correctly reproducible
|
||||
# floating-point results.
|
||||
#
|
||||
ifeq ($(PLATFORM),linux)
|
||||
# Turn all optimizations off
|
||||
OPTIMIZATION_LEVEL = NONE
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = NONE
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM),macosx)
|
||||
# Turn all optimizations off
|
||||
OPTIMIZATION_LEVEL = NONE
|
||||
FASTDEBUG_OPTIMIZATION_LEVEL = NONE
|
||||
endif
|
||||
|
||||
#
|
||||
# Include path.
|
||||
#
|
||||
OTHER_INCLUDES = -I$(FDLIBM_SRC)/include
|
||||
|
||||
#
|
||||
# Things that must be linked in.
|
||||
#
|
||||
OTHER_LDLIBS =
|
||||
|
||||
#
|
||||
# Files to compile.
|
||||
#
|
||||
include FILES_c.gmk
|
||||
|
||||
#
|
||||
# Rules for the .a file.
|
||||
#
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
#
|
||||
# Find fdlibm source files.
|
||||
#
|
||||
vpath %.c
|
||||
vpath %.c $(FDLIBM_SRC)/src
|
||||
149
jdk/makefiles/java/instrument/Makefile
Normal file
149
jdk/makefiles/java/instrument/Makefile
Normal file
@ -0,0 +1,149 @@
|
||||
#
|
||||
# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Makefile for building the Java Programming Language Instrumentation Services
|
||||
# agent, supporting java.lang.instrument
|
||||
|
||||
BUILDDIR = ../..
|
||||
PACKAGE = sun.instrument
|
||||
LIBRARY = instrument
|
||||
PRODUCT = sun
|
||||
|
||||
# Configure the CFLAGS for this library. Use static binding so that there
|
||||
# are not dependencies on modules not on the search patch when invoked from
|
||||
# the Windows system directory (or elsewhere).
|
||||
MS_RUNTIME_STATIC=true
|
||||
|
||||
FILES_m = mapfile-vers
|
||||
|
||||
JAVAC_MAX_WARNINGS = true
|
||||
JAVAC_WARNINGS_FATAL = true
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
# Use the mapfile-vers (See the mapfile located with this Makefile)
|
||||
ifdef FILES_m
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
endif
|
||||
|
||||
#
|
||||
# Files to compile.
|
||||
#
|
||||
FILES_c = \
|
||||
EncodingSupport.c \
|
||||
EncodingSupport_md.c \
|
||||
FileSystemSupport_md.c \
|
||||
InstrumentationImplNativeMethods.c \
|
||||
InvocationAdapter.c \
|
||||
JarFacade.c \
|
||||
JPLISAgent.c \
|
||||
JPLISAssert.c \
|
||||
JavaExceptions.c \
|
||||
PathCharsValidator.c \
|
||||
Reentrancy.c \
|
||||
Utilities.c
|
||||
|
||||
#
|
||||
# -jaragent support requires zip and jar manfiest parser to be compiled
|
||||
# into the instrument library.
|
||||
#
|
||||
IO_PLATFORM_SRC = $(PLATFORM_SRC)/native/java/io
|
||||
LAUNCHER_SHARE_SRC = $(SHARE_SRC)/bin
|
||||
LAUNCHER_PLATFORM_SRC = $(PLATFORM_SRC)/bin
|
||||
|
||||
FILES_c += \
|
||||
canonicalize_md.c
|
||||
|
||||
FILES_export = \
|
||||
sun/instrument/InstrumentationImpl.java
|
||||
|
||||
#
|
||||
# This controls the ability to do logging in the library.
|
||||
#
|
||||
CPPFLAGS_DBG += -DJPLIS_LOGGING
|
||||
CPPFLAGS_OPT += -DNO_JPLIS_LOGGING
|
||||
|
||||
OTHER_INCLUDES = -I$(SHARE_SRC)/instrument
|
||||
OTHER_INCLUDES += -I$(PLATFORM_SRC)/instrument
|
||||
OTHER_INCLUDES += -I$(IO_PLATFORM_SRC)
|
||||
OTHER_INCLUDES += -I$(LAUNCHER_SHARE_SRC) -I$(LAUNCHER_PLATFORM_SRC)
|
||||
|
||||
#
|
||||
# Create a dependency on libjli (Java Launcher Infrastructure)
|
||||
#
|
||||
# On UNIX, this is a relative dependency using $ORIGIN. Unfortunately, to
|
||||
# do this reliably on Linux takes a different syntax than Solaris.
|
||||
#
|
||||
# On Windows, this is done by using the same directory as the executable
|
||||
# itself, as with all the Windows libraries.
|
||||
#
|
||||
ifeq ($(PLATFORM), windows)
|
||||
OTHER_LDLIBS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/jli.lib
|
||||
OTHER_LCF += -export:Agent_OnAttach
|
||||
# equivalent of strcasecmp is stricmp on Windows
|
||||
CPPFLAGS_COMMON += -Dstrcasecmp=stricmp
|
||||
else
|
||||
ifneq (,$(findstring $(PLATFORM), macosx))
|
||||
ifneq ($(ARCH), universal)
|
||||
LDFLAGS += -Wl,-all_load
|
||||
endif
|
||||
LDFLAGS += $(OUTPUTDIR)/tmp/java/jli/$(OBJDIRNAME)/static/libjli.a
|
||||
OTHER_LDLIBS += -liconv
|
||||
ifeq ($(SYSTEM_ZLIB), true)
|
||||
OTHER_LDLIBS += -lz
|
||||
endif
|
||||
else
|
||||
LDFLAGS += -L $(LIBDIR)/$(LIBARCH)/jli
|
||||
OTHER_LDLIBS += -ljli
|
||||
OTHER_LDLIBS += -ldl
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
LDFLAGS += -R \$$ORIGIN/jli
|
||||
endif
|
||||
ifeq ($(PLATFORM), linux)
|
||||
LDFLAGS += $(LDFLAG_Z_ORIGIN)
|
||||
LDFLAGS += -Wl,--allow-shlib-undefined
|
||||
LDFLAGS += -Wl,-rpath -Wl,\$$ORIGIN/jli
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
LDFLAGS += -framework Cocoa -framework Security -framework ApplicationServices
|
||||
endif
|
||||
|
||||
#
|
||||
# Library to compile.
|
||||
#
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
# We don't want to link against -ljava
|
||||
JAVALIB=
|
||||
|
||||
#
|
||||
# Add to ambient vpath so we pick up the library files
|
||||
#
|
||||
vpath %.c $(SHARE_SRC)/instrument $(PLATFORM_SRC)/instrument
|
||||
vpath %.c $(IO_PLATFORM_SRC)
|
||||
|
||||
44
jdk/makefiles/java/instrument/mapfile-vers
Normal file
44
jdk/makefiles/java/instrument/mapfile-vers
Normal file
@ -0,0 +1,44 @@
|
||||
#
|
||||
# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Define public interface.
|
||||
|
||||
SUNWprivate_1.1 {
|
||||
global:
|
||||
Agent_OnLoad;
|
||||
Agent_OnAttach;
|
||||
Java_sun_instrument_InstrumentationImpl_isModifiableClass0;
|
||||
Java_sun_instrument_InstrumentationImpl_isRetransformClassesSupported0;
|
||||
Java_sun_instrument_InstrumentationImpl_setHasRetransformableTransformers;
|
||||
Java_sun_instrument_InstrumentationImpl_retransformClasses0;
|
||||
Java_sun_instrument_InstrumentationImpl_getAllLoadedClasses0;
|
||||
Java_sun_instrument_InstrumentationImpl_getInitiatedClasses0;
|
||||
Java_sun_instrument_InstrumentationImpl_redefineClasses0;
|
||||
Java_sun_instrument_InstrumentationImpl_getObjectSize0;
|
||||
Java_sun_instrument_InstrumentationImpl_appendToClassLoaderSearch0;
|
||||
Java_sun_instrument_InstrumentationImpl_setNativeMethodPrefixes;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
42
jdk/makefiles/java/invoke/Makefile
Normal file
42
jdk/makefiles/java/invoke/Makefile
Normal file
@ -0,0 +1,42 @@
|
||||
#
|
||||
# Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
|
||||
PACKAGE = java.lang.invoke
|
||||
PRODUCT = java
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
AUTO_FILES_JAVA_DIRS = java/lang/invoke sun/invoke
|
||||
FILES_java = \
|
||||
java/lang/ClassValue.java \
|
||||
java/lang/BootstrapMethodError.java
|
||||
|
||||
# The sources built here use new language syntax to generate
|
||||
# method handle calls. Let's be sure we are using that format.
|
||||
LANGUAGE_VERSION = -source 7
|
||||
CLASS_VERSION = -target 7
|
||||
|
||||
include $(BUILDDIR)/common/Classes.gmk
|
||||
178
jdk/makefiles/java/java/Exportedfiles.gmk
Normal file
178
jdk/makefiles/java/java/Exportedfiles.gmk
Normal file
@ -0,0 +1,178 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# These are the names of JAVA classes for which we will make .h files.
|
||||
#
|
||||
ifneq ($(PLATFORM), windows)
|
||||
FILES_export = \
|
||||
java/lang/Object.java \
|
||||
java/lang/Class.java \
|
||||
java/lang/Compiler.java \
|
||||
java/lang/String.java \
|
||||
java/lang/Thread.java \
|
||||
java/lang/ThreadGroup.java \
|
||||
java/lang/StrictMath.java \
|
||||
java/lang/Number.java \
|
||||
java/lang/Byte.java \
|
||||
java/lang/Short.java \
|
||||
java/lang/Integer.java \
|
||||
java/lang/Long.java \
|
||||
java/lang/Float.java \
|
||||
java/lang/Double.java \
|
||||
java/lang/Boolean.java \
|
||||
java/lang/Character.java \
|
||||
java/lang/System.java \
|
||||
java/lang/ClassLoader.java \
|
||||
java/lang/Runtime.java \
|
||||
java/lang/SecurityManager.java \
|
||||
java/lang/Shutdown.java \
|
||||
java/lang/Package.java \
|
||||
java/lang/ref/Finalizer.java \
|
||||
java/lang/reflect/AccessibleObject.java \
|
||||
java/lang/reflect/Field.java \
|
||||
java/lang/reflect/Method.java \
|
||||
java/lang/reflect/Constructor.java \
|
||||
java/lang/reflect/InvocationTargetException.java \
|
||||
java/lang/reflect/Array.java \
|
||||
java/lang/reflect/Proxy.java \
|
||||
java/security/AccessController.java \
|
||||
java/util/Date.java \
|
||||
java/util/TimeZone.java \
|
||||
java/util/ResourceBundle.java \
|
||||
java/util/concurrent/atomic/AtomicLong.java \
|
||||
java/util/prefs/FileSystemPreferences.java \
|
||||
java/io/Console.java \
|
||||
java/io/FileDescriptor.java \
|
||||
java/io/InputStream.java \
|
||||
java/io/FileInputStream.java \
|
||||
java/io/FileOutputStream.java \
|
||||
java/io/PrintStream.java \
|
||||
java/io/RandomAccessFile.java \
|
||||
java/io/DataInputStream.java \
|
||||
java/io/DataOutputStream.java \
|
||||
java/io/File.java \
|
||||
java/io/FileSystem.java \
|
||||
java/io/UnixFileSystem.java \
|
||||
java/io/ObjectInputStream.java \
|
||||
java/io/ObjectOutputStream.java \
|
||||
java/io/ObjectStreamClass.java \
|
||||
java/lang/Throwable.java \
|
||||
java/lang/NoClassDefFoundError.java \
|
||||
java/lang/StringIndexOutOfBoundsException.java \
|
||||
java/lang/OutOfMemoryError.java \
|
||||
sun/misc/Version.java \
|
||||
sun/misc/VM.java \
|
||||
sun/misc/VMSupport.java \
|
||||
sun/misc/Signal.java \
|
||||
sun/misc/MessageUtils.java \
|
||||
sun/misc/NativeSignalHandler.java \
|
||||
sun/misc/GC.java \
|
||||
sun/reflect/ConstantPool.java \
|
||||
sun/reflect/NativeConstructorAccessorImpl.java \
|
||||
sun/reflect/NativeMethodAccessorImpl.java \
|
||||
sun/reflect/Reflection.java
|
||||
|
||||
EXPORTED_inner = \
|
||||
java.lang.ClassLoader$$NativeLibrary
|
||||
|
||||
else # PLATFORM
|
||||
FILES_export = \
|
||||
java/lang/Object.java \
|
||||
java/lang/Class.java \
|
||||
java/lang/Compiler.java \
|
||||
java/lang/String.java \
|
||||
java/lang/Thread.java \
|
||||
java/lang/ThreadGroup.java \
|
||||
java/lang/StrictMath.java \
|
||||
java/lang/Number.java \
|
||||
java/lang/Byte.java \
|
||||
java/lang/Short.java \
|
||||
java/lang/Integer.java \
|
||||
java/lang/Long.java \
|
||||
java/lang/Float.java \
|
||||
java/lang/Double.java \
|
||||
java/lang/Boolean.java \
|
||||
java/lang/System.java \
|
||||
java/lang/Package.java \
|
||||
java/lang/ClassLoader.java \
|
||||
java/lang/Runtime.java \
|
||||
java/lang/SecurityManager.java \
|
||||
java/lang/Shutdown.java \
|
||||
java/lang/reflect/AccessibleObject.java \
|
||||
java/lang/reflect/Field.java \
|
||||
java/lang/reflect/Method.java \
|
||||
java/lang/reflect/Constructor.java \
|
||||
java/lang/reflect/InvocationTargetException.java \
|
||||
java/lang/reflect/Array.java \
|
||||
java/lang/reflect/Proxy.java \
|
||||
java/lang/ref/Reference.java \
|
||||
java/lang/ref/Finalizer.java \
|
||||
java/util/Date.java \
|
||||
java/util/Properties.java \
|
||||
java/util/ResourceBundle.java \
|
||||
java/util/TimeZone.java \
|
||||
java/util/concurrent/atomic/AtomicLong.java \
|
||||
java/util/prefs/WindowsPreferences.java \
|
||||
java/util/prefs/WindowsPreferencesFactory.java \
|
||||
java/util/logging/FileHandler.java \
|
||||
java/io/Console.java \
|
||||
java/io/FileSystem.java \
|
||||
java/io/FileDescriptor.java \
|
||||
java/io/InputStream.java \
|
||||
java/io/FileInputStream.java \
|
||||
java/io/FileOutputStream.java \
|
||||
java/io/PrintStream.java \
|
||||
java/io/RandomAccessFile.java \
|
||||
java/io/DataInputStream.java \
|
||||
java/io/DataOutputStream.java \
|
||||
java/io/File.java \
|
||||
java/io/ObjectOutputStream.java \
|
||||
java/io/ObjectInputStream.java \
|
||||
java/io/ObjectStreamClass.java \
|
||||
java/lang/Throwable.java \
|
||||
java/lang/NoClassDefFoundError.java \
|
||||
java/lang/StringIndexOutOfBoundsException.java \
|
||||
java/lang/OutOfMemoryError.java \
|
||||
java/lang/ProcessImpl.java \
|
||||
sun/misc/Version.java \
|
||||
sun/misc/VM.java \
|
||||
sun/misc/VMSupport.java \
|
||||
sun/misc/GC.java \
|
||||
sun/misc/Signal.java \
|
||||
sun/misc/NativeSignalHandler.java \
|
||||
sun/misc/MessageUtils.java \
|
||||
java/security/AccessController.java \
|
||||
sun/reflect/ConstantPool.java \
|
||||
sun/reflect/NativeConstructorAccessorImpl.java \
|
||||
sun/reflect/NativeMethodAccessorImpl.java \
|
||||
sun/reflect/Reflection.java \
|
||||
sun/security/provider/NativeSeedGenerator.java \
|
||||
sun/io/Win32ErrorMode.java
|
||||
|
||||
EXPORTED_inner = \
|
||||
java.lang.ClassLoader$$NativeLibrary
|
||||
|
||||
endif # PLATFORM
|
||||
82
jdk/makefiles/java/java/FILES_c.gmk
Normal file
82
jdk/makefiles/java/java/FILES_c.gmk
Normal file
@ -0,0 +1,82 @@
|
||||
#
|
||||
# Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
FILES_c = \
|
||||
AccessController.c \
|
||||
Array.c \
|
||||
String.c \
|
||||
Class.c \
|
||||
ClassLoader.c \
|
||||
Compiler.c \
|
||||
Console_md.c \
|
||||
Double.c \
|
||||
FileSystem_md.c \
|
||||
FileDescriptor_md.c \
|
||||
FileInputStream.c \
|
||||
FileInputStream_md.c \
|
||||
FileOutputStream_md.c \
|
||||
Finalizer.c \
|
||||
Float.c \
|
||||
Object.c \
|
||||
ObjectOutputStream.c \
|
||||
ObjectInputStream.c \
|
||||
ObjectStreamClass.c \
|
||||
Package.c \
|
||||
ProcessEnvironment_md.c \
|
||||
Proxy.c \
|
||||
RandomAccessFile.c \
|
||||
RandomAccessFile_md.c \
|
||||
ResourceBundle.c \
|
||||
Runtime.c \
|
||||
SecurityManager.c \
|
||||
Shutdown.c \
|
||||
StrictMath.c \
|
||||
System.c \
|
||||
Thread.c \
|
||||
Throwable.c \
|
||||
Signal.c \
|
||||
NativeSignalHandler.c \
|
||||
verify_stub.c \
|
||||
io_util.c \
|
||||
io_util_md.c \
|
||||
jio.c \
|
||||
logging.c \
|
||||
jni_util.c \
|
||||
jni_util_md.c \
|
||||
jdk_util.c \
|
||||
jdk_util_md.c \
|
||||
check_version.c \
|
||||
java_props_md.c \
|
||||
DriverManager.c \
|
||||
ConstantPool.c \
|
||||
MessageUtils.c \
|
||||
GC.c \
|
||||
NativeAccessors.c \
|
||||
Reflection.c \
|
||||
Bits.c \
|
||||
AtomicLong.c \
|
||||
Version.c \
|
||||
VM.c \
|
||||
VMSupport.c
|
||||
489
jdk/makefiles/java/java/FILES_java.gmk
Normal file
489
jdk/makefiles/java/java/FILES_java.gmk
Normal file
@ -0,0 +1,489 @@
|
||||
#
|
||||
# Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# This is the list of java classes that will be automatically built
|
||||
# from sources. See Exportedfiles.gmk for the list of files which
|
||||
# will generate header files
|
||||
#
|
||||
JAVA_JAVA_java = \
|
||||
java/lang/Object.java \
|
||||
java/lang/AutoCloseable.java \
|
||||
java/lang/Class.java \
|
||||
java/lang/Thread.java \
|
||||
java/lang/Character.java \
|
||||
java/lang/CharacterData.java \
|
||||
java/lang/CharacterName.java \
|
||||
sun/misc/ASCIICaseInsensitiveComparator.java \
|
||||
sun/misc/VM.java \
|
||||
sun/misc/Signal.java \
|
||||
sun/misc/NativeSignalHandler.java \
|
||||
java/lang/ThreadGroup.java \
|
||||
java/lang/ThreadLocal.java \
|
||||
java/lang/InheritableThreadLocal.java \
|
||||
java/lang/String.java \
|
||||
java/lang/ConditionalSpecialCasing.java \
|
||||
java/lang/StringCoding.java \
|
||||
java/lang/StringBuffer.java \
|
||||
java/lang/StringBuilder.java \
|
||||
java/lang/SuppressWarnings.java \
|
||||
java/lang/AbstractStringBuilder.java \
|
||||
java/lang/ClassLoader.java \
|
||||
java/lang/AssertionStatusDirectives.java \
|
||||
java/lang/Enum.java \
|
||||
java/lang/StrictMath.java \
|
||||
java/lang/Math.java \
|
||||
sun/misc/FloatingDecimal.java \
|
||||
sun/misc/FormattedFloatingDecimal.java \
|
||||
java/lang/Number.java \
|
||||
java/lang/Byte.java \
|
||||
java/lang/Short.java \
|
||||
java/lang/Integer.java \
|
||||
java/lang/Long.java \
|
||||
java/lang/Float.java \
|
||||
java/lang/Double.java \
|
||||
java/lang/Boolean.java \
|
||||
java/lang/Void.java \
|
||||
java/lang/Runnable.java \
|
||||
java/lang/Cloneable.java \
|
||||
java/lang/CharSequence.java \
|
||||
java/lang/SecurityManager.java \
|
||||
java/lang/Runtime.java \
|
||||
java/lang/RuntimePermission.java \
|
||||
java/lang/ApplicationShutdownHooks.java \
|
||||
java/lang/Shutdown.java \
|
||||
java/lang/Terminator.java \
|
||||
java/lang/System.java \
|
||||
java/lang/Compiler.java \
|
||||
java/lang/Throwable.java \
|
||||
java/lang/Exception.java \
|
||||
java/lang/ReflectiveOperationException.java \
|
||||
java/lang/IllegalAccessException.java \
|
||||
java/lang/InstantiationException.java \
|
||||
java/lang/ClassNotFoundException.java \
|
||||
java/lang/CloneNotSupportedException.java \
|
||||
java/lang/InterruptedException.java \
|
||||
java/lang/NoSuchFieldException.java \
|
||||
java/lang/NoSuchMethodException.java \
|
||||
java/lang/RuntimeException.java \
|
||||
java/lang/ArithmeticException.java \
|
||||
java/lang/ArrayStoreException.java \
|
||||
java/lang/ClassCastException.java \
|
||||
java/lang/IndexOutOfBoundsException.java \
|
||||
java/lang/ArrayIndexOutOfBoundsException.java \
|
||||
java/lang/StringIndexOutOfBoundsException.java \
|
||||
java/lang/NegativeArraySizeException.java \
|
||||
java/lang/NullPointerException.java \
|
||||
java/lang/IllegalStateException.java \
|
||||
java/lang/IllegalArgumentException.java \
|
||||
java/lang/NumberFormatException.java \
|
||||
java/lang/IllegalThreadStateException.java \
|
||||
java/lang/IllegalMonitorStateException.java \
|
||||
java/lang/SecurityException.java \
|
||||
java/lang/TypeNotPresentException.java \
|
||||
java/lang/EnumConstantNotPresentException.java \
|
||||
java/lang/UnsupportedOperationException.java \
|
||||
java/lang/Error.java \
|
||||
java/lang/AssertionError.java \
|
||||
java/lang/ThreadDeath.java \
|
||||
java/lang/LinkageError.java \
|
||||
java/lang/ClassCircularityError.java \
|
||||
java/lang/ClassFormatError.java \
|
||||
java/lang/UnsupportedClassVersionError.java \
|
||||
java/lang/ExceptionInInitializerError.java \
|
||||
java/lang/IncompatibleClassChangeError.java \
|
||||
java/lang/AbstractMethodError.java \
|
||||
java/lang/IllegalAccessError.java \
|
||||
java/lang/InstantiationError.java \
|
||||
java/lang/NoSuchFieldError.java \
|
||||
java/lang/NoSuchMethodError.java \
|
||||
java/lang/NoClassDefFoundError.java \
|
||||
java/lang/UnsatisfiedLinkError.java \
|
||||
java/lang/VerifyError.java \
|
||||
java/lang/VirtualMachineError.java \
|
||||
java/lang/InternalError.java \
|
||||
java/lang/OutOfMemoryError.java \
|
||||
java/lang/StackOverflowError.java \
|
||||
java/lang/UnknownError.java \
|
||||
java/lang/StackTraceElement.java \
|
||||
java/lang/Package.java \
|
||||
java/lang/Process.java \
|
||||
java/lang/ProcessBuilder.java \
|
||||
java/lang/ProcessEnvironment.java \
|
||||
java/lang/ProcessImpl.java \
|
||||
java/lang/Appendable.java \
|
||||
java/lang/Comparable.java \
|
||||
java/lang/Readable.java \
|
||||
java/lang/Override.java \
|
||||
java/lang/SafeVarargs.java \
|
||||
java/lang/SuppressWarnings.java \
|
||||
java/lang/ref/Reference.java \
|
||||
java/lang/ref/SoftReference.java \
|
||||
java/lang/ref/WeakReference.java \
|
||||
java/lang/ref/FinalReference.java \
|
||||
java/lang/ref/PhantomReference.java \
|
||||
java/lang/ref/ReferenceQueue.java \
|
||||
java/lang/ref/Finalizer.java \
|
||||
java/util/BitSet.java \
|
||||
java/util/Calendar.java \
|
||||
java/util/GregorianCalendar.java \
|
||||
sun/util/BuddhistCalendar.java \
|
||||
java/util/JapaneseImperialCalendar.java \
|
||||
sun/util/calendar/CalendarDate.java \
|
||||
sun/util/calendar/ImmutableGregorianDate.java \
|
||||
sun/util/calendar/CalendarSystem.java \
|
||||
sun/util/calendar/Era.java \
|
||||
sun/util/calendar/CalendarUtils.java \
|
||||
sun/util/calendar/AbstractCalendar.java \
|
||||
sun/util/calendar/BaseCalendar.java \
|
||||
sun/util/calendar/Gregorian.java \
|
||||
sun/util/calendar/JulianCalendar.java \
|
||||
sun/util/calendar/LocalGregorianCalendar.java \
|
||||
java/util/Currency.java \
|
||||
java/util/Date.java \
|
||||
java/util/Dictionary.java \
|
||||
java/util/EmptyStackException.java \
|
||||
java/util/Enumeration.java \
|
||||
java/util/EventListener.java \
|
||||
java/util/EventListenerProxy.java \
|
||||
java/util/EventObject.java \
|
||||
java/util/Formatter.java \
|
||||
java/util/Formattable.java \
|
||||
java/util/FormattableFlags.java \
|
||||
java/util/IllegalFormatException.java \
|
||||
java/util/DuplicateFormatFlagsException.java \
|
||||
java/util/FormatFlagsConversionMismatchException.java \
|
||||
java/util/IllegalFormatCodePointException.java \
|
||||
java/util/IllegalFormatConversionException.java \
|
||||
java/util/IllegalFormatFlagsException.java \
|
||||
java/util/IllegalFormatPrecisionException.java \
|
||||
java/util/IllegalFormatWidthException.java \
|
||||
java/util/MissingFormatArgumentException.java \
|
||||
java/util/MissingFormatWidthException.java \
|
||||
java/util/UnknownFormatConversionException.java \
|
||||
java/util/UnknownFormatFlagsException.java \
|
||||
java/util/IllformedLocaleException.java \
|
||||
java/util/FormatterClosedException.java \
|
||||
java/util/ListResourceBundle.java \
|
||||
sun/util/EmptyListResourceBundle.java \
|
||||
java/util/Locale.java \
|
||||
sun/util/locale/BaseLocale.java \
|
||||
sun/util/locale/Extension.java \
|
||||
sun/util/locale/InternalLocaleBuilder.java \
|
||||
sun/util/locale/LanguageTag.java \
|
||||
sun/util/locale/LocaleExtensions.java \
|
||||
sun/util/locale/LocaleObjectCache.java \
|
||||
sun/util/locale/LocaleSyntaxException.java \
|
||||
sun/util/locale/LocaleUtils.java \
|
||||
sun/util/locale/ParseStatus.java \
|
||||
sun/util/locale/StringTokenIterator.java \
|
||||
sun/util/locale/UnicodeLocaleExtension.java \
|
||||
java/util/LocaleISOData.java \
|
||||
sun/util/LocaleServiceProviderPool.java \
|
||||
sun/util/LocaleDataMetaInfo.java \
|
||||
java/util/MissingResourceException.java \
|
||||
java/util/NoSuchElementException.java \
|
||||
java/util/Observable.java \
|
||||
java/util/Observer.java \
|
||||
java/util/Properties.java \
|
||||
java/util/InvalidPropertiesFormatException.java \
|
||||
java/util/PropertyPermission.java \
|
||||
java/util/PropertyResourceBundle.java \
|
||||
java/util/Random.java \
|
||||
java/util/ResourceBundle.java \
|
||||
sun/util/ResourceBundleEnumeration.java \
|
||||
sun/util/CoreResourceBundleControl.java \
|
||||
java/util/Scanner.java \
|
||||
java/util/InputMismatchException.java \
|
||||
java/util/Stack.java \
|
||||
java/util/StringTokenizer.java \
|
||||
java/util/TimeZone.java \
|
||||
java/util/SimpleTimeZone.java \
|
||||
sun/util/TimeZoneNameUtility.java \
|
||||
sun/util/calendar/ZoneInfo.java \
|
||||
sun/util/calendar/ZoneInfoFile.java \
|
||||
sun/util/calendar/TzIDOldMapping.java \
|
||||
java/util/TooManyListenersException.java \
|
||||
java/util/Comparator.java \
|
||||
java/util/Collections.java \
|
||||
java/util/Iterator.java \
|
||||
java/util/ListIterator.java \
|
||||
java/util/Collection.java \
|
||||
java/util/Set.java \
|
||||
java/util/SortedSet.java \
|
||||
java/util/NavigableSet.java \
|
||||
java/util/List.java \
|
||||
java/util/Queue.java \
|
||||
java/util/Deque.java \
|
||||
java/util/AbstractCollection.java \
|
||||
java/util/AbstractSet.java \
|
||||
java/util/HashSet.java \
|
||||
java/util/LinkedHashSet.java \
|
||||
java/util/TreeSet.java \
|
||||
java/util/EnumSet.java \
|
||||
java/util/RegularEnumSet.java \
|
||||
java/util/JumboEnumSet.java \
|
||||
java/util/AbstractList.java \
|
||||
java/util/ArrayList.java \
|
||||
java/util/Vector.java \
|
||||
java/util/AbstractSequentialList.java \
|
||||
java/util/LinkedList.java \
|
||||
java/util/AbstractQueue.java \
|
||||
java/util/PriorityQueue.java \
|
||||
java/util/ArrayDeque.java \
|
||||
java/util/Map.java \
|
||||
java/util/SortedMap.java \
|
||||
java/util/NavigableMap.java \
|
||||
java/util/AbstractMap.java \
|
||||
java/util/HashMap.java \
|
||||
java/util/LinkedHashMap.java \
|
||||
java/util/TreeMap.java \
|
||||
java/util/Hashtable.java \
|
||||
java/util/WeakHashMap.java \
|
||||
java/util/IdentityHashMap.java \
|
||||
java/util/EnumMap.java \
|
||||
java/util/Arrays.java \
|
||||
java/util/DualPivotQuicksort.java \
|
||||
java/util/TimSort.java \
|
||||
java/util/ComparableTimSort.java \
|
||||
java/util/ConcurrentModificationException.java \
|
||||
java/util/ServiceLoader.java \
|
||||
java/util/ServiceConfigurationError.java \
|
||||
java/util/Timer.java \
|
||||
java/util/TimerTask.java \
|
||||
java/util/Objects.java \
|
||||
java/util/UUID.java \
|
||||
java/util/concurrent/AbstractExecutorService.java \
|
||||
java/util/concurrent/ArrayBlockingQueue.java \
|
||||
java/util/concurrent/BlockingDeque.java \
|
||||
java/util/concurrent/BlockingQueue.java \
|
||||
java/util/concurrent/BrokenBarrierException.java \
|
||||
java/util/concurrent/Callable.java \
|
||||
java/util/concurrent/CancellationException.java \
|
||||
java/util/concurrent/CompletionService.java \
|
||||
java/util/concurrent/ConcurrentHashMap.java \
|
||||
java/util/concurrent/ConcurrentLinkedDeque.java \
|
||||
java/util/concurrent/ConcurrentLinkedQueue.java \
|
||||
java/util/concurrent/ConcurrentMap.java \
|
||||
java/util/concurrent/ConcurrentNavigableMap.java \
|
||||
java/util/concurrent/ConcurrentSkipListMap.java \
|
||||
java/util/concurrent/ConcurrentSkipListSet.java \
|
||||
java/util/concurrent/CopyOnWriteArrayList.java \
|
||||
java/util/concurrent/CopyOnWriteArraySet.java \
|
||||
java/util/concurrent/CountDownLatch.java \
|
||||
java/util/concurrent/CyclicBarrier.java \
|
||||
java/util/concurrent/DelayQueue.java \
|
||||
java/util/concurrent/Delayed.java \
|
||||
java/util/concurrent/Exchanger.java \
|
||||
java/util/concurrent/ExecutionException.java \
|
||||
java/util/concurrent/Executor.java \
|
||||
java/util/concurrent/ExecutorService.java \
|
||||
java/util/concurrent/ExecutorCompletionService.java \
|
||||
java/util/concurrent/Executors.java \
|
||||
java/util/concurrent/ForkJoinPool.java \
|
||||
java/util/concurrent/ForkJoinTask.java \
|
||||
java/util/concurrent/ForkJoinWorkerThread.java \
|
||||
java/util/concurrent/Future.java \
|
||||
java/util/concurrent/FutureTask.java \
|
||||
java/util/concurrent/LinkedBlockingDeque.java \
|
||||
java/util/concurrent/LinkedBlockingQueue.java \
|
||||
java/util/concurrent/LinkedTransferQueue.java \
|
||||
java/util/concurrent/Phaser.java \
|
||||
java/util/concurrent/PriorityBlockingQueue.java \
|
||||
java/util/concurrent/RecursiveAction.java \
|
||||
java/util/concurrent/RecursiveTask.java \
|
||||
java/util/concurrent/RejectedExecutionException.java \
|
||||
java/util/concurrent/RejectedExecutionHandler.java \
|
||||
java/util/concurrent/RunnableFuture.java \
|
||||
java/util/concurrent/RunnableScheduledFuture.java \
|
||||
java/util/concurrent/ScheduledExecutorService.java \
|
||||
java/util/concurrent/ScheduledFuture.java \
|
||||
java/util/concurrent/ScheduledThreadPoolExecutor.java \
|
||||
java/util/concurrent/Semaphore.java \
|
||||
java/util/concurrent/SynchronousQueue.java \
|
||||
java/util/concurrent/ThreadFactory.java \
|
||||
java/util/concurrent/ThreadLocalRandom.java \
|
||||
java/util/concurrent/ThreadPoolExecutor.java \
|
||||
java/util/concurrent/TimeUnit.java \
|
||||
java/util/concurrent/TimeoutException.java \
|
||||
java/util/concurrent/TransferQueue.java \
|
||||
java/util/concurrent/atomic/AtomicBoolean.java \
|
||||
java/util/concurrent/atomic/AtomicInteger.java \
|
||||
java/util/concurrent/atomic/AtomicIntegerArray.java \
|
||||
java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java \
|
||||
java/util/concurrent/atomic/AtomicLong.java \
|
||||
java/util/concurrent/atomic/AtomicLongArray.java \
|
||||
java/util/concurrent/atomic/AtomicLongFieldUpdater.java \
|
||||
java/util/concurrent/atomic/AtomicMarkableReference.java \
|
||||
java/util/concurrent/atomic/AtomicReference.java \
|
||||
java/util/concurrent/atomic/AtomicReferenceArray.java \
|
||||
java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java \
|
||||
java/util/concurrent/atomic/AtomicStampedReference.java \
|
||||
java/util/concurrent/locks/AbstractOwnableSynchronizer.java \
|
||||
java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \
|
||||
java/util/concurrent/locks/AbstractQueuedSynchronizer.java \
|
||||
java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java \
|
||||
java/util/concurrent/locks/Condition.java \
|
||||
java/util/concurrent/locks/Lock.java \
|
||||
java/util/concurrent/locks/LockSupport.java \
|
||||
java/util/concurrent/locks/ReadWriteLock.java \
|
||||
java/util/concurrent/locks/ReentrantLock.java \
|
||||
java/util/concurrent/locks/ReentrantReadWriteLock.java \
|
||||
java/util/regex/Pattern.java \
|
||||
java/util/regex/Matcher.java \
|
||||
java/util/regex/MatchResult.java \
|
||||
java/util/regex/ASCII.java \
|
||||
java/util/regex/UnicodeProp.java \
|
||||
java/util/regex/PatternSyntaxException.java \
|
||||
java/util/prefs/Preferences.java \
|
||||
java/util/prefs/AbstractPreferences.java \
|
||||
java/util/prefs/PreferenceChangeEvent.java \
|
||||
java/util/prefs/PreferenceChangeListener.java \
|
||||
java/util/prefs/NodeChangeEvent.java \
|
||||
java/util/prefs/NodeChangeListener.java \
|
||||
java/util/prefs/BackingStoreException.java \
|
||||
java/util/prefs/InvalidPreferencesFormatException.java \
|
||||
java/util/prefs/PreferencesFactory.java \
|
||||
java/util/prefs/Base64.java \
|
||||
java/util/prefs/XmlSupport.java \
|
||||
java/util/spi/CurrencyNameProvider.java \
|
||||
java/util/spi/LocaleNameProvider.java \
|
||||
java/util/spi/LocaleServiceProvider.java \
|
||||
java/util/spi/TimeZoneNameProvider.java \
|
||||
java/io/Closeable.java \
|
||||
java/io/Flushable.java \
|
||||
java/io/PipedInputStream.java \
|
||||
java/io/PipedOutputStream.java \
|
||||
java/io/IOException.java \
|
||||
java/io/CharConversionException.java \
|
||||
java/io/FileNotFoundException.java \
|
||||
java/io/EOFException.java \
|
||||
java/io/SyncFailedException.java \
|
||||
java/io/UTFDataFormatException.java \
|
||||
java/io/InterruptedIOException.java \
|
||||
java/io/UnsupportedEncodingException.java \
|
||||
java/io/DataInput.java \
|
||||
java/io/DataOutput.java \
|
||||
java/io/InputStream.java \
|
||||
java/io/FileInputStream.java \
|
||||
java/io/FilterInputStream.java \
|
||||
java/io/BufferedInputStream.java \
|
||||
java/io/DataInputStream.java \
|
||||
java/io/ByteArrayInputStream.java \
|
||||
java/io/PushbackInputStream.java \
|
||||
java/io/SequenceInputStream.java \
|
||||
java/io/StringBufferInputStream.java \
|
||||
java/io/LineNumberInputStream.java \
|
||||
java/io/OutputStream.java \
|
||||
java/io/FileOutputStream.java \
|
||||
java/io/FilterOutputStream.java \
|
||||
java/io/BufferedOutputStream.java \
|
||||
java/io/DataOutputStream.java \
|
||||
java/io/ByteArrayOutputStream.java \
|
||||
java/io/PrintStream.java \
|
||||
java/io/RandomAccessFile.java \
|
||||
java/io/StreamTokenizer.java \
|
||||
java/io/DeleteOnExitHook.java \
|
||||
java/io/File.java \
|
||||
java/io/FileSystem.java \
|
||||
java/io/FileDescriptor.java \
|
||||
java/io/FilenameFilter.java \
|
||||
java/io/FileFilter.java \
|
||||
java/io/FilePermission.java \
|
||||
java/io/Serializable.java \
|
||||
java/io/Externalizable.java \
|
||||
java/io/SerialCallbackContext.java \
|
||||
java/io/Bits.java \
|
||||
java/io/ObjectInput.java \
|
||||
java/io/ObjectInputStream.java \
|
||||
java/io/ObjectInputValidation.java \
|
||||
java/io/ObjectOutput.java \
|
||||
java/io/ObjectOutputStream.java \
|
||||
java/io/ObjectStreamClass.java \
|
||||
java/io/ObjectStreamConstants.java \
|
||||
java/io/ObjectStreamField.java \
|
||||
java/io/SerializablePermission.java \
|
||||
java/io/InvalidClassException.java \
|
||||
java/io/InvalidObjectException.java \
|
||||
java/io/NotActiveException.java \
|
||||
java/io/NotSerializableException.java \
|
||||
java/io/ObjectStreamException.java \
|
||||
java/io/OptionalDataException.java \
|
||||
java/io/StreamCorruptedException.java \
|
||||
java/io/WriteAbortedException.java \
|
||||
java/io/Reader.java \
|
||||
java/io/BufferedReader.java \
|
||||
java/io/LineNumberReader.java \
|
||||
java/io/CharArrayReader.java \
|
||||
java/io/FilterReader.java \
|
||||
java/io/PushbackReader.java \
|
||||
java/io/InputStreamReader.java \
|
||||
java/io/FileReader.java \
|
||||
java/io/PipedReader.java \
|
||||
java/io/StringReader.java \
|
||||
java/io/Writer.java \
|
||||
java/io/BufferedWriter.java \
|
||||
java/io/PrintWriter.java \
|
||||
java/io/CharArrayWriter.java \
|
||||
java/io/FilterWriter.java \
|
||||
java/io/OutputStreamWriter.java \
|
||||
java/io/FileWriter.java \
|
||||
java/io/PipedWriter.java \
|
||||
java/io/StringWriter.java \
|
||||
java/io/Console.java \
|
||||
java/io/ExpiringCache.java \
|
||||
java/nio/charset/Charset.java \
|
||||
java/nio/charset/CharsetDecoder.java \
|
||||
java/nio/charset/CharsetEncoder.java \
|
||||
java/nio/charset/UnmappableCharacterException.java \
|
||||
java/nio/Bits.java \
|
||||
java/nio/DirectByteBuffer.java \
|
||||
java/nio/HeapByteBuffer.java \
|
||||
java/nio/HeapCharBuffer.java \
|
||||
java/security/AccessController.java \
|
||||
java/security/ProtectionDomain.java \
|
||||
java/net/URLClassLoader.java \
|
||||
java/net/URLConnection.java \
|
||||
sun/misc/Launcher.java \
|
||||
sun/misc/MetaIndex.java \
|
||||
sun/misc/URLClassPath.java \
|
||||
sun/misc/Version.java \
|
||||
sun/misc/FileURLMapper.java \
|
||||
sun/misc/MessageUtils.java \
|
||||
sun/misc/GC.java \
|
||||
sun/misc/Service.java \
|
||||
sun/misc/JavaAWTAccess.java \
|
||||
sun/misc/JavaLangAccess.java \
|
||||
sun/misc/JavaIOAccess.java \
|
||||
sun/misc/JavaIOFileDescriptorAccess.java \
|
||||
sun/misc/JavaNioAccess.java \
|
||||
sun/misc/Perf.java \
|
||||
sun/misc/PerfCounter.java \
|
||||
sun/net/www/protocol/jar/Handler.java \
|
||||
sun/net/www/protocol/jar/JarURLConnection.java \
|
||||
sun/net/www/protocol/file/Handler.java \
|
||||
sun/net/www/protocol/file/FileURLConnection.java
|
||||
|
||||
FILES_java = $(JAVA_JAVA_java)
|
||||
375
jdk/makefiles/java/java/Makefile
Normal file
375
jdk/makefiles/java/java/Makefile
Normal file
@ -0,0 +1,375 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for core Java libraries
|
||||
# (java.lang, java.lang.ref, java.lang.reflect, java.io, java.util)
|
||||
#
|
||||
|
||||
BUILDDIR = ../..
|
||||
PACKAGE = java.lang
|
||||
LIBRARY = java
|
||||
PRODUCT = java
|
||||
SUBDIRS_MAKEFLAGS += JAVAC_MAX_WARNINGS=true
|
||||
SUBDIRS_MAKEFLAGS += JAVAC_WARNINGS_FATAL=true
|
||||
JAVAC_MAX_WARNINGS=true
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
$(info ENTERING java)
|
||||
|
||||
# windows compiler flags
|
||||
ifeq ($(PLATFORM),windows)
|
||||
OTHER_CFLAGS =
|
||||
# build directly into BINDIR...
|
||||
LIB_LOCATION = $(BINDIR)
|
||||
# Exported functions
|
||||
OTHER_LCF = -export:winFileHandleOpen -export:handleLseek
|
||||
endif
|
||||
|
||||
OTHER_CFLAGS += -DJDK_MAJOR_VERSION='"$(JDK_MAJOR_VERSION)"' \
|
||||
-DJDK_MINOR_VERSION='"$(JDK_MINOR_VERSION)"' \
|
||||
-DJDK_MICRO_VERSION='"$(JDK_MICRO_VERSION)"' \
|
||||
-DJDK_BUILD_NUMBER='"$(JDK_BUILD_NUMBER)"'
|
||||
|
||||
ifdef JDK_UPDATE_VERSION
|
||||
OTHER_CFLAGS += -DJDK_UPDATE_VERSION='"$(JDK_UPDATE_VERSION)"'
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# Files to compile.
|
||||
#
|
||||
include FILES_c.gmk
|
||||
include FILES_java.gmk
|
||||
include Exportedfiles.gmk
|
||||
|
||||
ifeq ($(PLATFORM),windows)
|
||||
FILES_java += java/io/Win32FileSystem.java \
|
||||
java/io/WinNTFileSystem.java \
|
||||
java/util/prefs/WindowsPreferences.java \
|
||||
java/util/prefs/WindowsPreferencesFactory.java
|
||||
|
||||
FILES_c += ProcessImpl_md.c \
|
||||
Win32FileSystem_md.c \
|
||||
WinNTFileSystem_md.c \
|
||||
canonicalize_md.c \
|
||||
dirent_md.c \
|
||||
TimeZone.c \
|
||||
TimeZone_md.c \
|
||||
WindowsPreferences.c \
|
||||
sun/security/provider/WinCAPISeedGenerator.c \
|
||||
sun/io/Win32ErrorMode.c
|
||||
|
||||
else # PLATFORM
|
||||
FILES_java += java/lang/UNIXProcess.java \
|
||||
java/io/UnixFileSystem.java \
|
||||
java/util/prefs/FileSystemPreferences.java \
|
||||
java/util/prefs/FileSystemPreferencesFactory.java \
|
||||
|
||||
FILES_c += UNIXProcess_md.c \
|
||||
UnixFileSystem_md.c \
|
||||
canonicalize_md.c \
|
||||
TimeZone.c \
|
||||
TimeZone_md.c \
|
||||
FileSystemPreferences.c
|
||||
|
||||
INIT += $(GENSRCDIR)/java/lang/UNIXProcess.java
|
||||
|
||||
endif # PLATFORM
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
FILES_c += java_props_macosx.c
|
||||
FILES_java += java/util/prefs/MacOSXPreferences.java \
|
||||
java/util/prefs/MacOSXPreferencesFile.java \
|
||||
java/util/prefs/MacOSXPreferencesFactory.java
|
||||
|
||||
CFLAGS_$(VARIANT)/java_props_md.o = -Os -x objective-c
|
||||
endif
|
||||
|
||||
#
|
||||
# Make sure first rule does 'all'
|
||||
#
|
||||
default_rule: all
|
||||
|
||||
#
|
||||
# Source files to generate before we try to compile anything
|
||||
#
|
||||
|
||||
CLASSES_INIT = niosrc rbcontrolsrc
|
||||
|
||||
niosrc: ; ($(CD) ../nio; $(MAKE) sources)
|
||||
|
||||
rbcontrolsrc: $(GENSRCDIR)/sun/util/CoreResourceBundleControl.java
|
||||
|
||||
#
|
||||
# Add to the default C file search paths
|
||||
#
|
||||
vpath %.c $(PLATFORM_SRC)/native/java/lang:$(SHARE_SRC)/native/java/lang
|
||||
vpath %.c $(SHARE_SRC)/native/java/lang/ref
|
||||
vpath %.c $(SHARE_SRC)/native/java/lang/reflect
|
||||
vpath %.c $(SHARE_SRC)/native/java/io
|
||||
vpath %.c $(PLATFORM_SRC)/native/java/io
|
||||
vpath %.c $(SHARE_SRC)/native/java/nio
|
||||
vpath %.c $(SHARE_SRC)/native/java/security
|
||||
vpath %.c $(SHARE_SRC)/native/common
|
||||
vpath %.c $(SHARE_SRC)/native/sun/misc
|
||||
vpath %.c $(SHARE_SRC)/native/sun/reflect
|
||||
vpath %.c $(SHARE_SRC)/native/java/sql
|
||||
vpath %.c $(SHARE_SRC)/native/java/util
|
||||
vpath %.c $(SHARE_SRC)/native/java/util/concurrent/atomic
|
||||
vpath %.c $(PLATFORM_SRC)/native/common
|
||||
vpath %.c $(PLATFORM_SRC)/native/java/util
|
||||
vpath %.c $(PLATFORM_SRC)/native/sun/security/provider
|
||||
vpath %.c $(PLATFORM_SRC)/native/sun/io
|
||||
|
||||
#
|
||||
# Includes the fdlibm header file.
|
||||
#
|
||||
OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/lang/fdlibm/include
|
||||
|
||||
#
|
||||
# Also include the io_util.h header file.
|
||||
#
|
||||
OTHER_INCLUDES += -I$(SHARE_SRC)/native/java/io
|
||||
OTHER_INCLUDES += -I$(PLATFORM_SRC)/native/java/io
|
||||
|
||||
#
|
||||
# Also include the TimeZone_md.h header file.
|
||||
#
|
||||
OTHER_INCLUDES += -I$(PLATFORM_SRC)/native/java/util
|
||||
|
||||
#
|
||||
# Is the altzone extern documented in ctime(3C) available?
|
||||
#
|
||||
ifneq ($(PLATFORM), windows)
|
||||
ifneq ($(PLATFORM), macosx)
|
||||
HAVE_ALTZONE=true
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(HAVE_ALTZONE),true)
|
||||
OTHER_CPPFLAGS += -DHAVE_ALTZONE
|
||||
endif
|
||||
|
||||
#
|
||||
# System.c needs RELEASE.
|
||||
# java_props_md.c needs ARCH on non-Solaris platforms.
|
||||
#
|
||||
OTHER_CPPFLAGS += $(VERSION_DEFINES)
|
||||
|
||||
#
|
||||
# Include name of LIBARCH
|
||||
#
|
||||
OTHER_CPPFLAGS += -DARCHPROPNAME='"$(ARCHPROP)"'
|
||||
|
||||
#
|
||||
# Is the key in the call nl_langinfo(CODESET) called something other than
|
||||
# CODESET?
|
||||
#
|
||||
ifdef ALT_CODESET_KEY
|
||||
OTHER_CPPFLAGS += -DALT_CODESET_KEY=$(ALT_CODESET_KEY)
|
||||
endif
|
||||
|
||||
#
|
||||
# Install .lib file.
|
||||
#
|
||||
INSTALL_DOT_LIB = true
|
||||
|
||||
#
|
||||
# What to link?
|
||||
# On Windows, shell32 is not normally required and so it is delay loaded.
|
||||
#
|
||||
ifeq ($(PLATFORM),windows)
|
||||
OTHER_LDLIBS += $(JVMLIB) -libpath:$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) fdlibm.lib \
|
||||
-libpath:$(OBJDIR)/../../../verify/$(OBJDIRNAME) verify.lib \
|
||||
shell32.lib delayimp.lib /DELAYLOAD:shell32.dll
|
||||
else
|
||||
OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) $(LIBNSL) $(LIBSCF) $(LIBDL) \
|
||||
-L$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) -lfdlibm.$(ARCH)
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
OTHER_LDLIBS += \
|
||||
-framework CoreFoundation \
|
||||
-framework Security \
|
||||
-framework SystemConfiguration
|
||||
endif
|
||||
endif
|
||||
|
||||
#
|
||||
# Rules.
|
||||
#
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifneq ($(ARCH), amd64)
|
||||
FILES_reorder += reorder-$(ARCH)
|
||||
endif
|
||||
endif
|
||||
|
||||
SUBDIRS = reflect
|
||||
include $(BUILDDIR)/common/Subdirs.gmk
|
||||
|
||||
all build:
|
||||
$(SUBDIRS-loop)
|
||||
clean clobber::
|
||||
$(SUBDIRS-loop)
|
||||
|
||||
include $(BUILDDIR)/common/Mapfile-vers.gmk
|
||||
include $(BUILDDIR)/common/Library.gmk
|
||||
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifeq ($(CC_VER), 5.8)
|
||||
ifndef REMOVE_ALL_WORKAROUNDS
|
||||
CFLAGS_OPT/ObjectInputStream.o = -xO3 \
|
||||
$(warning "WARNING: Using workaround for SS11 bug 6346242, on $@")
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(PLATFORM),windows)
|
||||
|
||||
# UNIXProcess.java is different for solaris and linux. We need to copy
|
||||
# the correct UNIXProcess.java over to $(GENSRCDIR)/java/lang/.
|
||||
|
||||
ifeq ($(PLATFORM), macosx)
|
||||
PLATFORM_UNIX_PROCESS = \
|
||||
$(PLATFORM_SRC)/classes/java/lang/UNIXProcess.java.bsd
|
||||
else
|
||||
PLATFORM_UNIX_PROCESS = \
|
||||
$(PLATFORM_SRC)/classes/java/lang/UNIXProcess.java.$(PLATFORM)
|
||||
endif
|
||||
|
||||
$(GENSRCDIR)/java/lang/UNIXProcess.java: $(PLATFORM_UNIX_PROCESS)
|
||||
$(install-file)
|
||||
|
||||
clean::
|
||||
$(RM) $(GENSRCDIR)/java/lang/UNIXProcess.java
|
||||
|
||||
endif
|
||||
|
||||
|
||||
#
|
||||
# Because we can't link against ourselves!
|
||||
#
|
||||
JAVALIB =
|
||||
|
||||
#
|
||||
# Special rules.
|
||||
#
|
||||
clean::
|
||||
$(RM) -r $(CLASSHDRDIR)
|
||||
|
||||
clobber::
|
||||
$(RM) -r $(CLASSBINDIR)/java/io $(CLASSBINDIR)/java/lang \
|
||||
$(CLASSBINDIR)/java/security $(CLASSBINDIR)/java/util \
|
||||
$(CLASSBINDIR)/sun/misc
|
||||
|
||||
#
|
||||
# Additional rule from sun/net/GNUmakefile to copy content-type.properties
|
||||
# file so that the MimeTable class won't complain while bootstrapping...
|
||||
#
|
||||
PROPS = content-types.properties
|
||||
|
||||
#
|
||||
# Rule to copy calendars.properties file.
|
||||
#
|
||||
CAL_PROPS = calendars.properties
|
||||
|
||||
#
|
||||
# Rule to copy tzmappings file on Windows
|
||||
#
|
||||
ifeq ($(PLATFORM), windows)
|
||||
TZMAP = $(LIBDIR)/tzmappings
|
||||
TZMAPFILE = $(PLATFORM_SRC)/lib/tzmappings
|
||||
|
||||
$(TZMAP): $(TZMAPFILE)
|
||||
$(install-file)
|
||||
$(call chmod-file, 444)
|
||||
endif
|
||||
|
||||
build: $(LIBDIR)/$(PROPS) $(LIBDIR)/$(CAL_PROPS) $(TZMAP)
|
||||
|
||||
$(LIBDIR)/$(PROPS): $(PLATFORM_SRC)/lib/$(PROPS)
|
||||
$(install-file)
|
||||
|
||||
$(LIBDIR)/$(CAL_PROPS): $(SHARE_SRC)/lib/$(CAL_PROPS)
|
||||
$(install-file)
|
||||
|
||||
clean::
|
||||
$(RM) -r $(LIBDIR)/$(PROPS) $(TZMAP)
|
||||
|
||||
#
|
||||
# Rules to create lib/currency.data
|
||||
#
|
||||
|
||||
CURDATA = $(LIBDIR)/currency.data
|
||||
|
||||
build: $(CURDATA)
|
||||
|
||||
$(CURDATA): \
|
||||
$(BUILD_TOOLS) \
|
||||
$(SHARE_SRC)/classes/java/util/CurrencyData.properties
|
||||
$(RM) $(CURDATA)
|
||||
$(TOOL_GENERATECURRENCYDATA) -o $@.temp \
|
||||
< $(SHARE_SRC)/classes/java/util/CurrencyData.properties
|
||||
$(MV) $@.temp $@
|
||||
$(call chmod-file, 444)
|
||||
|
||||
clean::
|
||||
$(RM) $(CURDATA)
|
||||
|
||||
|
||||
#
|
||||
# Rules to generate classes/java/lang/uniName.dat
|
||||
#
|
||||
|
||||
|
||||
|
||||
UNINAME = $(CLASSBINDIR)/java/lang/uniName.dat
|
||||
|
||||
build: $(UNINAME)
|
||||
$(UNINAME): $(JDK_TOPDIR)/make/tools/UnicodeData/UnicodeData.txt \
|
||||
$(BUILD_TOOLS)
|
||||
@$(prep-target)
|
||||
$(TOOL_CHARACTERNAME) \
|
||||
$(JDK_TOPDIR)/make/tools/UnicodeData/UnicodeData.txt $(UNINAME)
|
||||
|
||||
clean::
|
||||
$(RM) $(UNINAME)
|
||||
|
||||
#
|
||||
# End of rules to create $(GENSRCDIR)/java/lang/CharacterDataXX.java
|
||||
#
|
||||
|
||||
#
|
||||
# Rule to precompile CoreResourceBundleControl.java
|
||||
#
|
||||
LOCALES_GEN_SH = localelist.sh
|
||||
|
||||
$(GENSRCDIR)/sun/util/CoreResourceBundleControl.java: \
|
||||
$(SHARE_SRC)/classes/sun/util/CoreResourceBundleControl-XLocales.java.template $(LOCALES_GEN_SH)
|
||||
@$(prep-target)
|
||||
NAWK="$(NAWK)" SED="$(SED)" $(SH) $(LOCALES_GEN_SH) "$(JRE_NONEXIST_LOCALES)" \
|
||||
$< $@
|
||||
clean::
|
||||
$(RM) $(GENSRCDIR)/sun/util/CoreResourceBundleControl.java
|
||||
|
||||
109
jdk/makefiles/java/java/localelist.sh
Normal file
109
jdk/makefiles/java/java/localelist.sh
Normal file
@ -0,0 +1,109 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# This script is to generate the supported locale list string and replace the
|
||||
# #LOCALE_LIST# in <ws>/src/share/classes/sun/util/CoreResourceBundleControl.java.
|
||||
#
|
||||
# NAWK & SED is passed in as environment variables.
|
||||
#
|
||||
LOCALE_LIST=$1
|
||||
INUT_FILE=$2
|
||||
OUTPUT_FILE=$3
|
||||
|
||||
LOCALES=`(for I in $LOCALE_LIST; do echo $I;done) | sort | uniq`
|
||||
JAVA_LOCALES=
|
||||
|
||||
toJavaLocale()
|
||||
{
|
||||
NewLocale=`echo $1 | $NAWK '
|
||||
BEGIN {
|
||||
# The following values have to be consistent with java.util.Locale.
|
||||
javalocales["en"] = "ENGLISH";
|
||||
javalocales["fr"] = "FRENCH";
|
||||
javalocales["de"] = "GERMAN";
|
||||
javalocales["it"] = "ITALIAN";
|
||||
javalocales["ja"] = "JAPANESE";
|
||||
javalocales["ko"] = "KOREAN";
|
||||
javalocales["zh"] = "CHINESE";
|
||||
javalocales["zh_CN"] = "SIMPLIFIED_CHINESE";
|
||||
javalocales["zh_TW"] = "TRADITIONAL_CHINESE";
|
||||
javalocales["fr_FR"] = "FRANCE";
|
||||
javalocales["de_DE"] = "GERMANY";
|
||||
javalocales["it_IT"] = "ITALY";
|
||||
javalocales["ja_JP"] = "JAPAN";
|
||||
javalocales["ko_KR"] = "KOREA";
|
||||
javalocales["en_GB"] = "UK";
|
||||
javalocales["en_US"] = "US";
|
||||
javalocales["en_CA"] = "CANADA";
|
||||
javalocales["fr_CA"] = "CANADA_FRENCH";
|
||||
}
|
||||
{
|
||||
if ($0 in javalocales) {
|
||||
print " Locale." javalocales[$0];
|
||||
} else {
|
||||
split($0, a, "_");
|
||||
if (a[3] != "") {
|
||||
print " new Locale(\"" a[1] "\", \"" a[2] "\", \"" a[3] "\")";
|
||||
} else if (a[2] != "") {
|
||||
print " new Locale(\"" a[1] "\", \"" a[2] "\")";
|
||||
} else {
|
||||
print " new Locale(\"" a[1] "\")";
|
||||
}
|
||||
}
|
||||
}'`
|
||||
|
||||
JAVA_LOCALES=$JAVA_LOCALES$NewLocale
|
||||
}
|
||||
|
||||
# count the number of locales
|
||||
counter=0
|
||||
for i in $LOCALES
|
||||
do
|
||||
counter=`expr $counter + 1`
|
||||
done
|
||||
|
||||
index=0
|
||||
for locale in $LOCALES
|
||||
do
|
||||
index=`expr $index + 1`;
|
||||
if [ $index != $counter ]
|
||||
then
|
||||
toJavaLocale $locale
|
||||
JAVA_LOCALES=$JAVA_LOCALES","
|
||||
else
|
||||
toJavaLocale $locale
|
||||
fi
|
||||
done
|
||||
|
||||
# replace the #LOCALE_LIST# in the precompiled CoreResourceBundleControl.java file.
|
||||
|
||||
$SED -e "s@^#warn .*@// -- This file was mechanically generated: Do not edit! -- //@" \
|
||||
-e "s/#LOCALE_LIST#/$JAVA_LOCALES/g" $2 > $3
|
||||
|
||||
|
||||
|
||||
300
jdk/makefiles/java/java/mapfile-vers
Normal file
300
jdk/makefiles/java/java/mapfile-vers
Normal file
@ -0,0 +1,300 @@
|
||||
#
|
||||
# Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
# Define public interface.
|
||||
|
||||
SUNWprivate_1.1 {
|
||||
global:
|
||||
JNI_OnLoad;
|
||||
JNU_ThrowNoSuchMethodException;
|
||||
JNU_CallStaticMethodByName;
|
||||
JNU_CallMethodByName;
|
||||
JNU_CallMethodByNameV;
|
||||
JNU_ClassClass;
|
||||
JNU_ClassObject;
|
||||
JNU_ClassString;
|
||||
JNU_ClassThrowable;
|
||||
JNU_CopyObjectArray;
|
||||
JNU_Equals;
|
||||
JNU_GetEnv;
|
||||
JNU_GetFieldByName;
|
||||
JNU_GetStaticFieldByName;
|
||||
JNU_GetStringPlatformChars;
|
||||
JNU_IsInstanceOfByName;
|
||||
JNU_MonitorWait;
|
||||
JNU_NewObjectByName;
|
||||
JNU_NewStringPlatform;
|
||||
JNU_Notify;
|
||||
JNU_NotifyAll;
|
||||
JNU_PrintClass;
|
||||
JNU_PrintString;
|
||||
JNU_ReleaseStringPlatformChars;
|
||||
JNU_SetFieldByName;
|
||||
JNU_SetStaticFieldByName;
|
||||
JNU_ThrowArrayIndexOutOfBoundsException;
|
||||
JNU_ThrowByName;
|
||||
JNU_ThrowByNameWithLastError;
|
||||
JNU_ThrowClassNotFoundException;
|
||||
JNU_ThrowIllegalAccessError;
|
||||
JNU_ThrowIllegalAccessException;
|
||||
JNU_ThrowIllegalArgumentException;
|
||||
JNU_ThrowInstantiationException;
|
||||
JNU_ThrowInternalError;
|
||||
JNU_ThrowIOException;
|
||||
JNU_ThrowIOExceptionWithLastError;
|
||||
JNU_ThrowNoSuchFieldError;
|
||||
JNU_ThrowNoSuchFieldException;
|
||||
JNU_ThrowNoSuchMethodError;
|
||||
JNU_ThrowNullPointerException;
|
||||
JNU_ThrowNumberFormatException;
|
||||
JNU_ThrowOutOfMemoryError;
|
||||
JNU_ThrowStringIndexOutOfBoundsException;
|
||||
JNU_ToString;
|
||||
|
||||
Java_java_io_FileDescriptor_initIDs;
|
||||
Java_java_io_FileDescriptor_sync;
|
||||
Java_java_io_FileInputStream_available;
|
||||
Java_java_io_FileInputStream_close0;
|
||||
Java_java_io_FileInputStream_initIDs;
|
||||
Java_java_io_FileInputStream_open;
|
||||
Java_java_io_FileInputStream_read;
|
||||
Java_java_io_FileInputStream_readBytes;
|
||||
Java_java_io_FileInputStream_skip;
|
||||
Java_java_io_FileOutputStream_close0;
|
||||
Java_java_io_FileOutputStream_initIDs;
|
||||
Java_java_io_FileOutputStream_open;
|
||||
Java_java_io_FileOutputStream_write;
|
||||
Java_java_io_FileOutputStream_writeBytes;
|
||||
Java_java_io_FileSystem_getFileSystem;
|
||||
Java_java_io_ObjectInputStream_bytesToDoubles;
|
||||
Java_java_io_ObjectInputStream_bytesToFloats;
|
||||
Java_java_io_ObjectOutputStream_doublesToBytes;
|
||||
Java_java_io_ObjectOutputStream_floatsToBytes;
|
||||
Java_java_io_ObjectStreamClass_hasStaticInitializer;
|
||||
Java_java_io_ObjectStreamClass_initNative;
|
||||
Java_java_io_RandomAccessFile_close0;
|
||||
Java_java_io_RandomAccessFile_getFilePointer;
|
||||
Java_java_io_RandomAccessFile_initIDs;
|
||||
Java_java_io_RandomAccessFile_length;
|
||||
Java_java_io_RandomAccessFile_open;
|
||||
Java_java_io_RandomAccessFile_read;
|
||||
Java_java_io_RandomAccessFile_readBytes;
|
||||
Java_java_io_RandomAccessFile_seek;
|
||||
Java_java_io_RandomAccessFile_setLength;
|
||||
Java_java_io_RandomAccessFile_write;
|
||||
Java_java_io_RandomAccessFile_writeBytes;
|
||||
Java_java_io_UnixFileSystem_canonicalize0;
|
||||
Java_java_io_UnixFileSystem_checkAccess;
|
||||
Java_java_io_UnixFileSystem_createDirectory;
|
||||
Java_java_io_UnixFileSystem_createFileExclusively;
|
||||
Java_java_io_UnixFileSystem_delete0;
|
||||
Java_java_io_UnixFileSystem_getBooleanAttributes0;
|
||||
Java_java_io_UnixFileSystem_getLastModifiedTime;
|
||||
Java_java_io_UnixFileSystem_getLength;
|
||||
Java_java_io_UnixFileSystem_getSpace;
|
||||
Java_java_io_UnixFileSystem_initIDs;
|
||||
Java_java_io_UnixFileSystem_list;
|
||||
Java_java_io_UnixFileSystem_rename0;
|
||||
Java_java_io_UnixFileSystem_setLastModifiedTime;
|
||||
Java_java_io_UnixFileSystem_setReadOnly;
|
||||
Java_java_io_UnixFileSystem_setPermission;
|
||||
Java_java_lang_Class_forName0;
|
||||
Java_java_lang_Class_getPrimitiveClass;
|
||||
Java_java_lang_Class_isAssignableFrom;
|
||||
Java_java_lang_Class_isInstance;
|
||||
Java_java_lang_Class_registerNatives;
|
||||
Java_java_lang_ClassLoader_findBootstrapClass;
|
||||
Java_java_lang_ClassLoader_defineClass0;
|
||||
Java_java_lang_ClassLoader_defineClass1;
|
||||
Java_java_lang_ClassLoader_defineClass2;
|
||||
Java_java_lang_ClassLoader_findLoadedClass0;
|
||||
Java_java_lang_ClassLoader_resolveClass0;
|
||||
Java_java_lang_ClassLoader_00024NativeLibrary_find;
|
||||
Java_java_lang_ClassLoader_00024NativeLibrary_load;
|
||||
Java_java_lang_ClassLoader_00024NativeLibrary_unload;
|
||||
Java_java_lang_ClassLoader_getCaller;
|
||||
Java_java_lang_ClassLoader_registerNatives;
|
||||
Java_java_lang_Compiler_registerNatives;
|
||||
Java_java_lang_Double_longBitsToDouble;
|
||||
Java_java_lang_Double_doubleToRawLongBits;
|
||||
Java_java_lang_reflect_Proxy_defineClass0;
|
||||
Java_java_lang_Shutdown_runAllFinalizers;
|
||||
Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
|
||||
Java_java_lang_Float_intBitsToFloat;
|
||||
Java_java_lang_Float_floatToRawIntBits;
|
||||
Java_java_lang_StrictMath_IEEEremainder;
|
||||
Java_java_lang_StrictMath_acos;
|
||||
Java_java_lang_StrictMath_asin;
|
||||
Java_java_lang_StrictMath_atan;
|
||||
Java_java_lang_StrictMath_atan2;
|
||||
Java_java_lang_StrictMath_cos;
|
||||
Java_java_lang_StrictMath_exp;
|
||||
Java_java_lang_StrictMath_log;
|
||||
Java_java_lang_StrictMath_log10;
|
||||
Java_java_lang_StrictMath_pow;
|
||||
Java_java_lang_StrictMath_sin;
|
||||
Java_java_lang_StrictMath_sqrt;
|
||||
Java_java_lang_StrictMath_cbrt;
|
||||
Java_java_lang_StrictMath_tan;
|
||||
Java_java_lang_StrictMath_cosh;
|
||||
Java_java_lang_StrictMath_sinh;
|
||||
Java_java_lang_StrictMath_tanh;
|
||||
Java_java_lang_StrictMath_hypot;
|
||||
Java_java_lang_StrictMath_log1p;
|
||||
Java_java_lang_StrictMath_expm1;
|
||||
Java_java_lang_Object_getClass;
|
||||
Java_java_lang_Object_registerNatives;
|
||||
Java_java_lang_Package_getSystemPackage0;
|
||||
Java_java_lang_Package_getSystemPackages0;
|
||||
Java_java_lang_ProcessEnvironment_environ;
|
||||
Java_java_lang_reflect_Array_get;
|
||||
Java_java_lang_reflect_Array_getBoolean;
|
||||
Java_java_lang_reflect_Array_getByte;
|
||||
Java_java_lang_reflect_Array_getChar;
|
||||
Java_java_lang_reflect_Array_getDouble;
|
||||
Java_java_lang_reflect_Array_getFloat;
|
||||
Java_java_lang_reflect_Array_getInt;
|
||||
Java_java_lang_reflect_Array_getLength;
|
||||
Java_java_lang_reflect_Array_getLong;
|
||||
Java_java_lang_reflect_Array_getShort;
|
||||
Java_java_lang_reflect_Array_multiNewArray;
|
||||
Java_java_lang_reflect_Array_newArray;
|
||||
Java_java_lang_reflect_Array_set;
|
||||
Java_java_lang_reflect_Array_setBoolean;
|
||||
Java_java_lang_reflect_Array_setByte;
|
||||
Java_java_lang_reflect_Array_setChar;
|
||||
Java_java_lang_reflect_Array_setDouble;
|
||||
Java_java_lang_reflect_Array_setFloat;
|
||||
Java_java_lang_reflect_Array_setInt;
|
||||
Java_java_lang_reflect_Array_setLong;
|
||||
Java_java_lang_reflect_Array_setShort;
|
||||
Java_java_lang_Runtime_freeMemory;
|
||||
Java_java_lang_Runtime_maxMemory;
|
||||
Java_java_lang_Runtime_gc;
|
||||
Java_java_lang_Runtime_runFinalization0;
|
||||
Java_java_lang_Runtime_totalMemory;
|
||||
Java_java_lang_Runtime_traceInstructions;
|
||||
Java_java_lang_Runtime_traceMethodCalls;
|
||||
Java_java_lang_Runtime_availableProcessors;
|
||||
Java_java_lang_SecurityManager_classDepth;
|
||||
Java_java_lang_SecurityManager_classLoaderDepth0;
|
||||
Java_java_lang_SecurityManager_currentClassLoader0;
|
||||
Java_java_lang_SecurityManager_currentLoadedClass0;
|
||||
Java_java_lang_SecurityManager_getClassContext;
|
||||
Java_java_lang_Shutdown_halt0;
|
||||
Java_java_lang_String_intern;
|
||||
Java_java_lang_System_identityHashCode;
|
||||
Java_java_lang_System_initProperties;
|
||||
Java_java_lang_System_mapLibraryName;
|
||||
Java_java_lang_System_registerNatives;
|
||||
Java_java_lang_System_setErr0;
|
||||
Java_java_lang_System_setIn0;
|
||||
Java_java_lang_System_setOut0;
|
||||
Java_java_lang_Thread_registerNatives;
|
||||
Java_java_lang_Throwable_fillInStackTrace;
|
||||
Java_java_lang_Throwable_getStackTraceDepth;
|
||||
Java_java_lang_Throwable_getStackTraceElement;
|
||||
Java_java_lang_UNIXProcess_initIDs;
|
||||
Java_java_lang_UNIXProcess_waitForProcessExit;
|
||||
Java_java_lang_UNIXProcess_forkAndExec;
|
||||
Java_java_lang_UNIXProcess_destroyProcess;
|
||||
Java_java_nio_Bits_copyFromShortArray;
|
||||
Java_java_nio_Bits_copyToShortArray;
|
||||
Java_java_nio_Bits_copyFromIntArray;
|
||||
Java_java_nio_Bits_copyToIntArray;
|
||||
Java_java_nio_Bits_copyFromLongArray;
|
||||
Java_java_nio_Bits_copyToLongArray;
|
||||
Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
|
||||
Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
|
||||
Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
|
||||
Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
|
||||
Java_java_security_AccessController_getStackAccessControlContext;
|
||||
Java_java_security_AccessController_getInheritedAccessControlContext;
|
||||
Java_java_sql_DriverManager_getCallerClassLoader;
|
||||
Java_java_util_ResourceBundle_getClassContext;
|
||||
Java_java_util_TimeZone_getSystemTimeZoneID;
|
||||
Java_java_util_TimeZone_getSystemGMTOffsetID;
|
||||
Java_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8;
|
||||
Java_java_util_prefs_FileSystemPreferences_chmod;
|
||||
Java_java_util_prefs_FileSystemPreferences_lockFile0;
|
||||
Java_java_util_prefs_FileSystemPreferences_unlockFile0;
|
||||
Java_java_util_logging_FileHandler_isSetUID;
|
||||
Java_sun_misc_MessageUtils_toStderr;
|
||||
Java_sun_misc_MessageUtils_toStdout;
|
||||
Java_sun_misc_NativeSignalHandler_handle0;
|
||||
Java_sun_misc_Signal_findSignal;
|
||||
Java_sun_misc_Signal_handle0;
|
||||
Java_sun_misc_Signal_raise0;
|
||||
Java_sun_reflect_ConstantPool_getClassAt0;
|
||||
Java_sun_reflect_ConstantPool_getClassAtIfLoaded0;
|
||||
Java_sun_reflect_ConstantPool_getDoubleAt0;
|
||||
Java_sun_reflect_ConstantPool_getFieldAt0;
|
||||
Java_sun_reflect_ConstantPool_getFieldAtIfLoaded0;
|
||||
Java_sun_reflect_ConstantPool_getFloatAt0;
|
||||
Java_sun_reflect_ConstantPool_getIntAt0;
|
||||
Java_sun_reflect_ConstantPool_getLongAt0;
|
||||
Java_sun_reflect_ConstantPool_getMemberRefInfoAt0;
|
||||
Java_sun_reflect_ConstantPool_getMethodAt0;
|
||||
Java_sun_reflect_ConstantPool_getMethodAtIfLoaded0;
|
||||
Java_sun_reflect_ConstantPool_getSize0;
|
||||
Java_sun_reflect_ConstantPool_getStringAt0;
|
||||
Java_sun_reflect_ConstantPool_getUTF8At0;
|
||||
Java_java_io_Console_istty;
|
||||
Java_java_io_Console_encoding;
|
||||
Java_java_io_Console_echo;
|
||||
Java_sun_misc_GC_maxObjectInspectionAge;
|
||||
Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
|
||||
Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
|
||||
Java_sun_reflect_Reflection_getCallerClass;
|
||||
Java_sun_reflect_Reflection_getClassAccessFlags;
|
||||
Java_sun_misc_Version_getJdkVersionInfo;
|
||||
Java_sun_misc_Version_getJdkSpecialVersion;
|
||||
Java_sun_misc_Version_getJvmVersionInfo;
|
||||
Java_sun_misc_Version_getJvmSpecialVersion;
|
||||
Java_sun_misc_VM_getThreadStateValues;
|
||||
Java_sun_misc_VM_latestUserDefinedLoader;
|
||||
Java_sun_misc_VM_initialize;
|
||||
Java_sun_misc_VMSupport_initAgentProperties;
|
||||
|
||||
# ZipFile.c needs this one
|
||||
throwFileNotFoundException;
|
||||
|
||||
# Java_sun_misc_VM_getState; threads.c
|
||||
# Java_sun_misc_VM_threadsSuspended; threads.c
|
||||
# Java_sun_misc_VM_unsuspendSomeThreads; threads.c
|
||||
# Java_sun_misc_VM_unsuspendThreads; threads.c
|
||||
|
||||
# Outcalls from libjvm done using dlsym().
|
||||
|
||||
VerifyClassCodes;
|
||||
VerifyClassCodesForMajorVersion;
|
||||
NewStringPlatform;
|
||||
GetStringPlatformChars;
|
||||
Canonicalize;
|
||||
JDK_GetVersionInfo0;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
61
jdk/makefiles/java/java/reflect/Makefile
Normal file
61
jdk/makefiles/java/java/reflect/Makefile
Normal file
@ -0,0 +1,61 @@
|
||||
#
|
||||
# Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# This code is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License version 2 only, as
|
||||
# published by the Free Software Foundation. Oracle designates this
|
||||
# particular file as subject to the "Classpath" exception as provided
|
||||
# by Oracle in the LICENSE file that accompanied this code.
|
||||
#
|
||||
# This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
# version 2 for more details (a copy is included in the LICENSE file that
|
||||
# accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License version
|
||||
# 2 along with this work; if not, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
# or visit www.oracle.com if you need additional information or have any
|
||||
# questions.
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for reflection and annotations
|
||||
#
|
||||
|
||||
BUILDDIR = ../../..
|
||||
PACKAGE = java.lang.reflect
|
||||
PRODUCT = java
|
||||
|
||||
include $(BUILDDIR)/common/Defs.gmk
|
||||
|
||||
#
|
||||
# Files to compile.
|
||||
#
|
||||
AUTO_FILES_JAVA_DIRS = java/lang/reflect sun/reflect
|
||||
|
||||
#
|
||||
# Install .lib file.
|
||||
#
|
||||
INSTALL_DOT_LIB = true
|
||||
|
||||
include $(BUILDDIR)/common/Classes.gmk
|
||||
|
||||
#
|
||||
# Special rules.
|
||||
#
|
||||
|
||||
subdirs: classes
|
||||
|
||||
clean::
|
||||
$(RM) -r $(CLASSHDRDIR)
|
||||
|
||||
clobber::
|
||||
$(RM) -r $(CLASSBINDIR)/java/lang/reflect \
|
||||
$(CLASSBINDIR)/java/lang/annotatation
|
||||
|
||||
.PHONY: clean clobber
|
||||
109
jdk/makefiles/java/java/reorder-i586
Normal file
109
jdk/makefiles/java/java/reorder-i586
Normal file
@ -0,0 +1,109 @@
|
||||
data = R0x2000;
|
||||
text = LOAD ?RXO;
|
||||
# Test Null
|
||||
text: .text%_init;
|
||||
text: .text%init64IO: OUTPUTDIR/tmp/java/java.lang/java/obj/UnixFileSystem_md.o;
|
||||
text: .text%JNI_OnLoad;
|
||||
text: .text%Canonicalize;
|
||||
text: .text%canonicalize;
|
||||
text: .text%collapse: OUTPUTDIR/tmp/java/java.lang/java/obj/canonicalize_md.o;
|
||||
text: .text%Java_java_lang_Object_registerNatives;
|
||||
text: .text%Java_java_lang_System_registerNatives;
|
||||
text: .text%Java_java_lang_Thread_registerNatives;
|
||||
text: .text%Java_java_security_AccessController_getStackAccessControlContext;
|
||||
text: .text%Java_java_security_AccessController_getInheritedAccessControlContext;
|
||||
text: .text%Java_java_lang_ClassLoader_registerNatives;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
|
||||
text: .text%Java_java_lang_Class_registerNatives;
|
||||
text: .text%Java_java_lang_Class_getPrimitiveClass;
|
||||
text: .text%Java_java_lang_System_initProperties;
|
||||
text: .text%GetJavaProperties;
|
||||
text: .text%uname: OUTPUTDIR/tmp/java/java.lang/java/obj/java_props_md.o;
|
||||
text: .text%mapLookup: OUTPUTDIR/tmp/java/java.lang/java/obj/java_props_md.o;
|
||||
text: .text%setPathEnvironment: OUTPUTDIR/tmp/java/java.lang/java/obj/java_props_md.o;
|
||||
text: .text%JNU_NewStringPlatform;
|
||||
text: .text%JNU_CallStaticMethodByName;
|
||||
text: .text%NewStringPlatform;
|
||||
text: .text%Java_java_io_FileInputStream_initIDs;
|
||||
text: .text%Java_java_io_FileDescriptor_initIDs;
|
||||
text: .text%Java_java_io_FileOutputStream_initIDs;
|
||||
text: .text%Java_java_lang_System_setIn0;
|
||||
text: .text%Java_sun_reflect_Reflection_getCallerClass;
|
||||
text: .text%Java_java_lang_Class_forName0;
|
||||
text: .text%Java_java_lang_String_intern;
|
||||
text: .text%Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
|
||||
text: .text%Java_java_lang_Throwable_fillInStackTrace;
|
||||
text: .text%Java_java_lang_System_setOut0;
|
||||
text: .text%Java_java_lang_System_setErr0;
|
||||
text: .text%Java_java_lang_Compiler_registerNatives;
|
||||
text: .text%Java_java_io_FileSystem_getFileSystem;
|
||||
text: .text%JNU_NewObjectByName;
|
||||
text: .text%Java_java_io_UnixFileSystem_initIDs;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
|
||||
text: .text%Java_java_io_UnixFileSystem_list;
|
||||
text: .text%JNU_GetStringPlatformChars;
|
||||
text: .text%JNU_ReleaseStringPlatformChars;
|
||||
text: .text%JNU_ClassString;
|
||||
text: .text%JNU_CopyObjectArray;
|
||||
text: .text%Java_java_io_UnixFileSystem_canonicalize;
|
||||
text: .text%Java_java_io_UnixFileSystem_getBooleanAttributes0;
|
||||
text: .text%Java_java_lang_ClassLoader_findLoadedClass;
|
||||
text: .text%Java_java_lang_ClassLoader_findBootstrapClass;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
|
||||
text: .text%Java_java_lang_System_mapLibraryName;
|
||||
text: .text%cpchars: OUTPUTDIR/tmp/java/java.lang/java/obj/System.o;
|
||||
text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_load;
|
||||
text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_find;
|
||||
text: .text%Java_java_lang_Float_floatToIntBits;
|
||||
text: .text%Java_java_lang_Double_doubleToLongBits;
|
||||
text: .text%Java_java_io_FileInputStream_open;
|
||||
text: .text%fileOpen;
|
||||
text: .text%Java_java_io_UnixFileSystem_getLength;
|
||||
text: .text%Java_java_io_FileInputStream_readBytes;
|
||||
text: .text%readBytes;
|
||||
text: .text%Java_java_io_FileInputStream_close0;
|
||||
text: .text%Java_java_lang_Object_getClass;
|
||||
text: .text%Java_java_lang_ClassLoader_defineClass0;
|
||||
text: .text%VerifyClassCodes;
|
||||
# Test Exit
|
||||
text: .text%Java_java_lang_Shutdown_halt;
|
||||
# Test Hello
|
||||
text: .text%Java_java_io_FileOutputStream_writeBytes;
|
||||
text: .text%writeBytes;
|
||||
# Test Sleep
|
||||
# Test IntToString
|
||||
# Test LoadToolkit
|
||||
text: .text%Java_java_util_ResourceBundle_getClassContext;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
|
||||
text: .text%JNU_GetEnv;
|
||||
text: .text%Java_java_io_UnixFileSystem_checkAccess;
|
||||
text: .text%Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
|
||||
text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
|
||||
text: .text%Java_java_io_FileInputStream_available;
|
||||
text: .text%Java_java_lang_reflect_Array_newArray;
|
||||
text: .text%Java_java_lang_Throwable_getStackTraceDepth;
|
||||
text: .text%Java_java_lang_Throwable_getStackTraceElement;
|
||||
text: .text%Java_java_lang_System_identityHashCode;
|
||||
text: .text%Java_sun_misc_Signal_findSignal;
|
||||
text: .text%Java_sun_misc_Signal_handle0;
|
||||
text: .text%JNU_NotifyAll;
|
||||
# Test LoadFrame
|
||||
text: .text%JNU_CallMethodByName;
|
||||
text: .text%JNU_CallMethodByNameV;
|
||||
text: .text%Java_java_util_logging_FileHandler_lockFile;
|
||||
text: .text%Java_java_io_FileOutputStream_open;
|
||||
text: .text%Java_java_io_UnixFileSystem_createDirectory;
|
||||
text: .text%Java_java_io_UnixFileSystem_getLastModifiedTime;
|
||||
text: .text%Java_java_util_prefs_FileSystemPreferences_lockFile0;
|
||||
text: .text%Java_java_io_UnixFileSystem_setLastModifiedTime;
|
||||
text: .text%Java_java_util_prefs_FileSystemPreferences_unlockFile0;
|
||||
text: .text%Java_java_io_FileOutputStream_close0;
|
||||
text: .text%Java_java_util_logging_FileHandler_unlockFile;
|
||||
# Test LoadJFrame
|
||||
text: .text%Java_java_lang_Class_isAssignableFrom;
|
||||
text: .text%Java_java_lang_Class_isInstance;
|
||||
# Test JHello
|
||||
# SwingSet
|
||||
text: .text%Java_java_util_TimeZone_getSystemTimeZoneID;
|
||||
text: .text%findJavaTZ_md;
|
||||
text: .text%Java_java_lang_StrictMath_log;
|
||||
107
jdk/makefiles/java/java/reorder-sparc
Normal file
107
jdk/makefiles/java/java/reorder-sparc
Normal file
@ -0,0 +1,107 @@
|
||||
data = R0x2000;
|
||||
text = LOAD ?RXO;
|
||||
# Test Null
|
||||
text: .text%init64IO: OUTPUTDIR/tmp/java/java.lang/java/obj/UnixFileSystem_md.o;
|
||||
text: .text%JNI_OnLoad;
|
||||
text: .text%Canonicalize;
|
||||
text: .text%canonicalize;
|
||||
text: .text%collapse: OUTPUTDIR/tmp/java/java.lang/java/obj/canonicalize_md.o;
|
||||
text: .text%Java_java_lang_Object_registerNatives;
|
||||
text: .text%Java_java_lang_System_registerNatives;
|
||||
text: .text%Java_java_lang_Thread_registerNatives;
|
||||
text: .text%Java_java_security_AccessController_getStackAccessControlContext;
|
||||
text: .text%Java_java_security_AccessController_getInheritedAccessControlContext;
|
||||
text: .text%Java_java_lang_ClassLoader_registerNatives;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2;
|
||||
text: .text%Java_java_lang_Class_registerNatives;
|
||||
text: .text%Java_java_io_ObjectStreamClass_initNative;
|
||||
text: .text%Java_java_lang_Class_getPrimitiveClass;
|
||||
text: .text%Java_java_lang_System_initProperties;
|
||||
text: .text%GetJavaProperties;
|
||||
text: .text%JNU_NewStringPlatform;
|
||||
text: .text%initializeEncoding: OUTPUTDIR/tmp/java/java.lang/java/obj/jni_util.o;
|
||||
text: .text%JNU_CallStaticMethodByName;
|
||||
text: .text%newString646_US: OUTPUTDIR/tmp/java/java.lang/java/obj/jni_util.o;
|
||||
text: .text%NewStringPlatform;
|
||||
text: .text%Java_java_io_FileInputStream_initIDs;
|
||||
text: .text%Java_java_io_FileDescriptor_initIDs;
|
||||
text: .text%Java_java_io_FileOutputStream_initIDs;
|
||||
text: .text%Java_java_lang_System_setIn0;
|
||||
text: .text%Java_sun_reflect_Reflection_getCallerClass;
|
||||
text: .text%Java_java_lang_Class_forName0;
|
||||
text: .text%Java_java_lang_Object_getClass;
|
||||
text: .text%Java_sun_reflect_Reflection_getClassAccessFlags;
|
||||
text: .text%Java_sun_reflect_NativeConstructorAccessorImpl_newInstance0;
|
||||
text: .text%Java_java_lang_System_setOut0;
|
||||
text: .text%Java_java_lang_System_setErr0;
|
||||
text: .text%Java_java_lang_System_identityHashCode;
|
||||
text: .text%Java_sun_misc_Signal_findSignal;
|
||||
text: .text%Java_sun_misc_Signal_handle0;
|
||||
text: .text%Java_java_io_FileSystem_getFileSystem;
|
||||
text: .text%JNU_NewObjectByName;
|
||||
text: .text%Java_java_io_UnixFileSystem_initIDs;
|
||||
text: .text%Java_java_io_UnixFileSystem_canonicalize;
|
||||
text: .text%JNU_GetStringPlatformChars;
|
||||
text: .text%JNU_ReleaseStringPlatformChars;
|
||||
text: .text%Java_java_io_FileInputStream_open;
|
||||
text: .text%fileOpen;
|
||||
text: .text%Java_java_io_FileInputStream_readBytes;
|
||||
text: .text%readBytes;
|
||||
text: .text%Java_java_io_FileInputStream_available;
|
||||
text: .text%Java_java_io_FileInputStream_close0;
|
||||
text: .text%Java_java_lang_System_mapLibraryName;
|
||||
text: .text%Java_java_io_UnixFileSystem_getBooleanAttributes0;
|
||||
text: .text%statMode: OUTPUTDIR/tmp/java/java.lang/java/obj/UnixFileSystem_md.o;
|
||||
text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_load;
|
||||
text: .text%Java_java_lang_Compiler_registerNatives;
|
||||
text: .text%Java_java_lang_ClassLoader_00024NativeLibrary_find;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2;
|
||||
text: .text%Java_java_io_UnixFileSystem_list;
|
||||
text: .text%JNU_ClassString;
|
||||
text: .text%JNU_CopyObjectArray;
|
||||
text: .text%Java_java_lang_String_intern;
|
||||
text: .text%Java_java_lang_ClassLoader_findLoadedClass;
|
||||
text: .text%Java_java_lang_ClassLoader_findBootstrapClass;
|
||||
text: .text%Java_java_lang_Throwable_fillInStackTrace;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedExceptionAction_2Ljava_security_AccessControlContext_2;
|
||||
text: .text%Java_java_io_UnixFileSystem_getLastModifiedTime;
|
||||
text: .text%Java_java_lang_Float_floatToIntBits;
|
||||
text: .text%Java_java_lang_Double_doubleToLongBits;
|
||||
text: .text%Java_java_io_UnixFileSystem_getLength;
|
||||
text: .text%Java_java_lang_ClassLoader_defineClass0;
|
||||
text: .text%VerifyClassCodes;
|
||||
# Test Exit
|
||||
text: .text%Java_java_lang_Shutdown_halt;
|
||||
# Test Hello
|
||||
text: .text%Java_java_io_FileOutputStream_writeBytes;
|
||||
text: .text%writeBytes;
|
||||
# Test Sleep
|
||||
# Test IntToString
|
||||
# Test LoadToolkit
|
||||
text: .text%Java_java_util_ResourceBundle_getClassContext;
|
||||
text: .text%Java_java_security_AccessController_doPrivileged__Ljava_security_PrivilegedAction_2Ljava_security_AccessControlContext_2;
|
||||
text: .text%JNU_GetEnv;
|
||||
text: .text%Java_java_io_UnixFileSystem_checkAccess;
|
||||
text: .text%Java_java_lang_reflect_Array_newArray;
|
||||
text: .text%Java_java_lang_Throwable_getStackTraceDepth;
|
||||
text: .text%Java_java_lang_Throwable_getStackTraceElement;
|
||||
text: .text%throwFileNotFoundException;
|
||||
text: .text%JNU_NotifyAll;
|
||||
# Test LoadFrame
|
||||
text: .text%Java_java_lang_ref_Finalizer_invokeFinalizeMethod;
|
||||
text: .text%JNU_CallMethodByName;
|
||||
text: .text%JNU_CallMethodByNameV;
|
||||
text: .text%Java_java_io_UnixFileSystem_createDirectory;
|
||||
text: .text%Java_java_util_prefs_FileSystemPreferences_lockFile0;
|
||||
text: .text%Java_java_io_UnixFileSystem_setLastModifiedTime;
|
||||
text: .text%Java_java_util_prefs_FileSystemPreferences_unlockFile0;
|
||||
# Test LoadJFrame
|
||||
text: .text%Java_sun_reflect_NativeMethodAccessorImpl_invoke0;
|
||||
text: .text%Java_java_lang_Class_isInstance;
|
||||
# Test JHello
|
||||
# SwingSet
|
||||
text: .text%Java_java_lang_Class_isAssignableFrom;
|
||||
text: .text%Java_java_util_TimeZone_getSystemTimeZoneID;
|
||||
text: .text%findJavaTZ_md;
|
||||
text: .text%Java_java_lang_StrictMath_log;
|
||||
text: .text%Java_java_lang_StrictMath_sqrt;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user