Changeset 2523 for trunk/kBuild/tools


Ignore:
Timestamp:
Aug 1, 2011, 1:45:20 AM (14 years ago)
Author:
bird
Message:

kBuild: debug info installation support, core hacking + mac os x.

Location:
trunk/kBuild/tools
Files:
2 edited

Legend:

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

    r2431 r2523  
    5151TOOL_GCC4MACHO_LDFLAGS.sysmod ?= -r
    5252#TOOL_GCC4MACHO_LD_SONAME = -Wl,-dylib_install_name $(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
     53TOOL_GCC4MACHO_DSYMUTIL  ?= dsymutil
    5354
    5455ifdef SLKRUNS
     
    104105TOOL_GCC4MACHO_LDFLAGS.debug    ?= -g
    105106TOOL_GCC4MACHO_LDFLAGS.profile  ?= -g
     107
     108
     109##
     110# Calculate the files in the debug bundle.
     111# @param    1           The whole output filename.
     112# @param    2           The output filename sans suffix.
     113TOOL_GCC4MACHO_DEBUG_BUNDLE_FN = \
     114    $(1).dSYM/ \
     115    $(1).dSYM/Contents/ \
     116    $(1).dSYM/Contents/Resources/ \
     117    $(1).dSYM/Contents/Resources/DWARF/ \
     118    $(1).dSYM/Contents/Info.plist \
     119    $(1).dSYM/Contents/Resources/DWARF/$(notdir $(1))
     120
     121##
     122# Calculate the files in the debug bundle.
     123# @param    1           The whole linker output filename.
     124# @param    2           The linker output filename sans suffix.
     125# @param    3           The desired install name (no dir slash).
     126TOOL_GCC4MACHO_DEBUG_INSTALL_FN= \
     127    $(3).dSYM/ \
     128    $(3).dSYM/Contents/ \
     129    $(3).dSYM/Contents/Resources/ \
     130    $(3).dSYM/Contents/Resources/DWARF/ \
     131    $(1).dSYM/Contents/Info.plist=>$(3).dSYM/Contents/Info.plist \
     132    $(1).dSYM/Contents/Resources/DWARF/$(notdir $(1))=>$(3).dSYM/Contents/Resources/DWARF/$(notdir $(1))
    106133
    107134
     
    350377# @param    $(outbase)  Output basename (full). Use this for list files and such.
    351378TOOL_GCC4MACHO_LINK_PROGRAM_OUTPUT = $(outbase).rsp
     379TOOL_GCC4MACHO_LINK_PROGRAM_OUTPUT_DEBUG = $(call TOOL_GCC4MACHO_DEBUG_BUNDLE_FN,$(out))
     380TOOL_GCC4MACHO_LINK_PROGRAM_DEBUG_INSTALL_FN = $(TOOL_GCC4MACHO_DEBUG_INSTALL_FN)
    352381TOOL_GCC4MACHO_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    353382TOOL_GCC4MACHO_LINK_PROGRAM_DEPORD =
     
    358387                $(foreach p,$(libpath), -L$(p))\
    359388                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
    360 endef
     389 ifeq ($(ld_debug),split)
     390        $(QUIET)$(TOOL_GCC4MACHO_DSYMUTIL) --verbose -o $(out).dSYM/ $(out)
     391 endif
     392endef
     393
    361394
    362395
     
    375408# @param    $(outbase)  Output basename (full). Use this for list files and such.
    376409TOOL_GCC4MACHO_LINK_DLL_OUTPUT = $(outbase).rsp
     410TOOL_GCC4MACHO_LINK_DLL_OUTPUT_DEBUG = $(call TOOL_GCC4MACHO_DEBUG_BUNDLE_FN,$(out))
     411TOOL_GCC4MACHO_LINK_DLL_DEBUG_INSTALL_FN = $(TOOL_GCC4MACHO_DEBUG_INSTALL_FN)
    377412TOOL_GCC4MACHO_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    378413TOOL_GCC4MACHO_LINK_DLL_DEPORD =
     
    384419                $(foreach p,$(libpath), -L$(p))\
    385420                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
     421 ifeq ($(ld_debug),split)
     422        $(QUIET)$(TOOL_GCC4MACHO_DSYMUTIL) --verbose -o $(out).dSYM/ $(out)
     423 endif
    386424endef
    387425
     
    401439# @param    $(outbase)  Output basename (full). Use this for list files and such.
    402440TOOL_GCC4MACHO_LINK_SYSMOD_OUTPUT = $(outbase).rsp
     441TOOL_GCC4MACHO_LINK_SYSMOD_OUTPUT_DEBUG = $(call TOOL_GCC4MACHO_DEBUG_BUNDLE_FN,$(out))
     442TOOL_GCC4MACHO_LINK_SYSMOD_DEBUG_INSTALL_FN = $(TOOL_GCC4MACHO_DEBUG_INSTALL_FN)
    403443TOOL_GCC4MACHO_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    404444TOOL_GCC4MACHO_LINK_SYSMOD_DEPORD =
     
    409449                $(foreach p,$(libpath), -L$(p))\
    410450                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
    411 endef
    412 
     451 ifeq ($(ld_debug),split)
     452        $(QUIET)$(TOOL_GCC4MACHO_DSYMUTIL) --verbose -o $(out).dSYM/ $(out)
     453 endif
     454endef
     455
  • trunk/kBuild/tools/GXX4MACHO.kmk

    r2431 r2523  
    5151TOOL_GXX4MACHO_LDFLAGS.sysmod ?= -r
    5252#TOOL_GXX4MACHO_LD_SONAME = -Wl,-dylib_install_name $(firstword $($(1)_SONAME.$(KBUILD_TARGET).$(KBUILD_TYPE)) $($(1)_SONAME.$(KBUILD_TARGET)) $($(1)_SONAME.$(KBUILD_TYPE)) $($(1)_SONAME) $(notdir $(2)))
     53TOOL_GXX4MACHO_DSYMUTIL  ?= dsymutil
    5354
    5455ifdef SLKRUNS
     
    192193        $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" ""
    193194endef
    194 endif # !KUSE_OBJCACHE
     195endif # !KBUILD_USE_KOBJCACHE
    195196
    196197
     
    236237        $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" ""
    237238endef
    238 endif # !KUSE_OBJCACHE
     239endif # !KBUILD_USE_KOBJCACHE
    239240
    240241
     
    280281        $(QUIET)$(APPEND) -n "$(dep)" "" "$(source):" ""
    281282endef
    282 endif # !KUSE_OBJCACHE
     283endif # !KBUILD_USE_KOBJCACHE
    283284
    284285
     
    350351# @param    $(outbase)  Output basename (full). Use this for list files and such.
    351352TOOL_GXX4MACHO_LINK_PROGRAM_OUTPUT = $(outbase).rsp
     353TOOL_GXX4MACHO_LINK_PROGRAM_OUTPUT_DEBUG = $(out).dSYM/
    352354TOOL_GXX4MACHO_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    353355TOOL_GXX4MACHO_LINK_PROGRAM_DEPORD =
     
    358360                $(foreach p,$(libpath), -L$(p))\
    359361                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
     362 ifeq ($(ld_debug),split)
     363        $(QUIET)$(TOOL_GXX4MACHO_DSYMUTIL) --verbose -o $(out).dSYM/ $(out)
     364 endif
    360365endef
    361366
     
    375380# @param    $(outbase)  Output basename (full). Use this for list files and such.
    376381TOOL_GXX4MACHO_LINK_DLL_OUTPUT = $(outbase).rsp
     382TOOL_GXX4MACHO_LINK_DLL_OUTPUT_DEBUG = $(out).dSYM/
    377383TOOL_GXX4MACHO_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    378384TOOL_GXX4MACHO_LINK_DLL_DEPORD =
     
    384390                $(foreach p,$(libpath), -L$(p))\
    385391                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
     392 ifeq ($(ld_debug),split)
     393        $(QUIET)$(TOOL_GXX4MACHO_DSYMUTIL) --verbose -o $(out).dSYM/ $(out)
     394 endif
    386395endef
    387396
     
    401410# @param    $(outbase)  Output basename (full). Use this for list files and such.
    402411TOOL_GXX4MACHO_LINK_SYSMOD_OUTPUT = $(outbase).rsp
     412TOOL_GXX4MACHO_LINK_SYSMOD_OUTPUT_DEBUG = $(out).dSYM/
    403413TOOL_GXX4MACHO_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    404414TOOL_GXX4MACHO_LINK_SYSMOD_DEPORD =
     
    409419                $(foreach p,$(libpath), -L$(p))\
    410420                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
    411 endef
    412 
     421 ifeq ($(ld_debug),split)
     422        $(QUIET)$(TOOL_GXX4MACHO_DSYMUTIL) --verbose -o $(out).dSYM/ $(out)
     423 endif
     424endef
     425
Note: See TracChangeset for help on using the changeset viewer.