make/common/NativeCompilation.gmk

Print this page




 352     $1_EXTRA_CFLAGS += $$(C_FLAG_REORDER)
 353     $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER)
 354   endif
 355 
 356   ifeq (NONE, $$($1_OPTIMIZATION))
 357     $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE)
 358     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE)
 359   else ifeq (LOW, $$($1_OPTIMIZATION))
 360     $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM)
 361     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM)
 362   else ifeq (HIGH, $$($1_OPTIMIZATION))
 363     $1_EXTRA_CFLAGS += $(C_O_FLAG_HI)
 364     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI)
 365   else ifeq (HIGHEST, $$($1_OPTIMIZATION))
 366     $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST)
 367     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST)
 368   else ifneq (, $$($1_OPTIMIZATION))
 369     $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION))
 370   endif
 371 




 372   # Now call add_native_source for each source file we are going to compile.
 373   $$(foreach p,$$($1_SRCS), \
 374       $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \
 375           $$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$$($1_CC), \
 376           $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX),$$($1_ASFLAGS))))
 377 
 378   # On windows we need to create a resource file
 379   ifeq ($(OPENJDK_TARGET_OS), windows)
 380     ifneq (,$$($1_VERSIONINFO_RESOURCE))
 381       $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res
 382       $$($1_RES): $$($1_VERSIONINFO_RESOURCE)
 383                 $(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ $$($1_VERSIONINFO_RESOURCE)
 384     endif
 385     ifneq (,$$($1_MANIFEST))
 386       $1_GEN_MANIFEST:=$$($1_OBJECT_DIR)/$$($1_PROGRAM).manifest
 387       IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
 388       $$($1_GEN_MANIFEST): $$($1_MANIFEST)
 389                 $(SED) 's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@
 390     endif
 391   endif


 396       $1_REAL_MAPFILE:=$$($1_MAPFILE)
 397       ifneq (,$$($1_REORDER))
 398         $1_REAL_MAPFILE:=$$($1_OBJECT_DIR)/mapfile
 399 
 400         $$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER)
 401                 $$(MKDIR) -p $$(@D)
 402                 $$(CP) $$($1_MAPFILE) $$@.tmp
 403                 $$(SED) -e 's=OUTPUTDIR=$$($1_OBJECT_DIR)=' $$($1_REORDER) >> $$@.tmp
 404                 $$(MV) $$@.tmp $$@
 405       endif
 406     endif
 407   endif
 408 
 409   # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables
 410   # for LDFLAGS and LDFLAGS_SUFFIX
 411   $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
 412   $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS))
 413   ifneq (,$$($1_REAL_MAPFILE))
 414     $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
 415   endif


 416 
 417   # Need to make sure TARGET is first on list
 418   $1 := $$($1_TARGET)
 419   ifeq ($$($1_STATIC_LIBRARY),)
 420     ifneq ($$($1_DEBUG_SYMBOLS),)
 421       ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
 422         ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet
 423           ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR))
 424             # The dependency on TARGET is needed on windows for debuginfo files
 425             # to be rebuilt properly.
 426             $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% $$($1_TARGET)
 427                 $(CP) $$< $$@
 428           endif
 429 
 430           # Generate debuginfo files.
 431           ifeq ($(OPENJDK_TARGET_OS), windows)
 432             $1_EXTRA_LDFLAGS += "-pdb:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb" \
 433                 "-map:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map"
 434             $1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb \
 435                 $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map




 352     $1_EXTRA_CFLAGS += $$(C_FLAG_REORDER)
 353     $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER)
 354   endif
 355 
 356   ifeq (NONE, $$($1_OPTIMIZATION))
 357     $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE)
 358     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE)
 359   else ifeq (LOW, $$($1_OPTIMIZATION))
 360     $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM)
 361     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM)
 362   else ifeq (HIGH, $$($1_OPTIMIZATION))
 363     $1_EXTRA_CFLAGS += $(C_O_FLAG_HI)
 364     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI)
 365   else ifeq (HIGHEST, $$($1_OPTIMIZATION))
 366     $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST)
 367     $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST)
 368   else ifneq (, $$($1_OPTIMIZATION))
 369     $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION))
 370   endif
 371 
 372   # Add sys root specific cflags last
 373   $1_EXTRA_CFLAGS += $(SYSROOT_CFLAGS)
 374   $1_EXTRA_CXXFLAGS += $(SYSROOT_CFLAGS)
 375 
 376   # Now call add_native_source for each source file we are going to compile.
 377   $$(foreach p,$$($1_SRCS), \
 378       $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \
 379           $$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$$($1_CC), \
 380           $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX),$$($1_ASFLAGS))))
 381 
 382   # On windows we need to create a resource file
 383   ifeq ($(OPENJDK_TARGET_OS), windows)
 384     ifneq (,$$($1_VERSIONINFO_RESOURCE))
 385       $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res
 386       $$($1_RES): $$($1_VERSIONINFO_RESOURCE)
 387                 $(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ $$($1_VERSIONINFO_RESOURCE)
 388     endif
 389     ifneq (,$$($1_MANIFEST))
 390       $1_GEN_MANIFEST:=$$($1_OBJECT_DIR)/$$($1_PROGRAM).manifest
 391       IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER)
 392       $$($1_GEN_MANIFEST): $$($1_MANIFEST)
 393                 $(SED) 's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@
 394     endif
 395   endif


 400       $1_REAL_MAPFILE:=$$($1_MAPFILE)
 401       ifneq (,$$($1_REORDER))
 402         $1_REAL_MAPFILE:=$$($1_OBJECT_DIR)/mapfile
 403 
 404         $$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER)
 405                 $$(MKDIR) -p $$(@D)
 406                 $$(CP) $$($1_MAPFILE) $$@.tmp
 407                 $$(SED) -e 's=OUTPUTDIR=$$($1_OBJECT_DIR)=' $$($1_REORDER) >> $$@.tmp
 408                 $$(MV) $$@.tmp $$@
 409       endif
 410     endif
 411   endif
 412 
 413   # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables
 414   # for LDFLAGS and LDFLAGS_SUFFIX
 415   $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS))
 416   $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS))
 417   ifneq (,$$($1_REAL_MAPFILE))
 418     $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE))
 419   endif
 420 
 421   $1_EXTRA_LDFLAGS += $(SYSROOT_LDFLAGS)
 422 
 423   # Need to make sure TARGET is first on list
 424   $1 := $$($1_TARGET)
 425   ifeq ($$($1_STATIC_LIBRARY),)
 426     ifneq ($$($1_DEBUG_SYMBOLS),)
 427       ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
 428         ifneq ($(OPENJDK_TARGET_OS), macosx) # no MacOS X support yet
 429           ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR))
 430             # The dependency on TARGET is needed on windows for debuginfo files
 431             # to be rebuilt properly.
 432             $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% $$($1_TARGET)
 433                 $(CP) $$< $$@
 434           endif
 435 
 436           # Generate debuginfo files.
 437           ifeq ($(OPENJDK_TARGET_OS), windows)
 438             $1_EXTRA_LDFLAGS += "-pdb:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb" \
 439                 "-map:$$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map"
 440             $1_DEBUGINFO_FILES := $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).pdb \
 441                 $$($1_OBJECT_DIR)/$$($1_NOSUFFIX).map