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 |