langtools/make/Makefile
author jjg
Wed, 20 May 2009 13:36:23 -0700
changeset 2982 090c71af18f6
parent 1650 980a667baa29
child 2988 094272984b53
permissions -rw-r--r--
6827026: Change javac source and target default to 7 Reviewed-by: darcy, ohair
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     1
#
06bc494ca11e Initial load
duke
parents:
diff changeset
     2
# Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
06bc494ca11e Initial load
duke
parents:
diff changeset
     3
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
06bc494ca11e Initial load
duke
parents:
diff changeset
     4
#
06bc494ca11e Initial load
duke
parents:
diff changeset
     5
# This code is free software; you can redistribute it and/or modify it
06bc494ca11e Initial load
duke
parents:
diff changeset
     6
# under the terms of the GNU General Public License version 2 only, as
06bc494ca11e Initial load
duke
parents:
diff changeset
     7
# published by the Free Software Foundation.  Sun designates this
06bc494ca11e Initial load
duke
parents:
diff changeset
     8
# particular file as subject to the "Classpath" exception as provided
06bc494ca11e Initial load
duke
parents:
diff changeset
     9
# by Sun in the LICENSE file that accompanied this code.
06bc494ca11e Initial load
duke
parents:
diff changeset
    10
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    11
# This code is distributed in the hope that it will be useful, but WITHOUT
06bc494ca11e Initial load
duke
parents:
diff changeset
    12
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
06bc494ca11e Initial load
duke
parents:
diff changeset
    13
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
06bc494ca11e Initial load
duke
parents:
diff changeset
    14
# version 2 for more details (a copy is included in the LICENSE file that
06bc494ca11e Initial load
duke
parents:
diff changeset
    15
# accompanied this code).
06bc494ca11e Initial load
duke
parents:
diff changeset
    16
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    17
# You should have received a copy of the GNU General Public License version
06bc494ca11e Initial load
duke
parents:
diff changeset
    18
# 2 along with this work; if not, write to the Free Software Foundation,
06bc494ca11e Initial load
duke
parents:
diff changeset
    19
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
06bc494ca11e Initial load
duke
parents:
diff changeset
    20
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    21
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
06bc494ca11e Initial load
duke
parents:
diff changeset
    22
# CA 95054 USA or visit www.sun.com if you need additional information or
06bc494ca11e Initial load
duke
parents:
diff changeset
    23
# have any questions.
06bc494ca11e Initial load
duke
parents:
diff changeset
    24
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    25
06bc494ca11e Initial load
duke
parents:
diff changeset
    26
# Makefile for langtools: wrapper around Ant build.xml file
06bc494ca11e Initial load
duke
parents:
diff changeset
    27
06bc494ca11e Initial load
duke
parents:
diff changeset
    28
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    29
# On Solaris, the 'make' utility from Sun will not work with these makefiles.
06bc494ca11e Initial load
duke
parents:
diff changeset
    30
#    This little rule is only understood by Sun's make, and is harmless
06bc494ca11e Initial load
duke
parents:
diff changeset
    31
#    when seen by the GNU make tool. If using Sun's make, this causes the
06bc494ca11e Initial load
duke
parents:
diff changeset
    32
#    make command to fail.
06bc494ca11e Initial load
duke
parents:
diff changeset
    33
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    34
SUN_MAKE_TEST:sh = @echo "ERROR: PLEASE USE GNU VERSION OF MAKE"; exit 33
06bc494ca11e Initial load
duke
parents:
diff changeset
    35
06bc494ca11e Initial load
duke
parents:
diff changeset
    36
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    37
# Minimal platform defs
06bc494ca11e Initial load
duke
parents:
diff changeset
    38
# Need FullPath because we can't rely on gnumake abspath, until we use v3.81
06bc494ca11e Initial load
duke
parents:
diff changeset
    39
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    40
06bc494ca11e Initial load
duke
parents:
diff changeset
    41
SYSTEM_UNAME := $(shell uname)
06bc494ca11e Initial load
duke
parents:
diff changeset
    42
06bc494ca11e Initial load
duke
parents:
diff changeset
    43
ifeq ($(SYSTEM_UNAME), Windows_NT)
06bc494ca11e Initial load
duke
parents:
diff changeset
    44
DEV_NULL = NUL
06bc494ca11e Initial load
duke
parents:
diff changeset
    45
else
06bc494ca11e Initial load
duke
parents:
diff changeset
    46
ifneq (,$(findstring CYGWIN,$(SYSTEM_UNAME)))
06bc494ca11e Initial load
duke
parents:
diff changeset
    47
DEV_NULL = NUL
06bc494ca11e Initial load
duke
parents:
diff changeset
    48
USING_CYGWIN = true
06bc494ca11e Initial load
duke
parents:
diff changeset
    49
