Initial load

This commit is contained in:
J. Duke 2007-12-01 00:00:00 +00:00
commit 686d76f772
25 changed files with 5860 additions and 0 deletions

3
.hgignore Normal file
View File

@ -0,0 +1,3 @@
^build/
^dist/
^nbproject/private/

27
ASSEMBLY_EXCEPTION Normal file
View File

@ -0,0 +1,27 @@
OPENJDK ASSEMBLY EXCEPTION
The OpenJDK source code made available by Sun at openjdk.java.net and
openjdk.dev.java.net ("OpenJDK Code") is distributed under the terms of the
GNU General Public License <http://www.gnu.org/copyleft/gpl.html> version 2
only ("GPL2"), with the following clarification and special exception.
Linking this OpenJDK Code statically or dynamically with other code
is making a combined work based on this library. Thus, the terms
and conditions of GPL2 cover the whole combination.
As a special exception, Sun gives you permission to link this
OpenJDK Code with certain code licensed by Sun as indicated at
http://openjdk.java.net/legal/exception-modules-2007-05-08.html
("Designated Exception Modules") to produce an executable,
regardless of the license terms of the Designated Exception Modules,
and to copy and distribute the resulting executable under GPL2,
provided that the Designated Exception Modules continue to be
governed by the licenses under which they were offered by Sun.
As such, it allows licensees and sublicensees of Sun's GPL2 OpenJDK Code to
build an executable that includes those portions of necessary code that Sun
could not provide under GPL2 (or that Sun has provided under GPL2 with the
Classpath exception). If you modify or add to the OpenJDK code, that new
GPL2 code may still be combined with Designated Exception Modules if the
new code is made subject to this exception by its copyright holder.

347
LICENSE Normal file
View File

@ -0,0 +1,347 @@
The GNU General Public License (GPL)
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share
and change it. By contrast, the GNU General Public License is intended to
guarantee your freedom to share and change free software--to make sure the
software is free for all its users. This General Public License applies to
most of the Free Software Foundation's software and to any other program whose
authors commit to using it. (Some other Free Software Foundation software is
covered by the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not price. Our
General Public Licenses are designed to make sure that you have the freedom to
distribute copies of free software (and charge for this service if you wish),
that you receive source code or can get it if you want it, that you can change
the software or use pieces of it in new free programs; and that you know you
can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny
you these rights or to ask you to surrender the rights. These restrictions
translate to certain responsibilities for you if you distribute copies of the
software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for
a fee, you must give the recipients all the rights that you have. You must
make sure that they, too, receive or can get the source code. And you must
show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2)
offer you this license which gives you legal permission to copy, distribute
and/or modify the software.
Also, for each author's protection and ours, we want to make certain that
everyone understands that there is no warranty for this free software. If the
software is modified by someone else and passed on, we want its recipients to
know that what they have is not the original, so that any problems introduced
by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We
wish to avoid the danger that redistributors of a free program will
individually obtain patent licenses, in effect making the program proprietary.
To prevent this, we have made it clear that any patent must be licensed for
everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification
follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice
placed by the copyright holder saying it may be distributed under the terms of
this General Public License. The "Program", below, refers to any such program
or work, and a "work based on the Program" means either the Program or any
derivative work under copyright law: that is to say, a work containing the
Program or a portion of it, either verbatim or with modifications and/or
translated into another language. (Hereinafter, translation is included
without limitation in the term "modification".) Each licensee is addressed as
"you".
Activities other than copying, distribution and modification are not covered by
this License; they are outside its scope. The act of running the Program is
not restricted, and the output from the Program is covered only if its contents
constitute a work based on the Program (independent of having been made by
running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as
you receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice and
disclaimer of warranty; keep intact all the notices that refer to this License
and to the absence of any warranty; and give any other recipients of the
Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may
at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all of
these conditions:
a) You must cause the modified files to carry prominent notices stating
that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of
this License.
c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the
most ordinary way, to print or display an announcement including an
appropriate copyright notice and a notice that there is no warranty (or
else, saying that you provide a warranty) and that users may redistribute
the program under these conditions, and telling the user how to view a copy
of this License. (Exception: if the Program itself is interactive but does
not normally print such an announcement, your work based on the Program is
not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which is a
work based on the Program, the distribution of the whole must be on the terms
of this License, whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on
the Program.
In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
distribution medium does not bring the other work under the scope of this
License.
3. You may copy and distribute the Program (or a work based on it, under
Section 2) in object code or executable form under the terms of Sections 1 and
2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source
code, which must be distributed under the terms of Sections 1 and 2 above
on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to
give any third party, for a charge no more than your cost of physically
performing source distribution, a complete machine-readable copy of the
corresponding source code, to be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to
distribute corresponding source code. (This alternative is allowed only
for noncommercial distribution and only if you received the program in
object code or executable form with such an offer, in accord with
Subsection b above.)
The source code for a work means the preferred form of the work for making
modifications to it. For an executable work, complete source code means all
the source code for all modules it contains, plus any associated interface
definition files, plus the scripts used to control compilation and installation
of the executable. However, as a special exception, the source code
distributed need not include anything that is normally distributed (in either
source or binary form) with the major components (compiler, kernel, and so on)
of the operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the source
code from the same place counts as distribution of the source code, even though
third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as
expressly provided under this License. Any attempt otherwise to copy, modify,
sublicense or distribute the Program is void, and will automatically terminate
your rights under this License. However, parties who have received copies, or
rights, from you under this License will not have their licenses terminated so
long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it.
However, nothing else grants you permission to modify or distribute the Program
or its derivative works. These actions are prohibited by law if you do not
accept this License. Therefore, by modifying or distributing the Program (or
any work based on the Program), you indicate your acceptance of this License to
do so, and all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program),
the recipient automatically receives a license from the original licensor to
copy, distribute or modify the Program subject to these terms and conditions.
You may not impose any further restrictions on the recipients' exercise of the
rights granted herein. You are not responsible for enforcing compliance by
third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues), conditions
are imposed on you (whether by court order, agreement or otherwise) that
contradict the conditions of this License, they do not excuse you from the
conditions of this License. If you cannot distribute so as to satisfy
simultaneously your obligations under this License and any other pertinent
obligations, then as a consequence you may not distribute the Program at all.
For example, if a patent license would not permit royalty-free redistribution
of the Program by all those who receive copies directly or indirectly through
you, then the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply and
the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or
other property right claims or to contest validity of any such claims; this
section has the sole purpose of protecting the integrity of the free software
distribution system, which is implemented by public license practices. Many
people have made generous contributions to the wide range of software
distributed through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing to
distribute software through any other system and a licensee cannot impose that
choice.
This section is intended to make thoroughly clear what is believed to be a
consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain
countries either by patents or by copyrighted interfaces, the original
copyright holder who places the Program under this License may add an explicit
geographical distribution limitation excluding those countries, so that
distribution is permitted only in or among countries not thus excluded. In
such case, this License incorporates the limitation as if written in the body
of this License.
9. The Free Software Foundation may publish revised and/or new versions of the
General Public License from time to time. Such new versions will be similar in
spirit to the present version, but may differ in detail to address new problems
or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any later
version", you have the option of following the terms and conditions either of
that version or of any later version published by the Free Software Foundation.
If the Program does not specify a version number of this License, you may
choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs
whose distribution conditions are different, write to the author to ask for
permission. For software which is copyrighted by the Free Software Foundation,
write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of
all derivatives of our free software and of promoting the sharing and reuse of
software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE
STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE,
YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible
use to the public, the best way to achieve this is to make it free software
which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach
them to the start of each source file to most effectively convey the exclusion
of warranty; and each file should have at least the "copyright" line and a
pointer to where the full notice is found.
One line to give the program's name and a brief idea of what it does.
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program 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 for
more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., 59
Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it
starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
software, and you are welcome to redistribute it under certain conditions;
type 'show c' for details.
The hypothetical commands 'show w' and 'show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may be
called something other than 'show w' and 'show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school,
if any, to sign a "copyright disclaimer" for the program, if necessary. Here
is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
'Gnomovision' (which makes passes at compilers) written by James Hacker.
signature of Ty Coon, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General Public
License instead of this License.
"CLASSPATH" EXCEPTION TO THE GPL
Certain source files distributed by Sun Microsystems, Inc. are subject to
the following clarification and special exception to the GPL, but only where
Sun has expressly included in the particular source file's header the words
"Sun designates this particular file as subject to the "Classpath" exception
as provided by Sun in the LICENSE file that accompanied this code."
Linking this library statically or dynamically with other modules is making
a combined work based on this library. Thus, the terms and conditions of
the GNU General Public License cover the whole combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,
and to copy and distribute the resulting executable under terms of your
choice, provided that you also meet, for each linked independent module,
the terms and conditions of the license of that module. An independent
module is a module which is not derived from or based on this library. If
you modify this library, you may extend this exception to your version of
the library, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version.

458
Makefile Normal file
View File

