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 OBJPATH = $(OBJROOT)/$(KERNEL_CONFIG)_$(ARCH_CONFIG)_$(MACHINE_CONFIG) 55else 56 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 516COMP_SOBJ_FILES = $(addprefix $(TARGET)$(COMP_OBJ_DIR), $(COMP_SOBJ_LIST)) 517 518$(COMP_SOBJ_FILES): $(TARGET)$(COMP_OBJ_DIR)%.o : %.s 519 ${S_KCC} -E -MD ${SFLAGS} -DASSEMBLER $(INCFLAGS) $< > $(patsubst %.o, %.pp, ${@}); 520 sed '/^\#/d' $(patsubst %.o, %.pp, ${@}) > $(patsubst %.o, %.s, ${@}); 521 ${S_KCC} ${SFLAGS} ${_HOST_AS_FLAGS} -c $(patsubst %.o, %.s, ${@}); 522 ${RM} ${_RMFLAGS_} $(patsubst %.o, %.pp, ${@}) $(patsubst %.o,%.s,${@}); 523 524S_RULE_1A=@ls / 525S_RULE_1B= ${patsubst %.o,%.s,${@}} > /dev/null 526S_RULE_2=$(_v)${S_KCC} -E -MD ${SFLAGS} -DASSEMBLER $(INCFLAGS) $< \ 527 > $(patsubst %.o, %.pp, ${@}); \ 528 sed '/^\#/d' $(patsubst %.o, %.pp, ${@}) > $(patsubst %.o, %.s, ${@}); 529ifeq ($(BUILD_STABS),1) 530S_RULE_3=$(_v)${S_KCC} ${SFLAGS} ${_HOST_AS_FLAGS} -c $(patsubst %.o, %.s, ${@});\ 531 ${RM} ${_RMFLAGS_} $(patsubst %.o, %.pp, ${@}) $(patsubst %.o,%.s,${@}); 532else 533S_RULE_3=$(_v)${S_KCC} ${SFLAGS} ${_HOST_AS_FLAGS} -c $(patsubst %.o, %.s, ${@});\ 534 ${RM} ${_RMFLAGS_} $(patsubst %.o, %.pp, ${@}) $(patsubst %.o,%.s,${@});\ 535 ${CTFCONVERT} -l xnu -v -o $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf || true; 536S_RULE_4=@echo ASM $@ 537endif 538 539# 540# Compilation rules to generate .o from .c for normal files 541C_RULE_1A=$(_v)${KCC} -c ${filter-out ${${join $@,_CFLAGS_RM}}, ${CFLAGS} ${CWARNFLAGS}} -MD ${${join $@,_CFLAGS_ADD}} ${INCFLAGS} ${${join $@,_INCFLAGS}} 542C_RULE_1B=$*.c 543C_RULE_2=@echo CC $@ 544ifeq ($(BUILD_STABS),1) 545C_RULE_3= 546else 547C_RULE_3=$(_v)${CTFCONVERT} -l xnu -v -o $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf || true; 548endif 549C_RULE_4= 550 551# 552# Compilation rules to generate .o from .c for driver files 553# 554C_RULE_1A_D=${C_RULE_1A} 555C_RULE_1B_D=${C_RULE_1B} 556C_RULE_2_D=${C_RULE_2} 557C_RULE_3_D=${C_RULE_3} 558C_RULE_4_D=${C_RULE_4} 559 560# 561# Compilation rules to generate .o from .m 562# 563M_RULE_1A=$(_v)${KCC} -c ${filter-out ${${join $@,_CFLAGS_RM}}, ${CFLAGS} ${MWARNFLAGS}} -MD ${${join $@,_CFLAGS_ADD}} ${INCFLAGS} ${${join $@,_INCFLAGS}} 564M_RULE_1B=$*.m 565M_RULE_2=@echo CC $@ 566M_RULE_3= 567M_RULE_4= 568 569# 570# Compilation rules to generate .co from .cp or .cpo from .cpp 571# The config tool slickly changes the last source filename char to 'o' 572# for the object filename. 573P_RULE_1A=$(_v)${KC++} -o $@ -c ${CXXFLAGS} ${filter-out ${${join $@,_CFLAGS_RM}}, ${CFLAGS} ${CXXWARNFLAGS}} -MD ${${join $@,_CFLAGS_ADD}} ${INCFLAGS} ${${join $@,_INCFLAGS}} 574P_RULE_1B=$(<F) 575P_RULE_2=$(_v)sed 's/.c.o: /.cpo: /' $(@:.cpo=.d) > $(@:.cpo=.d~) && mv $(@:.cpo=.d~) $(@:.cpo=.d) 576P_RULE_3=@echo C++ $@ 577ifeq ($(BUILD_STABS),1) 578P_RULE_4= 579else 580P_RULE_4=$(_v)${CTFCONVERT} -l xnu -v -o $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf $@ > /dev/null && $(CTFSCRUB) `cat $(SRCROOT)/config/DtraceIgnored.symbols` $(TARGET)$(COMP_OBJ_DIR)/$(KERNEL_CONFIG)/$@.ctf || true; 581endif 582P_RULE_4= 583 584# 585# Linker rule to generate a component 586# 587LD_COMPONENT_OBJ_FILES = $(addprefix $(TARGET)$(COMP_OBJ_DIR), $(LD_COMPONENT_OBJ_LIST)) 588 589COMPONENT_IMAGE_FILE = $(addprefix $(TARGET), $(COMPONENT_IMAGE)) 590 591$(COMPONENT_IMAGE_FILE): $(LD_COMPONENT_OBJ_FILES) 592 @echo LD $@ 593 $(_v)$(LD) $(LDFLAGS_COMPONENT) -o $(COMPONENT_IMAGE_FILE) ${LD_COMPONENT_OBJ_FILES}; 594 $(_v)(cd $(TARGET)$(COMP_OBJ_DIR); ${MD} -u Makedep -f -d `ls *.d`); 595 596setup_build_all: 597 598do_build_all: $(COMP_FILES) $(COMP_COBJ_FILES) $(COMP_SOBJ_FILES) $(COMPONENT_IMAGE_FILE) 599 600ifeq ($(COMPONENT), .) 601do_build_all: do_build_mach_kernel 602endif 603 604# 605# mach_kernel building rules 606# 607do_build_mach_kernel: $(OBJPATH)/kgmacros 608 $(_v)$(INSTALL) $(DATA_INSTALL_FLAGS) $(SRCROOT)/config/version.c $(OBJPATH)/version.c; 609 $(_v)$(SRCROOT)/config/newvers.pl $(OBJPATH)/version.c > /dev/null; 610 @echo CC version.o 611 $(_v)${KCC} -c ${filter-out ${${join $@,_CFLAGS_RM}}, ${CFLAGS}} ${${join $@,_CFLAGS_ADD}} ${INCFLAGS} ${${join $@,_INCFLAGS}} $(OBJPATH)/version.c -o $(OBJPATH)/version.o 612 @echo LD mach_kernel.sys 613 $(_v)$(LD) $(LDFLAGS_KERNEL) $(addprefix $(TARGET)/,$(foreach component,$(COMPONENT_LIST), $(addprefix $(component)/$(firstword $($(addsuffix _KERNEL_CONFIG, $(shell printf $(component) | tr a-z A-Z))) $(KERNEL_CONFIG))/, $(addsuffix .o, $(component))))) $(OBJPATH)/version.o -o $(TARGET)/mach_kernel.sys $(LD_KERNEL_LIBS) 614 @echo DSYMUTIL mach_kernel.sys 615 $(_v)if [ $(BUILD_DWARF) -eq 1 ]; then \ 616 $(DSYMUTIL) $(DSYMUTIL_FLAGS) $(TARGET)/mach_kernel.sys -o $(TARGET)/mach_kernel.sys.dSYM > /dev/null; \ 617 fi; 618 @echo STRIP mach_kernel 619 $(_v)$(STRIP) $(STRIP_FLAGS) $(TARGET)/mach_kernel.sys -o $(TARGET)/mach_kernel 620 621$(OBJPATH)/kgmacros: $(SRCROOT)/kgmacros 622 $(_v)$(INSTALL) $(INSTALL_FLAGS) $? $@ 623 624# Special rules to install machine configuration variants 625 626$(DSTROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC): $(TARGET)/mach_kernel force_file_install 627 @echo Installing $< in $@; 628 $(_v)if [ ! -e $(DSTROOT)$(INSTALL_FILE_DIR) ]; then \ 629 $(MKDIR) $(DSTROOT)$(INSTALL_FILE_DIR); \ 630 fi; \ 631 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 632 $(RM) $(RMFLAGS) $@; \ 633 $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ 634 else \ 635 if [ ! -e $@ ]; then \ 636 echo >empty_file_$(notdir $@); \ 637 lipo_arg="$(subst _empty_file, empty_file_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 638 $(LIPO) $${lipo_arg} -create -output $@; \ 639 $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ 640 fi; \ 641 $(LIPO) $@ -replace $(ARCH_CONFIG_LC) $< -o $@; \ 642 fi; \ 643 if [ $(BUILD_DWARF) -eq 1 ]; then \ 644 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 645 $(CP) -f $< $<.ctfsys; \ 646 $(FIND) $(OBJPATH)/ -name \*.ctf -size 0 \ 647 -exec $(RM) -rf {} \; ; \ 648 $(CTFMERGE) -l xnu -o $<.ctfsys \ 649 $(OBJPATH)/*/$(KERNEL_CONFIG)/*.*o.ctf || true; \ 650 $(INSTALL) $(FILE_INSTALL_FLAGS) $<.ctfsys $@.ctfsys; \ 651 else \ 652 if [ ! -e $@.ctfsys ]; then \ 653 echo >empty_file_$(notdir $@); \ 654 lipo_arg="$(subst _empty_file, empty_file_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 655 $(LIPO) $${lipo_arg} -create -output $@.ctfsys;\ 656 $(RM) $(RMFLAGS) empty_file_$(notdir $@);\ 657 fi; \ 658 $(FIND) $(OBJPATH)/ -name \*.ctf -size 0 \ 659 -exec $(RM) -rf {} \; ; \ 660 $(CP) -f $< $<.ctfsys; \ 661 $(CTFMERGE) -l xnu -o $<.ctfsys \ 662 $(OBJPATH)/*/$(KERNEL_CONFIG)/*.*o.ctf || true; \ 663 $(LIPO) $@.ctfsys -replace $(ARCH_CONFIG_LC) \ 664 $<.ctfsys -o $@.ctfsys; \ 665 fi; \ 666 fi 667 668$(SYMROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC): $(TARGET)/mach_kernel.sys force_file_install 669 @echo Installing $< in $@; 670 $(_v)if [ ! -e $(SYMROOT)$(INSTALL_FILE_DIR) ]; then \ 671 $(MKDIR) $(SYMROOT)$(INSTALL_FILE_DIR); \ 672 fi; \ 673 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 674 $(RM) $(RMFLAGS) $@; \ 675 $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ 676 if [ $(BUILD_DWARF) -eq 1 ]; then \ 677 $(RM) -rf $@.dSYM; \ 678 $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ 679 $(INSTALL) $(INSTALL_FLAGS) \ 680 $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ 681 $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 682 fi; \ 683 else \ 684 if [ ! -e $@ ]; then \ 685 echo >empty_file_$(notdir $@); \ 686 lipo_arg="$(subst _empty_file, empty_file_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 687 $(LIPO) $${lipo_arg} -create -output $@; \ 688 $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ 689 fi; \ 690 $(LIPO) $@ -replace $(ARCH_CONFIG_LC) $< -o $@; \ 691 fi 692 693 694# 695# Generic Install rules 696# 697INSTALL_FILE_FILES = $(addprefix $(DSTROOT)$(INSTALL_FILE_DIR), $(INSTALL_FILE_LIST)) 698INSTALL_FILE_FILES_GENERIC = $(filter-out $(DSTROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC), $(INSTALL_FILE_FILES)) 699 700force_file_install: 701 702$(INSTALL_FILE_FILES_GENERIC): $(DSTROOT)$(INSTALL_FILE_DIR)% : $(TARGET)/% force_file_install 703 @echo Installing $< in $@; 704 $(_v)if [ ! -e $(DSTROOT)$(INSTALL_FILE_DIR) ]; then \ 705 $(MKDIR) $(DSTROOT)$(INSTALL_FILE_DIR); \ 706 fi; \ 707 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 708 $(RM) $(RMFLAGS) $@; \ 709 if [ $(MACHINE_CONFIG) = DEFAULT ]; then \ 710 $(INSTALL) $(FILE_INSTALL_FLAGS) $< $@; \ 711 fi; \ 712 else \ 713 if [ ! -e $@ ]; then \ 714 echo >empty_file_$(notdir $@); \ 715 lipo_arg="$(subst _empty_file, empty_file_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 716 $(LIPO) $${lipo_arg} -create -output $@; \ 717 $(RM) $(RMFLAGS) empty_file_$(notdir $@); \ 718 fi; \ 719 $(LIPO) $@ -replace $(ARCH_CONFIG_LC) $< -o $@; \ 720 fi; \ 721 if [ $(BUILD_DWARF) -eq 1 ]; then \ 722 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 723 $(CP) -f $< $<.ctfsys; \ 724 $(FIND) $(OBJPATH)/ -name \*.ctf -size 0 \ 725 -exec $(RM) -rf {} \; ; \ 726 $(CTFMERGE) -l xnu -o $<.ctfsys \ 727 $(OBJPATH)/*/$(KERNEL_CONFIG)/*.*o.ctf || true; \ 728 if [ $(MACHINE_CONFIG) = DEFAULT ]; then \ 729 $(INSTALL) $(FILE_INSTALL_FLAGS) $<.ctfsys $(dir $@); \ 730 fi; \ 731 else \ 732 if [ ! -e $@.ctfsys ]; then \ 733 echo >empty_file_$(notdir $@); \ 734 lipo_arg="$(subst _empty_file, empty_file_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 735 $(LIPO) $${lipo_arg} -create -output $@.ctfsys;\ 736 $(RM) $(RMFLAGS) empty_file_$(notdir $@);\ 737 fi; \ 738 $(FIND) $(OBJPATH)/ -name \*.ctf -size 0 \ 739 -exec $(RM) -rf {} \; ; \ 740 $(CP) -f $< $<.ctfsys; \ 741 $(CTFMERGE) -l xnu -o $<.ctfsys \ 742 $(OBJPATH)/*/$(KERNEL_CONFIG)/*.*o.ctf || true; \ 743 $(LIPO) $@.ctfsys -replace $(ARCH_CONFIG_LC) \ 744 $<.ctfsys -o $@.ctfsys; \ 745 fi; \ 746 fi 747 748INSTALL_FILESYS_FILES = $(addprefix $(SYMROOT)$(INSTALL_FILE_DIR), $(INSTALL_FILE_LIST)) 749INSTALL_FILESYS_FILES_GENERIC = $(filter-out $(SYMROOT)$(INSTALL_FILE_DIR)mach.$(KERNEL_CONFIG_LC).$(MACHINE_CONFIG_LC), $(INSTALL_FILESYS_FILES)) 750 751force_filesys_install: 752 753$(INSTALL_FILESYS_FILES_GENERIC): $(SYMROOT)$(INSTALL_FILE_DIR)% : $(TARGET)/%.sys force_filesys_install 754 @echo Installing $< in $@; 755 $(_v)if [ ! -e $(SYMROOT)$(INSTALL_FILE_DIR) ]; then \ 756 $(MKDIR) $(SYMROOT)$(INSTALL_FILE_DIR); \ 757 fi; \ 758 if [ "`echo $(INSTALL_ARCHS_LC) | wc -w`" -eq 1 ]; then \ 759 $(RM) $(RMFLAGS) $@; \ 760 $(INSTALL) $(INSTALL_FLAGS) $< $@; \ 761 if [ $(BUILD_DWARF) -eq 1 ]; then \ 762 $(DSYMUTIL) $(DSYMUTIL_FLAGS) \ 763 $(TARGET)/mach_kernel.sys \ 764 -o $(TARGET)/mach_kernel.sys.dSYM; \ 765 $(RM) -rf $@.dSYM; \ 766 $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ 767 $(INSTALL) $(INSTALL_FLAGS) \ 768 $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ 769 $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 770 fi; \ 771 else \ 772 if [ ! -e $@ ]; then \ 773 echo >empty_filesys_$(notdir $@); \ 774 lipo_arg="$(subst _empty_file, empty_filesys_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 775 $(LIPO) $${lipo_arg} -create -output $@; \ 776 $(RM) $(RMFLAGS) empty_filesys_$(notdir $@); \ 777 fi; \ 778 $(LIPO) $@ -replace $(ARCH_CONFIG_LC) $< -o $@; \ 779 \ 780 if [ $(BUILD_DWARF) -eq 1 ]; then \ 781 if [ ! -e $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@) ]; then \ 782 echo >empty_filesys_$(notdir $@); \ 783 lipo_arg="$(subst _empty_file, empty_filesys_$(notdir $@),$(foreach lipo_arch,$(INSTALL_ARCHS_LC), $(addprefix -arch , $(addsuffix _empty_file, $(lipo_arch)))))"; \ 784 $(MKDIR) -p -m 0755 $@.dSYM/$(DSYMBUILDDIR); \ 785 $(LIPO) $${lipo_arg} -create \ 786 -output \ 787 $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 788 $(RM) $(RMFLAGS) empty_filesys_$(notdir $@); \ 789 fi; \ 790 $(DSYMUTIL) $(DSYMUTIL_FLAGS) \ 791 $(TARGET)/mach_kernel.sys \ 792 -o $(TARGET)/mach_kernel.sys.dSYM; \ 793 $(LIPO) $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@) \ 794 -replace $(ARCH_CONFIG_LC) \ 795 $<.dSYM/$(DSYMBUILDDIR)/$(notdir $<) \ 796 -o $@.dSYM/$(DSYMBUILDDIR)/$(notdir $@); \ 797 fi; \ 798 fi 799 $(INSTALL) $(INSTALL_FLAGS) $(SOURCE)kgmacros $(SYMROOT)$(INSTALL_FILE_DIR) 800 801INSTALL_DATA_FILES = $(addprefix $(DSTROOT)$(INSTALL_DATA_DIR), $(INSTALL_DATA_LIST)) 802 803$(INSTALL_DATA_FILES): $(DSTROOT)$(INSTALL_DATA_DIR)% : $(SOURCE)/% 804 @echo Installing $< in $@; 805 $(_v)[ -d $(dir $@) ] ||$(MKDIR) $(dir $@); \ 806 $(RM) $(RMFLAGS) $@; \ 807 $(INSTALL) $(DATA_INSTALL_FLAGS) $< $(dir $@); 808 809setup_build_install: 810 @echo "[ $(SOURCE) ] make setup_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 811 812do_build_install: $(INSTALL_FILESYS_FILES) $(INSTALL_FILE_FILES) $(INSTALL_DATA_FILES) 813 @echo "[ $(SOURCE) ] make do_build_install $(KERNEL_CONFIG) $(ARCH_CONFIG) $(TARGET)" 814 815INSTALL_MAN_FILES = $(addprefix $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/, $(INSTALL_MAN_LIST)) 816 817do_installman: $(INSTALL_MAN_FILES) 818 @echo "[ $(SOURCE) ] make do_installman" 819 $(_v)if [ -n "$(strip $(INSTALL_MAN_LIST))" ]; then \ 820 man_dir=$(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR); \ 821 if [ -d $$man_dir ]; then \ 822 ( cd $$man_dir; \ 823 $(RM) $(RMFLAGS) $(INSTALL_MAN_LIST) $(INSTALL_MAN_LINKS)); \ 824 else \ 825 $(MKDIR) $$man_dir; \ 826 fi; \ 827 echo Installing $(INSTALL_MAN_LIST) in $$man_dir; \ 828 $(INSTALL) $(INSTALL_FLAGS) $(INSTALL_MAN_LIST) $$man_dir; \ 829 if [ -n "$(strip $(INSTALL_MAN_LINKS))" ]; then \ 830 set `echo ${INSTALL_MAN_LINKS}`; \ 831 while : ; do \ 832 case $$# in \ 833 0) break;; \ 834 1) echo "warn: empty INSTALL_MAN_LINKS: $$1"; break;; \ 835 esac; \ 836 link_src=$$1; shift; link_dst=$$1; shift; \ 837 echo "hard linking $${link_src} to $${link_dst}"; \ 838 ln -f $${man_dir}/$${link_src} $${man_dir}/$${link_dst} ; \ 839 done; \ 840 fi; \ 841 fi 842 843$(INSTALL_MAN_FILES): $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR)/% : % 844 @true echo Installing $< in $(dir $@) 845 $(_v)$(MKDIR) $(DSTROOT)/$(MANDIR)/$(INSTALL_MAN_DIR); \ 846 $(RM) $(RMFLAGS) $@; \ 847 $(INSTALL) $(INSTALL_FLAGS) $< $(dir $@); 848 849ifeq ($(INCL_MAKEDEP), TRUE) 850-include Makedep 851endif 852 853# vim: set ft=make: 854