else
06bc494ca11e Initial load
duke
parents:
diff changeset
    50
DEV_NULL = /dev/null
06bc494ca11e Initial load
duke
parents:
diff changeset
    51
endif 
06bc494ca11e Initial load
duke
parents:
diff changeset
    52
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    53
06bc494ca11e Initial load
duke
parents:
diff changeset
    54
ifdef USING_CYGWIN
06bc494ca11e Initial load
duke
parents:
diff changeset
    55
define FullPath
06bc494ca11e Initial load
duke
parents:
diff changeset
    56
$(shell cygpath -a -s -m $1 2> $(DEV_NULL))
06bc494ca11e Initial load
duke
parents:
diff changeset
    57
endef
06bc494ca11e Initial load
duke
parents:
diff changeset
    58
else
06bc494ca11e Initial load
duke
parents:
diff changeset
    59
define FullPath
06bc494ca11e Initial load
duke
parents:
diff changeset
    60
$(shell cd $1 2> $(DEV_NULL) && pwd)
06bc494ca11e Initial load
duke
parents:
diff changeset
    61
endef
06bc494ca11e Initial load
duke
parents:
diff changeset
    62
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    63
06bc494ca11e Initial load
duke
parents:
diff changeset
    64
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    65
# Makefile args
06bc494ca11e Initial load
duke
parents:
diff changeset
    66
#
06bc494ca11e Initial load
duke
parents:
diff changeset
    67
06bc494ca11e Initial load
duke
parents:
diff changeset
    68
ifdef QUIET
06bc494ca11e Initial load
duke
parents:
diff changeset
    69
  ANT_OPTIONS += -quiet
06bc494ca11e Initial load
duke
parents:
diff changeset
    70
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    71
06bc494ca11e Initial load
duke
parents:
diff changeset
    72
ifdef VERBOSE
06bc494ca11e Initial load
duke
parents:
diff changeset
    73
  ANT_OPTIONS += -verbose -diagnostics
06bc494ca11e Initial load
duke
parents:
diff changeset
    74
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    75
06bc494ca11e Initial load
duke
parents:
diff changeset
    76
ifdef JDK_VERSION
06bc494ca11e Initial load
duke
parents:
diff changeset
    77
  ANT_OPTIONS += -Djdk.version=$(JDK_VERSION)
06bc494ca11e Initial load
duke
parents:
diff changeset
    78
endif 
06bc494ca11e Initial load
duke
parents:
diff changeset
    79
06bc494ca11e Initial load
duke
parents:
diff changeset
    80
ifdef FULL_VERSION
06bc494ca11e Initial load
duke
parents:
diff changeset
    81
  ANT_OPTIONS += -Dfull.version='$(FULL_VERSION)' # will contain spaces
06bc494ca11e Initial load
duke
parents:
diff changeset
    82
endif 
06bc494ca11e Initial load
duke
parents:
diff changeset
    83
06bc494ca11e Initial load
duke
parents:
diff changeset
    84
ifdef MILESTONE
1650
980a667baa29 6778493: Fix (langtools) ant build to honor fcs MILESTONE setting
jjg
parents: 10
diff changeset
    85
ifneq ($(MILESTONE),fcs)
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    86
  ANT_OPTIONS += -Dmilestone=$(MILESTONE)
1650
980a667baa29 6778493: Fix (langtools) ant build to honor fcs MILESTONE setting
jjg
parents: 10
diff changeset
    87
else
980a667baa29 6778493: Fix (langtools) ant build to honor fcs MILESTONE setting
jjg
parents: 10
diff changeset
    88
  ANT_OPTIONS += -Drelease=$(JDK_VERSION)
980a667baa29 6778493: Fix (langtools) ant build to honor fcs MILESTONE setting
jjg
parents: 10
diff changeset
    89
endif
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    90
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    91
06bc494ca11e Initial load
duke
parents:
diff changeset
    92
ifdef BUILD_NUMBER
06bc494ca11e Initial load
duke
parents:
diff changeset
    93
  ANT_OPTIONS += -Dbuild.number=$(BUILD_NUMBER)
06bc494ca11e Initial load
duke
parents:
diff changeset
    94
else
06bc494ca11e Initial load
duke
parents:
diff changeset
    95
  ifdef JDK_BUILD_NUMBER
06bc494ca11e Initial load
duke
parents:
diff changeset
    96
    ANT_OPTIONS += -Dbuild.number=$(JDK_BUILD_NUMBER)
06bc494ca11e Initial load
duke
parents:
diff changeset
    97
  endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    98
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
    99
06bc494ca11e Initial load
duke
parents:
diff changeset
   100
ifeq ($(VARIANT), DBG)
06bc494ca11e Initial load
duke
parents:
diff changeset
   101
  ANT_OPTIONS += -Djavac.debug=true
