355 $1_EXTRA_CFLAGS += $$(C_FLAG_REORDER) 356 $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER) 357 endif 358 359 ifeq (NONE, $$($1_OPTIMIZATION)) 360 $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE) 361 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE) 362 else ifeq (LOW, $$($1_OPTIMIZATION)) 363 $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM) 364 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM) 365 else ifeq (HIGH, $$($1_OPTIMIZATION)) 366 $1_EXTRA_CFLAGS += $(C_O_FLAG_HI) 367 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI) 368 else ifeq (HIGHEST, $$($1_OPTIMIZATION)) 369 $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST) 370 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST) 371 else ifneq (, $$($1_OPTIMIZATION)) 372 $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION)) 373 endif 374 375 # Now call add_native_source for each source file we are going to compile. 376 $$(foreach p,$$($1_SRCS), \ 377 $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \ 378 $$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$$($1_CC), \ 379 $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX),$$($1_ASFLAGS)))) 380 381 # On windows we need to create a resource file 382 ifeq ($(OPENJDK_TARGET_OS), windows) 383 ifneq (,$$($1_VERSIONINFO_RESOURCE)) 384 $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res 385 $$($1_RES): $$($1_VERSIONINFO_RESOURCE) 386 $(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ $$($1_VERSIONINFO_RESOURCE) 387 endif 388 ifneq (,$$($1_MANIFEST)) 389 $1_GEN_MANIFEST:=$$($1_OBJECT_DIR)/$$($1_PROGRAM).manifest 390 IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER) 391 $$($1_GEN_MANIFEST): $$($1_MANIFEST) 392 $(SED) 's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@ 393 endif 394 endif 399 $1_REAL_MAPFILE:=$$($1_MAPFILE) 400 ifneq (,$$($1_REORDER)) 401 $1_REAL_MAPFILE:=$$($1_OBJECT_DIR)/mapfile 402 403 $$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER) 404 $$(MKDIR) -p $$(@D) 405 $$(CP) $$($1_MAPFILE) $$@.tmp 406 $$(SED) -e 's=OUTPUTDIR=$$($1_OBJECT_DIR)=' $$($1_REORDER) >> $$@.tmp 407 $$(MV) $$@.tmp $$@ 408 endif 409 endif 410 endif 411 412 # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables 413 # for LDFLAGS and LDFLAGS_SUFFIX 414 $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) 415 $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS)) 416 ifneq (,$$($1_REAL_MAPFILE)) 417 $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE)) 418 endif 419 420 $1 := $$($1_TARGET) 421 ifneq (,$$($1_LIBRARY)) 422 # Generating a dynamic library. 423 $1_EXTRA_LDFLAGS+=$$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME)) 424 ifeq ($(OPENJDK_TARGET_OS), windows) 425 $1_EXTRA_LDFLAGS+="-implib:$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib" 426 endif 427 428 $1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX) 429 430 ifneq (,$$($1_DEBUG_SYMBOLS)) 431 ifeq ($(ENABLE_DEBUG_SYMBOLS), true) 432 ifeq ($(OPENJDK_TARGET_OS), windows) 433 $1_EXTRA_LDFLAGS+="-pdb:$$($1_OBJECT_DIR)/$$($1_LIBRARY).pdb" \ 434 "-map:$$($1_OBJECT_DIR)/$$($1_LIBRARY).map" 435 endif 436 437 ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) 438 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% | 355 $1_EXTRA_CFLAGS += $$(C_FLAG_REORDER) 356 $1_EXTRA_CXXFLAGS += $$(CXX_FLAG_REORDER) 357 endif 358 359 ifeq (NONE, $$($1_OPTIMIZATION)) 360 $1_EXTRA_CFLAGS += $(C_O_FLAG_NONE) 361 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NONE) 362 else ifeq (LOW, $$($1_OPTIMIZATION)) 363 $1_EXTRA_CFLAGS += $(C_O_FLAG_NORM) 364 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_NORM) 365 else ifeq (HIGH, $$($1_OPTIMIZATION)) 366 $1_EXTRA_CFLAGS += $(C_O_FLAG_HI) 367 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HI) 368 else ifeq (HIGHEST, $$($1_OPTIMIZATION)) 369 $1_EXTRA_CFLAGS += $(C_O_FLAG_HIGHEST) 370 $1_EXTRA_CXXFLAGS += $(CXX_O_FLAG_HIGHEST) 371 else ifneq (, $$($1_OPTIMIZATION)) 372 $$(error Unknown value for OPTIMIZATION: $$($1_OPTIMIZATION)) 373 endif 374 375 # Add sys root specific cflags last 376 $1_EXTRA_CFLAGS += $(SYSROOT_CFLAGS) 377 $1_EXTRA_CXXFLAGS += $(SYSROOT_CFLAGS) 378 379 # Now call add_native_source for each source file we are going to compile. 380 $$(foreach p,$$($1_SRCS), \ 381 $$(eval $$(call add_native_source,$1,$$p,$$($1_OBJECT_DIR), \ 382 $$($1_CFLAGS) $$($1_EXTRA_CFLAGS),$$($1_CC), \ 383 $$($1_CXXFLAGS) $$($1_EXTRA_CXXFLAGS),$(CXX),$$($1_ASFLAGS)))) 384 385 # On windows we need to create a resource file 386 ifeq ($(OPENJDK_TARGET_OS), windows) 387 ifneq (,$$($1_VERSIONINFO_RESOURCE)) 388 $1_RES:=$$($1_OBJECT_DIR)/$$($1_BASENAME).res 389 $$($1_RES): $$($1_VERSIONINFO_RESOURCE) 390 $(RC) $$($1_RC_FLAGS) $(CC_OUT_OPTION)$$@ $$($1_VERSIONINFO_RESOURCE) 391 endif 392 ifneq (,$$($1_MANIFEST)) 393 $1_GEN_MANIFEST:=$$($1_OBJECT_DIR)/$$($1_PROGRAM).manifest 394 IMVERSIONVALUE:=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VERSION).$(COOKED_BUILD_NUMBER) 395 $$($1_GEN_MANIFEST): $$($1_MANIFEST) 396 $(SED) 's%IMVERSION%$$(IMVERSIONVALUE)%g;s%PROGRAM%$$($1_PROGRAM)%g' $$< > $$@ 397 endif 398 endif 403 $1_REAL_MAPFILE:=$$($1_MAPFILE) 404 ifneq (,$$($1_REORDER)) 405 $1_REAL_MAPFILE:=$$($1_OBJECT_DIR)/mapfile 406 407 $$($1_REAL_MAPFILE) : $$($1_MAPFILE) $$($1_REORDER) 408 $$(MKDIR) -p $$(@D) 409 $$(CP) $$($1_MAPFILE) $$@.tmp 410 $$(SED) -e 's=OUTPUTDIR=$$($1_OBJECT_DIR)=' $$($1_REORDER) >> $$@.tmp 411 $$(MV) $$@.tmp $$@ 412 endif 413 endif 414 endif 415 416 # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables 417 # for LDFLAGS and LDFLAGS_SUFFIX 418 $1_EXTRA_LDFLAGS:=$$($1_LDFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_$(OPENJDK_TARGET_OS)) 419 $1_EXTRA_LDFLAGS_SUFFIX:=$$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS_API)) $$($1_LDFLAGS_SUFFIX_$(OPENJDK_TARGET_OS)) 420 ifneq (,$$($1_REAL_MAPFILE)) 421 $1_EXTRA_LDFLAGS += $(call SET_SHARED_LIBRARY_MAPFILE,$$($1_REAL_MAPFILE)) 422 endif 423 424 $1_EXTRA_LDFLAGS += $(SYSROOT_LDFLAGS) 425 426 $1 := $$($1_TARGET) 427 ifneq (,$$($1_LIBRARY)) 428 # Generating a dynamic library. 429 $1_EXTRA_LDFLAGS+=$$(call SET_SHARED_LIBRARY_NAME,$$($1_BASENAME)) 430 ifeq ($(OPENJDK_TARGET_OS), windows) 431 $1_EXTRA_LDFLAGS+="-implib:$$($1_OBJECT_DIR)/$$($1_LIBRARY).lib" 432 endif 433 434 $1_EXTRA_LDFLAGS_SUFFIX += $(GLOBAL_LDFLAGS_SUFFIX) 435 436 ifneq (,$$($1_DEBUG_SYMBOLS)) 437 ifeq ($(ENABLE_DEBUG_SYMBOLS), true) 438 ifeq ($(OPENJDK_TARGET_OS), windows) 439 $1_EXTRA_LDFLAGS+="-pdb:$$($1_OBJECT_DIR)/$$($1_LIBRARY).pdb" \ 440 "-map:$$($1_OBJECT_DIR)/$$($1_LIBRARY).map" 441 endif 442 443 ifneq ($$($1_OUTPUT_DIR),$$($1_OBJECT_DIR)) 444 $$($1_OUTPUT_DIR)/% : $$($1_OBJECT_DIR)/% |