Ignore:
Timestamp:
Dec 12, 2005, 4:36:07 AM (20 years ago)
Author:
bird
Message:

Use fixed lot's of those $$$$(PATH_<target>) thingies. Better target install, install pass and install target type. Generic passes. And more.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/tools/GCC3.kmk

    r337 r353  
    44# kBuild Tool Config - Generic GCC.
    55#
    6 # Copyright (c) 2004 knut st. osmundsen <bird-srcspam@anduin.net>
     6# Copyright (c) 2004-2005 knut st. osmundsen <bird-srcspam@anduin.net>
    77#
    88#
     
    146146define TOOL_GCC3_LINK_LIBRARY_ADDMOD
    147147
    148         echo "ADDMOD $(o)" >> $$@.ar-script
     148        echo "ADDMOD $(o)" >> $(lib).ar-script
    149149endef
    150150
     
    153153        $(MKDIR) -p $(dir $(outbase))ar.extract/$(notdir $(srclib))
    154154        cd $(dir $(outbase))ar.extract/$(notdir $(srclib)) && $(TOOL_GCC3_AR) x $(srclib)
    155         for o in `$(TOOL_GCC3_AR) t $(srclib)`; do echo "ADDMOD $(dir $(outbase))ar.extract/$(notdir $(srclib))/$$$${o}" >> $$@.ar-script; done
     155        for o in `$(TOOL_GCC3_AR) t $(srclib)`; do echo "ADDMOD $(dir $(outbase))ar.extract/$(notdir $(srclib))/$$$${o}" >> $(lib).ar-script; done
    156156endef
    157157
     
    162162        $(RM) -f $$@
    163163ifneq ($(strip $(filter %.a %.lib,$(othersrc))),)
    164         echo "CREATE $$@" > $$@.ar-script
     164        echo "CREATE $$@" > $(lib).ar-script
    165165        $(foreach o, $(objs),$(TOOL_GCC3_LINK_LIBRARY_ADDMOD))
    166166        $(foreach srclib, $(filter %.a %.lib,$(othersrc)),$(TOOL_GCC3_LINK_LIBRARY_EXPAND_LIB))
    167         echo "SAVE" >> $$@.ar-script
    168         echo "END" >> $$@.ar-script
    169         $(TOOL_GCC3_AR) -M < $$@.ar-script
     167        echo "SAVE" >> $(lib).ar-script
     168        echo "END" >> $(lib).ar-script
     169        $(TOOL_GCC3_AR) -M < $(lib).ar-script
    170170        $(RM) -Rf "$(dir $(outbase))ar.extract/"
     171
     172_OUT_FILES += $(lib).ar-script
    171173else
    172174        $(TOOL_GCC3_AR) $(flags) $$@ $(objs)
     
    178180## Link program
    179181# @param    $(target)   Normalized main target name.
    180 # @param    $(exe)              Program name.
     182# @param    $(out)              Program name.
    181183# @param    $(objs)     Object files to link together.
    182184# @param    $(libs)     Libraries to search.
     
    191193# @param    $(outbase)  Output basename (full). Use this for list files and such.
    192194define TOOL_GCC3_LINK_PROGRAM
    193 #$ (warning dbg: TOOL_GCC3_LINK_PROGRAM: target=$(target) exe=$(exe) objs=$(objs) libs=$(libs) deps=$(deps) flags=$(flags) dirdep=$(dirdep) deffile=$(deffile) outbase=$(outbase))
    194 $(exe): $(deps) $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) | $(dirdep)
     195#$ (warning dbg: TOOL_GCC3_LINK_PROGRAM: target=$(target) out=$(out) objs=$(objs) libs=$(libs) deps=$(deps) flags=$(flags) dirdep=$(dirdep) deffile=$(deffile) outbase=$(outbase))
     196$(out) $(outbase).map: $(deps) $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) | $(dirdep)
    195197        $(call MSG_L1,Creating Program $$@)
    196198ifneq ($(custom_pre),)
     
    212214## Link DLL
    213215# @param    $(target)   Normalized main target name.
    214 # @param    $(dll)              Program name.
     216# @param    $(out)              Program name.
    215217# @param    $(objs)     Object files to link together.
    216218# @param    $(libs)     Libraries to search.
     
    225227# @param    $(outbase)  Output basename (full). Use this for list files and such.
    226228define TOOL_GCC3_LINK_DLL
    227 #$ (warning dbg: TOOL_GCC3_LINK_PROGRAM: target=$(target) dll=$(dll) objs=$(objs) libs=$(libs) deps=$(deps) flags=$(flags) dirdep=$(dirdep) deffile=$(deffile) outbase=$(outbase))
    228 $(dll): $(deps) $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) | $(dirdep)
     229#$ (warning dbg: TOOL_GCC3_LINK_PROGRAM: target=$(target) out=$(out) objs=$(objs) libs=$(libs) deps=$(deps) flags=$(flags) dirdep=$(dirdep) deffile=$(deffile) outbase=$(outbase))
     230$(out) $(outbase).map: $(deps) $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) | $(dirdep)
    229231        $(call MSG_L1,Creating Program $$@)
    230232ifneq ($(custom_pre),)
     
    233235        $(RM) -f $$@
    234236        $(TOOL_GCC3_LD) $(TOOL_GCC3_LDFLAGS.dll) $(flags) -o $$@ \
    235                 $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_GCC3_LD_SONAME,$(target),$(dll))) \
     237                $(if $(filter-out win32 os2, $(BUILD_TARGET)),$(call TOOL_GCC3_LD_SONAME,$(target),$(out))) \
    236238                $(objs) \
    237239                $(foreach p,$(libpath), -L$(p)) \
     
    247249## Link system module (windows aka driver, linux aka kernel module)
    248250# @param    $(target)   Normalized main target name.
    249 # @param    $(sys)              System module name.
     251# @param    $(out)              System module name.
    250252# @param    $(objs)     Object files to link together.
    251253# @param    $(libs)     Libraries to search.
     
    260262# @param    $(outbase)  Output basename (full). Use this for list files and such.
    261263define TOOL_GCC3_LINK_SYSMOD
    262 #$ (warning dbg: TOOL_GCC3_LINK_SYSMOD: target=$(target) sys=$(sys) objs=$(objs) libs=$(libs) deps=$(deps) flags=$(flags) dirdep=$(dirdep) othersrc=$(othersrc) outbase=$(outbase))
    263 $(sys): $(deps) $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) | $(dirdep)
     264#$ (warning dbg: TOOL_GCC3_LINK_SYSMOD: target=$(target) out=$(out) objs=$(objs) libs=$(libs) deps=$(deps) flags=$(flags) dirdep=$(dirdep) othersrc=$(othersrc) outbase=$(outbase))
     265$(out) $(outbase).map: $(deps) $(objs) $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) | $(dirdep)
    264266        $(call MSG_L1,Creating Program $$@)
    265267ifneq ($(custom_pre),)
Note: See TracChangeset for help on using the changeset viewer.