Changeset 552 in kBuild
- Timestamp:
- Sep 24, 2006 7:37:41 AM (18 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ChangeLog
r550 r552 2 2 3 3 2006-09-23: 4 - kBuild/footer.kmk: 5 o Recursive template inheritance. 6 - kBuild/header.kmk, kBuild/footer.kmk: 7 o Removed some checks for features which are present in both gmake 3.81 and kmk. 8 Anyone trying to bootstrap kBuild will have to build gmake 3.81 first. 9 - Config.kmk, src/gmake: 10 o Allow all kinds of ways of saying Windows in BUILD_TARGET. 11 - kBuild/bin/x86.win32/: 12 o Rebuilt kmk.exe. 4 13 - kBuild/bin/x86.os2/: 14 o Added kDepPre.exe and kDepIDB.exe. 5 15 o Rebuilt kmk.exe and kmk_gmake.exe. 6 16 - src/gmake: 17 o Update KMK_FEATURES to include the optimizations from earlier this week. 7 18 o Regenerated config.h.os2 and make adjustments to make it all 8 19 build quietly on OS/2. -
trunk/Config.kmk
r533 r552 43 43 endif 44 44 45 ifeq ($(BUILD_TARGET),win32) 45 ifeq ($(filter-out x86.win32 x86.win x86.nt,$(BUILD_TARGET_ARCH).$(BUILD_TARGET)),) 46 ifndef PATH_DEV 47 $(error To build on windows you'll have to set PATH_DEV to point to somewhere kbuild can find VCC70.) 48 endif 46 49 TEMPLATE_BIN_TOOL = VCC70 47 50 TEMPLATE_BIN_DEFS = WINDOWS32 _CONSOLE WIN32 __WIN32__ … … 50 53 TEMPLATE_BIN_CFLAGS.release = -O2 51 54 TEMPLATE_BIN_CFLAGS.profile = -O2 -GH -Gh 55 #todo use path macros from the tool 52 56 TEMPLATE_BIN_INCS += \ 53 57 . \ -
trunk/kBuild/footer.kmk
r530 r552 117 117 # @param bld_trg build target. 118 118 # @param bld_trg_arch build target architecture. 119 # @remark Obsoleted by kBuild helpers in kmk. Only required for gmake compatbility. 119 120 _SOURCE_TOOL = $(strip $(firstword \ 120 121 $($(target)_$(source)_$(type)TOOL.$(bld_trg).$(bld_trg_arch)) \ … … 177 178 # 1. Source files in the output directory are translated into a gen/ subdir. 178 179 # 2. Catch anyone specifying $(PATH_SUB_CURRENT)/sourcefile.c. 180 # @remark obsoleted by kBuild helpers in kmk. Only required for gmake compatbility. 179 181 _OBJECT_BASE = $(PATH_TARGET)/$(2)/$(call no-root-slash,$(call no-drive,$(basename \ 180 182 $(patsubst $(PATH_ROOT)/%,%,$(patsubst $(PATH_SUB_CURRENT)/%,%,$(patsubst $(PATH_TARGET)/$(2)/%,gen/%,$(1))))))) … … 234 236 define def_template_extends_prop 235 237 ifndef TEMPLATE_$(template)_$(prop) 236 ifdef TEMPLATE_$(parent)_$(prop)238 ifdef TEMPLATE_$(parent)_$(prop) 237 239 TEMPLATE_$(template)_$(prop) = $$(TEMPLATE_$(parent)_$(prop)) 238 endif 239 endif 240 endef 240 endif 241 endif 242 endef 243 241 244 242 245 define def_template_extends 243 246 ifdef TEMPLATE_$(template)_EXTENDS 244 parent := $(strip $(TEMPLATE_$(template)_EXTENDS)) 245 246 $(foreach prop, $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED)\ 247 $(addsuffix .$(BUILD_TARGET), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 248 $(addsuffix .$(BUILD_TARGET).$(BUILD_TARGET_ARCH), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 249 $(addsuffix .$(BUILD_TARGET_ARCH), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 250 $(addsuffix .$(BUILD_TARGET_CPU), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 251 $(addsuffix .$(BUILD_TYPE), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 252 ,$(eval $(def_template_extends_prop))) # exploits the 2 evaluation, so no value! 247 ifndef TEMPLATE_$(template)_EXTENDS_STATUS_ 248 TEMPLATE_$(template)_EXTENDS_STATUS_ := 0 249 parent := $(strip $(TEMPLATE_$(template)_EXTENDS)) 250 251 # recursivly process the parent if it's inherting from somebody too. 252 ifdef TEMPLATE_$(parent)_EXTENDS 253 ifneq ($(TEMPLATE_$(template)_EXTENDS_STATUS_),42) 254 # foreach will create 'template' in a new variable context hiding our current variable. 255 $(foreach template, $(TEMPLATE_$(parent)_EXTENDS), $(eval $(value def_template_extends))) 256 parent := $(strip $(TEMPLATE_$(template)_EXTENDS)) 257 endif 258 endif 259 260 # inherit properties. 261 $(foreach prop, $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED)\ 262 $(addsuffix .$(BUILD_TARGET), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 263 $(addsuffix .$(BUILD_TARGET).$(BUILD_TARGET_ARCH), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 264 $(addsuffix .$(BUILD_TARGET_ARCH), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 265 $(addsuffix .$(BUILD_TARGET_CPU), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 266 $(addsuffix .$(BUILD_TYPE), $(PROPS_SINGLE) $(PROPS_ACCUMULATE) $(PROPS_DEFERRED))\ 267 ,$(eval $(def_template_extends_prop))) # exploits the 2 evaluation, so no value! 268 269 TEMPLATE_$(template)_EXTENDS_STATUS_ := 42 270 else 271 # protect against inheritance loops. 272 ifneq ($(TEMPLATE_$(template)_EXTENDS_STATUS_),42) 273 $(error kBuild: inheritance loop! template=$(template)) 274 endif 275 endif 253 276 endif 254 277 endef … … 495 518 ## wrapper the compile command dependency check. 496 519 ifndef NO_COMPILE_CMDS_DEPS 497 if def NEW_KMK520 ifneq ($(filter comp-vars,$(KMK_FEATURES)),) 498 521 _DEP_COMPILE_CMDS = $(comp-vars $(target)_$(source)_CMDS_PREV_,$(target)_$(source)_CMDS_,FORCE) 499 522 else … … 595 618 # @param bld_trg_arch Build target arch. 596 619 # @param bld_trg_cpu Build target cpu. 620 # @remark obsoleted by kBuild helpers in kmk. Only required for gmake compatbility. 597 621 # 598 622 define def_target_source_c_cpp_asm_old … … 868 892 $($(target)_$(source)_$(type)FLAGS.$(bld_trg).$(bld_trg_arch))\ 869 893 $($(target)_$(source)_$(type)FLAGS.$(bld_trg_cpu)) 894 # this isn't 100% in sync with kBuild, but it doesn't matter as it's only for gmake now. 870 895 objsuff := $(firstword \ 871 896 $($(target)_$(source)_OBJSUFF.$(bld_trg).$(bld_trg_arch))\ … … 966 991 def_target_source_c_cpp_asm_new = $(kb-src-one x) 967 992 968 if def NEW_KMK993 ifneq ($(filter kb-src-one,$(KMK_FEATURES)),) 969 994 def_target_source_c_cpp_asm_var = def_target_source_c_cpp_asm_new 970 995 else -
trunk/kBuild/header.kmk
r547 r552 163 163 # Common definitions. 164 164 # 165 ifeq ($(filter abspath,$(KMK_FEATURES)),abspath)166 167 165 PATH_CURRENT := $(abspath $(CURDIR)) 168 166 ifneq ($(strip $(SUB_DEPTH)),) … … 172 170 endif 173 171 PATH_ROOT := $(abspath $(PATH_CURRENT)/$(DEPTH)) 174 175 else176 177 PATH_CURRENT := $(CURDIR)178 PATH_SUB_CURRENT := $(PATH_CURRENT)179 ifneq ($(strip $(SUB_DEPTH)),)180 ifneq ($(SUB_DEPTH),.)181 $(foreach d,$(subst /, ,$(SUB_DEPTH)), $(eval PATH_SUB_CURRENT := $(patsubst %/,%,$(dir $(PATH_SUB_CURRENT)))) )182 endif183 endif184 PATH_ROOT := $(PATH_CURRENT)185 ifneq ($(DEPTH),.)186 $(foreach d,$(subst /, ,$(DEPTH)), $(eval PATH_ROOT := $(patsubst %/,%,$(dir $(PATH_ROOT)))) )187 endif188 189 endif190 172 191 173 # Subdirectory relative to the root. … … 220 202 PATH_KBUILD := $(PATH_ROOT)/kBuild 221 203 endif 222 ifeq ($(filter abspath,$(KMK_FEATURES)),abspath)223 204 PATH_KBUILD := $(abspath $(PATH_KBUILD)) 224 endif225 205 # kBuild files which might be of interest. 226 206 FILE_KBUILD_HEADER := $(PATH_KBUILD)/header.kmk … … 455 435 # 456 436 # @param $1 The paths to make absolute. 457 ifeq ($(filter abspath,$(KMK_FEATURES)),abspath)458 437 ABSPATH = $(abspath $(1)) 459 else460 ABSPATH = $(foreach path,$(1)\461 ,$(strip $(if $(subst <,,$(firstword $(subst /, ,<$(path)))),\462 $(if $(patsubst %:,,$(firstword $(subst :,: ,$(path)))),$(PATH_CURRENT)/$(path),$(path)),\463 $(path))))464 endif465 438 466 439 ## DIRDEP - make create directory dependencies. -
trunk/src/gmake/Makefile.kmk
r541 r552 10 10 kmk_DEPS = $(PATH_TARGET)/config.h 11 11 kmk_INCS = $(PATH_TARGET) . 12 #kmk_INCS.win32 = kmkbuiltin/w32 12 #ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 13 #kmk_INCS += kmkbuiltin/w32 14 #endif 13 15 14 16 kmk_DEFS = \ … … 56 58 kbuild.c 57 59 58 kmk_SOURCES.win32 = \ 60 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 61 kmk_SOURCES += \ 59 62 getopt.c \ 60 63 getopt1.c \ … … 67 70 w32/compat/dirent.c \ 68 71 w32/pathstuff.c 72 endif 69 73 70 74 kmk_SOURCES.freebsd = \ … … 92 96 kmkbuiltin/strlcpy.c 93 97 94 kmk_SOURCES.win32 += \ 98 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 99 kmk_SOURCES += \ 95 100 kmkbuiltin/mscfakes.c \ 96 101 kmkbuiltin/fts.c 97 102 endif 98 103 99 104 # … … 116 121 kmkbuiltin/strlcpy.c \ 117 122 kmkbuiltin/err.c 118 kmk_cp_INCS.win32 = $(PATH_TARGET) . 119 kmk_cp_DEFS.win32 = HAVE_CONFIG_H 120 kmk_cp_SOURCES.win32 = \ 123 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 124 kmk_cp_INCS += $(PATH_TARGET) . 125 kmk_cp_DEFS += HAVE_CONFIG_H 126 kmk_cp_SOURCES += \ 121 127 kmkbuiltin/mscfakes.c \ 122 128 kmkbuiltin/fts.c \ … … 124 130 getopt.c \ 125 131 getopt1.c 132 endif 126 133 127 134 kmk_echo_TEMPLATE = BIN … … 129 136 kmk_echo_SOURCES = \ 130 137 kmkbuiltin/echo.c 131 kmk_echo_SOURCES.win32 = \ 138 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 139 kmk_echo_SOURCES += \ 132 140 kmkbuiltin/mscfakes.c \ 133 141 kmkbuiltin/err.c 142 endif 134 143 135 144 kmk_install_TEMPLATE = BIN … … 140 149 kmkbuiltin/strmode.c \ 141 150 kmkbuiltin/setmode.c 142 kmk_install_INCS.win32 = $(PATH_TARGET) . 143 kmk_install_DEFS.win32 = HAVE_CONFIG_H 144 kmk_install_SOURCES.win32 = \ 145 kmkbuiltin/mscfakes.c \ 146 getopt.c \ 147 getopt1.c 151 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 152 kmk_install_INCS += $(PATH_TARGET) . 153 kmk_install_DEFS += HAVE_CONFIG_H 154 kmk_install_SOURCES += \ 155 kmkbuiltin/mscfakes.c \ 156 getopt.c \ 157 getopt1.c 158 endif 148 159 149 160 kmk_ln_TEMPLATE = BIN … … 152 163 kmkbuiltin/ln.c \ 153 164 kmkbuiltin/err.c 154 kmk_ln_INCS.win32 = $(PATH_TARGET) . 155 kmk_ln_DEFS.win32 = HAVE_CONFIG_H 156 kmk_ln_SOURCES.win32 = \ 165 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 166 kmk_ln_INCS += $(PATH_TARGET) . 167 kmk_ln_DEFS += HAVE_CONFIG_H 168 kmk_ln_SOURCES += \ 157 169 kmkbuiltin/mscfakes.c\ 158 170 getopt.c \ 159 171 getopt1.c 172 endif 160 173 161 174 kmk_mkdir_TEMPLATE = BIN … … 165 178 kmkbuiltin/err.c \ 166 179 kmkbuiltin/setmode.c 167 kmk_mkdir_INCS.win32 = $(PATH_TARGET) . 168 kmk_mkdir_DEFS.win32 = HAVE_CONFIG_H 169 kmk_mkdir_SOURCES.win32 = \ 170 kmkbuiltin/mscfakes.c \ 171 getopt.c \ 172 getopt1.c 180 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 181 kmk_mkdir_INCS += $(PATH_TARGET) . 182 kmk_mkdir_DEFS += HAVE_CONFIG_H 183 kmk_mkdir_SOURCES += \ 184 kmkbuiltin/mscfakes.c \ 185 getopt.c \ 186 getopt1.c 187 endif 173 188 174 189 kmk_rm_TEMPLATE = BIN … … 178 193 kmkbuiltin/err.c \ 179 194 kmkbuiltin/strmode.c 180 kmk_rm_INCS.win32 = $(PATH_TARGET) . 181 kmk_rm_DEFS.win32 = HAVE_CONFIG_H 182 kmk_rm_SOURCES.win32 = \ 195 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 196 kmk_rm_INCS += $(PATH_TARGET) . 197 kmk_rm_DEFS += HAVE_CONFIG_H 198 kmk_rm_SOURCES += \ 183 199 kmkbuiltin/mscfakes.c\ 184 200 getopt.c \ 185 201 getopt1.c 202 endif 186 203 187 204 … … 223 240 remote-stub.c 224 241 225 kmk_gmake_SOURCES.win32 = \ 242 ifeq ($(filter-out win32 win64 win nt,$(BUILD_TARGET)),) 243 kmk_gmake_SOURCES += \ 226 244 getopt.c \ 227 245 getopt1.c \ … … 234 252 w32/compat/dirent.c \ 235 253 w32/pathstuff.c 254 endif 236 255 237 256 kmk_gmake_SOURCES.freebsd = \ -
trunk/src/gmake/variable.c
r534 r552 988 988 989 989 /* Define KMK_FEATURES to indicate various working KMK features. */ 990 (void) define_variable ("KMK_FEATURES", 12, "abspath toupper tolower", o_default, 0); 991 #endif 990 # if defined(CONFIG_WITH_TOUPPER_TOLOWER) \ 991 && defined(CONFIG_WITH_VALUE_LENGTH) && defined(CONFIG_WITH_COMPARE) \ 992 && defined(KMK_HELPERS) 993 (void) define_variable ("KMK_FEATURES", 12, 994 "abspath" 995 " toupper tolower" 996 " comp-vars" 997 " kb-src-tool kb-obj-base kb-obj-suff kb-src-prop kb-src-one" 998 , o_default, 0); 999 # else /* MSC can't deal with strings mixed with #if/#endif, thus the slow way. */ 1000 strcpy(buf, "abspath"); 1001 # if defined(CONFIG_WITH_TOUPPER_TOLOWER) 1002 strcat(buf, " toupper tolower"); 1003 # endif 1004 # if defined(CONFIG_WITH_VALUE_LENGTH) && defined(CONFIG_WITH_COMPARE) 1005 strcat(buf, " comp-vars"); 1006 # endif 1007 # ifdef KMK_HELPERS 1008 strcat(buf, " kb-src-tool kb-obj-base kb-obj-suff kb-src-prop kb-src-one"); 1009 # endif 1010 (void) define_variable ("KMK_FEATURES", 12, buf, o_default, 0); 1011 # endif 1012 #endif /* KMK */ 992 1013 993 1014 #ifdef CONFIG_WITH_KMK_BUILTIN
Note:
See TracChangeset
for help on using the changeset viewer.