@ -0,0 +1,458 @@
#
# Copyright 1995-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
ifndef TOPDIR
TOPDIR:=$(shell \
if [ -r ./j2se/make/Makefile -o -r ./jdk/make/Makefile ]; then \
echo "."; \
else \
echo "../.."; \
fi)
endif
ifndef CONTROL_TOPDIR
CONTROL_TOPDIR=$(TOPDIR)/control
CONTROL_TOPDIR:=$(shell \
if [ -r $(TOPDIR)/control/make/Makefile ]; then \
echo "$(TOPDIR)/control"; \
else \
echo "$(TOPDIR)"; \
fi)
endif
ifndef JDK_TOPDIR
JDK_TOPDIR=$(TOPDIR)/jdk
endif
ifndef JDK_MAKE_SHARED_DIR
JDK_MAKE_SHARED_DIR=$(JDK_TOPDIR)/make/common/shared
endif
include $(JDK_MAKE_SHARED_DIR)/Defs-control.gmk
include ./make/Defs-internal.gmk
all::
@$(ECHO) $(PLATFORM) $(ARCH) $(RELEASE) build started: `$(DATE) '+%y-%m-%d %H:%M'`
# Rules for sanity checks
include ./make/sanity-rules.gmk
dev : dev-build
dev-build:
$(MAKE) DEV_ONLY=true all
dev-sanity:
$(MAKE) DEV_ONLY=true sanity
dev-clobber:
$(MAKE) DEV_ONLY=true clobber
# Rules for various components
include ./make/hotspot-rules.gmk
include ./make/langtools-rules.gmk
include ./make/corba-rules.gmk
include ./make/jaxp-rules.gmk
include ./make/jaxws-rules.gmk
include ./make/jdk-rules.gmk
include ./make/install-rules.gmk
include ./make/sponsors-rules.gmk
include ./make/deploy-rules.gmk
all:: setup build
setup:
$(MKDIR) -p $(OUTPUTDIR)/j2sdk-image
$(MKDIR) -p $(ABS_OUTPUTDIR)/j2sdk-image
$(MKDIR) -p $(OUTPUTDIR)-fastdebug/j2sdk-image
$(MKDIR) -p $(ABS_OUTPUTDIR)-fastdebug/j2sdk-image
build:: sanity
clobber::
ifeq ($(BUILD_LANGTOOLS), true)
build:: langtools
clobber:: langtools-clobber
endif
ifeq ($(BUILD_CORBA), true)
build:: corba
clobber:: corba-clobber
endif
ifeq ($(BUILD_JAXP), true)
build:: jaxp
clobber:: jaxp-clobber
endif
ifeq ($(BUILD_JAXWS), true)
build:: jaxws
clobber:: jaxws-clobber
endif
ifeq ($(BUILD_HOTSPOT), true)
build:: $(HOTSPOT)
clobber:: hotspot-clobber
endif
ifeq ($(BUILD_JDK), true)
build:: $(JDK_JAVA_EXE)
clobber:: jdk-clobber
endif
ifeq ($(BUILD_DEPLOY), true)
build:: $(DEPLOY)
clobber:: deploy-clobber
endif
#
# Generic debug build, fastdebug or debug. Needs special handling.
# Note that debug builds do NOT do INSTALL steps, but must be done
# after the product build and before the INSTALL step of the product build.
#
# DEBUG_NAME is fastdebug or debug
# ALT_OUTPUTDIR is changed to have -debug or -fastdebug suffix
# The resulting j2sdk-image is used by the install makefiles to create a
# debug install bundle jdk-*-debug-** bundle (tar or zip)
# which will install in the debug or fastdebug subdirectory of the
# normal product install area.
# The install process needs to know what the DEBUG_NAME is, so
# look for INSTALL_DEBUG_NAME in the install rules.
#
COMMON_DEBUG_FLAGS= \
DEBUG_NAME=$(DEBUG_NAME) \
ALT_OUTPUTDIR=$(_OUTPUTDIR)-$(DEBUG_NAME) \
NO_DOCS=true
product_build: setup
@$(ECHO) $@ build started: `$(DATE) '+%y-%m-%d %H:%M'`
$(MAKE) SKIP_FASTDEBUG_BUILD=true SKIP_DEBUG_BUILD=true all
@$(ECHO) $@ build finished: `$(DATE) '+%y-%m-%d %H:%M'`
generic_debug_build:
@$(ECHO) $@ build started: `$(DATE) '+%y-%m-%d %H:%M'`
$(MAKE) $(COMMON_DEBUG_FLAGS) setup build
@$(ECHO) $@ build finished: `$(DATE) '+%y-%m-%d %H:%M'`
debug_build: setup
$(MAKE) DEBUG_NAME=debug generic_debug_build
fastdebug_build: setup
$(MAKE) DEBUG_NAME=fastdebug generic_debug_build
ifeq ($(SKIP_FASTDEBUG_BUILD), false)
all:: fastdebug_build
endif
ifeq ($(SKIP_DEBUG_BUILD), false)
all:: debug_build
endif
ifeq ($(BUILD_JDK), true)
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
all:: openjdk-binary-plugs-bundles
endif
endif
ifeq ($(BUILD_INSTALL), true)
all :: $(INSTALL)
clobber:: install-clobber
endif
ifeq ($(BUILD_SPONSORS), true)
all :: $(SPONSORS)
clobber:: sponsors-clobber
endif
ifneq ($(SKIP_COMPARE_IMAGES), true)
all :: compare-image
endif
ifeq ($(SKIP_OPENJDK_BUILD), false)
ifeq ($(BUILD_JDK), true)
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
# If we have bundle rules, we have a chance here to do a complete cycle
# build, of closed and open build.
# FIXUP: We should create the openjdk source bundle and build that?
ABS_OPENJDK_PLUGS=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME)
ABS_OPENJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/openjdk
OPENJDK_BUILD_NAME_PREFIX \
= $(J2SDK_NAME)-$(JDK_MKTG_UNDERSCORE_VERSION)-$(MILESTONE)
OPENJDK_BUILD_NAME_SUFFIX \
= $(BUILD_NUMBER)-$(PLATFORM)-$(ARCH)-$(BUNDLE_DATE)
OPENJDK_BUILD_NAME \
= $(OPENJDK_BUILD_NAME_PREFIX)-openjdk-$(OPENJDK_BUILD_NAME_SUFFIX)
OPENJDK_BUILD_BINARY_ZIP \
= $(ABS_BIN_BUNDLEDIR)/$(OPENJDK_BUILD_NAME).zip
all :: openjdk-build
openjdk-build:
@$(ECHO) " "
@$(ECHO) "================================================="
@$(ECHO) "Starting openjdk build"
@$(ECHO) "================================================="
@$(ECHO) " "
$(RM) -r $(ABS_OPENJDK_OUTPUTDIR)
$(MKDIR) -p $(ABS_OPENJDK_OUTPUTDIR)
$(MAKE) OPENJDK=true \
BUILD_LANGTOOLS=$(BUILD_LANGTOOLS) \
BUILD_CORBA=$(BUILD_CORBA) \
BUILD_JAXP=$(BUILD_JAXP) \
BUILD_JAXWS=$(BUILD_JAXWS) \
BUILD_HOTSPOT=$(BUILD_HOTSPOT) \
ALT_OUTPUTDIR=$(ABS_OPENJDK_OUTPUTDIR) \
ALT_BINARY_PLUGS_PATH=$(ABS_OUTPUTDIR)/$(OPENJDK_BINARY_PLUGS_INAME) \
ALT_BOOTDIR=$(ABS_OUTPUTDIR)/j2sdk-image \
ALT_JDK_IMPORT_PATH=$(ABS_OUTPUTDIR)/j2sdk-image \
product_build
$(RM) $(OPENJDK_BUILD_BINARY_ZIP)
( $(CD) $(ABS_OPENJDK_OUTPUTDIR)/j2sdk-image && \
$(ZIPEXE) -q -r $(OPENJDK_BUILD_BINARY_ZIP) .)
$(RM) -r $(ABS_OPENJDK_OUTPUTDIR)
endif
endif
endif
clobber::
$(RM) -r $(OUTPUTDIR)/*
$(RM) -r $(OUTPUTDIR)-debug/*
$(RM) -r $(OUTPUTDIR)-fastdebug/*
-($(RMDIR) -p $(OUTPUTDIR) > $(DEV_NULL) 2>&1; $(TRUE))
clean: clobber
all::
@$(ECHO) Control build finished: `$(DATE) '+%y-%m-%d %H:%M'`
#
# Quick jdk verification build
#
jdk_only:
$(MAKE) SKIP_FASTDEBUG_BUILD=true BUILD_HOTSPOT=false all
#
# Quick jdk verification fastdebug build
#
jdk_fastdebug_only:
$(MAKE) DEBUG_NAME=fastdebug BUILD_HOTSPOT=false BUILD_DEPLOY=false \
BUILD_INSTALL=false BUILD_SPONSORS=false generic_debug_build
#
# Quick deploy verification fastdebug build
#
deploy_fastdebug_only:
$(MAKE) \
DEBUG_NAME=fastdebug \
BUILD_HOTSPOT=false \
BUILD_JDK=false \
BUILD_LANGTOOLS=false \
BUILD_CORBA=false \
BUILD_JAXP=false \
BUILD_JAXWS=false \
BUILD_INSTALL=false \
BUILD_SPONSORS=false \
generic_debug_build
#
# Product build (skip debug builds)
#
product_only:
$(MAKE) SKIP_FASTDEBUG_BUILD=true all
#
# Check target
#
check: variable_check
#
# Help target
#
help: intro_help target_help variable_help notes_help examples_help
# Intro help message
intro_help:
@$(ECHO) "\
Makefile for the JDK builds (all the JDK). \n\
"
# Target help
target_help:
@$(ECHO) "\
--- Common Targets --- \n\
all -- build the core JDK (default target) \n\
help -- Print out help information \n\
check -- Check make variable values for correctness \n\
sanity -- Perform detailed sanity checks on system and settings \n\
fastdebug_build -- build the core JDK in 'fastdebug' mode (-g -O) \n\
debug_build -- build the core JDK in 'debug' mode (-g) \n\
clean -- remove all built and imported files \n\
clobber -- same as clean \n\
"
# Variable help (only common ones used by this Makefile)
variable_help: variable_help_intro variable_list variable_help_end
variable_help_intro:
@$(ECHO) "--- Common Variables ---"
variable_help_end:
@$(ECHO) " "
# One line descriptions for the variables
OUTPUTDIR.desc = Output directory
PARALLEL_COMPILE_JOBS.desc = Solaris/Linux parallel compile run count
SLASH_JAVA.desc = Root of all build tools, e.g. /java or J:
BOOTDIR.desc = JDK used to boot the build
JDK_IMPORT_PATH.desc = JDK used to import components of the build
COMPILER_PATH.desc = Compiler install directory
CACERTS_FILE.desc = Location of certificates file
DEVTOOLS_PATH.desc = Directory containing zip and gnumake
CUPS_HEADERS_PATH.desc = Include directory location for CUPS header files
DXSDK_PATH.desc = Root directory of DirectX SDK
MSDEVTOOLS_PATH.desc = Root directory of VC++ tools (e.g. rc.exe)
MSVCRT_DLL_PATH.desc = Directory containing mscvrt.dll
# Make variables to print out (description and value)
VARIABLE_PRINTVAL_LIST += \
OUTPUTDIR \
PARALLEL_COMPILE_JOBS \
SLASH_JAVA \
BOOTDIR \
JDK_IMPORT_PATH \
COMPILER_PATH \
CACERTS_FILE \
DEVTOOLS_PATH
# Make variables that should refer to directories that exist
VARIABLE_CHECKDIR_LIST += \
SLASH_JAVA \
BOOTDIR \
JDK_IMPORT_PATH \
COMPILER_PATH \
DEVTOOLS_PATH
# Make variables that should refer to files that exist
VARIABLE_CHECKFIL_LIST += \
CACERTS_FILE
# Some are windows specific
ifeq ($(PLATFORM), windows)
VARIABLE_PRINTVAL_LIST += \
DXSDK_PATH \
MSDEVTOOLS_PATH \
MSVCRT_DLL_PATH
VARIABLE_CHECKDIR_LIST += \
DXSDK_PATH \
MSDEVTOOLS_PATH \
MSVCRT_DLL_PATH
endif
# For pattern rules below, so all are treated the same
DO_PRINTVAL_LIST=$(VARIABLE_PRINTVAL_LIST:%=%.printval)
DO_CHECKDIR_LIST=$(VARIABLE_CHECKDIR_LIST:%=%.checkdir)
DO_CHECKFIL_LIST=$(VARIABLE_CHECKFIL_LIST:%=%.checkfil)
# Complete variable check
variable_check: $(DO_CHECKDIR_LIST) $(DO_CHECKFIL_LIST)
variable_list: $(DO_PRINTVAL_LIST) variable_check
# Pattern rule for printing out a variable
%.printval:
@$(ECHO) " ALT_$* - $($*.desc)"
@$(ECHO) " \t $*=$($*)"
# Pattern rule for checking to see if a variable with a directory exists
%.checkdir:
@if [ ! -d $($*) ] ; then \
$(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
fi
# Pattern rule for checking to see if a variable with a file exists
%.checkfil:
@if [ ! -f $($*) ] ; then \
$(ECHO) "WARNING: $* does not exist, try $(MAKE) sanity"; \
fi
# Misc notes on help
notes_help:
@$(ECHO) "\
--- Notes --- \n\
- All builds use same output directory unless overridden with \n\
\t ALT_OUTPUTDIR=<dir>, changing from product to fastdebug you may want \n\
\t to use the clean target first. \n\
- JDK_IMPORT_PATH must refer to a compatible build, not all past promoted \n\
\t builds or previous release JDK builds will work. \n\
- The fastest builds have been when the sources and the BOOTDIR are on \n\
\t local disk. \n\
"
examples_help:
@$(ECHO) "\
--- Examples --- \n\
$(MAKE) fastdebug_build \n\
$(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
$(MAKE) ALT_OUTPUTDIR=/tmp/foobar fastdebug_build \n\
$(MAKE) ALT_OUTPUTDIR=/tmp/foobar all \n\
$(MAKE) ALT_BOOTDIR=/opt/java/jdk1.5.0 \n\
$(MAKE) ALT_JDK_IMPORT_PATH=/opt/java/jdk1.6.0 \n\
"
################################################################
# Source and binary plug bundling
################################################################
ifeq ($(BUNDLE_RULES_AVAILABLE), true)
include $(BUNDLE_RULES)
endif
################################################################
# Cycle build. Build the jdk, use it to build the jdk again.
################################################################
ABS_BOOTJDK_OUTPUTDIR=$(ABS_OUTPUTDIR)/bootjdk
boot_cycle:
$(MAKE) ALT_OUTPUTDIR=$(ABS_BOOTJDK_OUTPUTDIR) product_build
$(MAKE) ALT_BOOTDIR=$(ABS_BOOTJDK_OUTPUTDIR)/j2sdk-image product_build
################################################################
# JPRT rule to build
################################################################
include ./make/jprt.gmk
################################################################
# PHONY
################################################################
.PHONY: all build what clobber insane \
fastdebug_build debug_build product_build setup \
dev dev-build dev-sanity dev-clobber
# FIXUP: Old j2se targets
j2se_fastdebug_only: jdk_fastdebug_only
j2se_only: jdk_only

31
README Normal file
View File

@ -0,0 +1,31 @@
README:
This file should be located at the top of the OpenJDK Mercurial repository
forest. This top or enclosing repository will include a "make" directory,
and a Makefile at the very top of the repository.
It should also include the 6 repositories: "jdk", "hotspot", "langtools",
"corba", "jaxws" and "jaxp".
See http://openjdk.java.net/ for more information about the OpenJDK.
Simple Build Instructions:
1. Download and install a JDK 6 from
http://java.sun.com/javase/downloads/index.jsp
Set the environment variable ALT_BOOTDIR to the location of this JDK 6.
2. Download and install the Binary Plugs for the most recent JDK7 from
http://download.java.net/openjdk/jdk7/
Set the environment variable ALT_BINARY_PLUGS_PATH to the location of
these binary plugs.
3. Check the sanity of doing a build with the current machine:
gnumake sanity
See README-builds.html if you run into problems.
4. Do a complete build of the jdk:
gnumake all
The resulting JDK image should be found in build/*/j2sdk-image
where gnumake is GNU make 3.78.1 or newer, /usr/bin/make on Linux and
/usr/sfw/bin/gmake or /opt/sfw/bin/gmake on Solaris.

