98 ifeq ($(CLOSED_SRC_INCLUDED), false)
99 OPENJDK = true
100 endif
101
102 # Define where closed directories are
103 ifdef OPENJDK
104 CLOSED_SRC =
105 CLOSED_SHARE_SRC =
106 else
107 ifndef CLOSED_SHARE_SRC
108 CLOSED_SHARE_SRC = $(CLOSED_SRC)/share
109 endif
110 endif
111
112 #
113 # Get platform definitions
114 #
115
116 include $(JDK_TOPDIR)/make/common/Defs-$(PLATFORM).gmk
117
118 # Reset the VM name for client-only builds
119 ifdef BUILD_CLIENT_ONLY
120 VM_NAME = client
121 endif
122
123 #
124 # Freetype logic is applicable to OpenJDK only
125 #
126 ifdef OPENJDK
127
128 #if we use system lib we do not need to copy it to build tree
129 USING_SYSTEM_FT_LIB=false
130
131 ifeq ($(PLATFORM), windows)
132 DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/win32/freetype-$(ARCH)
133 endif
134 ifeq ($(PLATFORM), linux)
135 DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(PLATFORM)/freetype-$(ARCH)
136 endif
137 ifeq ($(PLATFORM), solaris)
138 # historically for Solaris we have slightly different devtools
139 # naming conventions
140 DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/freetype-$(ARCH)
141 endif
142
322 ifneq ($(ARCH_DATA_MODEL), 32)
323 OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
324 else
325 OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX)
326 endif
327 OBJDIR = $(TEMPDIR)/$(OBJDIRNAME)
328
329 # CLASSHDRDIR is where the generated C Class Header files go.
330 CLASSHDRDIR = $(TEMPDIR)/CClassHeaders
331
332 #
333 # CLASSDESTDIR can be used to specify the directory where generated classes
334 # are to be placed. The default is CLASSBINDIR.
335 #
336 ifndef CLASSDESTDIR
337 CLASSDESTDIR = $(CLASSBINDIR)
338 endif
339
340 INCLUDES = -I. -I$(CLASSHDRDIR) \
341 $(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES)
342 OTHER_CPPFLAGS = $(INCLUDES)
343
344
345 #
346 # vpaths. These are the default locations searched for source files.
347 # GNUmakefiles of individual areas often override the default settings.
348 # There are no longer default vpath entries for C and assembler files
349 # so we can ensure that libraries don't get their hands on JVM files.
350 #
351 # We define an intermediate variable for Java files because
352 # we use its value later to help define $SOURCEPATH
353
354 VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
355 ifdef OPENJDK
356 VPATH.java = $(VPATH0.java)
357 else
358 #
359 # If filenames are duplicated between open/closed workspaces, prefer
360 # the closed files.
361 #
362 # Source ordering is important: some targets depend on closed files
363 # replacing open ones, and thus the closed file sources must be found
364 # before the open ones.
454 HOTSPOT_LOG_NAME = hotspot.log
455 define java-vm-cleanup
456 if [ -w $(HOTSPOT_LOG_NAME) ] ; then $(RM) $(HOTSPOT_LOG_NAME); fi
457 endef
458
459 # Current directory
460 CURRENT_DIRECTORY := $(shell $(PWD))
461
462 #
463 # Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
464 # used for this file, otherwise the default settings are used.
465 #
466 CFLAGS_$(VARIANT)/BYFILE = $(CFLAGS_$(VARIANT)/$(@F)) \
467 $(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F)))
468 CXXFLAGS_$(VARIANT)/BYFILE = $(CXXFLAGS_$(VARIANT)/$(@F)) \
469 $(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F)))
470
471 #
472 # Tool flags
473 #
474 ASFLAGS = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS)
475 CFLAGS = $(CFLAGS_$(VARIANT)/BYFILE) $(CFLAGS_COMMON) $(OTHER_CFLAGS)
476 CXXFLAGS = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS)
477 CPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \
478 $(DEFINES) $(OPTIONS:%=-D%)
479 LDFLAGS = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS)
480 LDLIBS = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON)
481 LINTFLAGS = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \
482 $(OTHER_LINTFLAGS)
483
484 VERSION_DEFINES = -DRELEASE='"$(RELEASE)"'
485
486 ifdef INSANE
487 export INSANE
488 endif
489
490 ifdef ALT_COPYRIGHT_YEAR
491 COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
492 else
493 COPYRIGHT_YEAR := $(shell $(DATE) '+%Y')
494 endif
495
496 # Install of imported file (JDK_IMPORT_PATH, or some other external location)
|
98 ifeq ($(CLOSED_SRC_INCLUDED), false)
99 OPENJDK = true
100 endif
101
102 # Define where closed directories are
103 ifdef OPENJDK
104 CLOSED_SRC =
105 CLOSED_SHARE_SRC =
106 else
107 ifndef CLOSED_SHARE_SRC
108 CLOSED_SHARE_SRC = $(CLOSED_SRC)/share
109 endif
110 endif
111
112 #
113 # Get platform definitions
114 #
115
116 include $(JDK_TOPDIR)/make/common/Defs-$(PLATFORM).gmk
117
118 #
119 # Cross-compilation Settings
120 #
121 ifdef CROSS_COMPILE_ARCH
122 # Can't run the tools we just built
123 USE_ONLY_BOOTDIR_TOOLS = true
124
125 # When cross-compiling CC generates code for the target, but
126 # some parts of the build generate C code that has to be compiled
127 # and executed on the build host - HOST_CC is the 'local' compiler.
128 # For linux the default is /usr/bin/gcc; other platforms need to
129 # set it explicitly
130 ifeq ($(PLATFORM), linux)
131 ifndef HOST_CC
132 HOST_CC = $(USRBIN_PATH)gcc
133 endif
134 endif
135 else
136 # Must set HOST_CC if not already set
137 ifndef HOST_CC
138 HOST_CC = $(CC)
139 endif
140 endif
141
142 # Reset the VM name for client-only builds
143 ifdef BUILD_CLIENT_ONLY
144 VM_NAME = client
145 endif
146
147
148 #
149 # Freetype logic is applicable to OpenJDK only
150 #
151 ifdef OPENJDK
152
153 #if we use system lib we do not need to copy it to build tree
154 USING_SYSTEM_FT_LIB=false
155
156 ifeq ($(PLATFORM), windows)
157 DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/win32/freetype-$(ARCH)
158 endif
159 ifeq ($(PLATFORM), linux)
160 DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(PLATFORM)/freetype-$(ARCH)
161 endif
162 ifeq ($(PLATFORM), solaris)
163 # historically for Solaris we have slightly different devtools
164 # naming conventions
165 DEVTOOLS_FT_DIR=$(JDK_DEVTOOLS_DIR)/$(ARCH_FAMILY)/freetype-$(ARCH)
166 endif
167
347 ifneq ($(ARCH_DATA_MODEL), 32)
348 OBJDIRNAME = obj$(ARCH_DATA_MODEL)$(OBJDIRNAME_SUFFIX)
349 else
350 OBJDIRNAME = obj$(OBJDIRNAME_SUFFIX)
351 endif
352 OBJDIR = $(TEMPDIR)/$(OBJDIRNAME)
353
354 # CLASSHDRDIR is where the generated C Class Header files go.
355 CLASSHDRDIR = $(TEMPDIR)/CClassHeaders
356
357 #
358 # CLASSDESTDIR can be used to specify the directory where generated classes
359 # are to be placed. The default is CLASSBINDIR.
360 #
361 ifndef CLASSDESTDIR
362 CLASSDESTDIR = $(CLASSBINDIR)
363 endif
364
365 INCLUDES = -I. -I$(CLASSHDRDIR) \
366 $(patsubst %,-I%,$(subst $(CLASSPATH_SEPARATOR), ,$(VPATH.h))) $(OTHER_INCLUDES)
367 OTHER_CPPFLAGS += $(INCLUDES)
368
369 #
370 # vpaths. These are the default locations searched for source files.
371 # GNUmakefiles of individual areas often override the default settings.
372 # There are no longer default vpath entries for C and assembler files
373 # so we can ensure that libraries don't get their hands on JVM files.
374 #
375 # We define an intermediate variable for Java files because
376 # we use its value later to help define $SOURCEPATH
377
378 VPATH0.java = $(GENSRCDIR)$(CLASSPATH_SEPARATOR)$(PLATFORM_SRC)/classes$(CLASSPATH_SEPARATOR)$(SHARE_SRC)/classes
379 ifdef OPENJDK
380 VPATH.java = $(VPATH0.java)
381 else
382 #
383 # If filenames are duplicated between open/closed workspaces, prefer
384 # the closed files.
385 #
386 # Source ordering is important: some targets depend on closed files
387 # replacing open ones, and thus the closed file sources must be found
388 # before the open ones.
478 HOTSPOT_LOG_NAME = hotspot.log
479 define java-vm-cleanup
480 if [ -w $(HOTSPOT_LOG_NAME) ] ; then $(RM) $(HOTSPOT_LOG_NAME); fi
481 endef
482
483 # Current directory
484 CURRENT_DIRECTORY := $(shell $(PWD))
485
486 #
487 # Create BYFILE OPT and DBG settings, if CFLAGS_OPT/foobar.o is set then it is
488 # used for this file, otherwise the default settings are used.
489 #
490 CFLAGS_$(VARIANT)/BYFILE = $(CFLAGS_$(VARIANT)/$(@F)) \
491 $(CFLAGS_$(VARIANT)$(CFLAGS_$(VARIANT)/$(@F)))
492 CXXFLAGS_$(VARIANT)/BYFILE = $(CXXFLAGS_$(VARIANT)/$(@F)) \
493 $(CXXFLAGS_$(VARIANT)$(CXXFLAGS_$(VARIANT)/$(@F)))
494
495 #
496 # Tool flags
497 #
498 # EXTRA_CFLAGS are used to define cross-compilation options
499 #
500 ASFLAGS = $(ASFLAGS_$(VARIANT)) $(ASFLAGS_COMMON) $(OTHER_ASFLAGS)
501 CFLAGS = $(CFLAGS_$(VARIANT)/BYFILE) $(CFLAGS_COMMON) $(OTHER_CFLAGS) $(EXTRA_CFLAGS)
502 CXXFLAGS = $(CXXFLAGS_$(VARIANT)/BYFILE) $(CXXFLAGS_COMMON) $(OTHER_CXXFLAGS) $(EXTRA_CFLAGS)
503 CPPFLAGS = $(CPPFLAGS_$(VARIANT)) $(CPPFLAGS_COMMON) $(OTHER_CPPFLAGS) \
504 $(DEFINES) $(OPTIONS:%=-D%)
505 LDFLAGS = $(LDFLAGS_$(VARIANT)) $(LDFLAGS_COMMON) $(OTHER_LDFLAGS)
506 LDLIBS = $(OTHER_LDLIBS) $(LDLIBS_$(VARIANT)) $(LDLIBS_COMMON)
507 LINTFLAGS = $(LINTFLAGS_$(VARIANT)) $(LINTFLAGS_COMMON) \
508 $(OTHER_LINTFLAGS)
509
510 VERSION_DEFINES = -DRELEASE='"$(RELEASE)"'
511
512 ifdef INSANE
513 export INSANE
514 endif
515
516 ifdef ALT_COPYRIGHT_YEAR
517 COPYRIGHT_YEAR = $(ALT_COPYRIGHT_YEAR)
518 else
519 COPYRIGHT_YEAR := $(shell $(DATE) '+%Y')
520 endif
521
522 # Install of imported file (JDK_IMPORT_PATH, or some other external location)
|