VirtualBox

Changeset 1097 in kBuild


Ignore:
Timestamp:
Sep 16, 2007 4:55:55 PM (18 years ago)
Author:
bird
Message:

very basic VAC308.

File:
1 copied

Legend:

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

    r1095 r1097  
    22## @file
    33#
    4 # kBuild Tool Config - GCC v3 targeting OS/2 OMF.
     4# kBuild Tool Config - VisualAge for C++ v3.08.
    55#
    66# Copyright (c) 2004-2007 knut st. osmundsen <[email protected]>
     
    2525#
    2626
    27 TOOL_GCC3OMF := GCC v3 targeting OS/2 OMF.
    28 
    29 # Tool Specific Properties
    30 TOOL_GCC3OMF_CC  ?= gcc$(HOSTSUFF_EXE)
    31 TOOL_GCC3OMF_CXX ?= g++$(HOSTSUFF_EXE)
    32 TOOL_GCC3OMF_AS  ?= gcc$(HOSTSUFF_EXE)
    33 TOOL_GCC3OMF_AR  ?= emxomfar$(HOSTSUFF_EXE)
    34 TOOL_GCC3OMF_AR_IMP ?= emximp$(HOSTSUFF_EXE)
    35 TOOL_GCC3OMF_LD ?= gcc$(HOSTSUFF_EXE)
    36 TOOL_GCC3OMF_LD_SYSMOD ?= gcc$(HOSTSUFF_EXE)
    37 ifndef TOOL_GCC3OMF_LDFLAGS.$(BUILD_TARGET)
    38 TOOL_GCC3OMF_LDFLAGS.dll ?= -shared -Zdll
     27TOOL_VAC308 := VisualAge for C++ v3.08
     28
     29TOOL_VAC308_ENV_SETUP ?=
     30
     31# Determin VAC308 location.
     32ifndef PATH_TOOL_VAC308
     33 PATH_TOOL_VAC308 := $(wildcard $(PATH_DEVTOOLS_BLD)/vac/v308*)
     34 ifeq ($(PATH_TOOL_VAC308),)
     35 PATH_TOOL_VAC308 := $(wildcard $(PATH_DEVTOOLS_TRG)/vac/v308*)
     36 endif
     37 ifeq ($(PATH_TOOL_VAC308),)
     38  PATH_TOOL_VAC308 := $(lastword $(sort $(PATH_TOOL_VAC308)))
     39 endif
     40 # if not found, we'll enter 'pathless' mode.
    3941else
    40 TOOL_GCC3OMF_LDFLAGS.dll ?= $(TOOL_GCC3OMF_LDFLAGS.$(BUILD_TARGET))
     42 # Resolve any fancy stuff once and for all.
     43 PATH_TOOL_VAC308 := $(PATH_TOOL_VAC308)
    4144endif
    42 TOOL_GCC3OMF_LDFLAGS.sysmod ?= -nostdlib
    43 TOOL_GCC3OMF_LD_MAP ?= -Zmap=$(1)
    44 TOOL_GCC3OMF_LD_SYSMOD_MAP ?= -Zmap=$(1)
    45 
    46 ifdef SLKRUNS
    47 TOOL_GCC3OMF_CC  += -fmessage-length=0
    48 TOOL_GCC3OMF_CXX += -fmessage-length=0
     45ifneq ($(PATH_TOOL_VAC308),)
     46 PATH_TOOL_VAC308_BIN ?= $(PATH_TOOL_VAC308)/bin
     47 PATH_TOOL_VAC308_LIB ?= $(PATH_TOOL_VAC308)/lib
     48 PATH_TOOL_VAC308_INC ?= $(PATH_TOOL_VAC308)/include
     49
     50 TOOL_VAC308_CC  ?= $(PATH_TOOL_VAC308_BIN)/icc$(HOSTSUFF_EXE)
     51 TOOL_VAC308_CXX ?= $(PATH_TOOL_VAC308_BIN)/icc$(HOSTSUFF_EXE)
     52 TOOL_VAC308_AR  ?= $(PATH_TOOL_VAC308_BIN)/ilib$(HOSTSUFF_EXE)
     53 TOOL_VAC308_LD  ?= $(PATH_TOOL_VAC308_BIN)/icc$(HOSTSUFF_EXE)
     54 TOOL_VAC308_RC  ?= $(PATH_TOOL_VAC308_BIN)/rc$(HOSTSUFF_EXE)
     55
     56else
     57 # Pathless, relies on the environment.
     58 TOOL_VAC308_CC  ?= icc$(HOSTSUFF_EXE)
     59 TOOL_VAC308_CXX ?= icc$(HOSTSUFF_EXE)
     60 TOOL_VAC308_AR  ?= ilib$(HOSTSUFF_EXE)
     61 TOOL_VAC308_LD  ?= icc$(HOSTSUFF_EXE)
     62 TOOL_VAC308_RC  ?= rc$(HOSTSUFF_EXE)
     63
    4964endif
    5065
     66# More tool specific properties.
     67# Note: implib isn't really a part of VAC308.
     68TOOL_VAC308_IMP              ?= implib$(HOSTSUFF_EXE)
     69TOOL_VAC308_IMPFLAGS         ?= /nologo /noignorecase
     70
    5171# General Properties used by kBuild
    52 TOOL_GCC3OMF_COBJSUFF         ?= .o
    53 TOOL_GCC3OMF_CFLAGS           ?= -Zomf
    54 TOOL_GCC3OMF_CFLAGS.debug     ?= -g
    55 TOOL_GCC3OMF_CFLAGS.profile   ?= -O2 #-g -pg
    56 TOOL_GCC3OMF_CFLAGS.release   ?= -O2
    57 TOOL_GCC3OMF_CINCS            ?=
    58 TOOL_GCC3OMF_CDEFS            ?=
    59 
    60 TOOL_GCC3OMF_CXXOBJSUFF       ?= .o
    61 TOOL_GCC3OMF_CXXOBJSUFF       ?= .o
    62 TOOL_GCC3OMF_CXXFLAGS         ?= -Zomf
    63 TOOL_GCC3OMF_CXXFLAGS.debug   ?= -g
    64 TOOL_GCC3OMF_CXXFLAGS.profile ?= -O2 #-g -pg
    65 TOOL_GCC3OMF_CXXFLAGS.release ?= -O2
    66 TOOL_GCC3OMF_CXXINCS          ?=
    67 TOOL_GCC3OMF_CXXDEFS          ?=
    68 
    69 TOOL_GCC3OMF_ASFLAGS          ?= -x assembler-with-cpp -Zomf
    70 TOOL_GCC3OMF_ASFLAGS.debug    ?= -g
    71 TOOL_GCC3OMF_ASFLAGS.profile  ?= -g
    72 TOOL_GCC3OMF_ASOBJSUFF        ?= .obj
    73 
    74 TOOL_GCC3OMF_ARFLAGS          ?= cr
    75 TOOL_GCC3OMF_ARLIBSUFF        ?= .lib
    76 
    77 TOOL_GCC3OMF_LDFLAGS          ?= -Zomf
    78 TOOL_GCC3OMF_LDFLAGS.debug    ?= -g
    79 TOOL_GCC3OMF_LDFLAGS.profile  ?= -g
     72TOOL_VAC308_COBJSUFF         ?= .obj
     73TOOL_VAC308_CFLAGS           ?= -Q+
     74TOOL_VAC308_CFLAGS.debug     ?= -Ti+
     75TOOL_VAC308_CFLAGS.release   ?= -O
     76TOOL_VAC308_CINCS            ?=
     77TOOL_VAC308_CDEFS            ?=
     78
     79TOOL_VAC308_CXXOBJSUFF       ?= .obj
     80TOOL_VAC308_CXXFLAGS         ?= -Q+
     81TOOL_VAC308_CXXFLAGS.debug   ?= -Ti
     82TOOL_VAC308_CXXFLAGS.release ?= -O
     83TOOL_VAC308_CXXINCS          ?=
     84TOOL_VAC308_CXXDEFS          ?=
     85
     86TOOL_VAC308_ARFLAGS          ?= /nologo /noignorecase
     87TOOL_VAC308_ARLIBSUFF        ?= .lib
     88
     89TOOL_VAC308_LDFLAGS          ?= -Q+
     90TOOL_VAC308_LDFLAGS.debug    ?= -Ti+
     91
    8092
    8193
     
    93105# @param    $(outbase)  Output basename (full). Use this for list files and such.
    94106# @param    $(objsuff)  Object suffix.
    95 TOOL_GCC3OMF_COMPILE_C_DEPEND =
    96 TOOL_GCC3OMF_COMPILE_C_DEPORD =
    97 ifdef USE_KOBJCACHE
    98 TOOL_GCC3OMF_COMPILE_C_USES_KOBJCACHE = 1
    99 TOOL_GCC3OMF_COMPILE_C_OUTPUT = $(outbase).i
    100 define TOOL_GCC3OMF_COMPILE_C_CMDS
    101         $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
    102                 --kObjCache-cpp $(outbase).i\
    103                 $(TOOL_GCC3OMF_CC) -E -o -\
    104                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    105                 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
    106                 $(abspath $(source))\
    107                 --kObjCache-cc $(obj)\
    108                 $(TOOL_GCC3OMF_CC) -c\
    109                 $(flags) -fpreprocessed -x c\
    110                 -o $(obj)\
    111                 -
    112 endef
    113 else # !USE_KOBJCACHE
    114 TOOL_GCC3OMF_COMPILE_C_OUTPUT =
    115 define TOOL_GCC3OMF_COMPILE_C_CMDS
    116         $(QUIET)$(TOOL_GCC3OMF_CC) -c\
    117                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    118                 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP \
    119                 -o $(obj)\
     107TOOL_VAC308_COMPILE_C_DEPEND =
     108TOOL_VAC308_COMPILE_C_DEPORD =
     109TOOL_VAC308_COMPILE_C_OUTPUT =
     110define TOOL_VAC308_COMPILE_C_CMDS
     111        $(QUIET) $(TOOL_VAC308_ENV_SETUP) $(TOOL_VAC308_CC) -c\
     112                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     113                -Fo$(obj)\
    120114                $(abspath $(source))
    121 endef
    122 endif # !USE_KOBJCACHE
     115        $(QUIET) $(TOOL_VAC308_ENV_SETUP) $(TOOL_VAC308_CC) -P+ -Pd+ \
     116                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     117                $(abspath $(source)) \
     118                | $(DEP_PRE) -f -s -o $(dep) -t $(obj) -
     119endef
    123120
    124121
     
    136133# @param    $(outbase)  Output basename (full). Use this for list files and such.
    137134# @param    $(objsuff)  Object suffix.
    138 TOOL_GCC3OMF_COMPILE_CXX_DEPEND =
    139 TOOL_GCC3OMF_COMPILE_CXX_DEPORD =
    140 ifdef USE_KOBJCACHE
    141 TOOL_GCC3OMF_COMPILE_CXX_USES_KOBJCACHE = 1
    142 TOOL_GCC3OMF_COMPILE_CXX_OUTPUT = $(outbase).ii
    143 define TOOL_GCC3OMF_COMPILE_CXX_CMDS
    144         $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
    145                 --kObjCache-cpp $(outbase).ii\
    146                 $(TOOL_GCC3OMF_CXX) -E -o -\
    147                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    148                 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
    149                 $(abspath $(source))\
    150                 --kObjCache-cc $(obj)\
    151                 $(TOOL_GCC3OMF_CXX) -c\
    152                 $(flags) -fpreprocessed -x c++\
    153                 -o $(obj)\
    154                 -
    155 endef
    156 else # !USE_KOBJCACHE
    157 TOOL_GCC3OMF_COMPILE_CXX_OUTPUT =
    158 define TOOL_GCC3OMF_COMPILE_CXX_CMDS
    159         $(QUIET)$(TOOL_GCC3OMF_CXX) -c\
    160                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    161                 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP \
    162                 -o $(obj)\
     135TOOL_VAC308_COMPILE_CXX_DEPEND =
     136TOOL_VAC308_COMPILE_CXX_DEPORD =
     137TOOL_VAC308_COMPILE_CXX_OUTPUT =
     138define TOOL_VAC308_COMPILE_CXX_CMDS
     139        $(QUIET) $(TOOL_VAC308_ENV_SETUP) $(TOOL_VAC308_CXX) -c\
     140                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     141                -Fo$(obj)\
    163142                $(abspath $(source))
    164 endef
    165 endif # !USE_KOBJCACHE
    166 
    167 
    168 ## Compile Assembly source.
    169 # @param    $(target)   Normalized main target name.
    170 # @param    $(source)   Source filename (relative).
    171 # @param    $(obj)      Object file name. This shall be (re)created by the compilation.
    172 # @param    $(dep)      Dependcy file. This shall be (re)created by the compilation.
    173 # @param    $(flags)    Flags.
    174 # @param    $(defs)     Definitions. No -D or something.
    175 # @param    $(incs)     Includes. No -I or something.
    176 # @param    $(dirdep)   Directory creation dependency.
    177 # @param    $(deps)     Other dependencies.
    178 # @param    $(outbase)  Output basename (full). Use this for list files and such.
    179 # @param    $(objsuff)  Object suffix.
    180 #
    181 TOOL_GCC3OMF_COMPILE_AS_OUTPUT =
    182 TOOL_GCC3OMF_COMPILE_AS_DEPEND =
    183 TOOL_GCC3OMF_COMPILE_AS_DEPORD =
    184 define TOOL_GCC3OMF_COMPILE_AS_CMDS
    185         $(QUIET)$(TOOL_GCC3OMF_AS) -c\
    186                 $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    187                 -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
    188                 -o $(obj)\
    189                 $(abspath $(source))
     143        $(QUIET) $(TOOL_VAC308_ENV_SETUP) $(TOOL_VAC308_CXX) -P+ -Pd+ \
     144                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     145                $(abspath $(source)) \
     146                | $(DEP_PRE) -f -s -o $(dep) -t $(obj) -
    190147endef
    191148
     
    201158#
    202159# @param    $(outbase)  Output basename (full). Use this for list files and such.
    203 TOOL_GCC3OMF_LINK_LIBRARY_OUTPUT = $(outbase).rsp
    204 TOOL_GCC3OMF_LINK_LIBRARY_DEPEND = $(othersrc)
    205 TOOL_GCC3OMF_LINK_LIBRARY_DEPORD =
    206 define TOOL_GCC3OMF_LINK_LIBRARY_CMDS
    207         $(if $(filter %.def %.imp,$(othersrc))\
    208                 ,$(QUIET)$(APPEND) -n $(outbase).rsp $(filter %.def %.imp,$(othersrc))\
    209                  $(NL)$(TAB)$(QUIET)$(QUIET)$(TOOL_GCC3OMF_AR_IMP) -o $(out) @$(outbase).rsp\
    210                  $(NL)$(TAB)$(QUIET)$(RM) -f $(outbase).rsp)
    211         $(QUIET)$(APPEND) -n $(outbase).rsp $(flags) $(out) $(objs) $(filter-out %.def %.imp,$(othersrc))
    212         $(TOOL_GCC3OMF_AR) @$(outbase).rsp
     160TOOL_VAC308_LINK_LIBRARY_OUTPUT = $(outbase).rsp
     161TOOL_VAC308_LINK_LIBRARY_DEPEND = $(othersrc)
     162TOOL_VAC308_LINK_LIBRARY_DEPORD =
     163define TOOL_VAC308_LINK_LIBRARY_CMDS
     164        $(if $(strip $(othersrc)),\
     165                $(QUIET)$(TOOL_VAC308_ENV_SETUP) \
     166                $(TOOL_VAC308_IMP) $(TOOL_VAC308_IMPFLAGS) $(subst /,\\,$(out)) $(subst /,\\,$(othersrc)) )
     167        $(if $(strip $(objs)),$(QUIET)$(TOOL_VAC308_ENV_SETUP) \
     168                $(QUIET)$(TOOL_VAC308_ENV_SETUP) \
     169                $(TOOL_VAC308_AR) $(flags) $(subst /,\\,$(out)) $(foreach obj,$(subst /,\\,$(objs)),+"$(obj)") ";" )
    213170endef
    214171
     
    228185#
    229186# @param    $(outbase)  Output basename (full). Use this for list files and such.
    230 TOOL_GCC3OMF_LINK_PROGRAM_OUTPUT = $(outbase).map $(outbase).rsp
    231 TOOL_GCC3OMF_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    232 TOOL_GCC3OMF_LINK_PROGRAM_DEPORD =
    233 define TOOL_GCC3OMF_LINK_PROGRAM_CMDS
    234         $(QUIET)$(APPEND) -n $(outbase).rsp\
    235                 $(flags)\
    236                 -o $(out)\
    237                 $(objs)\
    238                 $(foreach p,$(libpath), -L$(p))\
    239                 $(othersrc)\
    240                 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    241                 -Zmap=$(outbase).map
    242         $(QUIET)$(TOOL_GCC3OMF_LD) @$(outbase).rsp
     187TOOL_VAC308_LINK_PROGRAM_OUTPUT = $(outbase).map
     188TOOL_VAC308_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     189TOOL_VAC308_LINK_PROGRAM_DEPORD =
     190define TOOL_VAC308_LINK_PROGRAM_CMDS
     191        $(QUIET)$(TOOL_VAC308_ENV_SETUP) \
     192        $(if $(strip $(libpath)),LIB="$(subst ; ,;,$(foreach lp,$(libpath),$(lp);))$(LIB)") \
     193                $(TOOL_VAC308_LD) $(flags) -Fe$(out) -Fm$(outbase).map $(objs) $(libs) $(othersrc)
    243194endef
    244195
     
    258209#
    259210# @param    $(outbase)  Output basename (full). Use this for list files and such.
    260 TOOL_GCC3OMF_LINK_DLL_OUTPUT = $(outbase).map $(outbase).rsp
    261 TOOL_GCC3OMF_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    262 TOOL_GCC3OMF_LINK_DLL_DEPORD =
    263 define TOOL_GCC3OMF_LINK_DLL_CMDS
    264         $(QUIET)$(APPEND) -n $(outbase).rsp\
    265                 $(TOOL_GCC3OMF_LDFLAGS.dll)\
    266                 $(flags)\
    267                 -o $(out)\
    268                 $(objs)\
    269                 $(foreach p,$(libpath), -L$(p))\
    270                 $(othersrc)\
    271                 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    272                 -Zmap=$(outbase).map
    273         $(TOOL_GCC3OMF_LD) @$(outbase).rsp
     211TOOL_VAC308_LINK_DLL_OUTPUT = $(outbase).map
     212TOOL_VAC308_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     213TOOL_VAC308_LINK_DLL_DEPORD =
     214define TOOL_VAC308_LINK_DLL_CMDS
     215        $(QUIET)$(TOOL_VAC308_ENV_SETUP) \
     216        $(if $(strip $(libpath)),LIB="$(subst ; ,;,$(foreach lp,$(libpath),$(lp);))$(LIB)") \
     217                $(TOOL_VAC308_LD) /B"/DLL" $(flags) -Fe$(out) -Fm$(outbase).map $(objs) $(libs) $(othersrc)
    274218endef
    275219
     
    289233#
    290234# @param    $(outbase)  Output basename (full). Use this for list files and such.
    291 TOOL_GCC3OMF_LINK_SYSMOD_OUTPUT = $(outbase).map $(outbase).rsp
    292 TOOL_GCC3OMF_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
    293 TOOL_GCC3OMF_LINK_SYSMOD_DEPORD =
    294 define TOOL_GCC3OMF_LINK_SYSMOD_CMDS
    295         $(QUIET)$(APPEND) -n $(outbase).rsp\
    296                 $(TOOL_GCC3OMF_LDFLAGS.sysmod)\
    297                 $(flags)\
    298                 -o $(out)\
    299                 $(objs)\
    300                 $(foreach p,$(libpath), -L$(p))\
    301                 $(othersrc)\
    302                 $(foreach lib,$(libs), $(if $(findstring $(lib),$(subst /,x,$(lib))), -l$(patsubst lib%,%,$(basename $(lib))), $(lib)))\
    303                 -Zmap=$(outbase).map
    304         $(QUIET)$(TOOL_GCC3OMF_LD_SYSMOD) @$(outbase).rsp
    305 endef
    306 
     235TOOL_VAC308_LINK_SYSMOD_OUTPUT = $(outbase).map
     236TOOL_VAC308_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc)
     237TOOL_VAC308_LINK_SYSMOD_DEPORD =
     238define TOOL_VAC308_LINK_SYSMOD_CMDS
     239        $(QUIET)$(TOOL_VAC308_ENV_SETUP) \
     240        $(if $(strip $(libpath)),LIB="$(subst ; ,;,$(foreach lp,$(libpath),$(lp);))$(LIB)") \
     241                $(TOOL_VAC308_LD) $(flags) -Fe$(out)  -Fm$(outbase).map $(objs) $(libs) $(othersrc)
     242endef
     243
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette