make/aix/makefiles/rules.make

changeset 6464
b83f7d608548
parent 0
f90c822e73f8
child 9890
429bb572ee65
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/make/aix/makefiles/rules.make	Fri Sep 06 20:08:29 2013 +0200
     1.3 @@ -0,0 +1,203 @@
     1.4 +#
     1.5 +# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
     1.6 +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.7 +#
     1.8 +# This code is free software; you can redistribute it and/or modify it
     1.9 +# under the terms of the GNU General Public License version 2 only, as
    1.10 +# published by the Free Software Foundation.
    1.11 +#
    1.12 +# This code is distributed in the hope that it will be useful, but WITHOUT
    1.13 +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    1.14 +# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    1.15 +# version 2 for more details (a copy is included in the LICENSE file that
    1.16 +# accompanied this code).
    1.17 +#
    1.18 +# You should have received a copy of the GNU General Public License version
    1.19 +# 2 along with this work; if not, write to the Free Software Foundation,
    1.20 +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    1.21 +#
    1.22 +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    1.23 +# or visit www.oracle.com if you need additional information or have any
    1.24 +# questions.
    1.25 +#  
    1.26 +#
    1.27 +
    1.28 +# Common rules/macros for the vm, adlc.
    1.29 +
    1.30 +# Tell make that .cpp is important
    1.31 +.SUFFIXES: .cpp $(SUFFIXES)
    1.32 +
    1.33 +DEMANGLER       = c++filt
    1.34 +DEMANGLE        = $(DEMANGLER) < $@ > .$@ && mv -f .$@ $@
    1.35 +
    1.36 +# $(CC) is the c compiler (cc/gcc), $(CXX) is the c++ compiler (CC/g++).
    1.37 +CC_COMPILE       = $(CC) $(CXXFLAGS) $(CFLAGS)
    1.38 +CXX_COMPILE      = $(CXX) $(CXXFLAGS) $(CFLAGS)
    1.39 +
    1.40 +AS.S            = $(AS) $(ASFLAGS)
    1.41 +
    1.42 +COMPILE.CC       = $(CC_COMPILE) -c
    1.43 +GENASM.CC        = $(CC_COMPILE) -S
    1.44 +LINK.CC          = $(CC) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
    1.45 +LINK_LIB.CC      = $(CC) $(LFLAGS) $(SHARED_FLAG)
    1.46 +PREPROCESS.CC    = $(CC_COMPILE) -E
    1.47 +
    1.48 +COMPILE.CXX      = $(CXX_COMPILE) -c
    1.49 +GENASM.CXX       = $(CXX_COMPILE) -S
    1.50 +LINK.CXX         = $(CXX) $(LFLAGS) $(AOUT_FLAGS) $(PROF_AOUT_FLAGS)
    1.51 +LINK_NOPROF.CXX  = $(CXX) $(LFLAGS) $(AOUT_FLAGS)
    1.52 +LINK_LIB.CXX     = $(CXX) $(LFLAGS) $(SHARED_FLAG)
    1.53 +PREPROCESS.CXX   = $(CXX_COMPILE) -E
    1.54 +
    1.55 +# cross compiling the jvm with c2 requires host compilers to build
    1.56 +# adlc tool
    1.57 +
    1.58 +HOST.CXX_COMPILE      = $(HOSTCXX) $(CXXFLAGS) $(CFLAGS)
    1.59 +HOST.COMPILE.CXX      = $(HOST.CXX_COMPILE) -c
    1.60 +HOST.LINK_NOPROF.CXX  = $(HOSTCXX) $(LFLAGS) $(AOUT_FLAGS)
    1.61 +
    1.62 +
    1.63 +# Effect of REMOVE_TARGET is to delete out-of-date files during "gnumake -k".
    1.64 +REMOVE_TARGET   = rm -f $@
    1.65 +
    1.66 +# Note use of ALT_BOOTDIR to explicitly specify location of java and
    1.67 +# javac; this is the same environment variable used in the J2SE build
    1.68 +# process for overriding the default spec, which is BOOTDIR.
    1.69 +# Note also that we fall back to using JAVA_HOME if neither of these is
    1.70 +# specified.
    1.71 +
    1.72 +ifdef ALT_BOOTDIR
    1.73 +
    1.74 +RUN.JAVA  = $(ALT_BOOTDIR)/bin/java
    1.75 +RUN.JAVAP = $(ALT_BOOTDIR)/bin/javap
    1.76 +RUN.JAVAH = $(ALT_BOOTDIR)/bin/javah
    1.77 +RUN.JAR   = $(ALT_BOOTDIR)/bin/jar
    1.78 +COMPILE.JAVAC = $(ALT_BOOTDIR)/bin/javac
    1.79 +COMPILE.RMIC = $(ALT_BOOTDIR)/bin/rmic
    1.80 +BOOT_JAVA_HOME = $(ALT_BOOTDIR)
    1.81 +
    1.82 +else
    1.83 +
    1.84 +ifdef BOOTDIR
    1.85 +
    1.86 +RUN.JAVA  = $(BOOTDIR)/bin/java
    1.87 +RUN.JAVAP = $(BOOTDIR)/bin/javap
    1.88 +RUN.JAVAH = $(BOOTDIR)/bin/javah
    1.89 +RUN.JAR   = $(BOOTDIR)/bin/jar
    1.90 +COMPILE.JAVAC = $(BOOTDIR)/bin/javac
    1.91 +COMPILE.RMIC  = $(BOOTDIR)/bin/rmic
    1.92 +BOOT_JAVA_HOME = $(BOOTDIR)
    1.93 +
    1.94 +else
    1.95 +
    1.96 +ifdef JAVA_HOME
    1.97 +
    1.98 +RUN.JAVA  = $(JAVA_HOME)/bin/java
    1.99 +RUN.JAVAP = $(JAVA_HOME)/bin/javap
   1.100 +RUN.JAVAH = $(JAVA_HOME)/bin/javah
   1.101 +RUN.JAR   = $(JAVA_HOME)/bin/jar
   1.102 +COMPILE.JAVAC = $(JAVA_HOME)/bin/javac
   1.103 +COMPILE.RMIC  = $(JAVA_HOME)/bin/rmic
   1.104 +BOOT_JAVA_HOME = $(JAVA_HOME)
   1.105 +
   1.106 +else
   1.107 +
   1.108 +# take from the PATH, if ALT_BOOTDIR, BOOTDIR and JAVA_HOME are not defined
   1.109 +# note that this is to support hotspot build without SA. To build
   1.110 +# SA along with hotspot, you need to define ALT_BOOTDIR, BOOTDIR or JAVA_HOME
   1.111 +
   1.112 +RUN.JAVA  = java
   1.113 +RUN.JAVAP = javap
   1.114 +RUN.JAVAH = javah
   1.115 +RUN.JAR   = jar
   1.116 +COMPILE.JAVAC = javac
   1.117 +COMPILE.RMIC  = rmic
   1.118 +
   1.119 +endif
   1.120 +endif
   1.121 +endif
   1.122 +
   1.123 +COMPILE.JAVAC += $(BOOTSTRAP_JAVAC_FLAGS)
   1.124 +
   1.125 +SUM = /usr/bin/sum
   1.126 +
   1.127 +# 'gmake MAKE_VERBOSE=y' gives all the gory details.
   1.128 +QUIETLY$(MAKE_VERBOSE)  = @
   1.129 +RUN.JAR$(MAKE_VERBOSE) += >/dev/null
   1.130 +
   1.131 +# Settings for javac
   1.132 +BOOT_SOURCE_LANGUAGE_VERSION = 6
   1.133 +BOOT_TARGET_CLASS_VERSION = 6
   1.134 +JAVAC_FLAGS = -g -encoding ascii
   1.135 +BOOTSTRAP_JAVAC_FLAGS = $(JAVAC_FLAGS) -source $(BOOT_SOURCE_LANGUAGE_VERSION) -target $(BOOT_TARGET_CLASS_VERSION)
   1.136 +
   1.137 +# With parallel makes, print a message at the end of compilation.
   1.138 +ifeq    ($(findstring j,$(MFLAGS)),j)
   1.139 +COMPILE_DONE    = && { echo Done with $<; }
   1.140 +endif
   1.141 +
   1.142 +# Include $(NONPIC_OBJ_FILES) definition
   1.143 +ifndef LP64
   1.144 +include $(GAMMADIR)/make/pic.make
   1.145 +endif
   1.146 +
   1.147 +include $(GAMMADIR)/make/altsrc.make
   1.148 +
   1.149 +# The non-PIC object files are only generated for 32 bit platforms.
   1.150 +ifdef LP64
   1.151 +%.o: %.cpp
   1.152 +	@echo Compiling $<
   1.153 +	$(QUIETLY) $(REMOVE_TARGET)
   1.154 +	$(QUIETLY) $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
   1.155 +else
   1.156 +%.o: %.cpp
   1.157 +	@echo Compiling $<
   1.158 +	$(QUIETLY) $(REMOVE_TARGET)
   1.159 +	$(QUIETLY) $(if $(findstring $@, $(NONPIC_OBJ_FILES)), \
   1.160 +	   $(subst $(VM_PICFLAG), ,$(COMPILE.CXX)) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE), \
   1.161 +	   $(COMPILE.CXX) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE))
   1.162 +endif
   1.163 +
   1.164 +%.o: %.s
   1.165 +	@echo Assembling $<
   1.166 +	$(QUIETLY) $(REMOVE_TARGET)
   1.167 +	$(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE)
   1.168 +
   1.169 +%.s: %.cpp
   1.170 +	@echo Generating assembly for $<
   1.171 +	$(QUIETLY) $(GENASM.CXX) -o $@ $<
   1.172 +	$(QUIETLY) $(DEMANGLE) $(COMPILE_DONE)
   1.173 +
   1.174 +# Intermediate files (for debugging macros)
   1.175 +%.i: %.cpp
   1.176 +	@echo Preprocessing $< to $@
   1.177 +	$(QUIETLY) $(PREPROCESS.CXX) $< > $@ $(COMPILE_DONE)
   1.178 +
   1.179 +#  Override gnumake built-in rules which do sccs get operations badly.
   1.180 +#  (They put the checked out code in the current directory, not in the
   1.181 +#  directory of the original file.)  Since this is a symptom of a teamware
   1.182 +#  failure, and since not all problems can be detected by gnumake due
   1.183 +#  to incomplete dependency checking... just complain and stop.
   1.184 +%:: s.%
   1.185 +	@echo "========================================================="
   1.186 +	@echo File $@
   1.187 +	@echo is out of date with respect to its SCCS file.
   1.188 +	@echo This file may be from an unresolved Teamware conflict.
   1.189 +	@echo This is also a symptom of a Teamware bringover/putback failure
   1.190 +	@echo in which SCCS files are updated but not checked out.
   1.191 +	@echo Check for other out of date files in your workspace.
   1.192 +	@echo "========================================================="
   1.193 +	@exit 666
   1.194 +
   1.195 +%:: SCCS/s.%
   1.196 +	@echo "========================================================="
   1.197 +	@echo File $@
   1.198 +	@echo is out of date with respect to its SCCS file.
   1.199 +	@echo This file may be from an unresolved Teamware conflict.
   1.200 +	@echo This is also a symptom of a Teamware bringover/putback failure
   1.201 +	@echo in which SCCS files are updated but not checked out.
   1.202 +	@echo Check for other out of date files in your workspace.
   1.203 +	@echo "========================================================="
   1.204 +	@exit 666
   1.205 +
   1.206 +.PHONY: default

mercurial