diff -r 76844579fa4b -r 2ba6f4da4bf3 common/makefiles/NativeCompilation.gmk --- a/common/makefiles/NativeCompilation.gmk Thu Sep 06 17:27:20 2012 -0700 +++ b/common/makefiles/NativeCompilation.gmk Tue Sep 18 11:29:16 2012 -0700 @@ -55,22 +55,22 @@ ifneq (,$$(filter %.c,$2)) # Compile as a C file - $1_$2_FLAGS=$4 $$($1_$(notdir $2)_CFLAGS) -c + $1_$2_FLAGS=$4 $$($1_$(notdir $2)_CFLAGS) -DTHIS_FILE='"$$( -# There is very weird code in Defs-solaris.gmk that first sets variables as decribed below -# and then a couple of hundreds of line below resets them... -# this feels like a sure bug...but before this is confirmed, mimic this behaviour -# (note: skip indenting this as it will surely be removed anyway) -# - - ifneq (,$$($1_DEBUG_SYMBOLS)) - $1_OPTIMIZATION := LOW - $1_EXTRA_CFLAGS += $(CFLAGS_DEBUG_SYMBOLS) - $1_EXTRA_CXXFLAGS += $(CXXFLAGS_DEBUG_SYMBOLS) - endif - -# - endif -# - endif - ifeq (NONE, $$($1_OPTIMIZATION)) - $1_EXTRA_CFLAGS += $$(C_O_FLAG_NONE) - $1_EXTRA_CXXFLAGS += $$(CXX_O_FLAG_NONE) + $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE) + $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE) else ifeq (LOW, $$($1_OPTIMIZATION)) - $1_EXTRA_CFLAGS += $$(C_O_FLAG_NORM) - $1_EXTRA_CXXFLAGS += $$(CXX_O_FLAG_NORM) + $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM) + $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM) else ifeq (HIGH, $$($1_OPTIMIZATION)) - $1_EXTRA_CFLAGS += $$(C_O_FLAG_HI) - $1_EXTRA_CXXFLAGS += $$(CXX_O_FLAG_HI) + $1_EXTRA_CFLAGS += $(C_O_FLAG_HI) + $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI) else ifeq (HIGHEST, $$($1_OPTIMIZATION)) - $1_EXTRA_CFLAGS += $$(C_O_FLAG_HIGHEST) - $1_EXTRA_CXXFLAGS += $$(CXX_O_FLAG_HIGHEST) + $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST) + $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST) else ifneq (, $$($1_OPTIMIZATION)) - $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION)) + $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION)) endif # Now create a list of the packages that are about to compile. Used when sending source @@ -375,7 +370,7 @@ $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX),$$($1_ASFLAGS)))) # On windows we need to create a resource file - ifeq ($(OPENJDK_TARGET_OS_API), winapi) + ifeq ($(OPENJDK_TARGET_OS), windows) ifneq (,$$($1_VERSIONINFO_RESOURCE)) $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res $$($1_RES): $$($1_VERSIONINFO_RESOURCE) @@ -409,8 +404,8 @@ endif endif - # Pickup extra OPENJDK_TARGET_OS_API dependent variables (posix or winapi) and - # (linux,solaris,windows,bsd) for LDFLAGS and LDFLAGS_SUFFIX + # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables + # for LDFLAGS and LDFLAGS_SUFFIX $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS)) ifneq (,$$($1_REAL_MAPFILE)) @@ -432,9 +427,10 @@ "-map:$$($1_OBJECT_DIR)/$$($1_LIBRARY).map" endif - $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% + ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) + $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% $(CP) $$< $$@ - + endif ifeq ($(OPENJDK_TARGET_OS), solaris) # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. @@ -509,8 +505,10 @@ "-map:$$($1_OBJECT_DIR)/$$($1_PROGRAM).map" endif - $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% + ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) + $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% $(CP) $$< $$@ + endif ifeq ($(OPENJDK_TARGET_OS), solaris) # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set.