06bc494ca11e Initial load
duke
parents:
diff changeset
   102
else
06bc494ca11e Initial load
duke
parents:
diff changeset
   103
  ifeq ($(VARIANT), OPT)
06bc494ca11e Initial load
duke
parents:
diff changeset
   104
    ANT_OPTIONS += -Djavac.debug=false
06bc494ca11e Initial load
duke
parents:
diff changeset
   105
  endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   106
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   107
06bc494ca11e Initial load
duke
parents:
diff changeset
   108
# Note: jdk/make/common/Defs.gmk uses LANGUAGE_VERSION (-source NN)
06bc494ca11e Initial load
duke
parents:
diff changeset
   109
# and the somewhat misnamed CLASS_VERSION (-target NN)
06bc494ca11e Initial load
duke
parents:
diff changeset
   110
ifdef TARGET_CLASS_VERSION
06bc494ca11e Initial load
duke
parents:
diff changeset
   111
  ANT_OPTIONS += -Djavac.target=$(TARGET_CLASS_VERSION)
06bc494ca11e Initial load
duke
parents:
diff changeset
   112
else
06bc494ca11e Initial load
duke
parents:
diff changeset
   113
  ifdef JAVAC_TARGET_ARG 
06bc494ca11e Initial load
duke
parents:
diff changeset
   114
    ANT_OPTIONS += -Djavac.target=$(JAVAC_TARGET_ARG)
06bc494ca11e Initial load
duke
parents:
diff changeset
   115
  endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   116
endif 
06bc494ca11e Initial load
duke
parents:
diff changeset
   117
2982
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   118
ifdef SOURCE_LANGUAGE_VERSION
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   119
  ANT_OPTIONS += -Djavac.source=$(SOURCE_LANGUAGE_VERSION)
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   120
else
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   121
  ifdef JAVAC_SOURCE_ARG 
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   122
    ANT_OPTIONS += -Djavac.source=$(JAVAC_SOURCE_ARG)
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   123
  endif
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   124
endif 
090c71af18f6 6827026: Change javac source and target default to 7
jjg
parents: 1650
diff changeset
   125
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   126
ifdef ALT_BOOTDIR
06bc494ca11e Initial load
duke
parents:
diff changeset
   127
  ANT_OPTIONS += -Dboot.java.home=$(ALT_BOOTDIR)
06bc494ca11e Initial load
duke
parents:
diff changeset
   128
  ANT_JAVA_HOME = JAVA_HOME=$(ALT_BOOTDIR)
06bc494ca11e Initial load
duke
parents:
diff changeset
   129
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   130
06bc494ca11e Initial load
duke
parents:
diff changeset
   131
ifdef ALT_OUTPUTDIR
06bc494ca11e Initial load
duke
parents:
diff changeset
   132
  OUTPUTDIR = $(ALT_OUTPUTDIR)
06bc494ca11e Initial load
duke
parents:
diff changeset
   133
  ANT_OPTIONS += -Dbuild.dir=$(ALT_OUTPUTDIR)/build
06bc494ca11e Initial load
duke
parents:
diff changeset
   134
  ANT_OPTIONS += -Ddist.dir=$(ALT_OUTPUTDIR)/dist
06bc494ca11e Initial load
duke
parents:
diff changeset
   135
else
06bc494ca11e Initial load
duke
parents:
diff changeset
   136
  OUTPUTDIR = ..
06bc494ca11e Initial load
duke
parents:
diff changeset
   137
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   138
#ABS_OUTPUTDIR = $(abspath $(OUTPUTDIR))
06bc494ca11e Initial load
duke
parents:
diff changeset
   139
ABS_OUTPUTDIR = $(call FullPath,$(OUTPUTDIR))
06bc494ca11e Initial load
duke
parents:
diff changeset
   140
06bc494ca11e Initial load
duke
parents:
diff changeset
   141
ANT_TMPDIR = $(ABS_OUTPUTDIR)/build/ant-tmp
06bc494ca11e Initial load
duke
parents:
diff changeset
   142
ANT_OPTS = ANT_OPTS=-Djava.io.tmpdir='$(ANT_TMPDIR)'
06bc494ca11e Initial load
duke
parents:
diff changeset
   143
06bc494ca11e Initial load
duke
parents:
diff changeset
   144
ifdef FINDBUGS_HOME
06bc494ca11e Initial load
duke
parents:
diff changeset
   145
  ANT_OPTIONS += -Dfindbugs.home=$(FINDBUGS_HOME)
06bc494ca11e Initial load
duke
parents:
diff changeset
   146
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   147
06bc494ca11e Initial load
duke
parents:
diff changeset
   148
ifdef ANT_HOME
06bc494ca11e Initial load
duke
parents:
diff changeset
   149
  ANT = $(ANT_HOME)/bin/ant
06bc494ca11e Initial load
duke
parents:
diff changeset
   150
  ifneq ($(shell test -x $(ANT) && echo OK), OK)
06bc494ca11e Initial load
duke
parents:
diff changeset
   151
    $(error $(ANT) not found -- please update ANT_HOME)
06bc494ca11e Initial load
duke
parents:
diff changeset
   152
  endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   153
else
06bc494ca11e Initial load
duke
parents:
diff changeset
   154
  ANT = ant
06bc494ca11e Initial load
duke
parents:
diff changeset
   155
  ifneq ($(shell test -x "`which $(ANT)`" && echo OK), OK)
06bc494ca11e Initial load
duke
parents:
diff changeset
   156
    $(error 'ant' not found -- please set ANT_HOME or put 'ant' on your PATH)
06bc494ca11e Initial load
duke
parents:
diff changeset
   157
  endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   158
endif
06bc494ca11e Initial load
duke
parents:
diff changeset
   159
06bc494ca11e Initial load
duke
parents:
diff changeset
   160
# Default target and expected 'do everything' target
06bc494ca11e Initial load
duke
parents:
diff changeset
   161
all: build
06bc494ca11e Initial load
duke
parents:
diff changeset
   162
06bc494ca11e Initial load
duke
parents:
diff changeset
   163
# Standard make clobber target
06bc494ca11e Initial load
duke
parents:
diff changeset
   164
clobber: clean
06bc494ca11e Initial load
duke
parents:
diff changeset
   165
06bc494ca11e Initial load
duke
parents:
diff changeset
   166
# All ant targets of interest
06bc494ca11e Initial load
duke
parents:
diff changeset
   167
ANT_TARGETS = build clean sanity post-sanity diagnostics # for now
06bc494ca11e Initial load
duke
parents:
diff changeset
   168
06bc494ca11e Initial load
duke
parents:
diff changeset
   169
# Create a make target for each
06bc494ca11e Initial load
duke
parents:
diff changeset
   170
$(ANT_TARGETS):
06bc494ca11e Initial load
duke
parents:
diff changeset
   171
	@ mkdir -p $(OUTPUTDIR)/build $(ANT_TMPDIR)
06bc494ca11e Initial load
duke
parents:
diff changeset
   172
	$(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) -diagnostics > $(OUTPUTDIR)/build/ant-diagnostics.log
06bc494ca11e Initial load
duke
parents:
diff changeset
   173
	$(ANT_JAVA_HOME) $(ANT_OPTS) $(ANT) $(ANT_OPTIONS) $@
06bc494ca11e Initial load
duke
parents:
diff changeset
   174
06bc494ca11e Initial load
duke
parents:
diff changeset
   175
#-------------------------------------------------------------------
06bc494ca11e Initial load
duke
parents:
diff changeset
   176
#
06bc494ca11e Initial load
duke
parents:
diff changeset
   177
# Targets for Sun's internal JPRT build system
06bc494ca11e Initial load
duke
parents:
diff changeset
   178
06bc494ca11e Initial load
duke
parents:
diff changeset
   179
CD = cd
06bc494ca11e Initial load
duke
parents:
diff changeset
   180
ZIP = zip
06bc494ca11e Initial load
duke
parents:
diff changeset
   181
06bc494ca11e Initial load
duke
parents:
diff changeset
   182
JPRT_ARCHIVE_BUNDLE=$(ABS_OUTPUTDIR)/$(JPRT_BUILD_FLAVOR)-bundle.zip
06bc494ca11e Initial load
duke
parents:
diff changeset
   183
06bc494ca11e Initial load
duke
parents:
diff changeset
   184
jprt_build_product jprt_build_debug jprt_build_fastdebug: all
06bc494ca11e Initial load
duke
parents:
diff changeset
   185
	( $(CD) $(OUTPUTDIR) && \
06bc494ca11e Initial load
duke
parents:
diff changeset
   186
	  $(ZIP) -q -r $(JPRT_ARCHIVE_BUNDLE) build dist )
06bc494ca11e Initial load
duke
parents:
diff changeset
   187
06bc494ca11e Initial load
duke
parents:
diff changeset
   188
#-------------------------------------------------------------------
06bc494ca11e Initial load
duke
parents:
diff changeset
   189
06bc494ca11e Initial load
duke
parents:
diff changeset
   190
# Declare these phony (not filenames)
06bc494ca11e Initial load
duke
parents:
diff changeset
   191
.PHONY: $(ANT_TARGETS) all clobber \
06bc494ca11e Initial load
duke
parents:
diff changeset
   192
	jprt_build_product jprt_build_debug jprt_build_fastdebug