Changeset 3403 for trunk/kBuild


Ignore:
Timestamp:
Jul 6, 2020, 11:29:45 AM (5 years ago)
Author:
bird
Message:

More CLANGXXMACHO.kmk tweaking. Added script for generating a CLANGCCMACHO variant of it.

Location:
trunk/kBuild/tools
Files:
1 added
1 edited
1 copied

Legend:

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

    r3401 r3403  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code.
    4 #
    5 
    6 #
    7 # Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
     3# kBuild Tool Config - LLVM Clang targeting Darwin (Mac OS X) Mach-O, for building C code.
     4#
     5
     6#
     7# Copyright (c) 2004-2020 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
    88#
    99# This file is part of kBuild.
     
    3636endif
    3737
    38 TOOL_CLANGXXMACHO := LLVM Clang targeting Darwin (Mac OS X) Mach-O, for building C++ code.
     38TOOL_CLANGCCMACHO := LLVM Clang targeting Darwin (Mac OS X) Mach-O, for building C code.
    3939
    4040# Tool Specific Properties
    4141# PREFIX/SUFFIX: clang;   PREFIX2/SUFFIX2: cctool;
    42 ifndef PATH_TOOL_CLANGXXMACHO
    43  PATH_TOOL_CLANGXXMACHO := $(substr $(firstfile $(foreachfile toolchaindir, $(DARWINCMN_TOOLCHAIN_DIRS) \
     42ifndef PATH_TOOL_CLANGCCMACHO
     43 PATH_TOOL_CLANGCCMACHO := $(substr $(firstfile $(foreachfile toolchaindir, $(DARWINCMN_TOOLCHAIN_DIRS) \
    4444        , $(qwildcard ,$(toolchaindir)/usr/bin/clang++))), 1, -12)
    4545else
    46  PATH_TOOL_CLANGXXMACHO := $(PATH_TOOL_CLANGXXMACHO)
    47 endif
    48 ifndef TOOL_CLANGXXMACHO_PREFIX
    49  ifdef PATH_TOOL_CLANGXXMACHO
    50   TOOL_CLANGXXMACHO_PREFIX  := $(PATH_TOOL_CLANGXXMACHO)/bin/
     46 PATH_TOOL_CLANGCCMACHO := $(PATH_TOOL_CLANGCCMACHO)
     47endif
     48ifndef TOOL_CLANGCCMACHO_PREFIX
     49 ifdef PATH_TOOL_CLANGCCMACHO
     50  TOOL_CLANGCCMACHO_PREFIX  := $(PATH_TOOL_CLANGCCMACHO)/bin/
    5151 else
    52   TOOL_CLANGXXMACHO_PREFIX  :=
     52  TOOL_CLANGCCMACHO_PREFIX  :=
    5353 endif
    5454endif
    55 ifndef TOOL_CLANGXXMACHO_SUFFIX
    56  TOOL_CLANGXXMACHO_SUFFIX   := $(HOSTSUFF_EXE)
    57 endif
    58 TOOL_CLANGXXMACHO_PREFIX2   ?= $(TOOL_CLANGXXMACHO_PREFIX)
    59 TOOL_CLANGXXMACHO_SUFFIX2   ?= $(TOOL_CLANGXXMACHO_SUFFIX)
    60 TOOL_CLANGXXMACHO_CC        ?= $(TOOL_CLANGXXMACHO_PREFIX)clang$(TOOL_CLANGXXMACHO_SUFFIX)
    61 TOOL_CLANGXXMACHO_CXX       ?= $(TOOL_CLANGXXMACHO_PREFIX)clang++$(TOOL_CLANGXXMACHO_SUFFIX)
    62 TOOL_CLANGXXMACHO_PCH       ?= $(TOOL_CLANGXXMACHO_CXX)
    63 TOOL_CLANGXXMACHO_OBJC      ?= $(TOOL_CLANGXXMACHO_PREFIX)clang$(TOOL_CLANGXXMACHO_SUFFIX)
    64 TOOL_CLANGXXMACHO_OBJCXX    ?= $(TOOL_CLANGXXMACHO_PREFIX)clang$(TOOL_CLANGXXMACHO_SUFFIX)
    65 TOOL_CLANGXXMACHO_AS        ?= $(TOOL_CLANGXXMACHO_PREFIX)clang$(TOOL_CLANGXXMACHO_SUFFIX)
    66 TOOL_CLANGXXMACHO_LD        ?= $(TOOL_CLANGXXMACHO_PREFIX)clang++$(TOOL_CLANGXXMACHO_SUFFIX)
    67 TOOL_CLANGXXMACHO_LD_SYSMOD ?= $(TOOL_CLANGXXMACHO_PREFIX)clang++$(TOOL_CLANGXXMACHO_SUFFIX)
    68 TOOL_CLANGXXMACHO_LDFLAGS.dll ?= -dynamiclib
    69 TOOL_CLANGXXMACHO_LDFLAGS.sysmod ?= -r
    70 #TOOL_CLANGXXMACHO_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)))
    71 TOOL_CLANGXXMACHO_DSYMUTIL  ?= $(TOOL_CLANGXXMACHO_PREFIX)dsymutil$(TOOL_CLANGXXMACHO_SUFFIX)
    72 
    73 TOOL_CLANGXXMACHO_AR        ?= $(TOOL_CLANGXXMACHO_PREFIX2)ar$(TOOL_CLANGXXMACHO_SUFFIX2)
    74 TOOL_CLANGXXMACHO_STRIP     ?= $(TOOL_CLANGXXMACHO_PREFIX2)strip$(TOOL_CLANGXXMACHO_SUFFIX2)
    75 TOOL_CLANGXXMACHO_STRIP_PROGRAM ?= $(TOOL_CLANGXXMACHO_STRIP) -SXxru
    76 TOOL_CLANGXXMACHO_STRIP_DLL     ?= $(TOOL_CLANGXXMACHO_STRIP) -Sxru
    77 TOOL_CLANGXXMACHO_STRIP_SYSMOD  ?= $(TOOL_CLANGXXMACHO_STRIP) -Sru
     55ifndef TOOL_CLANGCCMACHO_SUFFIX
     56 TOOL_CLANGCCMACHO_SUFFIX   := $(HOSTSUFF_EXE)
     57endif
     58TOOL_CLANGCCMACHO_PREFIX2   ?= $(TOOL_CLANGCCMACHO_PREFIX)
     59TOOL_CLANGCCMACHO_SUFFIX2   ?= $(TOOL_CLANGCCMACHO_SUFFIX)
     60TOOL_CLANGCCMACHO_CC        ?= $(TOOL_CLANGCCMACHO_PREFIX)clang$(TOOL_CLANGCCMACHO_SUFFIX)
     61TOOL_CLANGCCMACHO_CXX       ?= $(TOOL_CLANGCCMACHO_PREFIX)clang++$(TOOL_CLANGCCMACHO_SUFFIX)
     62TOOL_CLANGCCMACHO_PCH       ?= $(TOOL_CLANGCCMACHO_CXX)
     63TOOL_CLANGCCMACHO_OBJC      ?= $(TOOL_CLANGCCMACHO_PREFIX)clang$(TOOL_CLANGCCMACHO_SUFFIX)
     64TOOL_CLANGCCMACHO_OBJCXX    ?= $(TOOL_CLANGCCMACHO_PREFIX)clang$(TOOL_CLANGCCMACHO_SUFFIX)
     65TOOL_CLANGCCMACHO_AS        ?= $(TOOL_CLANGCCMACHO_PREFIX)clang$(TOOL_CLANGCCMACHO_SUFFIX)
     66TOOL_CLANGCCMACHO_LD        ?= $(TOOL_CLANGCCMACHO_PREFIX)clang$(TOOL_CLANGCCMACHO_SUFFIX)
     67TOOL_CLANGCCMACHO_LD_SYSMOD ?= $(TOOL_CLANGCCMACHO_PREFIX)clang$(TOOL_CLANGCCMACHO_SUFFIX)
     68TOOL_CLANGCCMACHO_LDFLAGS.dll ?= -dynamiclib
     69TOOL_CLANGCCMACHO_LDFLAGS.sysmod ?= -r
     70#TOOL_CLANGCCMACHO_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)))
     71TOOL_CLANGCCMACHO_DSYMUTIL  ?= $(TOOL_CLANGCCMACHO_PREFIX)dsymutil$(TOOL_CLANGCCMACHO_SUFFIX)
     72
     73TOOL_CLANGCCMACHO_AR        ?= $(TOOL_CLANGCCMACHO_PREFIX2)ar$(TOOL_CLANGCCMACHO_SUFFIX2)
     74TOOL_CLANGCCMACHO_STRIP     ?= $(TOOL_CLANGCCMACHO_PREFIX2)strip$(TOOL_CLANGCCMACHO_SUFFIX2)
     75TOOL_CLANGCCMACHO_STRIP_PROGRAM ?= $(TOOL_CLANGCCMACHO_STRIP) -SXxru
     76TOOL_CLANGCCMACHO_STRIP_DLL     ?= $(TOOL_CLANGCCMACHO_STRIP) -Sxru
     77TOOL_CLANGCCMACHO_STRIP_SYSMOD  ?= $(TOOL_CLANGCCMACHO_STRIP) -Sru
    7878
    7979ifdef SLKRUNS
    80 TOOL_CLANGXXMACHO_CC     += -fmessage-length=0
    81 TOOL_CLANGXXMACHO_CXX    += -fmessage-length=0
    82 TOOL_CLANGXXMACHO_OBJC   += -fmessage-length=0
    83 TOOL_CLANGXXMACHO_OBJCXX += -fmessage-length=0
     80TOOL_CLANGCCMACHO_CC     += -fmessage-length=0
     81TOOL_CLANGCCMACHO_CXX    += -fmessage-length=0
     82TOOL_CLANGCCMACHO_OBJC   += -fmessage-length=0
     83TOOL_CLANGCCMACHO_OBJCXX += -fmessage-length=0
    8484endif
    8585
    8686# General Properties used by kBuild
    87 TOOL_CLANGXXMACHO_COBJSUFF         ?= .o
    88 TOOL_CLANGXXMACHO_CFLAGS           ?=
    89 TOOL_CLANGXXMACHO_CFLAGS.debug     ?= -g
    90 TOOL_CLANGXXMACHO_CFLAGS.profile   ?= -O2 #-g -pg
    91 TOOL_CLANGXXMACHO_CFLAGS.release   ?= -O2
    92 TOOL_CLANGXXMACHO_CINCS            ?=
    93 TOOL_CLANGXXMACHO_CDEFS            ?=
    94 
    95 TOOL_CLANGXXMACHO_CXXOBJSUFF       ?= .o
    96 TOOL_CLANGXXMACHO_CXXFLAGS         ?=
    97 TOOL_CLANGXXMACHO_CXXFLAGS.debug   ?= -g
    98 TOOL_CLANGXXMACHO_CXXFLAGS.profile ?= -O2 #-g -pg
    99 TOOL_CLANGXXMACHO_CXXFLAGS.release ?= -O2
    100 TOOL_CLANGXXMACHO_CXXINCS          ?=
    101 TOOL_CLANGXXMACHO_CXXDEFS          ?=
    102 
    103 TOOL_CLANGXXMACHO_PCHOBJSUFF       ?= .h.gch
    104 TOOL_CLANGXXMACHO_PCHFLAGS         ?= $(TOOL_CLANGXXMACHO_CXXFLAGS)
    105 TOOL_CLANGXXMACHO_PCHFLAGS.debug   ?= $(TOOL_CLANGXXMACHO_CXXFLAGS.debug)
    106 TOOL_CLANGXXMACHO_PCHFLAGS.profile ?= $(TOOL_CLANGXXMACHO_CXXFLAGS.profile)
    107 TOOL_CLANGXXMACHO_PCHFLAGS.release ?= $(TOOL_CLANGXXMACHO_CXXFLAGS.release)
    108 TOOL_CLANGXXMACHO_PCHINCS          ?= $(TOOL_CLANGXXMACHO_CXXINCS)
    109 TOOL_CLANGXXMACHO_PCHDEFS          ?= $(TOOL_CLANGXXMACHO_CXXDEFS)
    110 
    111 TOOL_CLANGXXMACHO_OBJCOBJSUFF      ?= .o
    112 TOOL_CLANGXXMACHO_OBJCFLAGS        ?=
    113 TOOL_CLANGXXMACHO_OBJCFLAGS.debug  ?= -g
    114 TOOL_CLANGXXMACHO_OBJCFLAGS.profile?= -O2 #-g -pg
    115 TOOL_CLANGXXMACHO_OBJCFLAGS.release?= -O2
    116 TOOL_CLANGXXMACHO_OBJCINCS         ?=
    117 TOOL_CLANGXXMACHO_OBJCDEFS         ?=
    118 
    119 TOOL_CLANGXXMACHO_OBJCXXOBJSUFF        ?= .o
    120 TOOL_CLANGXXMACHO_OBJCXXFLAGS          ?=
    121 TOOL_CLANGXXMACHO_OBJCXXFLAGS.debug    ?= -g
    122 TOOL_CLANGXXMACHO_OBJCXXFLAGS.profile  ?= -O2 #-g -pg
    123 TOOL_CLANGXXMACHO_OBJCXXFLAGS.release  ?= -O2
    124 TOOL_CLANGXXMACHO_OBJCXXINCS           ?=
    125 TOOL_CLANGXXMACHO_OBJCXXDEFS           ?=
    126 
    127 TOOL_CLANGXXMACHO_ASFLAGS          ?= -x assembler-with-cpp
    128 TOOL_CLANGXXMACHO_ASFLAGS.debug    ?= -g
    129 TOOL_CLANGXXMACHO_ASFLAGS.profile  ?= -g
    130 TOOL_CLANGXXMACHO_ASOBJSUFF        ?= .o
    131 
    132 TOOL_CLANGXXMACHO_ARFLAGS          ?= -c -rs
    133 TOOL_CLANGXXMACHO_ARLIBSUFF        ?= .a
    134 
    135 TOOL_CLANGXXMACHO_LDFLAGS          ?=
    136 TOOL_CLANGXXMACHO_LDFLAGS.debug    ?= -g
    137 TOOL_CLANGXXMACHO_LDFLAGS.profile  ?= -g
     87TOOL_CLANGCCMACHO_COBJSUFF         ?= .o
     88TOOL_CLANGCCMACHO_CFLAGS           ?=
     89TOOL_CLANGCCMACHO_CFLAGS.debug     ?= -g
     90TOOL_CLANGCCMACHO_CFLAGS.profile   ?= -O2 #-g -pg
     91TOOL_CLANGCCMACHO_CFLAGS.release   ?= -O2
     92TOOL_CLANGCCMACHO_CINCS            ?=
     93TOOL_CLANGCCMACHO_CDEFS            ?=
     94
     95TOOL_CLANGCCMACHO_CXXOBJSUFF       ?= .o
     96TOOL_CLANGCCMACHO_CXXFLAGS         ?=
     97TOOL_CLANGCCMACHO_CXXFLAGS.debug   ?= -g
     98TOOL_CLANGCCMACHO_CXXFLAGS.profile ?= -O2 #-g -pg
     99TOOL_CLANGCCMACHO_CXXFLAGS.release ?= -O2
     100TOOL_CLANGCCMACHO_CXXINCS          ?=
     101TOOL_CLANGCCMACHO_CXXDEFS          ?=
     102
     103TOOL_CLANGCCMACHO_PCHOBJSUFF       ?= .h.gch
     104TOOL_CLANGCCMACHO_PCHFLAGS         ?= $(TOOL_CLANGCCMACHO_CXXFLAGS)
     105TOOL_CLANGCCMACHO_PCHFLAGS.debug   ?= $(TOOL_CLANGCCMACHO_CXXFLAGS.debug)
     106TOOL_CLANGCCMACHO_PCHFLAGS.profile ?= $(TOOL_CLANGCCMACHO_CXXFLAGS.profile)
     107TOOL_CLANGCCMACHO_PCHFLAGS.release ?= $(TOOL_CLANGCCMACHO_CXXFLAGS.release)
     108TOOL_CLANGCCMACHO_PCHINCS          ?= $(TOOL_CLANGCCMACHO_CXXINCS)
     109TOOL_CLANGCCMACHO_PCHDEFS          ?= $(TOOL_CLANGCCMACHO_CXXDEFS)
     110
     111TOOL_CLANGCCMACHO_OBJCOBJSUFF      ?= .o
     112TOOL_CLANGCCMACHO_OBJCFLAGS        ?=
     113TOOL_CLANGCCMACHO_OBJCFLAGS.debug  ?= -g
     114TOOL_CLANGCCMACHO_OBJCFLAGS.profile?= -O2 #-g -pg
     115TOOL_CLANGCCMACHO_OBJCFLAGS.release?= -O2
     116TOOL_CLANGCCMACHO_OBJCINCS         ?=
     117TOOL_CLANGCCMACHO_OBJCDEFS         ?=
     118
     119TOOL_CLANGCCMACHO_OBJCXXOBJSUFF        ?= .o
     120TOOL_CLANGCCMACHO_OBJCXXFLAGS          ?=
     121TOOL_CLANGCCMACHO_OBJCXXFLAGS.debug    ?= -g
     122TOOL_CLANGCCMACHO_OBJCXXFLAGS.profile  ?= -O2 #-g -pg
     123TOOL_CLANGCCMACHO_OBJCXXFLAGS.release  ?= -O2
     124TOOL_CLANGCCMACHO_OBJCXXINCS           ?=
     125TOOL_CLANGCCMACHO_OBJCXXDEFS           ?=
     126
     127TOOL_CLANGCCMACHO_ASFLAGS          ?= -x assembler-with-cpp
     128TOOL_CLANGCCMACHO_ASFLAGS.debug    ?= -g
     129TOOL_CLANGCCMACHO_ASFLAGS.profile  ?= -g
     130TOOL_CLANGCCMACHO_ASOBJSUFF        ?= .o
     131
     132TOOL_CLANGCCMACHO_ARFLAGS          ?= -c -rs
     133TOOL_CLANGCCMACHO_ARLIBSUFF        ?= .a
     134
     135TOOL_CLANGCCMACHO_LDFLAGS          ?=
     136TOOL_CLANGCCMACHO_LDFLAGS.debug    ?= -g
     137TOOL_CLANGCCMACHO_LDFLAGS.profile  ?= -g
    138138
    139139
     
    143143# @param    1  The whole output filename.
    144144# @param    2  The output filename sans suffix.
    145 TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN = \
     145TOOL_CLANGCCMACHO_DEBUG_BUNDLE_FN = \
    146146    $(1).dSYM/Contents/Info.plist \
    147147    $(1).dSYM/Contents/Resources/DWARF/$(notdir $(1))
     
    155155#           does not care and only check for a symbol file in the DWARF
    156156#           directory with the same name as the debugged module.
    157 TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN= \
     157TOOL_CLANGCCMACHO_DEBUG_INSTALL_FN= \
    158158    $(3).dSYM/ \
    159159    $(3).dSYM/Contents/ \
     
    177177# @param    $(outbase)  Output basename (full). Use this for list files and such.
    178178# @param    $(objsuff)  Object suffix.
    179 TOOL_CLANGXXMACHO_COMPILE_C_DEPEND =
    180 TOOL_CLANGXXMACHO_COMPILE_C_DEPORD =
    181 TOOL_CLANGXXMACHO_COMPILE_C_OUTPUT         = $(if-expr "$(use_objcache)" != "",$(outbase).i,)
    182 TOOL_CLANGXXMACHO_COMPILE_C_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,)
    183 define TOOL_CLANGXXMACHO_COMPILE_C_CMDS
     179TOOL_CLANGCCMACHO_COMPILE_C_DEPEND =
     180TOOL_CLANGCCMACHO_COMPILE_C_DEPORD =
     181TOOL_CLANGCCMACHO_COMPILE_C_OUTPUT         = $(if-expr "$(use_objcache)" != "",$(outbase).i,)
     182TOOL_CLANGCCMACHO_COMPILE_C_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,)
     183define TOOL_CLANGCCMACHO_COMPILE_C_CMDS
    184184if "$(use_objcache)" != ""
    185185        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
    186186                --kObjCache-cpp $(outbase).i\
    187                 $(TOOL_CLANGXXMACHO_CC) -E -o -\
     187                $(TOOL_CLANGCCMACHO_CC) -E -o -\
    188188                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    189189                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
    190190                $(abspath $(source))\
    191191                --kObjCache-cc $(obj)\
    192                 $(TOOL_CLANGXXMACHO_CC) -c\
     192                $(TOOL_CLANGCCMACHO_CC) -c\
    193193                $(flags) -fpreprocessed -x c\
    194194                -o $(obj)\
    195195                -
    196196else
    197         $(QUIET)$(TOOL_CLANGXXMACHO_CC) -c\
     197        $(QUIET)$(TOOL_CLANGCCMACHO_CC) -c\
    198198                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    199199                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    217217# @param    $(outbase)  Output basename (full). Use this for list files and such.
    218218# @param    $(objsuff)  Object suffix.
    219 TOOL_CLANGXXMACHO_COMPILE_CXX_OUTPUT         = $(if-expr "$(use_objcache)" != "",$(outbase).ii,)
    220 TOOL_CLANGXXMACHO_COMPILE_CXX_DEPEND         = $($(target)_1_GCC_PCH_FILE)
    221 TOOL_CLANGXXMACHO_COMPILE_CXX_DEPORD         =
    222 TOOL_CLANGXXMACHO_COMPILE_CXX_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,)
    223 define TOOL_CLANGXXMACHO_COMPILE_CXX_CMDS
     219TOOL_CLANGCCMACHO_COMPILE_CXX_OUTPUT         = $(if-expr "$(use_objcache)" != "",$(outbase).ii,)
     220TOOL_CLANGCCMACHO_COMPILE_CXX_DEPEND         = $($(target)_1_GCC_PCH_FILE)
     221TOOL_CLANGCCMACHO_COMPILE_CXX_DEPORD         =
     222TOOL_CLANGCCMACHO_COMPILE_CXX_USES_KOBJCACHE = $(if-expr "$(use_objcache)" != "",1,)
     223define TOOL_CLANGCCMACHO_COMPILE_CXX_CMDS
    224224if "$(use_objcache)" != ""
    225225        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
    226226                --kObjCache-cpp $(outbase).ii\
    227                 $(TOOL_CLANGXXMACHO_CXX) -E -o - $(if-expr defined($(target)_PCH_HDR)\
     227                $(TOOL_CLANGCCMACHO_CXX) -E -o - $(if-expr defined($(target)_PCH_HDR)\
    228228                ,-fpch-preprocess -Winvalid-pch -I$($(target)_1_GCC_PCH_DIR) -include $(basename $($(target)_1_GCC_PCH_FILE)),)\
    229229                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     
    231231                $(abspath $(source))\
    232232                --kObjCache-cc $(obj)\
    233                 $(TOOL_CLANGXXMACHO_CXX) -c\
     233                $(TOOL_CLANGCCMACHO_CXX) -c\
    234234                $(flags) -fpreprocessed $(if-expr defined($(target)_PCH_HDR),-fpch-preprocess,) -x c++\
    235235                -o $(obj)\
    236236                -
    237237else
    238         $(QUIET)$(TOOL_CLANGXXMACHO_CXX) -c\
     238        $(QUIET)$(TOOL_CLANGCCMACHO_CXX) -c\
    239239                $(flags) $(addprefix -I, $($(target)_1_GCC_PCH_DIR) $(incs)) $(addprefix -D, $(defs))\
    240240                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    259259# @param    $(outbase)  Output basename (full). Use this for list files and such.
    260260# @param    $(objsuff)  Object suffix.
    261 TOOL_CLANGXXMACHO_COMPILE_PCH_OUTPUT = $($(target)_1_GCC_PCH_FILE)
    262 TOOL_CLANGXXMACHO_COMPILE_PCH_DEPEND =
    263 TOOL_CLANGXXMACHO_COMPILE_PCH_DEPORD = $($(target)_1_GCC_PCH_DIR)
    264 define TOOL_CLANGXXMACHO_COMPILE_PCH_CMDS
    265         $(QUIET)$(TOOL_CLANGXXMACHO_PCH) -c\
     261TOOL_CLANGCCMACHO_COMPILE_PCH_OUTPUT = $($(target)_1_GCC_PCH_FILE)
     262TOOL_CLANGCCMACHO_COMPILE_PCH_DEPEND =
     263TOOL_CLANGCCMACHO_COMPILE_PCH_DEPORD = $($(target)_1_GCC_PCH_DIR)
     264define TOOL_CLANGCCMACHO_COMPILE_PCH_CMDS
     265        $(QUIET)$(TOOL_CLANGCCMACHO_PCH) -c\
    266266                $(flags) $(addprefix -I, $($(target)_1_GCC_PCH_DIR) $(incs)) $(addprefix -D, $(defs))\
    267267                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    285285# @param    $(outbase)  Output basename (full). Use this for list files and such.
    286286# @param    $(objsuff)  Object suffix.
    287 TOOL_CLANGXXMACHO_COMPILE_OBJC_DEPEND =
    288 TOOL_CLANGXXMACHO_COMPILE_OBJC_DEPORD =
     287TOOL_CLANGCCMACHO_COMPILE_OBJC_DEPEND =
     288TOOL_CLANGCCMACHO_COMPILE_OBJC_DEPORD =
    289289ifdef KBUILD_USE_KOBJCACHE
    290 TOOL_CLANGXXMACHO_COMPILE_OBJC_USES_KOBJCACHE = 1
    291 TOOL_CLANGXXMACHO_COMPILE_OBJC_OUTPUT = $(outbase).mi
    292 define TOOL_CLANGXXMACHO_COMPILE_OBJC_CMDS
     290TOOL_CLANGCCMACHO_COMPILE_OBJC_USES_KOBJCACHE = 1
     291TOOL_CLANGCCMACHO_COMPILE_OBJC_OUTPUT = $(outbase).mi
     292define TOOL_CLANGCCMACHO_COMPILE_OBJC_CMDS
    293293        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
    294294                --kObjCache-cpp $(outbase).ii\
    295                 $(TOOL_CLANGXXMACHO_OBJC) -E -o -\
     295                $(TOOL_CLANGCCMACHO_OBJC) -E -o -\
    296296                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    297297                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
    298298                $(abspath $(source))\
    299299                --kObjCache-cc $(obj)\
    300                 $(TOOL_CLANGXXMACHO_OBJC) -c\
     300                $(TOOL_CLANGCCMACHO_OBJC) -c\
    301301                $(flags) -fpreprocessed -x objective-c \
    302302                -o $(obj)\
     
    305305endef
    306306else  # !KBUILD_USE_KOBJCACHE
    307 TOOL_CLANGXXMACHO_COMPILE_OBJC_OUTPUT =
    308 define TOOL_CLANGXXMACHO_COMPILE_OBJC_CMDS
    309         $(QUIET)$(TOOL_CLANGXXMACHO_OBJC) -c\
     307TOOL_CLANGCCMACHO_COMPILE_OBJC_OUTPUT =
     308define TOOL_CLANGCCMACHO_COMPILE_OBJC_CMDS
     309        $(QUIET)$(TOOL_CLANGCCMACHO_OBJC) -c\
    310310                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    311311                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    329329# @param    $(outbase)  Output basename (full). Use this for list files and such.
    330330# @param    $(objsuff)  Object suffix.
    331 TOOL_CLANGXXMACHO_COMPILE_OBJCXX_DEPEND =
    332 TOOL_CLANGXXMACHO_COMPILE_OBJCXX_DEPORD =
     331TOOL_CLANGCCMACHO_COMPILE_OBJCXX_DEPEND =
     332TOOL_CLANGCCMACHO_COMPILE_OBJCXX_DEPORD =
    333333ifdef KBUILD_USE_KOBJCACHE
    334 TOOL_CLANGXXMACHO_COMPILE_OBJCXX_USES_KOBJCACHE = 1
    335 TOOL_CLANGXXMACHO_COMPILE_OBJCXX_OUTPUT = $(outbase).mii
    336 define TOOL_CLANGXXMACHO_COMPILE_OBJCXX_CMDS
     334TOOL_CLANGCCMACHO_COMPILE_OBJCXX_USES_KOBJCACHE = 1
     335TOOL_CLANGCCMACHO_COMPILE_OBJCXX_OUTPUT = $(outbase).mii
     336define TOOL_CLANGCCMACHO_COMPILE_OBJCXX_CMDS
    337337        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
    338338                --kObjCache-cpp $(outbase).mii\
    339                 $(TOOL_CLANGXXMACHO_OBJCXX) -E -o -\
     339                $(TOOL_CLANGCCMACHO_OBJCXX) -E -o -\
    340340                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    341341                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
    342342                $(abspath $(source))\
    343343                --kObjCache-cc $(obj)\
    344                 $(TOOL_CLANGXXMACHO_OBJCXX) -c\
     344                $(TOOL_CLANGCCMACHO_OBJCXX) -c\
    345345                $(flags) -fpreprocessed -x objective-c++ \
    346346                -o $(obj)\
     
    349349endef
    350350else  # !KBUILD_USE_KOBJCACHE
    351 TOOL_CLANGXXMACHO_COMPILE_OBJCXX_OUTPUT =
    352 define TOOL_CLANGXXMACHO_COMPILE_OBJCXX_CMDS
    353         $(QUIET)$(TOOL_CLANGXXMACHO_OBJCXX) -c\
     351TOOL_CLANGCCMACHO_COMPILE_OBJCXX_OUTPUT =
     352define TOOL_CLANGCCMACHO_COMPILE_OBJCXX_CMDS
     353        $(QUIET)$(TOOL_CLANGCCMACHO_OBJCXX) -c\
    354354                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    355355                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    374374# @param    $(objsuff)  Object suffix.
    375375#
    376 TOOL_CLANGXXMACHO_COMPILE_AS_OUTPUT =
    377 TOOL_CLANGXXMACHO_COMPILE_AS_DEPEND =
    378 TOOL_CLANGXXMACHO_COMPILE_AS_DEPORD =
    379 define TOOL_CLANGXXMACHO_COMPILE_AS_CMDS
    380         $(QUIET)$(TOOL_CLANGXXMACHO_AS) -c\
     376TOOL_CLANGCCMACHO_COMPILE_AS_OUTPUT =
     377TOOL_CLANGCCMACHO_COMPILE_AS_DEPEND =
     378TOOL_CLANGCCMACHO_COMPILE_AS_DEPORD =
     379define TOOL_CLANGCCMACHO_COMPILE_AS_CMDS
     380        $(QUIET)$(TOOL_CLANGCCMACHO_AS) -c\
    381381                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    382382                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     
    396396# @param    $(othersrc) Unhandled sources.
    397397# @param    $(outbase)  Output basename (full). Use this for list files and such.
    398 TOOL_CLANGXXMACHO_LINK_LIBRARY_OUTPUT =
    399 TOOL_CLANGXXMACHO_LINK_LIBRARY_DEPEND = $(othersrc)
    400 TOOL_CLANGXXMACHO_LINK_LIBRARY_DEPORD =
    401 define TOOL_CLANGXXMACHO_LINK_LIBRARY_CMDS
    402         $(if $(strip $(filter-out %.h.gch,$(objs))),$(call xargs,$(QUIET)$(TOOL_CLANGXXMACHO_AR) $(flags) $(out),$(filter-out %.h.gch,$(objs))))
     398TOOL_CLANGCCMACHO_LINK_LIBRARY_OUTPUT =
     399TOOL_CLANGCCMACHO_LINK_LIBRARY_DEPEND = $(othersrc)
     400TOOL_CLANGCCMACHO_LINK_LIBRARY_DEPORD =
     401define TOOL_CLANGCCMACHO_LINK_LIBRARY_CMDS
     402        $(if $(strip $(filter-out %.h.gch,$(objs))),$(call xargs,$(QUIET)$(TOOL_CLANGCCMACHO_AR) $(flags) $(out),$(filter-out %.h.gch,$(objs))))
    403403        $(foreach lib,$(othersrc)\
    404404                ,$(NL)$(TAB)$(call MSG_AR_MERGE,$(target),$(out),$(lib)) \
     
    406406                $(NL)$(TAB)$(QUIET)$(MKDIR) -p $(dir $(outbase))/ar.tmp.dir/ \
    407407                $(NL)$(TAB)$(QUIET)(cd $(dir $(outbase))ar.tmp.dir/ \
    408                         && $(TOOL_CLANGXXMACHO_AR) -x $(abspath $(lib)) \
     408                        && $(TOOL_CLANGCCMACHO_AR) -x $(abspath $(lib)) \
    409409                    && $(RM_EXT) -f ./__.SYMDEF* \
    410                         && $(TOOL_CLANGXXMACHO_AR) $(flags) $(out) *) \
     410                        && $(TOOL_CLANGCCMACHO_AR) $(flags) $(out) *) \
    411411                $(NL)$(TAB)$(QUIET)$(RM_EXT) -f $(dir $(outbase))/ar.tmp.dir/* \
    412412                $(NL)$(TAB)$(QUIET)$(RMDIR) $(dir $(outbase))ar.tmp.dir/)
     
    427427# @param    $(custom_post)  Custom step invoked after linking.
    428428# @param    $(outbase)  Output basename (full). Use this for list files and such.
    429 TOOL_CLANGXXMACHO_LINK_PROGRAM_OUTPUT = $(outbase).rsp
    430 TOOL_CLANGXXMACHO_LINK_PROGRAM_OUTPUT_DEBUG = $(call TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN,$(out))
    431 TOOL_CLANGXXMACHO_LINK_PROGRAM_DEBUG_INSTALL_FN = $(TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN)
    432 TOOL_CLANGXXMACHO_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    433 TOOL_CLANGXXMACHO_LINK_PROGRAM_DEPORD =
    434 define TOOL_CLANGXXMACHO_LINK_PROGRAM_CMDS
     429TOOL_CLANGCCMACHO_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).rsp
     430TOOL_CLANGCCMACHO_LINK_PROGRAM_OUTPUT_DEBUG = $(call TOOL_CLANGCCMACHO_DEBUG_BUNDLE_FN,$(out))
     431TOOL_CLANGCCMACHO_LINK_PROGRAM_DEBUG_INSTALL_FN = $(TOOL_CLANGCCMACHO_DEBUG_INSTALL_FN)
     432TOOL_CLANGCCMACHO_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     433TOOL_CLANGCCMACHO_LINK_PROGRAM_DEPORD =
     434define TOOL_CLANGCCMACHO_LINK_PROGRAM_CMDS
    435435        $(QUIET)$(APPEND) -n $(outbase).rsp $(filter-out %.h.gch,$(objs))
    436         $(QUIET)$(TOOL_CLANGXXMACHO_LD) $(flags) -o $(out)\
     436        $(QUIET)$(TOOL_CLANGCCMACHO_LD) $(flags) -o $(out)\
    437437                -filelist $(outbase).rsp\
    438438                $(foreach p,$(libpath), -L$(p))\
    439439                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
    440440 ifeq ($(ld_debug),split)
    441         $(QUIET)$(TOOL_CLANGXXMACHO_DSYMUTIL) -o $(out).dSYM/ $(out)
    442         $(QUIET)$(TOOL_CLANGXXMACHO_STRIP_PROGRAM) $(out)
     441        $(QUIET)$(TOOL_CLANGCCMACHO_DSYMUTIL) -o $(out).dSYM/ $(out)
     442        $(QUIET)$(TOOL_CLANGCCMACHO_STRIP_PROGRAM) $(out)
    443443 endif
    444444endef
     
    458458# @param    $(custom_post)  Custom step invoked after linking.
    459459# @param    $(outbase)  Output basename (full). Use this for list files and such.
    460 TOOL_CLANGXXMACHO_LINK_DLL_OUTPUT = $(outbase).rsp
    461 TOOL_CLANGXXMACHO_LINK_DLL_OUTPUT_DEBUG = $(call TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN,$(out))
    462 TOOL_CLANGXXMACHO_LINK_DLL_DEBUG_INSTALL_FN = $(TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN)
    463 TOOL_CLANGXXMACHO_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    464 TOOL_CLANGXXMACHO_LINK_DLL_DEPORD =
    465 define TOOL_CLANGXXMACHO_LINK_DLL_CMDS
     460TOOL_CLANGCCMACHO_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(outbase).rsp
     461TOOL_CLANGCCMACHO_LINK_DLL_OUTPUT_DEBUG = $(call TOOL_CLANGCCMACHO_DEBUG_BUNDLE_FN,$(out))
     462TOOL_CLANGCCMACHO_LINK_DLL_DEBUG_INSTALL_FN = $(TOOL_CLANGCCMACHO_DEBUG_INSTALL_FN)
     463TOOL_CLANGCCMACHO_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     464TOOL_CLANGCCMACHO_LINK_DLL_DEPORD =
     465define TOOL_CLANGCCMACHO_LINK_DLL_CMDS
    466466        $(QUIET)$(APPEND) -n $(outbase).rsp $(filter-out %.h.gch,$(objs))
    467         $(QUIET)$(TOOL_CLANGXXMACHO_LD) $(TOOL_CLANGXXMACHO_LDFLAGS.dll) $(flags) -o $(out)\
    468                 $(call TOOL_CLANGXXMACHO_LD_SONAME,$(target),$(out))\
     467        $(QUIET)$(TOOL_CLANGCCMACHO_LD) $(TOOL_CLANGCCMACHO_LDFLAGS.dll) $(flags) -o $(out)\
     468                $(call TOOL_CLANGCCMACHO_LD_SONAME,$(target),$(out))\
    469469                -filelist $(outbase).rsp\
    470470                $(foreach p,$(libpath), -L$(p))\
    471471                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
    472472 ifeq ($(ld_debug),split)
    473         $(QUIET)$(TOOL_CLANGXXMACHO_DSYMUTIL) -o $(out).dSYM/ $(out)
    474         $(QUIET)$(TOOL_CLANGXXMACHO_STRIP_DLL) $(out)
     473        $(QUIET)$(TOOL_CLANGCCMACHO_DSYMUTIL) -o $(out).dSYM/ $(out)
     474        $(QUIET)$(TOOL_CLANGCCMACHO_STRIP_DLL) $(out)
    475475 endif
    476476endef
     
    490490# @param    $(custom_post)  Custom step invoked after linking.
    491491# @param    $(outbase)  Output basename (full). Use this for list files and such.
    492 TOOL_CLANGXXMACHO_LINK_SYSMOD_OUTPUT = $(outbase).rsp
    493 TOOL_CLANGXXMACHO_LINK_SYSMOD_OUTPUT_DEBUG = $(call TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN,$(out))
    494 TOOL_CLANGXXMACHO_LINK_SYSMOD_DEBUG_INSTALL_FN = $(TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN)
    495 TOOL_CLANGXXMACHO_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
    496 TOOL_CLANGXXMACHO_LINK_SYSMOD_DEPORD =
    497 define TOOL_CLANGXXMACHO_LINK_SYSMOD_CMDS
     492TOOL_CLANGCCMACHO_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).rsp
     493TOOL_CLANGCCMACHO_LINK_SYSMOD_OUTPUT_DEBUG = $(call TOOL_CLANGCCMACHO_DEBUG_BUNDLE_FN,$(out))
     494TOOL_CLANGCCMACHO_LINK_SYSMOD_DEBUG_INSTALL_FN = $(TOOL_CLANGCCMACHO_DEBUG_INSTALL_FN)
     495TOOL_CLANGCCMACHO_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib)))
     496TOOL_CLANGCCMACHO_LINK_SYSMOD_DEPORD =
     497define TOOL_CLANGCCMACHO_LINK_SYSMOD_CMDS
    498498        $(QUIET)$(APPEND) -n $(outbase).rsp $(filter-out %.h.gch,$(objs))
    499         $(QUIET)$(TOOL_CLANGXXMACHO_LD_SYSMOD) $(TOOL_CLANGXXMACHO_LDFLAGS.sysmod) $(flags) -o $(out)\
     499        $(QUIET)$(TOOL_CLANGCCMACHO_LD_SYSMOD) $(TOOL_CLANGCCMACHO_LDFLAGS.sysmod) $(flags) -o $(out)\
    500500                -filelist $(outbase).rsp\
    501501                $(foreach p,$(libpath), -L$(p))\
    502502                $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(lib)), $(lib)))
    503503 ifeq ($(ld_debug),split)
    504         $(QUIET)$(TOOL_CLANGXXMACHO_DSYMUTIL) -o $(out).dSYM/ $(out)
    505         $(QUIET)$(TOOL_CLANGXXMACHO_STRIP_SYSMOD) $(out)
     504        $(QUIET)$(TOOL_CLANGCCMACHO_DSYMUTIL) -o $(out).dSYM/ $(out)
     505        $(QUIET)$(TOOL_CLANGCCMACHO_STRIP_SYSMOD) $(out)
    506506 endif
    507507endef
  • trunk/kBuild/tools/CLANGXXMACHO.kmk

    r3401 r3403  
    11# $Id$
    22## @file
    3 # kBuild Tool Config - LLVM GCC v4.2.x targeting Darwin (Mac OS X) Mach-O, for building C++ code.
    4 #
    5 
    6 #
    7 # Copyright (c) 2004-2017 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
     3# kBuild Tool Config - LLVM Clang targeting Darwin (Mac OS X) Mach-O, for building C++ code.
     4#
     5
     6#
     7# Copyright (c) 2004-2020 knut st. osmundsen <bird-kBuild-spam-xviiv@anduin.net>
    88#
    99# This file is part of kBuild.
     
    427427# @param    $(custom_post)  Custom step invoked after linking.
    428428# @param    $(outbase)  Output basename (full). Use this for list files and such.
    429 TOOL_CLANGXXMACHO_LINK_PROGRAM_OUTPUT = $(outbase).rsp
     429TOOL_CLANGXXMACHO_LINK_PROGRAM_OUTPUT_MAYBE_PRECIOUS = $(outbase).rsp
    430430TOOL_CLANGXXMACHO_LINK_PROGRAM_OUTPUT_DEBUG = $(call TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN,$(out))
    431431TOOL_CLANGXXMACHO_LINK_PROGRAM_DEBUG_INSTALL_FN = $(TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN)
     
    458458# @param    $(custom_post)  Custom step invoked after linking.
    459459# @param    $(outbase)  Output basename (full). Use this for list files and such.
    460 TOOL_CLANGXXMACHO_LINK_DLL_OUTPUT = $(outbase).rsp
     460TOOL_CLANGXXMACHO_LINK_DLL_OUTPUT_MAYBE_PRECIOUS = $(outbase).rsp
    461461TOOL_CLANGXXMACHO_LINK_DLL_OUTPUT_DEBUG = $(call TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN,$(out))
    462462TOOL_CLANGXXMACHO_LINK_DLL_DEBUG_INSTALL_FN = $(TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN)
     
    490490# @param    $(custom_post)  Custom step invoked after linking.
    491491# @param    $(outbase)  Output basename (full). Use this for list files and such.
    492 TOOL_CLANGXXMACHO_LINK_SYSMOD_OUTPUT = $(outbase).rsp
     492TOOL_CLANGXXMACHO_LINK_SYSMOD_OUTPUT_MAYBE_PRECIOUS = $(outbase).rsp
    493493TOOL_CLANGXXMACHO_LINK_SYSMOD_OUTPUT_DEBUG = $(call TOOL_CLANGXXMACHO_DEBUG_BUNDLE_FN,$(out))
    494494TOOL_CLANGXXMACHO_LINK_SYSMOD_DEBUG_INSTALL_FN = $(TOOL_CLANGXXMACHO_DEBUG_INSTALL_FN)
Note: See TracChangeset for help on using the changeset viewer.