Changeset 1097 in kBuild
- Timestamp:
- Sep 16, 2007 4:55:55 PM (18 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/kBuild/tools/VAC308.kmk
r1095 r1097 2 2 ## @file 3 3 # 4 # kBuild Tool Config - GCC v3 targeting OS/2 OMF.4 # kBuild Tool Config - VisualAge for C++ v3.08. 5 5 # 6 6 # Copyright (c) 2004-2007 knut st. osmundsen <[email protected]> … … 25 25 # 26 26 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 27 TOOL_VAC308 := VisualAge for C++ v3.08 28 29 TOOL_VAC308_ENV_SETUP ?= 30 31 # Determin VAC308 location. 32 ifndef 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. 39 41 else 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) 41 44 endif 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 45 ifneq ($(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 56 else 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 49 64 endif 50 65 66 # More tool specific properties. 67 # Note: implib isn't really a part of VAC308. 68 TOOL_VAC308_IMP ?= implib$(HOSTSUFF_EXE) 69 TOOL_VAC308_IMPFLAGS ?= /nologo /noignorecase 70 51 71 # 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 72 TOOL_VAC308_COBJSUFF ?= .obj 73 TOOL_VAC308_CFLAGS ?= -Q+ 74 TOOL_VAC308_CFLAGS.debug ?= -Ti+ 75 TOOL_VAC308_CFLAGS.release ?= -O 76 TOOL_VAC308_CINCS ?= 77 TOOL_VAC308_CDEFS ?= 78 79 TOOL_VAC308_CXXOBJSUFF ?= .obj 80 TOOL_VAC308_CXXFLAGS ?= -Q+ 81 TOOL_VAC308_CXXFLAGS.debug ?= -Ti 82 TOOL_VAC308_CXXFLAGS.release ?= -O 83 TOOL_VAC308_CXXINCS ?= 84 TOOL_VAC308_CXXDEFS ?= 85 86 TOOL_VAC308_ARFLAGS ?= /nologo /noignorecase 87 TOOL_VAC308_ARLIBSUFF ?= .lib 88 89 TOOL_VAC308_LDFLAGS ?= -Q+ 90 TOOL_VAC308_LDFLAGS.debug ?= -Ti+ 91 80 92 81 93 … … 93 105 # @param $(outbase) Output basename (full). Use this for list files and such. 94 106 # @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)\ 107 TOOL_VAC308_COMPILE_C_DEPEND = 108 TOOL_VAC308_COMPILE_C_DEPORD = 109 TOOL_VAC308_COMPILE_C_OUTPUT = 110 define 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)\ 120 114 $(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) - 119 endef 123 120 124 121 … … 136 133 # @param $(outbase) Output basename (full). Use this for list files and such. 137 134 # @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)\ 135 TOOL_VAC308_COMPILE_CXX_DEPEND = 136 TOOL_VAC308_COMPILE_CXX_DEPORD = 137 TOOL_VAC308_COMPILE_CXX_OUTPUT = 138 define 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)\ 163 142 $(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) - 190 147 endef 191 148 … … 201 158 # 202 159 # @param $(outbase) Output basename (full). Use this for list files and such. 203 TOOL_ GCC3OMF_LINK_LIBRARY_OUTPUT = $(outbase).rsp204 TOOL_ GCC3OMF_LINK_LIBRARY_DEPEND = $(othersrc)205 TOOL_ GCC3OMF_LINK_LIBRARY_DEPORD =206 define TOOL_ GCC3OMF_LINK_LIBRARY_CMDS207 $(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).rsp160 TOOL_VAC308_LINK_LIBRARY_OUTPUT = $(outbase).rsp 161 TOOL_VAC308_LINK_LIBRARY_DEPEND = $(othersrc) 162 TOOL_VAC308_LINK_LIBRARY_DEPORD = 163 define 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)") ";" ) 213 170 endef 214 171 … … 228 185 # 229 186 # @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 187 TOOL_VAC308_LINK_PROGRAM_OUTPUT = $(outbase).map 188 TOOL_VAC308_LINK_PROGRAM_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 189 TOOL_VAC308_LINK_PROGRAM_DEPORD = 190 define 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) 243 194 endef 244 195 … … 258 209 # 259 210 # @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 211 TOOL_VAC308_LINK_DLL_OUTPUT = $(outbase).map 212 TOOL_VAC308_LINK_DLL_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 213 TOOL_VAC308_LINK_DLL_DEPORD = 214 define 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) 274 218 endef 275 219 … … 289 233 # 290 234 # @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 235 TOOL_VAC308_LINK_SYSMOD_OUTPUT = $(outbase).map 236 TOOL_VAC308_LINK_SYSMOD_DEPEND = $(foreach lib,$(libs),$(if $(findstring $(lib),$(subst /,x,$(lib))),, $(lib))) $(othersrc) 237 TOOL_VAC308_LINK_SYSMOD_DEPORD = 238 define 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) 242 endef 243
Note:
See TracChangeset
for help on using the changeset viewer.