Changeset 847 for trunk/kBuild/tools


Ignore:
Timestamp:
Feb 4, 2007, 3:38:20 PM (18 years ago)
Author:
bird
Message:

Library merging and some DLL linking updates (latter isn't tested).

File:
1 edited

Legend:

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

    r826 r847  
    2525#
    2626
    27 TOOL_GCC3PLAIN := Generic GCC v3.2.x or later Using The System GCC, any Unix Linker and Unix Archive.
     27TOOL_GCC3PLAIN := Generic GCC v3.2.x or later Using The System GCC, any Unix Linker and Unix Archiver.
    2828
    2929# Tool Specific Properties
     
    3434TOOL_GCC3PLAIN_RANLIB ?= ranlib$(HOSTSUFF_EXE)
    3535TOOL_GCC3PLAIN_LD  ?= g++$(HOSTSUFF_EXE)
    36 TOOL_GCC3PLAIN_LDFLAGS.dll ?= -shared
    37 TOOL_GCC3PLAIN_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
     36TOOL_GCC3PLAIN_LDFLAGS.dll.os2 ?= -Zdll
     37TOOL_GCC3PLAIN_LDFLAGS.dll.darwin ?= -dynamiclib
     38ifndef TOOL_GCC_LDFLAGS.$(BUILD_TARGET)
     39 TOOL_GCC3PLAIN_LDFLAGS.dll ?= -shared
     40else
     41 TOOL_GCC3PLAIN_LDFLAGS.dll ?= $(TOOL_GCC_LDFLAGS.$(BUILD_TARGET))
     42endif
     43TOOL_GCC3PLAIN_LD_SONAME.darwin ?= $(NO_SUCH_VARIABLE)
     44TOOL_GCC3PLAIN_LD_SONAME.os2 ?= $(NO_SUCH_VARIABLE)
     45TOOL_GCC3PLAIN_LD_SONAME.win ?= $(NO_SUCH_VARIABLE)
     46ifndef TOOL_GCC3PLAIN_LD_SONAME.$(BUILD_TARGET)
     47 TOOL_GCC3PLAIN_LD_SONAME ?= -Wl,-soname=$(firstword $($(1)_SONAME.$(BUILD_TARGET).$(BUILD_TYPE)) $($(1)_SONAME.$(BUILD_TARGET)) $($(1)_SONAME.$(BUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
     48else
     49 TOOL_GCC3PLAIN_LD_SONAME ?= $(TOOL_GCC3PLAIN_LD_SONAME.$(BUILD_TARGET))
     50endif
    3851ifdef SLKRUNS
    3952 TOOL_GCC3PLAIN_CC  += -fmessage-length=0
     
    158171TOOL_GCC3PLAIN_LINK_LIBRARY_DEPEND = $(othersrc)
    159172TOOL_GCC3PLAIN_LINK_LIBRARY_DEPORD =
    160 ## @todo archive merging!
    161 #ifeq ($(filter xargs,$(KMK_FEATURES)),xargs) - I wonder if this works...
    162173define TOOL_GCC3PLAIN_LINK_LIBRARY_CMDS
    163         $(call xargs,$(QUIET)$(TOOL_GCC3PLAIN_AR) $(flags) $(out), $(objs))
     174        $(call xargs,$(QUIET)$(TOOL_GCC3PLAIN_AR) $(flags) $(out),$(objs))
     175        $(foreach lib,$(othersrc)\
     176                ,$(NL)$(TAB)$(call MSG_AR_MERGE,$(target),$(out),$(lib)) \
     177                $(NL)$(TAB)$(QUIET)$(RM_EXT) -f $(dir $(outbase))ar.tmp.dir/* \
     178                $(NL)$(TAB)$(QUIET)$(MKDIR) -p $(dir $(outbase))/ar.tmp.dir/ \
     179                $(NL)$(TAB)$(QUIET)(cd $(dir $(outbase))ar.tmp.dir/ \
     180                        && $(TOOL_GCC3PLAIN_AR) x $(abspath $(lib)) \
     181                        && $(TOOL_GCC3PLAIN_AR) $(flags) $(out) *) \
     182                $(NL)$(TAB)$(QUIET)$(RM_EXT) -f $(dir $(outbase))/ar.tmp.dir/* \
     183                $(NL)$(TAB)$(QUIET)$(RMDIR) $(dir $(outbase))ar.tmp.dir/)
    164184        $(QUIET)$(TOOL_GCC3PLAIN_RANLIB) $(out)
    165185endef
    166 #else
    167 #define TOOL_GCC3PLAIN_LINK_LIBRARY_CMDS
    168 #       $(QUIET)$(TOOL_GCC3PLAIN_AR) $(flags) $(out) $(objs)
    169 #       $(QUIET)$(TOOL_GCC3PLAIN_RANLIB) $(out)
    170 #endef
    171 #endif
    172186
    173187
Note: See TracChangeset for help on using the changeset viewer.