Ignore:
Timestamp:
Dec 15, 2006, 6:18:47 AM (19 years ago)
Author:
bird
Message:

Partial implementation of a _PATH target property for resolving relative paths. It's primarily intended for sub-makefile mode where we apply it to all targets automatically. TODOs: INCS, DEPs (source level) and SUBDIRS*.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/subheader.kmk

    r665 r725  
    2626
    2727ifndef _SUB_MAKEFILE_STACK
    28 _SUB_MAKEFILE_STACK := 1
    29 include $(PATH_KBUILD)/header.kmk
     28 #
     29 # The first time we just take the makefile context set by header.kmk.
     30 #
     31 include $(PATH_KBUILD)/header.kmk
     32
    3033else
    31 _SUB_MAKEFILE_STACK := $(_SUB_MAKEFILE_STACK) $(words $(_SUB_MAKEFILE_STACK) 1)
     34
     35 #
     36 # Set the default path and makefile for all new targets.
     37 #
     38 define def_subfooter
     39 ifndef $(target)_PATH
     40 $(target)_PATH := $(PATH_SUB_CURRENT)
     41 endif
     42 ifndef $(target)_MAKEFILE
     43 $(target)_MAKEFILE := $(MAKEFILE_CURRENT)
     44 endif
     45 endef
     46
     47 $(foreach target,\
     48        $(ALL_TARGETS) \
     49        $(FETCHES)     $(FETCHES.$(BUILD_TARGET))       $(FETCHES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     50        $(PATCHES)     $(PATCHES.$(BUILD_TARGET))       $(PATCHES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     51        $(BLDPROGS)    $(BLDPROGS.$(BUILD_PLATFORM))    $(BLDPROGS.$(BUILD_PLATFORM).$(BUILD_PLATFORM_ARCH)) \
     52        $(LIBRARIES)   $(LIBRARIES.$(BUILD_TARGET))     $(LIBRARIES.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     53        $(IMPORT_LIBS) $(IMPORT_LIBS.$(BUILD_TARGET))   $(IMPORT_LIBS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     54        $(DLLS)        $(DLLS.$(BUILD_TARGET))          $(DLLS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     55        $(PROGRAMS)    $(PROGRAMS.$(BUILD_TARGET))      $(PROGRAMS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     56        $(SYSMODS)     $(SYSMODS.$(BUILD_TARGET))       $(SYSMODS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     57        $(INSTALLS)    $(INSTALLS.$(BUILD_TARGET))      $(INSTALLS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     58        $(OTHERS)      $(OTHERS.$(BUILD_TARGET))        $(OTHERS.$(BUILD_TARGET).$(BUILD_TARGET_ARCH)) \
     59 ,$(eval $(def_subfooter)))
     60
     61
     62 #
     63 # Switch context.
     64 #
     65 __tmp := $(MAKEFILE_LIST)
     66 $(call stack-popv,__tmp)
     67 MAKEFILE_CURRENT := $(call stack-top,__tmp)
     68 PATH_SUB_CURRENT := $(abspath $(patsubst %/,%,$(dir $(MAKEFILE_CURRENT))))
    3269endif
    3370
     71$(call stack-push,_SUB_MAKEFILE_STACK,$(MAKEFILE_CURRENT))
     72
Note: See TracChangeset for help on using the changeset viewer.