1# 2# Generic Install rules 3# 4 5ifndef INSTALL_MI_LCL_LIST 6 INSTALL_MI_LCL_LIST = $(INSTALL_MI_LIST) 7endif 8 9ifndef INSTALL_MI_LCL_GEN_LIST 10 INSTALL_MI_LCL_GEN_LIST = $(INSTALL_MI_GEN_LIST) 11endif 12 13ifndef INSTALL_MD_LCL_LIST 14 INSTALL_MD_LCL_LIST = $(INSTALL_MD_LIST) 15endif 16 17ifndef INSTALL_MD_LCL_GEN_LIST 18 INSTALL_MD_LCL_GEN_LIST = $(INSTALL_MD_GEN_LIST) 19endif 20 21ifndef INSTALL_KF_MI_LCL_LIST 22 INSTALL_KF_MI_LCL_LIST = $(EXPORT_MI_LIST) 23endif 24 25ifndef INSTALL_KF_MI_LCL_GEN_LIST 26 INSTALL_KF_MI_LCL_GEN_LIST = $(EXPORT_MI_GEN_LIST) 27endif 28 29ifndef INSTALL_KF_MD_LCL_LIST 30 INSTALL_KF_MD_LCL_LIST = $(EXPORT_MD_LIST) 31endif 32 33ifndef INSTALL_KF_MD_LCL_GEN_LIST 34 INSTALL_KF_MD_LCL_GEN_LIST = $(EXPORT_MD_GEN_LIST) 35endif 36 37ifndef INSTALL_KF_MI_LIST 38 INSTALL_KF_MI_LIST = $(EXPORT_MI_LIST) 39endif 40 41ifndef INSTALL_KF_MI_GEN_LIST 42 INSTALL_KF_MI_GEN_LIST = $(EXPORT_MI_GEN_LIST) 43endif 44 45ifndef INSTALL_KF_MD_LIST 46 INSTALL_KF_MD_LIST = $(EXPORT_MD_LIST) 47endif 48 49ifndef INSTALL_KF_MD_GEN_LIST 50 INSTALL_KF_MD_GEN_LIST = $(EXPORT_MD_GEN_LIST) 51endif 52 53ifneq ($(MACHINE_CONFIG), DEFAULT) 54 export OBJPATH = $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)_$(MACHINE_CONFIG) 55else 56 export OBJPATH = $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG) 57endif 58 59INSTALL_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_GEN_LIST)) 60 61$(INSTALL_MI_GEN_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR)/% : % 62 @true echo Installing $< in $(dir $@) 63 $(_v)[ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \ 64 filename=`$(BASENAME) $<`; \ 65 filename_strip=$(addsuffix .strip,$${filename}); \ 66 $(RM) $(RMFLAGS) $@; \ 67 [ -d ./incmidir ] || $(MKDIR) ./incmidir; \ 68 echo garbage > ./incmidir/$${filename_strip}; \ 69 $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ 70 $< > ./incmidir/$${filename} || \ 71 $(DECOMMENT) ./incmidir/$${filename} r > \ 72 ./incmidir/$${filename_strip}; \ 73 if [ -s ./incmidir/$${filename_strip} ]; \ 74 then ( \ 75 $(INSTALL) $(INSTALL_FLAGS) ./incmidir/$${filename} $(dir $@);\ 76 ); \ 77 else \ 78 echo Header file $< not exported; \ 79 fi; 80 81INSTALL_KF_MI_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_GEN_LIST)) 82 83$(INSTALL_KF_MI_GEN_FILES): $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR)/% : % 84 @true echo Installing $< in $(midir $@) 85 $(_v)[ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR); \ 86 filename=`$(BASENAME) $<`; \ 87 filename_strip=$(addsuffix .strip,$${filename}); \ 88 $(RM) $(RMFLAGS) $@; \ 89 [ -d ./kincmidir ] || $(MKDIR) ./kincmidir; \ 90 echo garbage > ./kincmidir/$${filename_strip}; \ 91 $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ 92 $< > ./kincmidir/$${filename} || \ 93 $(DECOMMENT) ./kincmidir/$${filename} r > \ 94 ./kincmidir/$${filename_strip}; \ 95 if [ -s ./kincmidir/$${filename_strip} ]; \ 96 then ( \ 97 $(INSTALL) $(INSTALL_FLAGS) ./kincmidir/$${filename} $(dir $@);\ 98 ); \ 99 else \ 100 echo Header file $< not exported; \ 101 fi; 102 103INSTALL_MI_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/, $(INSTALL_MI_LCL_GEN_LIST)) 104 105$(INSTALL_MI_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR)/% : % 106 @true echo Installing $< in $(dir $@) 107 $(_v)[ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \ 108 filename=`$(BASENAME) $<`; \ 109 filename_strip=$(addsuffix .strip,$${filename}); \ 110 $(RM) $(RMFLAGS) $@; \ 111 [ -d ./pincmidir ] || $(MKDIR) ./pincmidir; \ 112 echo garbage > ./pincmidir/$${filename_strip}; \ 113 $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ 114 $< > ./pincmidir/$${filename} || \ 115 $(DECOMMENT) ./pincmidir/$${filename} r > \ 116 ./pincmidir/$${filename_strip}; \ 117 if [ -s ./pincmidir/$${filename_strip} ]; \ 118 then ( \ 119 $(INSTALL) $(INSTALL_FLAGS) ./pincmidir/$${filename} $(dir $@);\ 120 ); \ 121 else \ 122 echo Header file $< not exported; \ 123 fi; 124 125INSTALL_KF_MI_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/, $(INSTALL_KF_MI_LCL_GEN_LIST)) 126 127$(INSTALL_KF_MI_LCL_GEN_FILES): $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR)/% : % 128 @true echo Installing $< in $(dir $@) 129 $(_v)[ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR); \ 130 filename=`$(BASENAME) $<`; \ 131 filename_strip=$(addsuffix .strip,$${filename}); \ 132 $(RM) $(RMFLAGS) $@; \ 133 [ -d ./kpincmidir ] || $(MKDIR) ./kpincmidir; \ 134 echo garbage > ./kpincmidir/$${filename_strip}; \ 135 $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ 136 $< > ./kpincmidir/$${filename} || \ 137 $(DECOMMENT) ./kpincmidir/$${filename} r > \ 138 ./kpincmidir/$${filename_strip}; \ 139 if [ -s ./kpincmidir/$${filename_strip} ]; \ 140 then ( \ 141 $(INSTALL) $(INSTALL_FLAGS) ./kpincmidir/$${filename} $(dir $@);\ 142 ); \ 143 else \ 144 echo Header file $< not exported; \ 145 fi; 146 147INSTALL_MD_GEN_INC_FILES = $(addprefix $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_GEN_LIST)) 148 149$(INSTALL_MD_GEN_INC_FILES): $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR)/% : % 150 @true echo Installing $< in $(dir $@) 151 $(_v)[ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \ 152 filename=`$(BASENAME) $<`; \ 153 filename_strip=$(addsuffix .strip,$${filename}); \ 154 $(RM) $(RMFLAGS) $@; \ 155 [ -d ./incdir ] || $(MKDIR) ./incdir; \ 156 echo garbage > ./incdir/$${filename_strip}; \ 157 $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ 158 $< > ./incdir/$${filename} || \ 159 $(DECOMMENT) ./incdir/$${filename} r > \ 160 ./incdir/$${filename_strip}; \ 161 if [ -s ./incdir/$${filename_strip} ]; \ 162 then ( \ 163 $(INSTALL) $(INSTALL_FLAGS) ./incdir/$${filename} $(dir $@);\ 164 ); \ 165 else \ 166 echo Header file $< not exported; \ 167 fi; 168 169INSTALL_KF_MD_GEN_FILES = $(addprefix $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_GEN_LIST)) 170 171$(INSTALL_KF_MD_GEN_FILES): $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR)/% : % 172 @true echo Installing $< in $(dir $@) 173 $(_v)[ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR); \ 174 filename=`$(BASENAME) $<`; \ 175 filename_strip=$(addsuffix .strip,$${filename}); \ 176 $(RM) $(RMFLAGS) $@; \ 177 [ -d ./kincdir ] || $(MKDIR) ./kincdir; \ 178 echo garbage > ./kincdir/$${filename_strip}; \ 179 $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ 180 $< > ./kincdir/$${filename} || \ 181 $(DECOMMENT) ./kincdir/$${filename} r > \ 182 ./kincdir/$${filename_strip}; \ 183 if [ -s ./kincdir/$${filename_strip} ]; \ 184 then ( \ 185 $(INSTALL) $(INSTALL_FLAGS) ./kincdir/$${filename} $(dir $@);\ 186 ); \ 187 else \ 188 echo Header file $< not exported; \ 189 fi; 190 191INSTALL_MD_LCL_FILES = $(addprefix $(SOURCE), $(INSTALL_MD_LCL_LIST)) 192INSTALL_MD_GEN_LCL_FILES = $(addprefix $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/, $(INSTALL_MD_LCL_GEN_LIST)) 193 194$(INSTALL_MD_GEN_LCL_FILES): $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR)/% : % 195 @true echo Installing $< in $(dir $@) 196 $(_v)[ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \ 197 filename=`$(BASENAME) $<`; \ 198 filename_strip=$(addsuffix .strip,$${filename}); \ 199 $(RM) $(RMFLAGS) $@; \ 200 [ -d ./pincdir ] || $(MKDIR) ./pincdir; \ 201 echo garbage > ./pincdir/$${filename_strip}; \ 202 $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ 203 $< > ./pincdir/$${filename} || \ 204 $(DECOMMENT) ./pincdir/$${filename} r > \ 205 ./pincdir/$${filename_strip}; \ 206 if [ -s ./pincdir/$${filename_strip} ]; \ 207 then ( \ 208 $(INSTALL) $(INSTALL_FLAGS) ./pincdir/$${filename} $(dir $@);\ 209 ); \ 210 else \ 211 echo Header file $< not exported; \ 212 fi; 213 214INSTALL_KF_MD_LCL_FILES = $(addprefix $(SOURCE), $(INSTALL_KF_MD_LCL_LIST)) 215INSTALL_KF_MD_LCL_GEN_FILES = $(addprefix $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/, $(INSTALL_KF_MD_LCL_GEN_LIST)) 216 217$(INSTALL_KF_MD_LCL_GEN_FILES): $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR)/% : % 218 @true echo Installing $< in $(dir $@) 219 $(_v)[ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR); \ 220 filename=`$(BASENAME) $<`; \ 221 filename_strip=$(addsuffix .strip,$${filename}); \ 222 $(RM) $(RMFLAGS) $@; \ 223 [ -d ./kpincdir ] || $(MKDIR) ./kpincdir; \ 224 echo garbage > ./kpincdir/$${filename_strip}; \ 225 $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ 226 $< > ./kpincdir/$${filename} || \ 227 $(DECOMMENT) ./kpincdir/$${filename} r > \ 228 ./kpincdir/$${filename_strip}; \ 229 if [ -s ./kpincdir/$${filename_strip} ]; \ 230 then ( \ 231 $(INSTALL) $(INSTALL_FLAGS) ./kpincdir/$${filename} $(dir $@);\ 232 ); \ 233 else \ 234 echo Header file $< not exported; \ 235 fi; 236 237setup_installhdrs_mi: 238 239do_installhdrs_mi: $(INSTALL_MI_GEN_FILES) $(INSTALL_MI_GEN_LCL_FILES) $(INSTALL_KF_MI_GEN_FILES) $(INSTALL_KF_MI_LCL_GEN_FILES) 240 @true echo "[ $(SOURCE) ] make do_installhdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 241 $(_v)$(MKDIR) ./incmidir ./pincmidir ./kincmidir ./kpincmidir; \ 242 if [ -n "$(strip $(INSTALL_MI_LIST))" ]; then \ 243 if [ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR) ]; then \ 244 (cd $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_MI_LIST) ); \ 245 else \ 246 $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \ 247 fi; \ 248 for j in $(INSTALL_MI_LIST); \ 249 do \ 250 echo garbage > ./incmidir/$$j.strip; \ 251 $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ 252 $(SOURCE)/$$j > ./incmidir/$$j || \ 253 $(DECOMMENT) ./incmidir/$$j r > \ 254 ./incmidir/$$j.strip; \ 255 if [ -s ./incmidir/$$j.strip ]; \ 256 then ( \ 257 $(INSTALL) $(INSTALL_FLAGS) ./incmidir/$$j $(DSTROOT)/$(INCDIR)/$(INSTALL_MI_DIR); \ 258 ); \ 259 else \ 260 echo Header file $$j not exported; \ 261 fi; \ 262 done; \ 263 fi; \ 264 if [ -n "$(strip $(INSTALL_MI_LCL_LIST))" ]; then \ 265 if [ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR) ]; then \ 266 (cd $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_MI_LCL_LIST) ); \ 267 else \ 268 $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \ 269 fi; \ 270 for j in $(INSTALL_MI_LCL_LIST); \ 271 do \ 272 echo garbage > ./pincmidir/$$j.strip; \ 273 $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ 274 $(SOURCE)/$$j > ./pincmidir/$$j || \ 275 $(DECOMMENT) ./pincmidir/$$j r > \ 276 ./pincmidir/$$j.strip; \ 277 if [ -s ./pincmidir/$$j.strip ]; \ 278 then ( \ 279 $(INSTALL) $(INSTALL_FLAGS) ./pincmidir/$$j $(DSTROOT)/$(LCLDIR)/$(INSTALL_MI_DIR); \ 280 ); \ 281 else \ 282 echo Header file $$j not exported; \ 283 fi; \ 284 done; \ 285 fi; \ 286 if [ -n "$(strip $(INSTALL_KF_MI_LIST))" ]; then \ 287 if [ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR) ]; then \ 288 (cd $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MI_LIST) ); \ 289 else \ 290 $(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR); \ 291 fi; \ 292 for j in $(INSTALL_KF_MI_LIST); \ 293 do \ 294 echo garbage > ./kincmidir/$$j.strip; \ 295 $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ 296 $(SOURCE)/$$j > ./kincmidir/$$j || \ 297 $(DECOMMENT) ./kincmidir/$$j r > \ 298 ./kincmidir/$$j.strip; \ 299 if [ -s ./kincmidir/$$j.strip ]; \ 300 then ( \ 301 $(INSTALL) $(INSTALL_FLAGS) ./kincmidir/$$j $(DSTROOT)/$(KINCDIR)/$(EXPORT_MI_DIR); \ 302 ); \ 303 else \ 304 echo Header file $$j not exported; \ 305 fi; \ 306 done; \ 307 fi; \ 308 if [ -n "$(strip $(INSTALL_KF_MI_LCL_LIST))" ]; then \ 309 if [ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR) ]; then \ 310 (cd $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MI_LCL_LIST) ); \ 311 else \ 312 $(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR); \ 313 fi; \ 314 for j in $(INSTALL_KF_MI_LCL_LIST); \ 315 do \ 316 echo garbage > ./kpincmidir/$$j.strip; \ 317 $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ 318 $(SOURCE)/$$j > ./kpincmidir/$$j || \ 319 $(DECOMMENT) ./kpincmidir/$$j r > \ 320 ./kpincmidir/$$j.strip; \ 321 if [ -s ./kpincmidir/$$j.strip ]; \ 322 then ( \ 323 $(INSTALL) $(INSTALL_FLAGS) ./kpincmidir/$$j $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MI_DIR); \ 324 ); \ 325 else \ 326 echo Header file $$j not exported; \ 327 fi; \ 328 done; \ 329 fi; \ 330 $(RM) -rf ./incmidir ./pincmidir ./kincmidir ./kpincmidir; 331 332setup_installhdrs_md: 333 334do_installhdrs_md: $(INSTALL_MD_GEN_INC_FILES) $(INSTALL_MD_GEN_LCL_FILES) $(INSTALL_KF_MD_GEN_FILES) $(INSTALL_KF_MD_LCL_GEN_FILES) 335 @true echo "[ $(SOURCE) ] make do_installhdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 336 $(_v)$(MKDIR) ./incdir ./pincdir ./kincdir ./kpincdir; \ 337 if [ -n "$(strip $(INSTALL_MD_LIST))" ]; then \ 338 if [ -d $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR) ]; then \ 339 (cd $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_MD_LIST) ); \ 340 else \ 341 $(MKDIR) $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \ 342 fi; \ 343 for j in $(INSTALL_MD_LIST); \ 344 do \ 345 echo garbage > ./incdir/$$j.strip; \ 346 $(UNIFDEF) $(SINCFRAME_UNIFDEF) \ 347 $(SOURCE)/$$j > ./incdir/$$j || \ 348 $(DECOMMENT) ./incdir/$$j r > \ 349 ./incdir/$$j.strip; \ 350 if [ -s ./incdir/$$j.strip ]; \ 351 then ( \ 352 $(INSTALL) $(INSTALL_FLAGS) ./incdir/$$j $(DSTROOT)/$(INCDIR)/$(INSTALL_MD_DIR); \ 353 ); \ 354 else \ 355 echo Header file $$j not exported; \ 356 fi; \ 357 done; \ 358 fi; \ 359 if [ -n "$(strip $(INSTALL_MD_LCL_LIST))" ]; then \ 360 if [ -d $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR) ]; then \ 361 (cd $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_MD_LCL_LIST) ); \ 362 else \ 363 $(MKDIR) $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \ 364 fi; \ 365 for j in $(INSTALL_MD_LCL_LIST); \ 366 do \ 367 echo garbage > ./pincdir/$$j.strip; \ 368 $(UNIFDEF) $(SPINCFRAME_UNIFDEF) \ 369 $(SOURCE)/$$j > ./pincdir/$$j || \ 370 $(DECOMMENT) ./pincdir/$$j r > \ 371 ./pincdir/$$j.strip; \ 372 if [ -s ./pincdir/$$j.strip ]; \ 373 then ( \ 374 $(INSTALL) $(INSTALL_FLAGS) ./pincdir/$$j $(DSTROOT)/$(LCLDIR)/$(INSTALL_MD_DIR); \ 375 ); \ 376 else \ 377 echo Header file $$j not exported; \ 378 fi; \ 379 done; \ 380 fi; \ 381 if [ -n "$(strip $(INSTALL_KF_MD_LIST))" ]; then \ 382 if [ -d $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR) ]; then \ 383 (cd $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MD_LIST) ); \ 384 else \ 385 $(MKDIR) $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR); \ 386 fi; \ 387 for j in $(INSTALL_KF_MD_LIST); \ 388 do \ 389 echo garbage > ./kincdir/$$j.strip; \ 390 $(UNIFDEF) $(KINCFRAME_UNIFDEF) \ 391 $(SOURCE)/$$j > ./kincdir/$$j || \ 392 $(DECOMMENT) ./kincdir/$$j r > \ 393 ./kincdir/$$j.strip; \ 394 if [ -s ./kincdir/$$j.strip ]; \ 395 then ( \ 396 $(INSTALL) $(INSTALL_FLAGS) ./kincdir/$$j $(DSTROOT)/$(KINCDIR)/$(EXPORT_MD_DIR); \ 397 ); \ 398 else \ 399 echo Header file $$j not exported; \ 400 fi; \ 401 done; \ 402 fi; \ 403 if [ -n "$(strip $(INSTALL_KF_MD_LCL_LIST))" ]; then \ 404 if [ -d $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR) ]; then \ 405 (cd $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(INSTALL_KF_MD_LCL_LIST) ); \ 406 else \ 407 $(MKDIR) $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR); \ 408 fi; \ 409 for j in $(INSTALL_KF_MD_LCL_LIST); \ 410 do \ 411 echo garbage > ./kpincdir/$$j.strip; \ 412 $(UNIFDEF) $(KPINCFRAME_UNIFDEF) \ 413 $(SOURCE)/$$j > ./kpincdir/$$j || \ 414 $(DECOMMENT) ./kpincdir/$$j r > \ 415 ./kpincdir/$$j.strip; \ 416 if [ -s ./kpincdir/$$j.strip ]; \ 417 then ( \ 418 $(INSTALL) $(INSTALL_FLAGS) ./kpincdir/$$j $(DSTROOT)/$(KPINCDIR)/$(EXPORT_MD_DIR); \ 419 ); \ 420 else \ 421 echo Header file $$j not exported; \ 422 fi; \ 423 done; \ 424 fi; \ 425 $(RM) -rf ./incdir ./pincdir ./kincdir ./kpincdir; 426 427 428# 429# Generic Export rules 430# 431ifeq ($(INCR_EXPORTHDRS), TRUE) 432 433EXPORT_MI_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_LIST)) 434EXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST)) 435 436$(EXPORT_MI_INC_FILES) $(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : % 437 @true echo Exporting $< in $(dir $@) 438 $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ 439 ${CP} -p $< $(dir $@); \ 440 441 442EXPORT_MD_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_LIST)) 443EXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST)) 444 445$(EXPORT_MD_INC_FILES) $(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : % 446 @true echo Exporting $< in $(dir $@) 447 $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ 448 ${CP} -p $< $(dir $@); \ 449 450setup_exporthdrs_mi: 451 452do_exporthdrs_mi: $(EXPORT_MI_INC_FILES) $(EXPORT_MI_GEN_INC_FILES) 453 @true echo "[ $(SOURCE) ] make do_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 454 455setup_exporthdrs_md: 456 457do_exporthdrs_md: $(EXPORT_MD_INC_FILES) $(EXPORT_MD_GEN_INC_FILES) 458 @true echo "[ $(SOURCE) ] make do_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 459 460else 461 462EXPORT_MI_INC_FILES = $(addprefix $(SOURCE), $(EXPORT_MI_LIST)) 463EXPORT_MI_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/, $(EXPORT_MI_GEN_LIST)) 464 465$(EXPORT_MI_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR)/% : % 466 @true echo Exporting $< in $(dir $@) 467 $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ 468 ${CP} -p $< $(dir $@); \ 469 470 471EXPORT_MD_INC_FILES = $(addprefix $(SOURCE), $(EXPORT_MD_LIST)) 472EXPORT_MD_GEN_INC_FILES = $(addprefix $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/, $(EXPORT_MD_GEN_LIST)) 473 474$(EXPORT_MD_GEN_INC_FILES): $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR)/% : % 475 @true echo Exporting $< in $(dir $@) 476 $(_v)[ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ] ||$(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ 477 ${CP} -p $< $(dir $@); \ 478 479setup_exporthdrs_mi: 480 481do_exporthdrs_mi: $(EXPORT_MI_GEN_INC_FILES) 482 @true echo "[ $(SOURCE) ] make do_exporthdrs_mi $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 483 $(_v)if [ -n "$(strip $(EXPORT_MI_LIST))" ]; then \ 484 if [ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR) ]; then \ 485 (cd $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR);$(RM) $(RMFLAGS) $(EXPORT_MI_LIST) ); \ 486 else \ 487 $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ 488 fi; \ 489 ${CP} -p $(EXPORT_MI_INC_FILES) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MI_DIR); \ 490 fi 491 492setup_exporthdrs_md: 493 494do_exporthdrs_md: $(EXPORT_MD_GEN_INC_FILES) 495 @true echo "[ $(SOURCE) ] make do_exporthdrs_md $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 496 $(_v)if [ -n "$(strip $(EXPORT_MD_LIST))" ]; then \ 497 if [ -d $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR) ]; then \ 498 (cd $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR);$(RM) $(RMFLAGS) $(EXPORT_MD_LIST) ); \ 499 else \ 500 $(MKDIR) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ 501 fi; \ 502 ${CP} -p $(EXPORT_MD_INC_FILES) $(OBJROOT)/$(EXPDIR)/$(EXPORT_MD_DIR); \ 503 fi 504 505 506# 507endif 508# 509# Generic Compilation rules 510# 511 512# 513# Compilation rules to generate .o from .s 514# 515 516S_RULE_1A=$(_v)${S_KCC} -c ${SFLAGS} -MD -DASSEMBLER ${$@_SFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS} 517S_RULE_1B=$*.s 518S_RULE_2=@echo AS $@ 519S_RULE_3= 520 521# 522# Compilation rules to generate .o from .c for normal files 523# 524C_RULE_1A=$(_v)${KCC} -c ${filter-out ${$@_CFLAGS_RM}, ${CFLAGS} ${CWARNFLAGS}} -MD ${$@_CFLAGS_ADD} ${$@_CWARNFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS} 525C_RULE_1B=$*.c 526C_RULE_2=@echo CC $@ 527ifeq ($(BUILD_MACHO_OBJ),0) 528C_RULE_3= 529else ifeq ($(BUILD_STABS),1) 530C_RULE_3= 531else ifeq ($(BUILD_DWARF),1) 532C_RULE_3=$(_v)${CTFCONVERT} -l xnu -v -o $@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $@.ctf || true; 533else 534C_RULE_3= 535endif 536C_RULE_4= 537 538UNAME := $(shell uname) 539ifeq ($(UNAME), Linux) 540C_RULE_3= 541endif 542 543ifeq ($(ARCH_CONFIG),ARM) 544ifeq ($(KERNEL_CONFIG),RELEASE) 545C_RULE_3= 546endif 547endif 548 549# 550# Compilation rules to generate .o from .c for driver files 551# 552C_RULE_1A_D=${C_RULE_1A} 553C_RULE_1B_D=${C_RULE_1B} 554C_RULE_2_D=${C_RULE_2} 555C_RULE_3_D=${C_RULE_3} 556C_RULE_4_D=${C_RULE_4} 557 558# 559# Compilation rules to generate .co from .cp or .cpo from .cpp 560# The config tool slickly changes the last source filename char to 'o' 561# for the object filename. 562P_RULE_1A=$(_v)${KC++} -o $@ -c ${CXXFLAGS} ${filter-out ${$@_CFLAGS_RM}, ${CFLAGS} ${CXXWARNFLAGS}} -MD ${$@_CFLAGS_ADD} ${$@_CXXWARNFLAGS_ADD} ${INCFLAGS} ${$@_INCFLAGS} 563P_RULE_1B=$(<F) 564P_RULE_2=$(_v)sed 's/.c.o: /.cpo: /' $(@:.cpo=.d) > $(@:.cpo=.d~) && mv $(@:.cpo=.d~) $(@:.cpo=.d) 565P_RULE_3=@echo C++ $@ 566ifeq ($(BUILD_MACHO_OBJ),0) 567P_RULE_4= 568else ifeq ($(BUILD_STABS),1) 569P_RULE_4= 570else ifeq ($(BUILD_DWARF),1) 571P_RULE_4=$(_v)${CTFCONVERT} -l xnu -v -o $@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $@.ctf || true; 572else 573P_RULE_4= 574endif 575 576UNAME := $(shell uname) 577ifeq ($(UNAME), Linux) 578P_RULE_4= 579endif 580 581 582ifeq ($(ARCH_CONFIG),ARM) 583ifeq ($(KERNEL_CONFIG),RELEASE) 584P_RULE_4= 585endif 586endif 587 588setup_build_all: 589 590do_build_all: $(COMP_FILES) $(COMP_COBJ_FILES) $(COMP_SOBJ_FILES) $(COMPONENT_IMAGE_FILE) 591 592# 593# mach_kernel building rules 594# 595ifeq ($(COMPONENT), .) 596do_build_all: do_build_mach_kernel 597 598STATIC_KMODS = $(SRCROOT)/kmods.a 599 600do_build_mach_kernel: $(TARGET)/kgmacros $(TARGET)/mach_kernel 601 602$(TARGET)/mach_kernel: $(addprefix $(TARGET)/,$(foreach component,$(COMPONENT_LIST), $(addprefix $(component)/$(firstword $($(addsuffix _KERNEL_CONFIG, $(shell printf $(component) | tr a-z A-Z))) $(KERNEL_CONFIG))/, $(addsuffix .filelist, $(component))))) lastkernelconstructor.o 603 $(_v)${MAKE} version.o 604 $(_v)${MAKE} build_mach_kernel_exports 605 @echo LD mach_kernel.sys 606 $(_v)$(CAT) $(addprefix $(TARGET)/,$(foreach component,$(COMPONENT_LIST), $(addprefix $(component)/$(firstword $($(addsuffix _KERNEL_CONFIG, $(shell printf $(component) | tr a-z A-Z))) $(KERNEL_CONFIG))/, $(addsuffix .filelist, $(component))))) < /dev/null > link.filelist 607 $(_v)$(LD) $(LDFLAGS_KERNEL) -filelist link.filelist version.o lastkernelconstructor.o `if [ -e $(STATIC_KMODS) ]; then echo $(STATIC_KMODS); fi` \ 608 -o $(TARGET)/mach_kernel.sys $(LD_KERNEL_LIBS) 609 $(_v)if [ $(UNAME) != Linux ]; then \ 610 if [ $(BUILD_DWARF) -eq 1 ]; then \ 611 echo DSYMUTIL mach_kernel.sys; \ 612 $(DSYMUTIL) $(DSYMUTIL_FLAGS) $(TARGET)/mach_kernel.sys -o $(TARGET)/mach_kernel.sys.dSYM > /dev/null; \ 613 $(MKDIR) $(TARGET)/mach_kernel.sys.dSYM/$(DSYMRESDIR); \ 614 $(INSTALL) $(INSTALL_FLAGS) $(SRCROOT)/kgmacros $(TARGET)/mach_kernel.sys.dSYM/$(DSYMRESDIR)/kgmacros; \ 615 fi; \ 616 fi; 617 $(_v)if [ $(MACHINE_CONFIG) != DEFAULT ] ; then \ 618 kernel_file_name=mach.`printf "%s" "$(KERNEL_CONFIG)" | $(TR) A-Z a-z`.`printf "%s" "$(MACHINE_CONFIG)" | $(TR) A-Z a-z`; \ 619 echo kernel_file_name $${kernel_file_name}; \ 620 [ -h ${OBJROOT}/$${kernel_file_name} ] || $(LN) $(TARGET)/mach_kernel ${OBJROOT}/$${kernel_file_name}; \ 621 fi; 622 @echo STRIP mach_kernel 623 $(_v)$(STRIP) $(STRIP_FLAGS) $(TARGET)/mach_kernel.sys -o $(TARGET)/mach_kernel 624 625 $(_v)kernel_config=$(KERNEL_CONFIG); \ 626 onearch=$(ARCH_CONFIG); \ 627 skip_ctf=FALSE; \ 628 if [ $${kernel_config} = RELEASE ]; then \ 629 if [ $${onearch} = ARM ]; then \ 630 skip_ctf=TRUE; \ 631 echo "Skipping CTF processing"; \ 632 fi ; \ 633 fi; \ 634 if [ $(UNAME) = Linux ]; then \ 635 echo "Skipping CTF processing."; \ 636 skip_ctf=TRUE; \ 637 fi; \ 638 if [ $${skip_ctf} = FALSE ]; then \ 639 if [ $(BUILD_MACHO_OBJ) -eq 1 -a $(BUILD_DWARF) -eq 1 ]; then \ 640 echo CTFMERGE mach_kernel; \ 641 $(FIND) $(OBJPATH)/ -name \*.ctf -size 0 \ 642 -exec $(RM) -rf {} \; ; \ 643 $(FIND) $(OBJPATH)/ -name \*.ctf | \ 644 $(XARGS) $(CTFMERGE) -l xnu -o $(TARGET)/mach_kernel \ 645 -Z $(TARGET)/mach_kernel.ctfdata || true; \ 646 echo CTFINSERT mach_kernel; \ 647 $(CTFINSERT) $(TARGET)/mach_kernel \ 648 $($(addsuffix $(ARCH_CONFIG),ARCH_FLAGS_)) $(TARGET)/mach_kernel.ctfdata \ 649 -o $(TARGET)/mach_kernel || true; \ 650 $(RM) -f $(TARGET)/mach_kernel.ctfdata > /dev/null || true; \ 651 fi; \ 652 fi; \ 653 654version.o: $(OBJPATH)/version.c 655 ${C_RULE_1A}$< 656 ${C_RULE_2} 657 ${C_RULE_4} 658 659.PHONY: $(OBJPATH)/version.c 660$(OBJPATH)/version.c: $(SRCROOT)/config/version.c $(NEWVERS) $(SRCROOT)/config/MasterVersion 661 $(_v)$(CP) $< $@ 662 $(_v)$(NEWVERS) $(OBJPATH)/version.c > /dev/null; 663 664# "/libsa" needed because TARGET ends in "/." 665lastkernelconstructor.o: COMP_OBJ_DIR=/libsa 666lastkernelconstructor.o: $(SRCROOT)/libsa/lastkernelconstructor.c 667 $(_v)$(MKDIR) $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG) 668 ${C_RULE_1A}$< 669 ${C_RULE_2} 670 ${C_RULE_3} 671 ${C_RULE_4} 672 673$(TARGET)/kgmacros: $(SRCROOT)/kgmacros 674 $(_v)$(INSTALL) $(INSTALL_FLAGS) $? $@ 675 676.PHONY: build_mach_kernel_exports 677build_mach_kernel_exports: 678 $(_v)${MAKE} \ 679 MAKEFILES=${SOURCE}/config/Makefile \ 680 SOURCE=${SOURCE}/config \ 681 RELATIVE_SOURCE_PATH=${RELATIVE_SOURCE_PATH}/config \ 682 TARGET=$${TARGET} \ 683 build_mach_kernel_exports; 684 685endif # mach_kernel-specific build rules 686 687# 688# Kernel Install rules 689# 690INSTALL_KERNEL_FILE_FILES = $(addprefix $(DSTROOT)$(INSTALL_KERNEL_DIR), $(INSTALL_KERNEL_FILE)) 691 692force_kernel_file_install: 693 694$(INSTALL_KERNEL_FILE_FILES): $(TARGET)/mach_kernel force_kernel_file_install 695 @echo Installing $< in $@; 696 $(_v)if [ ! -e $(DSTROOT)$(INSTALL_KERNEL_DIR) ]; then \ 697 $(MKDIR) $(DSTROOT)$(INSTALL_KERNEL_DIR); \ 698 fi; \ 699 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 700 $(RM) $(RMFLAGS) $@; \ 701 $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ 702 else \ 703 if [ ! -e $@ ]; then \ 704 printf "" >empty_file_$(notdir $@); \ 705 lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_file_$(notdir $@))"; \ 706 $(LIPO) $${lipo_arg} -create -output $@; \ 707 $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ 708 fi; \ 709 $(LIPO) $@ -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) $< -o $@; \ 710 fi 711 712INSTALL_KERNEL_FILESYS_FILES = $(addprefix $(SYMROOT)$(INSTALL_KERNEL_DIR), $(INSTALL_KERNEL_FILE)) 713ifeq ($(PLATFORM),iPhoneOS) 714INSTALL_KERNEL_FILESYS_FILES += $(addprefix $(DSTROOT)$(INSTALL_KERNEL_SYM_DIR), $(INSTALL_KERNEL_FILE)) 715endif 716 717force_kernel_filesys_install: 718 719$(INSTALL_KERNEL_FILESYS_FILES): $(TARGET)/mach_kernel.sys force_kernel_filesys_install 720 @echo Installing $< in $@; 721ifeq ($(PLATFORM),iPhoneOS) 722 $(_v)if [ ! -e $(DSTROOT)$(INSTALL_KERNEL_SYM_DIR) ]; then \ 723 $(MKDIR) $(DSTROOT)$(INSTALL_KERNEL_SYM_DIR); \ 724 fi; 725endif 726 $(_v)if [ ! -e $(SYMROOT)$(INSTALL_KERNEL_DIR) ]; then \ 727 $(MKDIR) $(SYMROOT)$(INSTALL_KERNEL_DIR); \ 728 fi; \ 729 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 730 $(RM) $(RMFLAGS) $@; \ 731 $(INSTALL) $(INSTALL_FLAGS) $< $@; \ 732 if [ $(UNAME) != Linux ]; then \ 733 if [ $(BUILD_DWARF) -eq 1 ]; then \ 734 $(RM) -rf $@.dSYM; \ 735 $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ 736 $(INSTALL) $(INSTALL_FLAGS) \ 737 $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ 738 $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 739 $(INSTALL) $(INSTALL_FLAGS) \ 740 $<.dSYM/$(DSYMRESDIR)/kgmacros \ 741 $@.dSYM/$(DSYMRESDIR)/kgmacros; \ 742 fi; fi; \ 743 else \ 744 if [ ! -e $@ ]; then \ 745 printf "" >empty_filesys_$(notdir $@); \ 746 lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_filesys_$(notdir $@))"; \ 747 $(LIPO) $${lipo_arg} -create -output $@; \ 748 $(RM) $(RMFLAGS) empty_filesys_$(notdir $@); \ 749 fi; \ 750 $(LIPO) $@ -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) $< -o $@; \ 751 \ 752 if [ $(BUILD_DWARF) -eq 1 ]; then \ 753 if [ ! -e $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@) ]; then \ 754 printf "" >empty_filesys_$(notdir $@); \ 755 lipo_arg="$(foreach lipo_arch,$(INSTALL_ARCHS),$(ARCH_FLAGS_$(lipo_arch)) empty_filesys_$(notdir $@))"; \ 756 $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ 757 $(LIPO) $${lipo_arg} -create \ 758 -output \ 759 $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 760 $(RM) $(RMFLAGS) empty_filesys_$(notdir $@); \ 761 fi; \ 762 $(LIPO) $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@) \ 763 -replace $(subst -arch,,$(ARCH_FLAGS_$(ARCH_CONFIG))) \ 764 $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ 765 -o $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 766 $(INSTALL) $(INSTALL_FLAGS) \ 767 $<.dSYM/$(DSYMRESDIR)/kgmacros \ 768 $@.dSYM/$(DSYMRESDIR)/kgmacros; \ 769 fi; \ 770 fi 771 $(INSTALL) $(INSTALL_FLAGS) $(SOURCE)kgmacros $(SYMROOT)$(INSTALL_FILE_DIR) 772 773setup_build_install: 774 @echo "[ $(SOURCE) ] make setup_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 775 776do_build_install: $(INSTALL_KERNEL_FILESYS_FILES) $(INSTALL_KERNEL_FILE_FILES) 777 @echo "[ $(SOURCE) ] make do_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 778 779INSTALL_MAN_FILES = $(addprefix $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/, $(INSTALL_MAN_LIST)) 780 781do_installman: $(INSTALL_MAN_FILES) 782 @echo "[ $(SOURCE) ] make do_installman" 783 $(_v)if [ -n "$(strip $(INSTALL_MAN_LIST))" ]; then \ 784 man_dir=$(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR); \ 785 if [ -d $$man_dir ]; then \ 786 ( cd $$man_dir; \ 787 $(RM) $(RMFLAGS) $(INSTALL_MAN_LIST) $(INSTALL_MAN_LINKS)); \ 788 else \ 789 $(MKDIR) $$man_dir; \ 790 fi; \ 791 echo Installing $(INSTALL_MAN_LIST) in $$man_dir; \ 792 $(INSTALL) $(INSTALL_FLAGS) $(INSTALL_MAN_LIST) $$man_dir; \ 793 if [ -n "$(strip $(INSTALL_MAN_LINKS))" ]; then \ 794 set `echo ${INSTALL_MAN_LINKS}`; \ 795 while : ; do \ 796 case $$# in \ 797 0) break;; \ 798 1) echo "warn: empty INSTALL_MAN_LINKS: $$1"; break;; \ 799 esac; \ 800 link_src=$$1; shift; link_dst=$$1; shift; \ 801 echo "hard linking $${link_src} to $${link_dst}"; \ 802 ln -f $${man_dir}/$${link_src} $${man_dir}/$${link_dst} ; \ 803 done; \ 804 fi; \ 805 fi 806 807$(INSTALL_MAN_FILES): $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/% : % 808 @true echo Installing $< in $(dir $@) 809 $(_v)$(MKDIR) $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR); \ 810 $(RM) $(RMFLAGS) $@; \ 811 $(INSTALL) $(INSTALL_FLAGS) $< $(dir $@); 812 813ifeq ($(INCL_MAKEDEP), TRUE) 814-include Makedep 815endif 816 817help: 818 @cat README 819 820# vim: set ft=make: 821