| # |
| # @(#)Defs.gmk 1.21 07/05/15 |
| # |
| # Common variables used by all the Java makefiles. This file should not |
| # contain rules. |
| # |
| |
| include $(TOPDIR)/build/$(PLATFORM)/makefiles/Defs-$(PLATFORM).gmk |
| |
| |
| SHARE_SRC = $(TOPDIR)/src/share |
| PLATFORM_SRC = $(TOPDIR)/src/$(PLATFORM) |
| |
| TARGDIR = |
| MINCLUDES = $(TOPDIR)/build/share/minclude/ |
| |
| # |
| # Default BOOTDIR |
| # |
| _BOOTDIR = /usr/local/java/latest |
| |
| # |
| # Set BOOTDIR to _BOOTDIR if ALT_BOOTDIR isn't set. Otherwise, set |
| # it to ALT_BOOTDIR |
| # |
| BOOTDIR = $(_BOOTDIR$(ALT_BOOTDIR))$(ALT_BOOTDIR) |
| |
| # |
| # Default JAVAHOME |
| # |
| ifeq ($(ARCH), sparc) |
| _JAVAHOME = /java/re/jdk/1.5.0/archive/fcs/binaries/solaris-sparc |
| else |
| _JAVAHOME = /java/re/jdk/1.5.0/archive/fcs/binaries/solaris-i586 |
| endif |
| |
| # |
| # Set JAVAHOME to _JAVAHOME if ALT_JAVAHOME isn't set. Otherwise, set |
| # it to ALT_JAVAHOME |
| # |
| JAVAHOME = $(_JAVAHOME$(ALT_JAVAHOME))$(ALT_JAVAHOME) |
| |
| JDK = $(JAVAHOME$(JDK_HOME))$(JDK_HOME) |
| JDK_BINDIR = $(JDK)/bin |
| JDK_INCLUDE = $(JDK)/include |
| JDK_LIBDIR = $(JDK)/jre/lib |
| BINDIR = $(TOPDIR)/build/$(PLATFORM)/bin |
| LIBDIR = $(TOPDIR)/build/$(PLATFORM)/lib |
| INCLUDEDIR = $(TOPDIR)/build/$(PLATFORM)/include |
| CLASSDIR = $(TOPDIR)/build/$(PLATFORM)/classes |
| RELEASEDIR = $(TOPDIR)/build/$(PLATFORM)/release |
| # Set CLASSBINDIR to CLASSDIR if ALT_CLASSBINDIR isn't set. Otheriwse set |
| # it to ALT_CLASSBINDIR |
| CLASSBINDIR = $(CLASSDIR$(ALT_CLASSBINDIR))$(ALT_CLASSBINDIR) |
| _SRCDIR = . |
| SRCDIR = $(_SRCDIR$(ALT_SRCDIR))$(ALT_SRCDIR) |
| |
| INCLUDES = -I. -ICClassHeaders \ |
| -I$(JDK_INCLUDE) -I$(JDK_INCLUDE)/$(PLATFORM) \ |
| $(patsubst %,-I%,$(subst :, ,$(VPATH.h))) $(OTHER_INCLUDES) |
| OTHER_CPPFLAGS = $(INCLUDES) |
| |
| # |
| # vpaths. These are the default locations searched for source files. |
| # GNUmakefiles of individual areas often override the default settings. |
| # There are no longer default vpath entries for C and assembler files |
| # so we can ensure that libraries don't get their hands on JVM files. |
| # |
| # We define an intermediate variable for Java files because |
| # we use its value later to help define $CLASSPATH |
| # |
| VPATH.java = $(PLATFORM_SRC)/classes/$(SRCDIR):$(SHARE_SRC)/classes/$(SRCDIR) |
| |
| vpath %.java $(VPATH.java) |
| |
| vpath %.class $(CLASSBINDIR) |
| |
| vpath %.o $(OBJDIR) |
| |
| # |
| # VPATH.h is used elsewhere to generate include flags. By default, |
| # anyone has access to the include files that the JVM area exports, |
| # namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific |
| # relatives. |
| # |
| VPATH.h = $(PLATFORM_SRC)/javavm/export:$(SHARE_SRC)/javavm/export |
| |
| vpath %.h $(VPATH.h) |
| |
| # |
| # Object Directories |
| # Create different object directories for green and native threads |
| # so that both options can be built without clobbering each other |
| |
| # Directory name specific to type of threads: green or native |
| # If THREADS_FLAG is not set or not equal to green or native, then no threads |
| # specific object directories are made. This would enable to quickly move to |
| # a build environment with a single threads type, in the future. |
| # TSOBJDIR = Thread Specific object directory |
| |
| ifdef BUILD_REENTRANT_LIBS |
| TSOBJDIR = . |
| else |
| ifeq ($(THREADS_FLAG), native) |
| TSOBJDIR = native_threads |
| else |
| ifeq ($(THREADS_FLAG), green) |
| TSOBJDIR = green_threads |
| else |
| TSOBJDIR = . |
| endif |
| endif |
| endif |
| |
| # |
| OBJDIR_NAME = obj |
| OBJDIR = $(OBJDIR_NAME)$(SUFFIX)/$(ARCH)/$(TSOBJDIR) |
| OBJDIRS = $(OBJDIR_NAME)$(OPT_SUFFIX)/$(ARCH)/$(TSOBJDIR) \ |
| $(OBJDIR_NAME)$(DBG_SUFFIX)/$(ARCH)/$(TSOBJDIR) |
| |
| # |
| # LIB_LOCATION must be defined in all cases so that we can link against |
| # libjava in various places. |
| # |
| LIB_LOCATION = $(LIBDIR)/$(ARCH) |
| JDK_LIB_LOCATION = $(JDK_LIBDIR)/$(ARCH) |
| |
| # Compute the root of each of the object directories |
| # used to delete whole object directories when making clean and/or clobber |
| |
| OBJROOTS = $(patsubst %/$(ARCH)/$(TSOBJDIR), %, $(OBJDIRS)) |
| |
| # |
| # Java header and stub variables |
| # |
| ifeq ($(PRODUCT), java) |
| CLASSPATH = $(CLASSBINDIR):$(DEPENDS):$(VPATH.java) |
| else |
| PKG = $(shell expr $(PACKAGE) : '\([a-z]*\)') |
| PKGDIR = $(shell echo $(PACKAGE) | sed 's:\.:/:g') |
| CLASSSRCDIR1 = $(PLATFORM_SRC)/classes/$(SRCDIR) |
| CLASSSRCDIR2 = $(SHARE_SRC)/classes/$(SRCDIR) |
| SRCPATH = $(CLASSSRCDIR1):$(CLASSSRCDIR2) |
| CLASSPATH = $(SRCPATH):$(CLASSBINDIR):$(DEPENDS) |
| endif |
| |
| CLASSHDRDIR = CClassHeaders |
| CLASSHDRS = $(patsubst %,$(CLASSHDRDIR)/%.h,$(subst .,_,$(CLASSES.export))) |
| CLASSSTUBOBJS = classstubs.o |
| STUBPREAMBLE= $(TOPDIR)/build/$(PLATFORM)/classes/StubPreamble.h |
| |
| # |
| # Suffixes for various VARIANTs |
| # |
| OPT_SUFFIX = |
| DBG_SUFFIX = _g |
| SUFFIX = $($(VARIANT)_SUFFIX) |
| |
| # |
| # Java executables/scripts [I'm not sure whether we really want to be |
| # getting the raw executables in the other cases rather than going |
| # through the wrappers. Adding JCMD to fix a problem in JAVAC_CMD is |
| # conservative for now but may not be best. It's also not clear that |
| # JCMD should be java$(SUFFIX), but that may be needed for "gnumake |
| # debug" to do the right thing. Again, do no harm for now.] |
| # |
| ifeq ($(PRODUCT), java) |
| JAVA = $(BINDIR)/$(ARCH)/$(TSOBJDIR)/java$(SUFFIX) |
| JAVAH = $(BINDIR)/$(ARCH)/$(TSOBJDIR)/javah$(SUFFIX) |
| JAVAC = $(BINDIR)/$(ARCH)/$(TSOBJDIR)/javac$(SUFFIX) |
| JAR = $(BINDIR)/$(ARCH)/$(TSOBJDIR)/jar$(SUFFIX) |
| JCMD = $(BINDIR)/java$(SUFFIX) -$(THREADS_FLAG) |
| else |
| JAVA = $(JDK_BINDIR)/java$(SUFFIX) |
| JAVAC = $(JDK_BINDIR)/javac$(SUFFIX) |
| JAVAH = $(JDK_BINDIR)/javah$(SUFFIX) |
| JAVADOC = $(JDK_BINDIR)/javadoc$(SUFFIX) |
| JAR = $(JDK_BINDIR)/jar$(SUFFIX) |
| JDB = $(JDK_BINDIR)/jdb$(SUFFIX) |
| JCMD = $(JAVA) |
| endif |
| |
| # |
| # Invoking the Java compiler |
| # |
| JAVAC_CMD = $(JAVAC) -source 1.5 |
| |
| # |
| # Set opt level to ALT_OPT if set otherwise _OPT |
| # |
| POPT = $(_OPT$(ALT_OPT))$(ALT_OPT) |
| |
| # |
| # Tool flags |
| # |
| CFLAGS = $(CFLAGS_$(VARIANT)) $(CFLAGS_COMMON) $(OTHER_CFLAGS) |
| LCFLAGS = $(CFLAGS_$(VARIANT)) $(LCFLAGS_COMMON) $(OTHER_CFLAGS) |
| CPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \ |
| $(DEFINES) $(OPTIONS:%=-D%) |
| LCPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(LCPPFLAGS_COMMON) \ |
| $(OTHER_CPPFLAGS) $(DEFINES) $(OPTIONS:%=-D%) |
| ASFLAGS = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS) |
| LDFLAGS = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS) |
| LDLIBS = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON) |
| |