1452
README-builds.html Normal file

File diff suppressed because it is too large Load Diff

1616
THIRD_PARTY_README Normal file

File diff suppressed because it is too large Load Diff

254
make/Defs-internal.gmk Normal file
View File

@ -0,0 +1,254 @@
#
# Copyright 1995-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
#
# Common variables used by all the Java makefiles. This file should
# not contain rules.
#
# Define absolute paths to TOPDIRs
ABS_CONTROL_TOPDIR:=$(call OptFullPath,"$(CONTROL_TOPDIR)")
ABS_LANGTOOLS_TOPDIR:=$(call OptFullPath,"$(LANGTOOLS_TOPDIR)")
ABS_CORBA_TOPDIR:=$(call OptFullPath,"$(CORBA_TOPDIR)")
ABS_JAXP_TOPDIR:=$(call OptFullPath,"$(JAXP_TOPDIR)")
ABS_JAXWS_TOPDIR:=$(call OptFullPath,"$(JAXWS_TOPDIR)")
ABS_JDK_TOPDIR:=$(call OptFullPath,"$(JDK_TOPDIR)")
ABS_HOTSPOT_TOPDIR:=$(call OptFullPath,"$(HOTSPOT_TOPDIR)")
ABS_INSTALL_TOPDIR:=$(call OptFullPath,"$(INSTALL_TOPDIR)")
ABS_SPONSORS_TOPDIR:=$(call OptFullPath,"$(SPONSORS_TOPDIR)")
ABS_DEPLOY_TOPDIR:=$(call OptFullPath,"$(DEPLOY_TOPDIR)")
# Macro to return true or false if a file exists and is readable
define MkExists
$(shell if [ -r $1 ]; then $(ECHO) true; else $(ECHO) false; fi)
endef
HOTSPOT_SRC_AVAILABLE := $(call MkExists,$(HOTSPOT_TOPDIR)/make/Makefile)
ifndef BUILD_HOTSPOT
ifdef ALT_HOTSPOT_IMPORT_PATH
BUILD_HOTSPOT := false
else
BUILD_HOTSPOT := $(HOTSPOT_SRC_AVAILABLE)
endif
endif
LANGTOOLS_SRC_AVAILABLE := $(call MkExists,$(LANGTOOLS_TOPDIR)/make/Makefile)
ifndef BUILD_LANGTOOLS
ifdef ALT_LANGTOOLS_DIST
BUILD_LANGTOOLS := false
else
BUILD_LANGTOOLS := $(LANGTOOLS_SRC_AVAILABLE)
endif
endif
CORBA_SRC_AVAILABLE := $(call MkExists,$(CORBA_TOPDIR)/make/Makefile)
ifndef BUILD_CORBA
ifdef ALT_CORBA_DIST
BUILD_CORBA := false
else
BUILD_CORBA := $(CORBA_SRC_AVAILABLE)
endif
endif
JAXP_SRC_AVAILABLE := $(call MkExists,$(JAXP_TOPDIR)/make/Makefile)
ifndef BUILD_JAXP
ifdef ALT_JAXP_DIST
BUILD_JAXP := false
else
BUILD_JAXP := $(JAXP_SRC_AVAILABLE)
endif
endif
JAXWS_SRC_AVAILABLE := $(call MkExists,$(JAXWS_TOPDIR)/make/Makefile)
ifndef BUILD_JAXWS
ifdef ALT_JAXWS_DIST
BUILD_JAXWS := false
else
BUILD_JAXWS := $(JAXWS_SRC_AVAILABLE)
endif
endif
JDK_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/make/Makefile)
ifndef BUILD_JDK
BUILD_JDK := $(JDK_SRC_AVAILABLE)
endif
ifeq ($(JDK_SRC_AVAILABLE),true)
JDK_CLOSED_SRC_AVAILABLE := $(call MkExists,$(JDK_TOPDIR)/src/closed)
ifndef OPENJDK
ifeq ($(JDK_CLOSED_SRC_AVAILABLE),false)
OPENJDK = true
endif
endif
endif
DEPLOY_SRC_AVAILABLE := $(call MkExists,$(DEPLOY_TOPDIR)/make/Makefile)
ifndef BUILD_DEPLOY
BUILD_DEPLOY := $(DEPLOY_SRC_AVAILABLE)
endif
INSTALL_SRC_AVAILABLE := $(call MkExists,$(INSTALL_TOPDIR)/make/Makefile)
ifndef BUILD_INSTALL
ifdef DEV_ONLY
BUILD_INSTALL := false
else
BUILD_INSTALL := $(INSTALL_SRC_AVAILABLE)
endif
endif
SPONSORS_SRC_AVAILABLE := $(call MkExists,$(SPONSORS_TOPDIR)/make/Makefile)
ifndef BUILD_SPONSORS
ifdef DEV_ONLY
BUILD_SPONSORS := false
else
BUILD_SPONSORS := $(SPONSORS_SRC_AVAILABLE)
endif
endif
# Do we build the source and openjdk binary plug bundles?
BUNDLE_RULES = $(JDK_TOPDIR)/make/closed/bundles.gmk
BUNDLE_RULES_AVAILABLE := $(call MkExists,$(BUNDLE_RULES))
# Current things we do NOT build for OPENJDK
ifdef OPENJDK
BUILD_DEPLOY = false
BUILD_INSTALL = false
BUILD_SPONSORS = false
BUNDLE_RULES_AVAILABLE := false
# These could be over-ridden on the command line or in environment
ifndef SKIP_FASTDEBUG_BUILD
SKIP_FASTDEBUG_BUILD = true
endif
ifndef SKIP_DEBUG_BUILD
SKIP_DEBUG_BUILD = true
endif
ifndef SKIP_COMPARE_IMAGES
SKIP_COMPARE_IMAGES = true
endif
SKIP_OPENJDK_BUILD = true
else
ifndef SKIP_OPENJDK_BUILD
SKIP_OPENJDK_BUILD = false
# FIXUP: until freetype fixed on linux and solaris rmi build fixed
SKIP_OPENJDK_BUILD = true
endif
endif
# Solaris 64 bit builds are not complete enough to ever do this
ifeq ($(PLATFORM)$(ARCH_DATA_MODEL),solaris64)
SKIP_OPENJDK_BUILD = true
endif
# Many reasons why we would want to skip the comparison to previous jdk
ifndef SKIP_COMPARE_IMAGES
ifeq ($(BUILD_JDK), false)
SKIP_COMPARE_IMAGES = true
endif
ifeq ($(BUILD_DEPLOY), false)
SKIP_COMPARE_IMAGES = true
endif
ifeq ($(BUILD_INSTALL), false)
SKIP_COMPARE_IMAGES = true
endif
ifdef DEV_ONLY
SKIP_COMPARE_IMAGES = true
endif
endif
# Select defaults if these are not set to true or false
ifndef SKIP_DEBUG_BUILD
SKIP_DEBUG_BUILD=true
endif
ifndef SKIP_FASTDEBUG_BUILD
SKIP_FASTDEBUG_BUILD=false
endif
# Output directory for hotspot build
HOTSPOT_DIR = $(ABS_OUTPUTDIR)/hotspot
# If we are building components
ifndef ALT_LANGTOOLS_DIST
LANGTOOLS_OUTPUTDIR = $(ABS_OUTPUTDIR)/langtools
ABS_LANGTOOLS_DIST = $(LANGTOOLS_OUTPUTDIR)/dist
endif
ifndef ALT_CORBA_DIST
CORBA_OUTPUTDIR = $(ABS_OUTPUTDIR)/corba
ABS_CORBA_DIST = $(CORBA_OUTPUTDIR)/dist
endif
ifndef ALT_JAXP_DIST
JAXP_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxp
ABS_JAXP_DIST = $(JAXP_OUTPUTDIR)/dist
endif
ifndef ALT_JAXWS_DIST
JAXWS_OUTPUTDIR = $(ABS_OUTPUTDIR)/jaxws
ABS_JAXWS_DIST = $(JAXWS_OUTPUTDIR)/dist
endif
# Common make arguments (supplied to all component builds)
COMMON_BUILD_ARGUMENTS = \
JDK_TOPDIR=$(ABS_JDK_TOPDIR) \
JDK_MAKE_SHARED_DIR=$(ABS_JDK_TOPDIR)/make/common/shared \
EXTERNALSANITYCONTROL=true \
TARGET_CLASS_VERSION=$(TARGET_CLASS_VERSION) \
MILESTONE=$(MILESTONE) \
BUILD_NUMBER=$(BUILD_NUMBER) \
JDK_BUILD_NUMBER=$(JDK_BUILD_NUMBER) \
FULL_VERSION=$(FULL_VERSION) \
PREVIOUS_JDK_VERSION=$(PREVIOUS_JDK_VERSION) \
JDK_VERSION=$(JDK_VERSION) \
JDK_MKTG_VERSION=$(JDK_MKTG_VERSION) \
JDK_MAJOR_VERSION=$(JDK_MAJOR_VERSION) \
JDK_MINOR_VERSION=$(JDK_MINOR_VERSION) \
JDK_MICRO_VERSION=$(JDK_MICRO_VERSION)
ifdef ARCH_DATA_MODEL
COMMON_BUILD_ARGUMENTS += ARCH_DATA_MODEL=$(ARCH_DATA_MODEL)
endif
ifeq ($(DEBUG_NAME), debug)
COMMON_BUILD_ARGUMENTS += VARIANT=DBG DEBUG_CLASSFILES=true
endif
ifeq ($(DEBUG_NAME), fastdebug)
COMMON_BUILD_ARGUMENTS += VARIANT=DBG FASTDEBUG=true DEBUG_CLASSFILES=true
endif
ifdef COOKED_JDK_UPDATE_VERSION
COMMON_BUILD_ARGUMENTS += COOKED_JDK_UPDATE_VERSION=$(COOKED_JDK_UPDATE_VERSION)
endif
ifdef COOKED_BUILD_NUMBER
COMMON_BUILD_ARGUMENTS += COOKED_BUILD_NUMBER=$(COOKED_BUILD_NUMBER)
endif
ifdef ANT_HOME
COMMON_BUILD_ARGUMENTS += ANT_HOME="$(ANT_HOME)"
endif
ifdef FINDBUGS_HOME
COMMON_BUILD_ARGUMENTS += FINDBUGS_HOME="$(FINDBUGS_HOME)"
endif

