280 # Prepend the source/bin path to the filter expressions. Then do the filtering.
281 ifneq ($$($1_INCLUDES),)
282 $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
283 $1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
284 endif
285 ifneq ($$($1_EXCLUDES),)
286 $1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
287 $1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
288 endif
289
290 # Calculate the expected output from compiling the sources (sort to remove duplicates. Also provides
291 # a reproducable order on the input files to the linker).
292 $1_EXPECTED_OBJS:=$$(sort $$(addprefix $$($1_OBJECT_DIR)/,$$(patsubst %.cpp,%$(OBJ_SUFFIX),$$(patsubst %.c,%$(OBJ_SUFFIX),$$(patsubst %.m,%$(OBJ_SUFFIX),$$(patsubst %.s,%$(OBJ_SUFFIX),$$(notdir $$($1_SRCS))))))))
293 # Are there too many object files on disk? Perhaps because some source file was removed?
294 $1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
295 # Clean out the superfluous object files.
296 ifneq ($$($1_SUPERFLUOUS_OBJS),)
297 $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
298 endif
299
300 # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables for CFLAGS.
301 $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS))
302 ifneq ($(DEBUG_LEVEL),release)
303 # Pickup extra debug dependent variables for CFLAGS
304 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
305 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)_debug)
306 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
307 else
308 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
309 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)_release)
310 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
311 endif
312
313 # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
314 $1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
315 ifneq ($(DEBUG_LEVEL),release)
316 # Pickup extra debug dependent variables for CXXFLAGS
317 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
318 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_API)_debug)
319 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
320 else
321 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
322 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_API)_release)
323 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
324 endif
325
326 ifeq ($$($1_CXXFLAGS),)
327 $1_CXXFLAGS:=$$($1_CFLAGS)
328 endif
329 ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),)
330 $1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS)
|
280 # Prepend the source/bin path to the filter expressions. Then do the filtering.
281 ifneq ($$($1_INCLUDES),)
282 $1_SRC_INCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_INCLUDES))))
283 $1_SRCS := $$(filter $$($1_SRC_INCLUDES),$$($1_SRCS))
284 endif
285 ifneq ($$($1_EXCLUDES),)
286 $1_SRC_EXCLUDES := $$(foreach i,$$($1_SRC),$$(addprefix $$i/,$$(addsuffix /%,$$($1_EXCLUDES))))
287 $1_SRCS := $$(filter-out $$($1_SRC_EXCLUDES),$$($1_SRCS))
288 endif
289
290 # Calculate the expected output from compiling the sources (sort to remove duplicates. Also provides
291 # a reproducable order on the input files to the linker).
292 $1_EXPECTED_OBJS:=$$(sort $$(addprefix $$($1_OBJECT_DIR)/,$$(patsubst %.cpp,%$(OBJ_SUFFIX),$$(patsubst %.c,%$(OBJ_SUFFIX),$$(patsubst %.m,%$(OBJ_SUFFIX),$$(patsubst %.s,%$(OBJ_SUFFIX),$$(notdir $$($1_SRCS))))))))
293 # Are there too many object files on disk? Perhaps because some source file was removed?
294 $1_SUPERFLOUS_OBJS:=$$(sort $$(filter-out $$($1_EXPECTED_OBJS),$$($1_BINS)))
295 # Clean out the superfluous object files.
296 ifneq ($$($1_SUPERFLUOUS_OBJS),)
297 $$(shell $(RM) -f $$($1_SUPERFLUOUS_OBJS))
298 endif
299
300 # Pickup extra OPENJDK_TARGET_OS_API, OPENJDK_TARGET_OS, and/or OPENJDK_TARGET_OS plus
301 # OPENJDK_TARGET_CPU pair dependent variables for CFLAGS.
302 $1_EXTRA_CFLAGS:=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_CFLAGS_$(OPENJDK_TARGET_OS)) \
303 $$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU))
304 ifneq ($(DEBUG_LEVEL),release)
305 # Pickup extra debug dependent variables for CFLAGS
306 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_debug)
307 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)_debug)
308 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_debug)
309 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_debug)
310 else
311 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_release)
312 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS_API)_release)
313 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_release)
314 $1_EXTRA_CFLAGS+=$$($1_CFLAGS_$(OPENJDK_TARGET_OS)_$(OPENJDK_TARGET_CPU)_release)
315 endif
316
317 # Pickup extra OPENJDK_TARGET_OS_API and/or OPENJDK_TARGET_OS dependent variables for CXXFLAGS.
318 $1_EXTRA_CXXFLAGS:=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_API)) $$($1_CXXFLAGS_$(OPENJDK_TARGET_OS))
319 ifneq ($(DEBUG_LEVEL),release)
320 # Pickup extra debug dependent variables for CXXFLAGS
321 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_debug)
322 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_API)_debug)
323 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_debug)
324 else
325 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_release)
326 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS_API)_release)
327 $1_EXTRA_CXXFLAGS+=$$($1_CXXFLAGS_$(OPENJDK_TARGET_OS)_release)
328 endif
329
330 ifeq ($$($1_CXXFLAGS),)
331 $1_CXXFLAGS:=$$($1_CFLAGS)
332 endif
333 ifeq ($$(strip $$($1_EXTRA_CXXFLAGS)),)
334 $1_EXTRA_CXXFLAGS:=$$($1_EXTRA_CFLAGS)
|