Ignore:
Timestamp:
Dec 2, 2004, 9:39:03 PM (21 years ago)
Author:
bird
Message:

TARGET_stuff and .$(BUILD_TARGET) variants for SUBDIRS and MAKEFILES.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/footer.kmk

    r148 r183  
    9898        $($(type)TOOL.$(BUILD_TARGET)) $(TOOL.$(BUILD_TARGET)) \
    9999        $($(type)TOOL) $(TOOL) ))
    100                
     100
    101101## Figure out the tool for a target.
    102102# @param    $target             normalized target.
     
    112112        $(TOOL) \
    113113        ))
    114        
     114
    115115## Removes the drive letter from a path (if it has one)
    116116# @param        $1              the path
     
    214214endef
    215215
    216 ## Inherit one template property.               
     216## Inherit one template property.
    217217# @param    $(prop)     Property name
    218218# @param    $(target)   Target name
     
    252252#
    253253# Include tools
    254 #                       
     254#
    255255_TOOLS := $(TOOL)
    256256define def_tools_target_source
     
    647647))
    648648$(eval lib         := $(outbase)$(libsuff))
     649$(eval TARGET_$(target) := $(lib))
    649650
    650651# source -> object
     
    675676$(publib) : $(lib) $(dir $(publib)).dir_created
    676677        $(CP) $(lib) $(publib)
    677        
     678
    678679_LIBS += $(publib)
    679680_OUT_FILES += $(lib) $(publib)
     
    703704$(eval exesuff     := $(firstword $($(target)_EXESUFF) $($(target)_EXESUFF) $(TOOL_$(tool)_LDEXESUFF) $(SUFF_EXE)))
    704705$(eval exe         := $(outbase)$(exesuff))
     706$(eval TARGET_$(target) := $(exe))
    705707
    706708# source -> object
     
    826828$(pubexe) : $(exe) $(dir $(pubexe)).dir_created
    827829        $(CP) $(exe) $(pubexe)
    828        
     830
    829831_DLLS += $(pubexe)
    830832_OUT_FILES += $(exe) $(pubexe)
     
    854856$(eval dllsuff     := $(firstword $($(target)_DLLSUFF) $($(target)_DLLSUFF) $(TOOL_$(tool)_LDDLLSUFF) $(SUFF_DLL)))
    855857$(eval dll         := $(outbase)$(dllsuff))
     858$(eval TARGET_$(target) := $(dll))
    856859
    857860# source -> object
    858861$(eval $(def_target_sources))
    859862
    860 # dllmod linking. 
     863# dllmod linking.
    861864$(eval tool        := $(call _TARGET_TOOL,$(target),LD))
    862865$(eval outbase     := $(call _TARGET_BASE,$(target),$(target)))
     
    982985        7 $(TOOL.$(BUILD_TARGET)) \
    983986        8 $(TOOL) )
    984 endif   
     987endif
    985988
    986989$(eval $(TOOL_$(tool)_LINK_DLL))
    987990
    988                                        
     991
    989992# publish rule (still need work)
    990993ifndef $(target)_NOINST
     
    992995$(pubdll) : $(dll) $(dir $(pubdll)).dir_created
    993996        $(CP) $(dll) $(pubdll)
    994        
     997
    995998_DLLS += $(pubdll)
    996999_OUT_FILES += $(dll) $(pubdll)
     
    10191022$(eval syssuff     := $(firstword $($(target)_SYSSUFF) $($(target)_SYSSUFF) $(TOOL_$(tool)_LDSYSSUFF) $(SUFF_SYS)))
    10201023$(eval sys         := $(outbase)$(syssuff))
     1024$(eval TARGET_$(target) := $(sys))
    10211025
    10221026# source -> object
     
    11471151        7 $(TOOL.$(BUILD_TARGET)) \
    11481152        8 $(TOOL) )
    1149 endif   
     1153endif
    11501154
    11511155$(eval $(TOOL_$(tool)_LINK_SYSMOD))
     
    11561160$(pubsys): $(sys) $(dir $(pubsys)).dir_created
    11571161        $(CP) $(sys) $(pubsys)
    1158        
     1162
    11591163$(eval _SYSMODS += $(pubsys))
    11601164$(eval _OUT_FILES += $(sys) $(pubsys))
     
    11971201$(foreach dirfile,$(_DIRFILES),$(eval $(def_createdir)))
    11981202
    1199                
     1203
    12001204#
    12011205# Include dependency files.
     
    12031207$(foreach dep,$(wildcard $(_DEPFILES)),$(eval include $(dep)))
    12041208
    1205                
     1209
    12061210#
    12071211# PASSES (including directory and makefile walking)
     
    12411245# @param        $(PASS)         Uppercase pass name.
    12421246define def_pass
    1243 $(eval SUBDIRS_$(PASS)          ?= $(SUBDIRS))
    1244 $(eval SUBDIRS_AFTER_$(PASS)    ?= $(SUBDIRS_AFTER))
    1245 $(eval MAKEFILES_BEFORE_$(PASS) ?= $(MAKEFILES_BEFORE))
    1246 $(eval MAKEFILES_AFTER_$(PASS)  ?= $(MAKEFILES_AFTER))
     1247$(eval SUBDIRS_$(PASS)          ?= $(SUBDIRS)          $(SUBDIRS.$(BUILD_TARGET)))
     1248$(eval SUBDIRS_AFTER_$(PASS)    ?= $(SUBDIRS_AFTER)    $(SUBDIRS_AFTER.$(BUILD_TARGET)))
     1249$(eval MAKEFILES_BEFORE_$(PASS) ?= $(MAKEFILES_BEFORE) $(MAKEFILES_BEFORE.$(BUILD_TARGET)))
     1250$(eval MAKEFILES_AFTER_$(PASS)  ?= $(MAKEFILES_AFTER)  $(MAKEFILES_AFTER.$(BUILD_TARGET)))
    12471251
    12481252$(eval tag:=_before)
    1249 $(foreach subdir,$(SUBDIRS_$(PASS)),$(eval $(def_pass_subdir)))
    1250 $(foreach makefile,$(MAKEFILES_BEFORE_$(PASS)),$(eval $(def_pass_makefile)))
     1253$(foreach subdir,$(SUBDIRS_$(PASS))            $(SUBDIRS_$(PASS).$(BUILD_TARGET))         ,$(eval $(def_pass_subdir)))
     1254$(foreach makefile,$(MAKEFILES_BEFORE_$(PASS)) $(MAKEFILES_BEFORE_$(PASS).$(BUILD_TARGET)),$(eval $(def_pass_makefile)))
    12511255
    12521256$(eval tag:=_after)
    1253 $(foreach subdir,$(SUBDIRS_AFTER_$(PASS)),$(eval $(def_pass_subdir)))
    1254 $(foreach makefile,$(MAKEFILES_AFTER_$(PASS)),$(eval $(def_pass_makefile)))
     1257$(foreach subdir,$(SUBDIRS_AFTER_$(PASS))      $(SUBDIRS_AFTER_$(PASS).$(BUILD_TARGET))   ,$(eval $(def_pass_subdir)))
     1258$(foreach makefile,$(MAKEFILES_AFTER_$(PASS))  $(MAKEFILES_AFTER_$(PASS).$(BUILD_TARGET)) ,$(eval $(def_pass_makefile)))
    12551259
    12561260.NOTPARALLEL: pass_$(pass)_before pass_$(pass)_after
     
    12601264        pass_$(pass)_doit \
    12611265        pass_$(pass)_after
    1262        
    1263 endef   
    1264 
    1265                                        
     1266
     1267endef
     1268
     1269
    12661270## PASS: needed
    12671271# This pass builds targets which are required for building the rest.
     
    12991303PASS := PUBLISH
    13001304# $(sort).. not nice.
    1301 SUBDIRS_PUBLISH         ?= $(sort $(SUBDIRS) $(SUBDIRS_LIBRARIES) $(SUBDIRS_BINARIES) $(SUBDIRS_OTHERS))
    1302 SUBDIRS_AFTER_PUBLISH   ?= $(sort $(SUBDIRS_AFTER) $(SUBDIRS_AFTER_LIBRARIES) $(SUBDIRS_AFTER_BINARIES) $(SUBDIRS_AFTER_OTHERS))
    1303 MAKEFILES_BEFORE_PUBLISH?= $(sort $(MAKEFILES_BEFORE) $(MAKEFILES_BEFORE_LIBRARIES) $(MAKEFILES_BEFORE_BINARIES) $(MAKEFILES_BEFORE_OTHERS))
    1304 MAKEFILES_AFTER_PUBLISH ?= $(sort $(MAKEFILES_AFTER) $(MAKEFILES_AFTER_LIBRARIES) $(MAKEFILES_AFTER_BINARIES) $(MAKEFILES_AFTER_OTHERS))
     1305SUBDIRS_PUBLISH         ?= $(sort $(SUBDIRS)          $(SUBDIRS.$(BUILD_TARGET))          $(SUBDIRS_LIBRARIES)          $(SUBDIRS_LIBRARIES.$(BUILD_TARGET))          $(SUBDIRS_BINARIES)          $(SUBDIRS_BINARIES.$(BUILD_TARGET))          $(SUBDIRS_OTHERS)          $(SUBDIRS_OTHERS.$(BUILD_TARGET)))
     1306SUBDIRS_AFTER_PUBLISH   ?= $(sort $(SUBDIRS_AFTER)    $(SUBDIRS_AFTER.$(BUILD_TARGET))    $(SUBDIRS_AFTER_LIBRARIES)    $(SUBDIRS_AFTER_LIBRARIES.$(BUILD_TARGET))    $(SUBDIRS_AFTER_BINARIES)    $(SUBDIRS_AFTER_BINARIES.$(BUILD_TARGET))    $(SUBDIRS_AFTER_OTHERS)    $(SUBDIRS_AFTER_OTHERS.$(BUILD_TARGET)))
     1307MAKEFILES_BEFORE_PUBLISH?= $(sort $(MAKEFILES_BEFORE) $(MAKEFILES_BEFORE.$(BUILD_TARGET)) $(MAKEFILES_BEFORE_LIBRARIES) $(MAKEFILES_BEFORE_LIBRARIES.$(BUILD_TARGET)) $(MAKEFILES_BEFORE_BINARIES) $(MAKEFILES_BEFORE_BINARIES.$(BUILD_TARGET)) $(MAKEFILES_BEFORE_OTHERS) $(MAKEFILES_BEFORE_OTHERS.$(BUILD_TARGET)))
     1308MAKEFILES_AFTER_PUBLISH ?= $(sort $(MAKEFILES_AFTER)  $(MAKEFILES_AFTER.$(BUILD_TARGET))  $(MAKEFILES_AFTER_LIBRARIES)  $(MAKEFILES_AFTER_LIBRARIES.$(BUILD_TARGET))  $(MAKEFILES_AFTER_BINARIES)  $(MAKEFILES_AFTER_BINARIES.$(BUILD_TARGET))  $(MAKEFILES_AFTER_OTHERS)  $(MAKEFILES_AFTER_OTHERS.$(BUILD_TARGET)))
    13051309$(eval $(def_pass))
    13061310
     
    13211325$(eval $(def_pass))
    13221326clean: pass_clean
    1323                
     1327
    13241328## PASS: nothing
    13251329# This pass just walks the tree.
     
    13311335nothing: pass_nothing
    13321336
    1333                                        
     1337
    13341338
    13351339#
     
    13461350objects:   $(_OBJS)
    13471351programs:  $(_EXES)
    1348 dlls:      $(_DLLS)     
     1352dlls:      $(_DLLS)
    13491353sysmods:   $(_SYSMODS)
    13501354
Note: See TracChangeset for help on using the changeset viewer.