View File

@ -0,0 +1,42 @@
README-pre-components:
---------------------
Current pre-components are langtools, jaxws, jaxp, and corba.
Pre-components can use ant to build but must have a make/Makefile for
building (a GNU make Makefile).
All ant knowledge is being isolated in the workspaces that use it.
Also for various reasons it is nice to have a Makefile wrapper over the
running of ant, but in general having to do
anything with shell commands is much easier to do in a Makefile
than in an ant script.
The make/makefile rules are:
Variables:
ALT_BOOTDIR The jdk home to use to build, if provided
ALT_LANGTOOLS_DIST The dist area from a langtools build to use, if provided
ALT_OUTPUTDIR Parent dir of build and dist directories, if provided
VARIANT If DBG, debug build, if OPT, optimized build
TARGET_CLASS_VERSION The classfile version number (currently 5)
ANT_HOME Home of ant to use, if provided
FINDBUGS_HOME Home of findbugs to use, if provided
QUIET If defined, be quiet
VERBOSE If defined, be verbose
JDK_VERSION Version being built
FULL_VERSION Full version string for this jdk build
MILESTONE fcs, beta, internal or empty
BUILD_NUMBER Number of the jdk build
JPRT_ARCHIVE_BUNDLE Path to zip bundle to create for JPRT
Targets:
all Build everything, including dist
build Build build area
clean Clean up
clobber Same as clean (don't ask)
sanity Perform any sanity checks, exit non-zero if errors
jprt_build_product JPRT product build, zip results into JPRT_ARCHIVE_BUNDLE
jprt_build_debug JPRT debug build, zip results into JPRT_ARCHIVE_BUNDLE
jprt_build_fastdebug JPRT fastdebug build, zip results into JPRT_ARCHIVE_BUNDLE
Then of course we expect a dist/lib/classes.jar, dist/lib/src.zip and dist/lib/bin.zip.

52
make/corba-rules.gmk Normal file
View File

@ -0,0 +1,52 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# CORBA TARGETS
################################################################
CORBA_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(CORBA_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
CORBA_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
corba: corba-build
corba-build:
$(MKDIR) -p $(CORBA_OUTPUTDIR)
($(CD) $(CORBA_TOPDIR)/make && \
$(MAKE) $(CORBA_BUILD_ARGUMENTS) all)
corba-clobber::
$(MKDIR) -p $(CORBA_OUTPUTDIR)
($(CD) $(CORBA_TOPDIR)/make && \
$(MAKE) $(CORBA_BUILD_ARGUMENTS) clobber)
.PHONY: corba corba-build corba-clobber

107
make/deploy-rules.gmk Normal file
View File

@ -0,0 +1,107 @@
#
# Copyright 2002-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# DEPLOY TARGETS
################################################################
ifeq ($(ARCH_DATA_MODEL), 32)
deploy: deploy-build
else
deploy:
endif
DEPLOY = deploy
# put the generated bundles in their own place in OUTPUTDIR
DEPLOY_OUTPUTDIR = $(ABS_OUTPUTDIR)
# NO_IMAGES may be set in conjunction with DEV_ONLY
ifdef NO_IMAGES
IMAGES_TARGET =
else
IMAGES_TARGET = images
endif
DEPLOY_BUILD_TARGETS = sanity javaws-all plugin-all
ifndef DEV_ONLY
DEPLOY_BUILD_TARGETS += images
else
DEPLOY_BUILD_TARGETS += $(IMAGES_TARGET)
endif
DEPLOY_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(DEPLOY_OUTPUTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
DEPLOY_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
ifdef ALT_IMAGE_DIR
DEPLOY_BUILD_ARGUMENTS += ALT_IMAGE_DIR=$(ALT_IMAGE_DIR)
endif
ifdef ALT_BUNDLE_DATE
DEPLOY_BUILD_ARGUMENTS += ALT_BUNDLE_DATE=$(ALT_BUNDLE_DATE)
endif
ifdef ALT_JAVAWS_BOOTDIR
DEPLOY_BUILD_ARGUMENTS += ALT_JAVAWS_BOOTDIR=$(ALT_JAVAWS_BOOTDIR)
endif
ifdef CERT
DEPLOY_BUILD_ARGUMENTS += CERT=$(CERT)
endif
ifdef PKEY
DEPLOY_BUILD_ARGUMENTS += PKEY=$(PKEY)
endif
deploy-build:
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(BUILD_DEPLOY), true)
($(CD) $(DEPLOY_TOPDIR)/make && \
$(MAKE) $(DEPLOY_BUILD_TARGETS) $(DEPLOY_BUILD_ARGUMENTS))
endif
endif
deploy-clobber::
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(BUILD_DEPLOY), true)
($(CD) $(DEPLOY_TOPDIR)/make && \
$(MAKE) clobber $(DEPLOY_BUILD_ARGUMENTS))
endif
endif
deploy-sanity::
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(BUILD_DEPLOY), true)
($(CD) $(DEPLOY_TOPDIR)/make && \
$(MAKE) sanity $(DEPLOY_BUILD_ARGUMENTS))
endif
endif
.PHONY: deploy deploy-build deploy-clobber deploy-sanity

98
make/hotspot-rules.gmk Normal file
View File

