corba/make/common/Defs.gmk
changeset 6551 476ed8653670
parent 5555 b2b5ed3f0d0d
child 7672 aec650969dd5
equal deleted inserted replaced
6208:6bdae472f772 6551:476ed8653670
    71 # A list of locales we support but don't have resource files.
    71 # A list of locales we support but don't have resource files.
    72 # This is defined to optimize the search of resource bundles.
    72 # This is defined to optimize the search of resource bundles.
    73 #
    73 #
    74 JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh
    74 JRE_NONEXIST_LOCALES = en en_US de_DE es_ES fr_FR it_IT ja_JP ko_KR sv_SE zh
    75 
    75 
    76 #
       
    77 # All libraries except libjava and libjvm itself link against libjvm and
       
    78 # libjava, the latter for its exported common utilities.  libjava only links
       
    79 # against libjvm.  Programs' makefiles take their own responsibility for
       
    80 # adding other libs.
       
    81 #
       
    82 ifdef PACKAGE
       
    83 # put JAVALIB first, but do not lose any platform specific values....
       
    84   LDLIBS_COMMON = $(JAVALIB)
       
    85 endif # PACKAGE
       
    86 
       
    87 #
       
    88 # Libraries that must appear ahead of libc.so on the link command line
       
    89 #
       
    90 ifdef PROGRAM
       
    91 
       
    92   ifeq ($(PLATFORM), solaris)
       
    93     LDLIBS_COMMON = -lthread -ldl
       
    94   endif
       
    95 
       
    96   ifeq ($(PLATFORM), linux)
       
    97     LDLIBS_COMMON = -ldl
       
    98   endif
       
    99 
       
   100 endif # PROGRAM
       
   101 
       
   102 LDLIBS_COMMON += $(EXTRA_LIBS)
       
   103 
       
   104 #
       
   105 # Default is to build, not import native binaries
       
   106 #
       
   107 ifndef IMPORT_NATIVE_BINARIES
       
   108   IMPORT_NATIVE_BINARIES=false
       
   109 endif
       
   110 # If importing libraries in, no incremental builds
       
   111 ifeq ($(IMPORT_NATIVE_BINARIES),true)
       
   112  INCREMENTAL_BUILD=false
       
   113 endif
       
   114 
       
   115 # for generated libraries
       
   116 LIBDIR              = $(OUTPUTDIR)/lib
    76 LIBDIR              = $(OUTPUTDIR)/lib
   117 ABS_LIBDIR          = $(ABS_OUTPUTDIR)/lib
    77 ABS_LIBDIR          = $(ABS_OUTPUTDIR)/lib
   118 # Optional place to save the windows .lib files
       
   119 LIBFILES_DIR        = $(OUTPUTDIR)/libfiles
       
   120 # for ext jre files
    78 # for ext jre files
   121 EXTDIR              = $(LIBDIR)/ext
    79 EXTDIR              = $(LIBDIR)/ext
   122 # for generated include files
       
   123 INCLUDEDIR          = $(OUTPUTDIR)/include
       
   124 # for generated class files
    80 # for generated class files
   125 CLASSBINDIR         = $(OUTPUTDIR)/classes
    81 CLASSBINDIR         = $(OUTPUTDIR)/classes
   126 DEMOCLASSDIR        = $(OUTPUTDIR)/democlasses
    82 DEMOCLASSDIR        = $(OUTPUTDIR)/democlasses
   127 # for generated tool class files
    83 # for generated tool class files
   128 BUILDTOOLCLASSDIR   = $(OUTPUTDIR)/btclasses
    84 BUILDTOOLCLASSDIR   = $(OUTPUTDIR)/btclasses
   129 # for build tool jar files
    85 # for build tool jar files
   130 BUILDTOOLJARDIR     = $(OUTPUTDIR)/btjars
    86 BUILDTOOLJARDIR     = $(OUTPUTDIR)/btjars
   131 ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
    87 ABS_BUILDTOOLJARDIR = $(ABS_OUTPUTDIR)/btjars
   132 # for generated java source files
    88 # for generated java source files
   133 GENSRCDIR           = $(OUTPUTDIR)/gensrc
    89 GENSRCDIR           = $(OUTPUTDIR)/gensrc
   134 # for generated C source files (not javah)
       
   135 GENNATIVESRCDIR     = $(OUTPUTDIR)/gennativesrc
       
   136 # for imported source files
    90 # for imported source files
   137 IMPORTSRCDIR        = $(OUTPUTDIR)/impsrc
    91 IMPORTSRCDIR        = $(OUTPUTDIR)/impsrc
   138 # for imported documents
    92 # for imported documents
   139 IMPORTDOCDIR        = $(OUTPUTDIR)/impdoc
    93 IMPORTDOCDIR        = $(OUTPUTDIR)/impdoc
   140 # for generated demo
    94 # for generated demo
   194 
   148 
   195 # This must be created right away for pattern rules in Sanity.gmk to work.
   149 # This must be created right away for pattern rules in Sanity.gmk to work.
   196 dummy1:=$(shell $(MKDIR) -p $(TEMPDIR))
   150 dummy1:=$(shell $(MKDIR) -p $(TEMPDIR))
   197 dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK))
   151 dummy2:=$(shell $(MKDIR) -p $(TEMP_DISK))
   198 
   152 
   199 # OBJDIRNAME is the name of the directory where the object code is to
       
   200 #   be placed. It's name depends on whether the data model architecture 
       
   201 #   is 32-bit or not.
       
   202 ifneq ($(ARCH_DATA_MODEL), 32)
       
   203   OBJDIRNAME  = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
       
   204 else
       
   205   OBJDIRNAME  = obj$(OBJDIRNAME_SUFFIX)
       
   206 endif
       
   207 OBJDIR      = $(TEMPDIR)/$(OBJDIRNAME)
       
   208 
       
   209 # CLASSHDRDIR is where the generated C Class Header files go.
       
   210 CLASSHDRDIR = $(TEMPDIR)/CClassHeaders
       
   211 
       
   212 #
   153 #
   213 # CLASSDESTDIR can be used to specify the directory where generated classes
   154 # CLASSDESTDIR can be used to specify the directory where generated classes
   214 # are to be placed. The default is CLASSBINDIR.
   155 # are to be placed. The default is CLASSBINDIR.
   215 #
   156 #
   216 ifndef CLASSDESTDIR
   157 ifndef CLASSDESTDIR
   217 CLASSDESTDIR = $(CLASSBINDIR)
   158 CLASSDESTDIR = $(CLASSBINDIR)
   218 endif
   159 endif
   219 
       
   220 INCLUDES = -I. -I$(CLASSHDRDIR) \
       
   221 	$(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES)
       
   222 OTHER_CPPFLAGS = $(INCLUDES)
       
   223 
       
   224 
   160 
   225 #
   161 #
   226 # vpaths.  These are the default locations searched for source files.
   162 # vpaths.  These are the default locations searched for source files.
   227 # GNUmakefiles of individual areas often override the default settings.
   163 # GNUmakefiles of individual areas often override the default settings.
   228 # There are no longer default vpath entries for C and assembler files
   164 # There are no longer default vpath entries for C and assembler files
   233 
   169 
   234 VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
   170 VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
   235 VPATH.java = $(VPATH0.java)
   171 VPATH.java = $(VPATH0.java)
   236 vpath %.java $(VPATH.java)
   172 vpath %.java $(VPATH.java)
   237 vpath %.class $(CLASSBINDIR)
   173 vpath %.class $(CLASSBINDIR)
   238 vpath %.$(OBJECT_SUFFIX) $(OBJDIR)
       
   239 
       
   240 #
       
   241 # VPATH.h is used elsewhere to generate include flags.  By default, 
       
   242 # anyone has access to the include files that the JVM area exports,
       
   243 # namely jni.h, jvm.h, and jni_utils.h, plus their platform-specific
       
   244 # relatives.
       
   245 #
       
   246 ifeq ($(PLATFORM), windows)
       
   247   VPATH.h = $(BOOTDIR)/include;$(BOOTDIR)/include/$(PLATFORM_INCLUDE_NAME)
       
   248 else
       
   249   VPATH.h = $(PLATFORM_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/export$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/javavm/include$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/javavm/include
       
   250 endif
       
   251 vpath %.h   $(VPATH.h)
       
   252 
       
   253 #
       
   254 # Used in two ways: helps link against libjava.so. Also if overridden
       
   255 # determines where your shared library is installed.
       
   256 #
       
   257 ifndef LIB_LOCATION
       
   258   LIB_LOCATION    =  $(LIBDIR)/$(LIBARCH)
       
   259 endif
       
   260 
       
   261 #
       
   262 # Java header and stub variables
       
   263 #
       
   264 CLASSHDRS     = $(patsubst %,$(CLASSHDRDIR)/%.h,$(subst .,_,$(CLASSES.export)))
       
   265 CLASSSTUBOBJS = classstubs.$(OBJECT_SUFFIX)
       
   266 STUBPREAMBLE  = $(INCLUDEDIR)/StubPreamble.h
       
   267 
   174 
   268 #
   175 #
   269 # Classpath seen by javac (different from the one seen by the VM
   176 # Classpath seen by javac (different from the one seen by the VM
   270 # running javac), and useful variables.
   177 # running javac), and useful variables.
   271 #
   178 #
   336           RELEASE=$(RELEASE) || exit 1; \
   243           RELEASE=$(RELEASE) || exit 1; \
   337   fi ; \
   244   fi ; \
   338 done
   245 done
   339 endef
   246 endef
   340 
   247 
   341 #
       
   342 # Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
       
   343 #    used for this file, otherwise the default settings are used.
       
   344 #
       
   345 CFLAGS_$(VARIANT)/BYFILE    = $(CFLAGS_$(VARIANT)/$(@F)) \
       
   346                               $(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F)))
       
   347 CXXFLAGS_$(VARIANT)/BYFILE  = $(CXXFLAGS_$(VARIANT)/$(@F)) \
       
   348                               $(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F)))
       
   349 
       
   350 #
       
   351 # Tool flags
       
   352 #
       
   353 ASFLAGS         = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS)
       
   354 CFLAGS          = $(CFLAGS_$(VARIANT)/BYFILE)   $(CFLAGS_COMMON) $(OTHER_CFLAGS)
       
   355 CXXFLAGS        = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS)
       
   356 CPPFLAGS        = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \
       
   357 		  $(DEFINES) $(OPTIONS:%=-D%)
       
   358 LDFLAGS         = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS)
       
   359 LDLIBS          = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON)
       
   360 LINTFLAGS       = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \
       
   361 		  $(OTHER_LINTFLAGS)
       
   362 
       
   363 # this should be moved into Defs-<platform>.gmk.....
       
   364 ifeq ($(PLATFORM), windows)
       
   365   VERSION_DEFINES = -DRELEASE="\"$(RELEASE)\""
       
   366 else
       
   367   VERSION_DEFINES = -DRELEASE='"$(RELEASE)"'
       
   368 endif
       
   369 
       
   370 # Prevent the use of many default suffix rules we do not need
   248 # Prevent the use of many default suffix rules we do not need
   371 .SUFFIXES:
   249 .SUFFIXES:
   372 .SUFFIXES: .c .o .h .obj .cpp .hpp .java .class
   250 .SUFFIXES: .java .class
   373 
   251 
   374 # Make sure we are all insane
   252 # Make sure we are all insane
   375 ifdef INSANE
   253 ifdef INSANE
   376   export INSANE
   254   export INSANE
   377 endif
   255 endif