551 endif
552
553 $1_SRCS += $$($1_EXTRA_FILES)
554
555 ifeq (,$$($1_SRCS))
556 $$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
557 endif
558
559 # Calculate the expected output from compiling the sources
560 $1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
561 $1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/,$$($1_EXPECTED_OBJS_FILENAMES))
562 # Are there too many object files on disk? Perhaps because some source file was removed?
563 $1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
564 # Clean out the superfluous object files.
565 ifneq ($$($1_SUPERFLUOUS_OBJS),)
566 $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
567 endif
568 # Sort to remove dupliates and provide a reproducable order on the input files to the linker.
569 $1_ALL_OBJS := $$(sort $$($1_EXPECTED_OBJS) $$($1_EXTRA_OBJECT_FILES))
570
571 # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CFLAGS.
572 $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS))
573 ifneq ($(DEBUG_LEVEL),release)
574 # Pickup extra debug dependent variables for CFLAGS
575 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
576 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
577 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
578 else
579 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
580 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
581 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
582 endif
583
584 # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
585 $1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
586 ifneq ($(DEBUG_LEVEL),release)
587 # Pickup extra debug dependent variables for CXXFLAGS
588 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
589 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
590 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
591 else
592 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
593 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
594 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
595 endif
596
597 # If no C++ flags are explicitly set, default to using the C flags.
598 # After that, we can set additional C++ flags that should not interfere
599 # with the mechanism for copying the C flags by default.
600 ifeq ($$($1_CXXFLAGS),)
601 $1_CXXFLAGS:=$$($1_CFLAGS)
|
551 endif
552
553 $1_SRCS += $$($1_EXTRA_FILES)
554
555 ifeq (,$$($1_SRCS))
556 $$(error No sources found for $1 when looking inside the dirs $$($1_SRC))
557 endif
558
559 # Calculate the expected output from compiling the sources
560 $1_EXPECTED_OBJS_FILENAMES := $$(call replace_with_obj_extension, $$(notdir $$($1_SRCS)))
561 $1_EXPECTED_OBJS := $$(addprefix $$($1_OBJECT_DIR)/,$$($1_EXPECTED_OBJS_FILENAMES))
562 # Are there too many object files on disk? Perhaps because some source file was removed?
563 $1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
564 # Clean out the superfluous object files.
565 ifneq ($$($1_SUPERFLUOUS_OBJS),)
566 $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
567 endif
568 # Sort to remove dupliates and provide a reproducable order on the input files to the linker.
569 $1_ALL_OBJS := $$(sort $$($1_EXPECTED_OBJS) $$($1_EXTRA_OBJECT_FILES))
570
571 # Pickup extra OPENJDK_TARGET_OS_TYPE, OPENJDK_TARGET_OS, and/or OPENJDK_TARGET_OS plus
572 # OPENJDK_TARGET_CPU pair dependent variables for CFLAGS.
573 $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \
574 $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU))
575 ifneq ($(DEBUG_LEVEL),release)
576 # Pickup extra debug dependent variables for CFLAGS
577 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
578 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
579 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
580 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
581 else
582 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
583 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
584 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
585 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
586 endif
587
588 # Pickup extra OPENJDK_TARGET_OS_TYPE and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
589 $1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
590 ifneq ($(DEBUG_LEVEL),release)
591 # Pickup extra debug dependent variables for CXXFLAGS
592 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
593 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_debug)
594 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
595 else
596 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
597 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_TYPE)_release)
598 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
599 endif
600
601 # If no C++ flags are explicitly set, default to using the C flags.
602 # After that, we can set additional C++ flags that should not interfere
603 # with the mechanism for copying the C flags by default.
604 ifeq ($$($1_CXXFLAGS),)
605 $1_CXXFLAGS:=$$($1_CFLAGS)
|