@ -0,0 +1,98 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# HOTSPOT TARGETS
################################################################
# All the output from a hotspot build should be re-located to the
# build output area.
#
HOTSPOT_OUTPUTDIR = $(HOTSPOT_DIR)/outputdir
# HOTSPOT_EXPORT_PATH points to a dir that contains files
# that are needed in an SDK build, in the same relative positions as
# these files are in an SDK image.
# The SDK java/redist/Makefile will copy files from HOTSPOT_EXPORT_PATH
# into the SDK being built.
# This is the export path supplied to the hotspot makefiles.
#
HOTSPOT_EXPORT_PATH = $(HOTSPOT_DIR)/import
# Default targets
HOTSPOT = hotspot-sanity hotspot-build
hotspot:: $(HOTSPOT)
# Hotspot clobber removes the output directory and exported files
hotspot-clobber::
$(RM) -r $(HOTSPOT_OUTPUTDIR)
$(RM) -r $(HOTSPOT_EXPORT_PATH)
hotspot-sanity::
@$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
@$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
@$(ECHO) "Hotspot Settings: \n" \
" HOTSPOT_BUILD_JOBS = $(HOTSPOT_BUILD_JOBS) \n" \
" HOTSPOT_OUTPUTDIR = $(HOTSPOT_OUTPUTDIR) \n" \
" HOTSPOT_EXPORT_PATH = $(HOTSPOT_EXPORT_PATH) \n" \
"\n" >> $(MESSAGE_FILE)
#
# Basic hotspot build and export of it's files
#
HOTSPOT_TARGET = all_product
ifeq ($(DEBUG_NAME), debug)
HOTSPOT_TARGET = all_debug
endif
ifeq ($(DEBUG_NAME), fastdebug)
HOTSPOT_TARGET = all_fastdebug
endif
HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
HOTSPOT_BUILD_ARGUMENTS += ALT_EXPORT_PATH=$(HOTSPOT_EXPORT_PATH)
# Why do these need to be passed in? Because of windows nmake? and MAKEFLAGS=?
# Or is there something wrong with hotspot/make/Makefile?
HOTSPOT_BUILD_ARGUMENTS += ALT_SLASH_JAVA=$(SLASH_JAVA)
HOTSPOT_BUILD_ARGUMENTS += ALT_BOOTDIR=$(BOOTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
HOTSPOT_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
hotspot-build::
$(MKDIR) -p $(HOTSPOT_OUTPUTDIR)
$(MKDIR) -p $(HOTSPOT_EXPORT_PATH)
$(CD) $(HOTSPOT_TOPDIR)/make && \
$(MAKE) $(HOTSPOT_BUILD_ARGUMENTS) $(HOTSPOT_TARGET)
#####################
# .PHONY
#####################
.PHONY: hotspot-build hotspot-clobber hotspot-sanity

105
make/install-rules.gmk Normal file
View File

@ -0,0 +1,105 @@
#
# Copyright 2002-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# INSTALL TARGETS
################################################################
install: install-build
# The generated java files are generated as a set, so instead of
# setting the INSTALL variable to that list of files, set it to
# the .PHONY target that generates the set of files.
INSTALL = install
# put the generated patch in their own place in OUTPUTDIR
INSTALL_OUTPUTDIR = $(ABS_OUTPUTDIR)
INSTALL_DEBUG_NAME=fastdebug
INSTALL_BUILD_TARGETS = sanity all
INSTALL_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(INSTALL_OUTPUTDIR) \
ALT_RTPATCH_DIR=$(ALT_RTPATCH_DIR) \
ALT_BASE_IMAGE_ZIP=$(ALT_BASE_IMAGE_ZIP) \
ALT_BASE_IMAGE_DIR=$(ALT_BASE_IMAGE_DIR) \
ALT_NEW_IMAGE_DIR=$(ALT_NEW_IMAGE_DIR) \
ALT_BUNDLE_DATE=$(BUNDLE_DATE) \
INSTALL_DEBUG_NAME=$(INSTALL_DEBUG_NAME)
ifeq ($(BUILD_LANGTOOLS), true)
INSTALL_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
install: install-build
install-build:
ifeq ($(BUILD_INSTALL), true)
($(CD) $(INSTALL_TOPDIR)/make && \
$(MAKE) $(INSTALL_BUILD_TARGETS) $(INSTALL_BUILD_ARGUMENTS))
endif
update-patcher:
ifeq ($(BUILD_INSTALL), true)
if [ -r $(INSTALL_TOPDIR)/make/update/Makefile ]; then \
( $(CD) $(INSTALL_TOPDIR)/make/update && \
$(MAKE) all $(INSTALL_BUILD_ARGUMENTS) ); \
fi
endif
update-patchgen:
ifeq ($(BUILD_INSTALL), true)
if [ -r $(INSTALL_TOPDIR)/make/update/Makefile ]; then \
( $(CD) $(INSTALL_TOPDIR)/make/update && \
$(MAKE) patchgen $(INSTALL_BUILD_ARGUMENTS) ); \
fi
endif
installer:
ifeq ($(BUILD_INSTALL), true)
if [ -r $(INSTALL_TOPDIR)/make/installer/Makefile ]; then \
( $(CD) $(INSTALL_TOPDIR)/make/installer && \
$(MAKE) all $(INSTALL_BUILD_ARGUMENTS) ); \
fi
endif
install-clobber:
ifeq ($(BUILD_INSTALL), true)
($(CD) $(INSTALL_TOPDIR)/make && \
$(MAKE) clobber $(INSTALL_BUILD_ARGUMENTS))
endif
install-sanity::
ifeq ($(BUILD_INSTALL), true)
($(CD) $(INSTALL_TOPDIR)/make && \
$(MAKE) sanity $(INSTALL_BUILD_ARGUMENTS))
endif
######################################
# Rules for making the install
######################################
.PHONY: install install-build install-clobber install-sanity \
update-installer update-patchgen installer

52
make/jaxp-rules.gmk Normal file
View File

@ -0,0 +1,52 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# JAXP TARGETS
################################################################
JAXP_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(JAXP_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
JAXP_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
jaxp: jaxp-build
jaxp-build:
$(MKDIR) -p $(JAXP_OUTPUTDIR)
($(CD) $(JAXP_TOPDIR)/make && \
$(MAKE) $(JAXP_BUILD_ARGUMENTS) all)
jaxp-clobber::
$(MKDIR) -p $(JAXP_OUTPUTDIR)
($(CD) $(JAXP_TOPDIR)/make && \
$(MAKE) $(JAXP_BUILD_ARGUMENTS) clobber)
.PHONY: jaxp jaxp-build jaxp-clobber

52
make/jaxws-rules.gmk Normal file
View File

@ -0,0 +1,52 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# JAXWS TARGETS
################################################################
JAXWS_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(JAXWS_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR) \
ALT_JDK_IMPORT_PATH=$(JDK_IMPORT_PATH)
ifeq ($(BUILD_LANGTOOLS), true)
JAXWS_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
jaxws: jaxws-build
jaxws-build:
$(MKDIR) -p $(JAXWS_OUTPUTDIR)
($(CD) $(JAXWS_TOPDIR)/make && \
$(MAKE) $(JAXWS_BUILD_ARGUMENTS) all)
jaxws-clobber::
$(MKDIR) -p $(JAXWS_OUTPUTDIR)
($(CD) $(JAXWS_TOPDIR)/make && \
$(MAKE) $(JAXWS_BUILD_ARGUMENTS) clobber)
.PHONY: jaxws jaxws-build jaxws-clobber

131
make/jdk-rules.gmk Normal file
View File

@ -0,0 +1,131 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# JDK TARGETS
################################################################
JDK_JAVA_EXE = $(OUTPUTDIR)/bin/java$(EXE_SUFFIX)
# NO_IMAGES may be set in conjunction with DEV_ONLY
ifdef NO_IMAGES
IMAGES_TARGET =
else
IMAGES_TARGET = images
endif
# No DOCS build when JDK_UPDATE_VERSION set
ifdef JDK_UPDATE_VERSION
DOCS_TARGET =
else
DOCS_TARGET = docs
endif
# NO_DOCS may be set in conjunction with DEV_ONLY
ifdef NO_DOCS
DOCS_TARGET =
endif
# If langtools not being built, full jdk javadoc is not possible
ifneq ($(BUILD_LANGTOOLS), true)
DOCS_TARGET =
endif
ifneq ($(BUILD_CORBA), true)
DOCS_TARGET =
endif
ifneq ($(BUILD_JAXP), true)
DOCS_TARGET =
endif
ifneq ($(BUILD_JAXWS), true)
DOCS_TARGET =
endif
ifndef DEV_ONLY
JDK_BUILD_TARGETS = sanity all $(DOCS_TARGET) images
else
JDK_BUILD_TARGETS = sanity all $(IMAGES_TARGET)
endif
JDK_CLOBBER_TARGETS = clobber
JDK_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)
ifeq ($(BUILD_LANGTOOLS), true)
JDK_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
ifeq ($(BUILD_CORBA), true)
JDK_BUILD_ARGUMENTS += ALT_CORBA_DIST=$(ABS_CORBA_DIST)
endif
ifeq ($(BUILD_JAXP), true)
JDK_BUILD_ARGUMENTS += ALT_JAXP_DIST=$(ABS_JAXP_DIST)
endif
ifeq ($(BUILD_JAXWS), true)
JDK_BUILD_ARGUMENTS += ALT_JAXWS_DIST=$(ABS_JAXWS_DIST)
endif
ifeq ($(BUILD_HOTSPOT), true)
JDK_BUILD_ARGUMENTS += ALT_HOTSPOT_IMPORT_PATH=$(HOTSPOT_DIR)/import
endif
JDK_BUILD_ARGUMENTS += \
BUILD_HOTSPOT=$(BUILD_HOTSPOT)
$(JDK_JAVA_EXE):: jdk-build
jdk: jdk-build
jdk-build:
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) $(JDK_BUILD_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
jdk-clobber::
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) $(JDK_CLOBBER_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
jdk-sanity::
@( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) sanity HOTSPOT_IMPORT_CHECK=false $(JDK_BUILD_ARGUMENTS) ; )
compare-images: compare-image
compare-image:
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image )
compare-images-clobber: compare-image-clobber
compare-image-clobber:
( $(CD) $(JDK_TOPDIR)/make && \
$(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image-clobber )
.PHONY: jdk jdk-build jdk-clobber jdk-sanity
# FIXUP: Old j2se target names
j2se-build: jdk-build
j2se-clobber:: jdk-clobber
j2se-sanity:: jdk-sanity
j2se: jdk
.PHONY: j2se j2se-build j2se-clobber j2se-sanity

372
make/jprt.config Normal file
View File

@ -0,0 +1,372 @@
#!echo "This is not a shell script"
#############################################################################
#
# Copyright 2006-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
#############################################################################
#
# JPRT shell configuration for building.
#
# Input environment variables:
# ALT_BOOTDIR
# ALT_SLASH_JAVA
# ALT_JDK_IMPORT_PATH
# OPENJDK
# Windows Only:
# PATH
# VS71COMNTOOLS
# PROCESSOR_IDENTIFIER
# ROOTDIR
#
# Output variable settings:
# make Full path to GNU make
# compiler_path Path to compiler bin directory
# compiler_name Unique name of this compiler
#
# Output environment variables:
# PATH
# ALT_COMPILER_PATH
# OPENJDK only:
# ALT_CLOSED_JDK_IMPORT_PATH
# ALT_JDK_DEVTOOLS_DIR
# Windows Only:
# ALT_MSDEVTOOLS_PATH
# ALT_DEVTOOLS_PATH (To avoid the C:/UTILS default)
# LIB
# INCLUDE
#
# After JDK6, most settings will be found via ALT_SLASH_JAVA or
# by way of other system environment variables. If this was JDK5
# or an older JDK, you might need to export more ALT_* variables.
#
# On Windows AMD64, if MSSDK is not set, assumes Platform SDK is installed at:
# C:/Program Files/Microsoft Platform SDK
#
#############################################################################
#############################################################################
# Error
error() # message
{
echo "ERROR: $1"
exit 6
}
# Directory must exist
dirMustExist() # dir name
{
if [ ! -d "$1" ] ; then
error "Directory for $2 does not exist: $1"
fi
}
# File must exist
fileMustExist() # dir name
{
if [ ! -f "$1" ] ; then
error "File for $2 does not exist: $1"
fi
}
#############################################################################
# Should be set by JPRT as the 3 basic inputs
bootdir="${ALT_BOOTDIR}"
slashjava="${ALT_SLASH_JAVA}"
jdk_import="${ALT_JDK_IMPORT_PATH}"
# The /java/devtools items
jdk_devtools="${slashjava}/devtools"
share="${jdk_devtools}/share"
# Needed for langtools, maybe other parts of the build
ANT_HOME="${share}/ant/latest"
export ANT_HOME
FINDBUGS_HOME="${share}/findbugs/latest"
export FINDBUGS_HOME
# The 3 bin directories in common to all platforms
sharebin="${share}/bin"
antbin="${ANT_HOME}/bin"
findbugsbin="${FINDBUGS_HOME}/bin"
# Check input
dirMustExist "${bootdir}" ALT_BOOTDIR
dirMustExist "${slashjava}" ALT_SLASH_JAVA
dirMustExist "${jdk_import}" ALT_JDK_IMPORT_PATH
dirMustExist "${ANT_HOME}" ANT_HOME
dirMustExist "${FINDBUGS_HOME}" FINDBUGS_HOME
# If ALT_PREVIOUS_JDK_IMAGE not defined, set it to the bootdir area for
# any possible image comparisons.
# We assume bootdir is a previous jdk release image, valid for comparison
# reasons.
if [ "${ALT_PREVIOUS_JDK_IMAGE}" = "" ] ; then
ALT_PREVIOUS_JDK_IMAGE="${bootdir}"
export ALT_PREVIOUS_JDK_IMAGE
fi
# Use the JDK import for now (FIXME: use the binary plugs?)
if [ "${OPENJDK}" = true ] ; then
ALT_CLOSED_JDK_IMPORT_PATH="${jdk_import}"
export ALT_CLOSED_JDK_IMPORT_PATH
fi
# Uses 'uname -s', but only expect SunOS or Linux, assume Windows otherwise.
osname=`uname -s`
if [ "${osname}" = SunOS ] ; then
# SOLARIS: Sparc or X86
osarch=`uname -p`
if [ "${osarch}" = sparc ] ; then
solaris_arch=sparc
else
solaris_arch=i386
fi
# Get the SS11 compilers into path (make sure it matches ALT setting)
compiler_path=${jdk_devtools}/${solaris_arch}/SUNWspro/SS11/bin
compiler_name=SS11
ALT_COMPILER_PATH="${compiler_path}"
export ALT_COMPILER_PATH
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
path4sdk=${compiler_path}:${sharebin}:${antbin}:${findbugsbin}
# Add basic solaris system paths
path4sdk=${path4sdk}:/usr/ccs/bin:/usr/ccs/lib:/usr/bin:/bin:/usr/sfw/bin
# Get the previous JDK to be used to bootstrap the build
path4sdk=${bootdir}/bin:${path4sdk}
# Find GNU make
make=/usr/sfw/bin/gmake
if [ ! -f ${make} ] ; then
make=/opt/sfw/bin/gmake
if [ ! -f ${make} ] ; then
make=${jdk_devtools}/${solaris_arch}/bin/gnumake
fi
fi
fileMustExist "${make}" make
# File creation mask
umask 002
elif [ "${osname}" = Linux ] ; then
# LINUX: X86, AMD64
osarch=`uname -m`
if [ "${osarch}" = i686 ] ; then
linux_arch=i586
elif [ "${osarch}" = x86_64 ] ; then
linux_arch=amd64
fi
# Get the compilers into path (make sure it matches ALT setting)
compiler_path=/usr/bin
compiler_name=usr_bin
ALT_COMPILER_PATH="${compiler_path}"
export ALT_COMPILER_PATH
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
path4sdk=${compiler_path}:${sharebin}:${antbin}:${findbugsbin}
# Add basic paths
path4sdk=${path4sdk}:/usr/bin:/bin:/usr/sbin:/sbin
# Get the previous JDK to be used to bootstrap the build
path4sdk=${bootdir}/bin:${path4sdk}
# Find GNU make
make=/usr/bin/make
fileMustExist "${make}" make
umask 002
# Linux platform may be old, use motif files from the devtools area
if [ "${OPENJDK}" = true ] ; then
ALT_JDK_DEVTOOLS_DIR="${jdk_devtools}"
export ALT_JDK_DEVTOOLS_DIR
fi
else
# Windows: Differs on CYGWIN vs. MKS, and the compiler available.
# Also, blanks in pathnames gives GNU make headaches, so anything placed
# in any ALT_* variable should be the short windows dosname.
# WINDOWS: Install and use MKS or CYGWIN (should have already been done)
# Assumption here is that you are in a shell window via MKS or cygwin.
# MKS install should have defined the environment variable ROOTDIR.
# We also need to figure out which one we have: X86, AMD64
if [ "`echo ${PROCESSOR_IDENTIFIER} | fgrep AMD64`" != "" ] ; then
windows_arch=amd64
else
windows_arch=i586
fi
# We need to determine if we are running a CYGWIN shell or an MKS shell
# (if uname isn't available, then it will be unix_toolset=unknown)
unix_toolset=unknown
if [ "`uname -a | fgrep Cygwin`" = "" -a -d "${ROOTDIR}" ] ; then
# We kind of assume ROOTDIR is where MKS is and it's ok
unix_toolset=MKS
mkshome=`dosname -s "${ROOTDIR}"`
# Utility to convert to short pathnames without spaces
dosname="${mkshome}/mksnt/dosname -s"
# Most unix utilities are in the mksnt directory of ROOTDIR
unixcommand_path="${mkshome}/mksnt"
path4sdk="${sharebin};${antbin};${findbugsbin};${unixcommand_path}"
dirMustExist "${unixcommand_path}" ALT_UNIXCOMMAND_PATH
devtools_path="${jdk_devtools}/win32/bin"
path4sdk="${devtools_path};${path4sdk}"
# Normally this need not be set, but on Windows it's default is C:/UTILS
ALT_DEVTOOLS_PATH="${devtools_path}"
export ALT_DEVTOOLS_PATH
dirMustExist "${devtools_path}" ALT_DEVTOOLS_PATH
# Find GNU make
make="${devtools_path}/gnumake.exe"
fileMustExist "${make}" make
elif [ "`uname -a | fgrep Cygwin`" != "" -a -f /bin/cygpath ] ; then
# For CYGWIN, uname will have "Cygwin" in it, and /bin/cygpath should exist
unix_toolset=CYGWIN
# Utility to convert to short pathnames without spaces
dosname="/usr/bin/cygpath -a -m -s"
# Most unix utilities are in the /usr/bin
unixcommand_path="/usr/bin"
path4sdk="${sharebin};${antbin};${findbugsbin};${unixcommand_path}"
dirMustExist "${unixcommand_path}" ALT_UNIXCOMMAND_PATH
# Find GNU make
make="${unixcommand_path}/make.exe"
fileMustExist "${make}" make
else
echo "WARNING: Cannot figure out if this is MKS or CYGWIN"
fi
# WINDOWS: Compiler setup (nasty part)
# NOTE: You can use vcvars32.bat to set PATH, LIB, and INCLUDE.
# NOTE: CYGWIN has a link.exe too, make sure the compilers are first
if [ "${windows_arch}" = i586 ] ; then
# 32bit Windows compiler settings
# VisualStudio .NET 2003 VC++ 7.1 (VS71COMNTOOLS should be defined)
vs_root=`${dosname} "${VS71COMNTOOLS}/../.."`
# Fill in PATH, LIB, and INCLUDE (unset all others to make sure)
msdev_root="${vs_root}/Common7/Tools"
msdevtools_path="${msdev_root}/bin"
vc7_root="${vs_root}/Vc7"
compiler_path="${vc7_root}/bin"
compiler_name=VS2003
platform_sdk="${vc7_root}/PlatformSDK"
# LIB and INCLUDE must use ; as a separator
include4sdk="${vc7_root}/atlmfc/include"
include4sdk="${include4sdk};${vc7_root}/include"
include4sdk="${include4sdk};${platform_sdk}/include/prerelease"
include4sdk="${include4sdk};${platform_sdk}/include"
include4sdk="${include4sdk};${vs_root}/SDK/v1.1/include"
lib4sdk="${vc7_root}/atlmfc/lib"
lib4sdk="${lib4sdk};${vc7_root}/lib"
lib4sdk="${lib4sdk};${platform_sdk}/lib/prerelease"
lib4sdk="${lib4sdk};${platform_sdk}/lib"
lib4sdk="${lib4sdk};${vs_root}/SDK/v1.1/lib"
# Search path and DLL locating path
# WARNING: CYGWIN has a link.exe too, make sure compilers are first
path4sdk="${vs_root}/Common7/Tools/bin;${path4sdk}"
path4sdk="${vs_root}/SDK/v1.1/bin;${path4sdk}"
path4sdk="${vs_root}/Common7/Tools;${path4sdk}"
path4sdk="${vs_root}/Common7/Tools/bin/prerelease;${path4sdk}"
path4sdk="${vs_root}/Common7/IDE;${path4sdk}"
path4sdk="${compiler_path};${path4sdk}"
elif [ "${windows_arch}" = amd64 ] ; then
# AMD64 64bit Windows compiler settings
if [ "${MSSDK}" != "" ] ; then
platform_sdk="${MSSDK}"
else
platform_sdk=`${dosname} "C:/Program Files/Microsoft Platform SDK/"`
fi
compiler_path="${platform_sdk}/Bin/win64/x86/AMD64"
compiler_name=VS2005_PSDK
msdevtools_path="${platform_sdk}/Bin"
# LIB and INCLUDE must use ; as a separator
include4sdk="${platform_sdk}/Include"
include4sdk="${include4sdk};${platform_sdk}/Include/crt/sys"
include4sdk="${include4sdk};${platform_sdk}/Include/mfc"
include4sdk="${include4sdk};${platform_sdk}/Include/atl"
include4sdk="${include4sdk};${platform_sdk}/Include/crt"
lib4sdk="${platform_sdk}/Lib/AMD64"
lib4sdk="${lib4sdk};${platform_sdk}/Lib/AMD64/atlmfc"
# Search path and DLL locating path
# WARNING: CYGWIN has a link.exe too, make sure compilers are first
path4sdk="${platform_sdk}/bin;${path4sdk}"
path4sdk="${compiler_path};${path4sdk}"
fi
# Export LIB and INCLUDE
unset lib
unset Lib
LIB="${lib4sdk}"
export LIB
unset include
unset Include
INCLUDE="${include4sdk}"
export INCLUDE
# Set the ALT variable
ALT_COMPILER_PATH=`${dosname} "${compiler_path}"`
export ALT_COMPILER_PATH
dirMustExist "${compiler_path}" ALT_COMPILER_PATH
ALT_MSDEVTOOLS_PATH=`${dosname} "${msdevtools_path}"`
export ALT_MSDEVTOOLS_PATH
dirMustExist "${msdevtools_path}" ALT_MSDEVTOOLS_PATH
# WINDOWS: Get the previous JDK to be used to bootstrap the build
path4sdk="${bootdir}/bin;${path4sdk}"
# Turn all \\ into /, remove duplicates and trailing /
slash_path="`echo ${path4sdk} | sed -e 's@\\\\@/@g' -e 's@//@/@g' -e 's@/$@@' -e 's@/;@;@g'`"
# For windows, it's hard to know where the system is, so we just add this
# to PATH.
path4sdk="${slash_path};${PATH}"
# Convert path4sdk to cygwin style
if [ "${unix_toolset}" = CYGWIN ] ; then
path4sdk="`/usr/bin/cygpath -p ${path4sdk}`"
fi
# Set special windows ALT variables
ALT_ISHIELDDIR="C:/ishield802"
export ALT_ISHIELDDIR
# Sponsors binaries
ALT_SPONSOR1DIR=C:/sponsor_binaries
export ALT_SPONSOR1DIR
ALT_SPONSOR2DIR=C:/sponsor_binaries
export ALT_SPONSOR2DIR
fi
# Export PATH setting
PATH="${path4sdk}"
export PATH
# Things we need to unset
unset LD_LIBRARY_PATH
unset LD_LIBRARY_PATH_32
unset LD_LIBRARY_PATH_64
unset JAVA_HOME

60
make/jprt.gmk Normal file
View File

@ -0,0 +1,60 @@
#
# Copyright 2006-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# JPRT rule to build
################################################################
# To get all the bundles from JPRT, use:
# jprt submit -buildenv HAVE_JPRT_SAVE_BUNDLES=true -control "..." ...
DEFAULT_BUILD_FLAVOR=product
# JPRT will define these when it builds
JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-bundle.zip
JPRT_ARCHIVE_INSTALL_BUNDLE=$(ABS_OUTPUTDIR)/$(DEFAULT_BUILD_FLAVOR)-install-bundle.zip
jprt_build_product: product_build
( $(CD) $(OUTPUTDIR)/j2sdk-image && \
$(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
ifdef HAVE_JPRT_SAVE_BUNDLES
( $(CD) $(OUTPUTDIR)/bundles && \
$(ZIPEXE) -q -r $(JPRT_ARCHIVE_INSTALL_BUNDLE) . )
endif
jprt_build_fastdebug: fastdebug_build
( $(CD) $(OUTPUTDIR)-fastdebug/j2sdk-image && \
$(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
jprt_build_debug: debug_build
( $(CD) $(OUTPUTDIR)-debug/j2sdk-image && \
$(ZIPEXE) -q -r $(JPRT_ARCHIVE_BUNDLE) . )
################################################################
# PHONY
################################################################
.PHONY: jprt_build_product jprt_build_fastdebug jprt_build_debug

56
make/jprt.properties Normal file
View File

@ -0,0 +1,56 @@
#
# Copyright 2006-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
# Properties for jprt
jprt.tools.default.release=jdk1.7.0
# Specific platform list
jprt.build.platforms=\
solaris_sparc_5.10,\
solaris_sparcv9_5.10,\
solaris_i586_5.10,\
solaris_x64_5.10,\
linux_i586,\
linux_x64,\
windows_i586,\
windows_x64
# The different build flavors we want
jprt.build.flavors=product,fastdebug
jprt.run.flavors=c1,c2
jprt.solaris_sparcv9.run.flavors=c2
jprt.solaris_x64.run.flavors=c2
jprt.windows_x64.run.flavors=c2
jprt.linux_x64.run.flavors=c2
jprt.run.flavor.c1.option=-client
jprt.run.flavor.c2.option=-server
# Explicitly designate what the 32bit match is for the 64bit build
jprt.solaris_sparcv9.build.platform.match32=solaris_sparc_5.10
jprt.solaris_x64.build.platform.match32=solaris_i586_5.10
# Standard list of jprt test targets for this workspace
jprt.test.targets=*-*-*-jvm98

47
make/langtools-rules.gmk Normal file
View File

@ -0,0 +1,47 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# LANGTOOLS TARGETS
################################################################
LANGTOOLS_BUILD_ARGUMENTS = \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(LANGTOOLS_OUTPUTDIR) \
ALT_BOOTDIR=$(BOOTDIR)
langtools: langtools-build
langtools-build:
$(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)
($(CD) $(LANGTOOLS_TOPDIR)/make && \
$(MAKE) $(LANGTOOLS_BUILD_ARGUMENTS) all)
langtools-clobber::
$(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)
($(CD) $(LANGTOOLS_TOPDIR)/make && \
$(MAKE) $(LANGTOOLS_BUILD_ARGUMENTS) clobber)
.PHONY: langtools langtools-build langtools-clobber

356
make/sanity-rules.gmk Normal file
View File

@ -0,0 +1,356 @@
#
# Copyright 2001-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# SANITY
################################################################
sanity:: pre-sanity settings insane environment
ifeq ($(BUILD_HOTSPOT), true)
sanity:: hotspot-sanity
endif
ifeq ($(BUILD_DEPLOY), true)
sanity:: deploy-sanity
endif
ifeq ($(BUILD_JDK), true)
sanity:: jdk-sanity
endif
# Only need these sanity rules when not doing a debug build
ifeq ($(DEBUG_NAME),)
ifeq ($(BUILD_INSTALL), true)
sanity:: install-sanity
endif
ifeq ($(BUILD_SPONSORS), true)
sanity:: sponsors-sanity
endif
endif
sanity:: post-sanity
source-sanity : pre-sanity alt_bootdir bootdir post-sanity
$(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE):
@$(prep-target)
purge-sanity: $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
-@$(RM) $(ERROR_FILE) $(WARNING_FILE) $(MESSAGE_FILE)
pre-sanity: purge-sanity
# this should be the last rule in any target's sanity rule.
post-sanity post-sanity-hotspot post-sanity-jdk post-sanity-install post-sanity-deploy:
@if [ -r $(MESSAGE_FILE) ]; then \
$(ECHO) "" ; \
$(CAT) $(MESSAGE_FILE) ; \
fi
@if [ -r $(WARNING_FILE) ]; then \
$(CAT) $(WARNING_FILE) ; \
fi
@if [ "x$(INSANE)" != x ]; then \
$(ECHO) "INSANE mode requested. \n" \
"Sanity will not force a build termination, even with errors.\n" \
"" >> $(ERROR_FILE); \
fi
@if [ -r $(ERROR_FILE) ]; then \
if [ "x$(INSANE)" = x ]; then \
$(ECHO) "Exiting because of the above error(s). \n" \
"">> $(ERROR_FILE); \
fi ; \
$(CAT) $(ERROR_FILE) ; \
if [ "x$(INSANE)" = x ]; then \
exit 1 ; \
fi ; \
fi
ifdef PEDANTIC
@if [ -r $(WARNING_FILE) ]; then \
$(ECHO) "PEDANTIC mode requested. \n" \
"Exiting because of the above warning(s). \n" \
"" >> $(ERROR_FILE); \
$(CAT) $(ERROR_FILE) ; \
exit 1 ; \
fi
endif
@if [ ! -r $(ERROR_FILE) ]; then \
$(ECHO) "Sanity check passed." ; \
fi
insane:
ifdef INSANE
@$(ECHO) "WARNING: You are building in 'INSANE' mode. You \n" \
" should not use this mode, and in fact, \n" \
" it may be removed at any time. If you \n" \
" have build problems as a result of using \n" \
" INSANE mode, then you should not expect \n" \
" assistance from anyone with the problems \n" \
" or consequences you experience. \n" \
"" >> $(WARNING_FILE)
endif
# Get list of environment variables set that we do not want set
ifdef ALT_HOTSPOT_SERVER_PATH
DO_NOT_SET_LIST += ALT_HOTSPOT_SERVER_PATH
endif
ifdef ALT_HOTSPOT_CLIENT_PATH
DO_NOT_SET_LIST += ALT_HOTSPOT_CLIENT_PATH
endif
ifdef ALT_HOTSPOT_LIB_PATH
DO_NOT_SET_LIST += ALT_HOTSPOT_LIB_PATH
endif
# Error message for environment variable set that should not be
%.do_not_set:
@$(ECHO) "ERROR: Your build environment has the variable\n" \
" $* defined. Please unset it and restart your build. \n" \
"" >> $(ERROR_FILE)
# Check the environment variables
environment: $(DO_NOT_SET_LIST:%=%.do_not_set)
ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
ifneq ($(BUILD_LANGTOOLS), true)
@$(ECHO) "WARNING: You are not building the LANGTOOLS sources.\n" \
" Lang tools (javac) will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(JAXP_SRC_AVAILABLE), true)
ifneq ($(BUILD_JAXP), true)
@$(ECHO) "WARNING: You are not building the JAXP sources.\n" \
" The jaxp files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(JAXWS_SRC_AVAILABLE), true)
ifneq ($(BUILD_JAXWS), true)
@$(ECHO) "WARNING: You are not building the JAXWS sources.\n" \
" The jaxws files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(CORBA_SRC_AVAILABLE), true)
ifneq ($(BUILD_CORBA), true)
@$(ECHO) "WARNING: You are not building the CORBA sources.\n" \
" The corba files will be obtained from \n" \
" the location set in ALT_JDK_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
ifneq ($(BUILD_HOTSPOT), true)
@$(ECHO) "WARNING: You are not building the HOTSPOT sources.\n" \
" Hotspot libs will be obtained from \n" \
" the location set in ALT_HOTSPOT_IMPORT_PATH. \n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(JDK_SRC_AVAILABLE), true)
ifneq ($(BUILD_JDK), true)
@$(ECHO) "WARNING: You are not building the JDK sources.\n" \
" This will result in a development-only\n" \
" build of the JDK , lacking the jdk binaries.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(DEPLOY_SRC_AVAILABLE), true)
ifneq ($(BUILD_DEPLOY), true)
@$(ECHO) "WARNING: You are not building the DEPLOY sources.\n" \
" This will result in a development-only\n" \
" build of the JDK, lacking the plugin and javaws binaries.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(INSTALL_SRC_AVAILABLE), true)
ifneq ($(BUILD_INSTALL), true)
@$(ECHO) "WARNING: You are not building the INSTALL sources.\n" \
" This will result in a development-only\n" \
" build of the JDK, lacking the installation bundles\n" \
"" >> $(WARNING_FILE)
endif
endif
ifeq ($(SPONSORS_SRC_AVAILABLE), true)
ifneq ($(BUILD_SPONSORS), true)
@$(ECHO) "WARNING: You are not building the SPONSORS sources.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifndef OPENJDK
ifdef NO_DOCS
@$(ECHO) "WARNING: Your build environment has the variable NO_DOCS\n" \
" defined. This will result in a development-only\n" \
" build of the JDK, lacking the documentation.\n" \
"" >> $(WARNING_FILE)
endif
endif
ifdef NO_IMAGES
@$(ECHO) "WARNING: Your build environment has the variable NO_IMAGES\n" \
" defined. This will result in a development-only\n" \
" build of the JDK, lacking the install images\n" \
" and bundles.\n" \
"" >> $(WARNING_FILE)
endif
ifdef DEV_ONLY
@$(ECHO) "WARNING: Your build environment has the variable DEV_ONLY\n" \
" defined. This will result in a development-only\n" \
" build of the JDK, lacking the documentation\n" \
" build and installation bundles.\n" \
"" >> $(WARNING_FILE)
endif
######################################################
# if specified, ALT_BOOTDIR must point to non-relative path if set
######################################################
alt_bootdir:
ifdef ALT_BOOTDIR
@if [ `$(ECHO) $(subst \,/,$(ALT_BOOTDIR)) | $(EGREP) -ci '^([a-z]:)?/'` -ne 1 ]; then \
$(ECHO) "ERROR: ALT_BOOTDIR must be an Absolute Path Name, \n" \
" not a Relative Path Name. \n" \
" The current value of ALT_BOOTDIR is \n" \
" $(ALT_BOOTDIR) \n" \
" Please fix this and continue your build. \n" \
"" >> $(ERROR_FILE) ; \
fi
endif
######################################################
# BOOTDIR must point to a valid JDK.
######################################################
JAVA_VERSION := $(shell $(BOOTDIR)/bin/java$(EXE_SUFFIX) -version 2>&1 | $(NAWK) -F'"' '{ print $$2 }')
JAVA_VERSION_OK := $(shell $(ECHO) $(JAVA_VERSION) | $(EGREP) -c '^1.[5-6].[0-9]')
bootdir:
@if [ -x $(BOOTDIR)/bin/java$(EXE_SUFFIX) ]; then \
if [ $(JAVA_VERSION_OK) -ne 1 ]; then \
$(ECHO) "ERROR: Your BOOTDIR environment variable does not point \n" \
" to a valid JDK for bootstrapping this build. \n" \
" A JDK $(JDK_MKTG_VERSION) source generation process must be \n" \
" bootstrapped using JDK $(PREVIOUS_JDK_VERSION) fcs (or later). \n" \
" Apparently, your bootstrap JDK is version $(JAVA_VERSION) \n" \
" Please update your ALT_BOOTDIR setting and start your build again. \n" \
"" >> $(ERROR_FILE) ; \
fi \
else \
$(ECHO) "ERROR: BOOTDIR does not point to a valid Java 2 SDK \n" \
" Check that you have access to \n" \
" $(BOOTDIR)/bin/java$(EXE_SUFFIX) \n" \
" and/or check your value of ALT_BOOTDIR. \n" \
"" >> $(ERROR_FILE) ; \
fi
######################################################
# dump out the variable settings...
######################################################
ifneq ($(PLATFORM), windows)
ifndef HOSTNAME
HOSTNAME := $(shell hostname)
endif
endif
settings::
@$(ECHO) "Build Machine Information:" >> $(MESSAGE_FILE)
ifeq ($(PLATFORM), windows)
@$(ECHO) " build machine = $(COMPUTERNAME)" >> $(MESSAGE_FILE)
else
@$(ECHO) " build machine = $(HOSTNAME)" >> $(MESSAGE_FILE)
endif
@$(ECHO) "" >> $(MESSAGE_FILE)
@$(ECHO) "Build Directory Structure:" >> $(MESSAGE_FILE)
@$(ECHO) " CWD = `$(PWD)`" >> $(MESSAGE_FILE)
@$(ECHO) " TOPDIR = $(TOPDIR)" >> $(MESSAGE_FILE)
@$(ECHO) " CONTROL_TOPDIR = $(CONTROL_TOPDIR)" >> $(MESSAGE_FILE)
ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
@$(ECHO) " LANGTOOLS_TOPDIR = $(LANGTOOLS_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(JAXP_SRC_AVAILABLE), true)
@$(ECHO) " JAXP_TOPDIR = $(JAXP_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(JAXWS_SRC_AVAILABLE), true)
@$(ECHO) " JAXWS_TOPDIR = $(JAXWS_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(CORBA_SRC_AVAILABLE), true)
@$(ECHO) " CORBA_TOPDIR = $(CORBA_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
@$(ECHO) " HOTSPOT_TOPDIR = $(HOTSPOT_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(JDK_SRC_AVAILABLE), true)
@$(ECHO) " JDK_TOPDIR = $(JDK_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(DEPLOY_SRC_AVAILABLE), true)
@$(ECHO) " DEPLOY_TOPDIR = $(DEPLOY_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(INSTALL_SRC_AVAILABLE), true)
@$(ECHO) " INSTALL_TOPDIR = $(INSTALL_TOPDIR)" >> $(MESSAGE_FILE)
endif
ifeq ($(SPONSORS_SRC_AVAILABLE), true)
@$(ECHO) " SPONSORS_TOPDIR = $(SPONSORS_TOPDIR)" >> $(MESSAGE_FILE)
endif
@$(ECHO) "" >> $(MESSAGE_FILE)
ifneq ($(SKIP_COMPARE_IMAGES), true)
@$(ECHO) "External File/Binary Locations:" >> $(MESSAGE_FILE)
@$(ECHO) " PREVIOUS_JRE_BUNDLE = $(PREVIOUS_JRE_BUNDLE) " >> $(MESSAGE_FILE)
@$(ECHO) " PREVIOUS_JDK_BUNDLE = $(PREVIOUS_JDK_BUNDLE) " >> $(MESSAGE_FILE)
@$(ECHO) "" >> $(MESSAGE_FILE)
endif
@$(ECHO) "Build Directives:" >> $(MESSAGE_FILE)
ifeq ($(LANGTOOLS_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_LANGTOOLS = $(BUILD_LANGTOOLS) " >> $(MESSAGE_FILE)
endif
ifeq ($(JAXP_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_JAXP = $(BUILD_JAXP) " >> $(MESSAGE_FILE)
endif
ifeq ($(JAXWS_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_JAXWS = $(BUILD_JAXWS) " >> $(MESSAGE_FILE)
endif
ifeq ($(CORBA_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_CORBA = $(BUILD_CORBA) " >> $(MESSAGE_FILE)
endif
ifeq ($(HOTSPOT_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_HOTSPOT = $(BUILD_HOTSPOT) " >> $(MESSAGE_FILE)
endif
ifeq ($(JDK_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_JDK = $(BUILD_JDK) " >> $(MESSAGE_FILE)
endif
ifeq ($(DEPLOY_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_DEPLOY = $(BUILD_DEPLOY) " >> $(MESSAGE_FILE)
endif
ifeq ($(INSTALL_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_INSTALL = $(BUILD_INSTALL) " >> $(MESSAGE_FILE)
endif
ifeq ($(SPONSORS_SRC_AVAILABLE), true)
@$(ECHO) " BUILD_SPONSORS = $(BUILD_SPONSORS) " >> $(MESSAGE_FILE)
endif
@$(ECHO) "" >> $(MESSAGE_FILE)
.PHONY: sanity settings pre-sanity insane \
post-sanity post-sanity-hotspot post-sanity-jdk \
post-sanity-install post-sanity-deploy \
alt_bootdir bootdir

72
make/sponsors-rules.gmk Normal file
View File

@ -0,0 +1,72 @@
#
# Copyright 2006-2007 Sun Microsystems, Inc. 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. Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#
################################################################
# SPONSORS TARGETS
################################################################
ifeq ($(PLATFORM)-$(ARCH), windows-i586)
sponsors: sponsors-build
else
sponsors:
endif
# The generated java files are generated as a set, so instead of
# setting the SPONSORS variable to that list of files, set it to
# the .PHONY target that generates the set of files.
SPONSORS = sponsors
# put the generated patch in their own place in OUTPUTDIR
SPONSORS_OUTPUTDIR = $(ABS_OUTPUTDIR)
SPONSORS_BUILD_TARGETS = dll installer
SPONSORS_BUILD_ARGUMENTS = \
MAKEFLAGS= \
$(COMMON_BUILD_ARGUMENTS) \
ALT_OUTPUTDIR=$(SPONSORS_OUTPUTDIR) \
ALT_RTPATCH_DIR=$(ALT_RTPATCH_DIR) \
ALT_BASE_IMAGE_ZIP=$(ALT_BASE_IMAGE_ZIP) \
ALT_BASE_IMAGE_DIR=$(ALT_BASE_IMAGE_DIR) \
ALT_NEW_IMAGE_DIR=$(ALT_NEW_IMAGE_DIR) \
ALT_BUNDLE_DATE=$(BUNDLE_DATE)
ifeq ($(BUILD_LANGTOOLS), true)
SPONSORS_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
sponsors-build:
ifeq ($(ARCH_DATA_MODEL), 32)
ifeq ($(BUILD_SPONSORS), true)
($(CD) $(SPONSORS_TOPDIR)/make && \
$(MAKE) $(SPONSORS_BUILD_TARGETS) $(SPONSORS_BUILD_ARGUMENTS))
endif
endif
sponsors-sanity:
sponsors-clobber::
.PHONY: sponsors sponsors-build sponsors-sanity sponsors-clobber

28
make/templates/bsd-header Normal file
View File

@ -0,0 +1,28 @@
Copyright %YEARS% Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of Sun Microsystems nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@ -0,0 +1,22 @@
Copyright %YEARS% Sun Microsystems, Inc. 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. Sun designates this
particular file as subject to the "Classpath" exception as provided
by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.

20
make/templates/gpl-header Normal file
View File

@ -0,0 +1,20 @@
Copyright %YEARS% Sun Microsystems, Inc. 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.
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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.