1#---------------------------------------------------------------------------- 2# Project: Horizon 3# File: commondefs.funcs.om 4# 5# Copyright (C)2009-2011 Nintendo Co., Ltd. All rights reserved. 6# 7# These coded instructions, statements, and computer programs contain 8# proprietary information of Nintendo of America Inc. and/or Nintendo 9# Company Ltd., and are protected by Federal copyright law. They may 10# not be disclosed to third parties or copied or duplicated in any form, 11# in whole or in part, without the prior written consent of Nintendo. 12# 13# $Rev: 36586 $ 14#---------------------------------------------------------------------------- 15 16# ���̃t�@�C���͊���`�݂̂ł� 17# ����`�ȊO��lj����Ȃ��ł������� 18 19#---------------------------------------------------------------------------- 20# ����` 21#---------------------------------------------------------------------------- 22 23#------------------------------------ 24# 25#------------------------------------ 26 27# �v���W�F�N�g���[�g����̑��p�X�����߂�B 28# ���[�g������ sources �ȉ��̃p�X�̏ꍇ�� sources ����� 29GetSubPath(path) = 30 private.apath = $(absname $(path)) 31 private.subpath = $(removeprefix $(AROOT)$(DIRSEP), $(apath)) 32 private.subpath = $(removeprefix sources$(DIRSEP), $(subpath)) 33 34 if $(and \ 35 $(or $(equal $(apath), $(subpath)), \ 36 $(and $(defined FORCE_REFERENCE_ROOT), \ 37 $(FORCE_REFERENCE_ROOT))), \ 38 $(defined SOURCES_REFERENCE_ROOT)) 39 private.subpath_refer = $(removeprefix $(absname $(SOURCES_REFERENCE_ROOT)), $(apath)) 40 return $(subpath_refer) 41 else 42 if $(equal $(subpath), $(apath)) 43 eprintln($"�c���[�O�̃t�@�C�����r���h���悤�Ƃ��Ă��܂��B: $(apath)") 44 eprintln($"SOURCES_REFERENCE_ROOT �ɂĎ蓮�Ŋ�f�B���N�g�����w�肵�Ă��������B") 45 return $(basename $(apath)) 46 return $(subpath) 47 48# �f�B���N�g���̐e�q�W�ׂ� 49is_under(parent_path, child_path) = 50 private.parent_path = $(absname $(parent_path)) 51 private.child_path = $(absname $(child_path)) 52 if $(equal $(removeprefix $(parent_path), $(child_path)), $(child_path)) 53 return false 54 else 55 return true 56 57completeLibrarySuffix(config, libfiles) = 58 private.result = 59 foreach(libfile, $(libfiles)) 60 if $(findstring $(libfile), $'\.(small)|(fast)(\.|$)') 61 value $(libfile) 62 else 63 value $(libfile).$(config.effort) 64 return $(result) 65 66 67private.Bin2ObjDefaultSymbolFunction(filename) = 68 private.prefix = $(uppercase $(removesuffix $(basename $(filename)))) 69 return $(prefix)_BEGIN $(prefix)_END 70 71 72 73private.CreateCmdFile(path, files) = 74 private.f = $(fopen $(path),w) 75 foreach(line, $(absname $(files))) 76 fprint($(f),$'"') 77 fprint($(f),$(line)) 78 fprintln($(f),$'"') 79 close($(f)) 80 81 82 83#------------------------------------ 84# ���[����` 85#------------------------------------ 86 87#------------------------------------------------------- 88# AddRuleToMakeObjectFromC 89# 90# �T�v 91# .c ���� .o ���쐬���郋�[����lj����� 92# .o �̃p�X��Ԃ� 93# 94# �Q�Ƃ��Ă���O���[�o���ϐ� 95# �Ȃ� 96#------------------------------------------------------- 97AddRuleToMakeObjectFromC(path, src, includes, flags, flags_build, flags_scan) = 98 private.scanner_name = $(SCANNER_PREFIX)-c-$(fullname $(rootname $(path))) 99 100 .SCANNER: $(scanner_name): $(src) .PHONY/$(ROOT)/build-setup :value: $(digest-in-path-optional_ $(includes), $&) 101 $(CC) $(flags) $(flags_scan) $(CCOUT)$(absname $(path)) $(absname $<) 102 103 $(path): $(src) :scanner: $(scanner_name) 104 $(CC) $(flags) $(flags_build) -c $(CCOUT)$(absname $@) $(absname $<) 105 106 $(path): $(nth 0, $(CC)) $(makeDirectory $(dirname $(path))) 107 return $(path) 108 109 110#------------------------------------------------------- 111# AddRuleToMakeObjectFromCpp 112# 113# ���� 114# .cpp ���� .o ���쐬���郋�[����lj����� 115# .o �̃p�X��Ԃ� 116# 117# �Q�Ƃ��Ă���O���[�o���ϐ� 118# �Ȃ� 119#------------------------------------------------------- 120AddRuleToMakeObjectFromCpp(path, src, includes, flags, flags_build, flags_scan) = 121 private.scanner_name = $(SCANNER_PREFIX)-cxx-$(fullname $(rootname $(path))) 122 123 .SCANNER: $(scanner_name): $(src) .PHONY/$(ROOT)/build-setup :value: $(digest-in-path-optional_ $(includes), $&) 124 $(CXX) $(flags) $(flags_scan) $(CCOUT)$(absname $(path)) $(absname $<) 125 126 $(path): $(src) :scanner: $(scanner_name) 127 $(CXX) $(flags) $(flags_build) -c $(CCOUT)$(absname $@) $(absname $<) 128 129 $(path): $(nth 0, $(CXX)) $(makeDirectory $(dirname $(path))) 130 return $(path) 131 132 133#------------------------------------------------------- 134# AddRuleToMakeObjectFromAsm 135# 136# ���� 137# .s ���� .o ���쐬���郋�[����lj����� 138# .o �̃p�X��Ԃ� 139# 140# �Q�Ƃ��Ă���O���[�o���ϐ� 141# �Ȃ� 142#------------------------------------------------------- 143AddRuleToMakeObjectFromAsm(path, src, flags, flags_build) = 144 $(path): $(src) :effects: asmlock 145 $(AS) $(flags) $(flags_build) $(ASOUT)$(absname $@) $(absname $<) 146 $(path): $(nth 0, $(AS)) $(makeDirectory $(dirname $(path))) 147 return $(path) 148 149#------------------------------------------------------- 150# AddRuleToInstall 151# 152# ���� 153# �t�@�C�����R�s�[���郋�[����lj����� 154# .o �̃p�X��Ԃ� 155# 156# �Q�Ƃ��Ă���O���[�o���ϐ� 157# �Ȃ� 158#------------------------------------------------------- 159AddRuleToInstall(dst, src) = 160 $(dst): $(makeDirectory $(dirname $(dst))) 161 $(dst): $(src) 162 cp $< $@ 163 return $(dst) 164 165 166#------------------------------------------------------- 167# AddRuleToMakeStaticLibrary 168# 169# ���� 170# .o �̃��X�g���� .a ���쐬���郋�[����lj����� 171# .a �̃p�X��Ԃ� 172# 173# �Q�Ƃ��Ă���O���[�o���ϐ� 174# �Ȃ� 175#------------------------------------------------------- 176AddRuleToMakeStaticLibrary(lib, srcs) = 177 $(lib): $(nth 0, $(AR)) 178 $(lib): $(makeDirectory $(dirname $(lib))) 179 $(lib): $(srcs) 180 CreateCmdFile($@.res,$^) 181 rm -f $(absname $@) 182 $(AR) $(ARFLAGS) $(absname $@) --via $(absname $@.res) 183 rm -f $@.res 184 return $(lib) 185 186 187#------------------------------------------------------- 188# AddRuleToMakeObjectFromBinary 189# 190# ���� 191# �C�ӂ̃t�@�C������ .o ���쐬���郋�[����lj����� 192# .o �̃p�X��Ԃ� 193# 194# �Q�Ƃ��Ă���O���[�o���ϐ� 195# �Ȃ� 196#------------------------------------------------------- 197AddRuleToMakeObjectFromBinary(obj, bin, sympair, flags) = 198 private.begin = $(nth 0, $(sympair)) 199 private.end = $(nth 1, $(sympair)) 200 $(obj): $(bin) $(BIN2OBJ) 201 $(BIN2OBJ) $(flags) -b $(begin) -e $(end) $< $@ 202 return $(obj) 203 204 205#------------------------------------------------------- 206# AddRuleToPreProcess 207# 208# ���� 209# C �̃v���v���Z�X������K�p���郋�[����lj����� 210# ���ʃt�@�C���̃p�X��Ԃ� 211# 212# �Q�Ƃ��Ă���O���[�o���ϐ� 213# �Ȃ� 214#------------------------------------------------------- 215AddRuleToPreProcess(outfile, infile, includes, flags, flags_scan) = 216 private.scanner_name = $(SCANNER_PREFIX)-cpp-$(fullname $(rootname $(outfile))) 217 private.outdir = $(makeDirectory $(dirname $(outfile))) 218 219 .SCANNER: $(scanner_name): $(infile) .PHONY/$(ROOT)/build-setup :value: $(digest-in-path-optional_ $(includes), $&) 220 $(CPP) $(flags) $(flags_scan) $(CCOUT)$(absname $(outfile)) $(absname $<) 221 222 $(outfile): $(infile) $(outdir) :scanner: $(scanner_name) 223 $(CPP) $(flags) $(CCOUT)$(absname $@) $(absname $<) 224 return $(outfile) 225 226 227#------------------------------------------------------- 228# AddRuleToMakeElf 229# 230# ���� 231# ELF �t�@�C�����쐬���郋�[����lj����� 232# ELF �t�@�C���̃p�X��Ԃ� 233# 234# �Q�Ƃ��Ă���O���[�o���ϐ� 235# �Ȃ� 236#------------------------------------------------------- 237AddRuleToMakeElf(elf, flags, files, depends) = 238 private.dasm = $(file $(removesuffix $(elf))$(EXT_DASM)) 239 $(elf): $(nth 0, $(LD)) 240 $(elf): $(depends) :effects: $(dasm) :value: $(getMtimeIfLarge $(depends)) 241 $(LD) $(LDOUT)$(absname $@) $(flags) $(set $(files)) 242 $(if $(DISAS), $(DISAS) -o$(absname $(dasm)) $(absname $@)) 243 return $(elf) 244 245#------------------------------------------------------- 246# AddRuleToMakeElfUsingCmdFile 247# 248# ���� 249# �I�v�V�����t�@�C���o�R�� ELF �t�@�C�����쐬���郋�[����lj����� 250# ELF �t�@�C���̃p�X��Ԃ� 251# 252# �Q�Ƃ��Ă���O���[�o���ϐ� 253# �Ȃ� 254#------------------------------------------------------- 255AddRuleToMakeElfUsingCmdFile(elf, flags, files, depends) = 256 private.dasm = $(file $(removesuffix $(elf))$(EXT_DASM)) 257 $(elf): $(nth 0, $(LD)) $(makeDirectory $(dirname $(elf))) 258 $(elf): $(depends) :effects: $(dasm) :value: $(getMtimeIfLarge $(depends)) 259 CreateCmdFile($@.res,$(set $(files))) 260 $(LD) $(LDOUT)$(absname $@) $(flags) $(LDRESP) $(absname $@.res) 261 $(if $(DISAS), $(DISAS) -o$(absname $(dasm)) $(absname $@)) 262 return $(elf) 263 264 265 266makeObjectPath(src) = 267 private.oname = 268 if $(not $(is_under $(CWD), $(src))) 269 value $(rootname $(GetSubPath $(src)))$(EXT_OBJ) 270 else 271 value $(rootname $(src))$(EXT_OBJ) 272 return $(file $(makePath $(obj_dir) $(oname))) 273 274 275# INCLUDES, CFLAGS, PREFIXED_INCLUDES, CSCANFLAGS, CCFLAGS_BUILD 276MakeObjectFromC(src) = 277 private.dst = $(makeObjectPath $(src)) 278 return $(AddRuleToMakeObjectFromC $(dst),$(src),$(INCLUDES),$(CFLAGS) $(PREFIXED_INCLUDES),$(CCFLAGS_BUILD),$(CSCANFLAGS)) 279 280# INCLUDES, CXXFLAGS, PREFIXED_INCLUDS, CSCANFLAGS, CCFLAGS_BUILD 281MakeObjectFromCpp(src) = 282 private.dst = $(makeObjectPath $(src)) 283 return $(AddRuleToMakeObjectFromCpp $(dst),$(src),$(INCLUDES),$(CXXFLAGS) $(PREFIXED_INCLUDES),$(CCFLAGS_BUILD),$(CSCANFLAGS)) 284 285# ASFLAGS, CCFLAGS_BUILD, PREFIXED_INCLUDES 286MakeObjectFromAsm(src) = 287 private.dst = $(makeObjectPath $(src)) 288 return $(AddRuleToMakeObjectFromAsm $(dst),$(src),$(ASFLAGS) $(PREFIXED_INCLUDES),$(CCFLAGS_BUILD)) 289 290 291 292#------------------------------------ 293# �r���h���� 294#------------------------------------ 295 296#------------------------------------------------------- 297# ObjectOne 298# 299# ���� 300# ���̓t�@�C���̊g���q�ɉ����ēK�ȏ������s�� 301# �I�u�W�F�N�g�t�@�C���ւƕϊ����� 302# ���������I�u�W�F�N�g�t�@�C���̃p�X��Ԃ� 303# 304# �Q�Ƃ��Ă���O���[�o���ϐ� 305# COMPILER INCLUDES 306#------------------------------------------------------- 307ObjectOne(config, src, obj_dir) = 308 CCFLAGS += $(COMPILER.getCCFlags $(config)) $(config.getSystemCCFlags) 309 CCFLAGS_MACRO += $(COMPILER.getMacroFlags $(config)) -DNN_USE_MAKECCI 310 ASFLAGS += $(COMPILER.getASFlags $(config)) 311 INCLUDES = $(dir $(INCLUDES)) 312 313 private.ofile = 314 match $(src) 315 case $"\($(EXT_C)\)$$" 316 value $(MakeObjectFromC $(src)) 317 case $"\(\.cpp\)$$" 318 value $(MakeObjectFromCpp $(src)) 319 case $"\($(EXT_ASM)\)$$" 320 value $(MakeObjectFromAsm $(src)) 321 default 322 eprintln($"Unsupported source file: " '$(src)') 323 exit(1) 324 325 return $(ofile) 326 327#------------------------------------------------------- 328# Object 329# 330# ���� 331# �����̓��̓t�@�C���� ObjectOne ��K�p���� 332# ObjectOne �̌��ʂ̃��X�g��Ԃ� 333# 334# �Q�Ƃ��Ă���O���[�o���ϐ� 335# �Ȃ� 336#------------------------------------------------------- 337Object(config, srcs) = 338 if $(not $(srcs)) 339 return $(EMPTY) 340 341 private.obj_dir_parent = $(config.getObjectDirectory) 342 343 # �����I�Ɉ��̃t�@�C���ɑ��ă��[�����`���� 344 private.ofiles = 345 foreach(filename, $(srcs)) 346 if $(not $(equal $(filename),$(EMPTY))) 347 value $(ObjectOne $(config), $(string $(filename)), $(obj_dir_parent)) 348 349 clean: 350 rm -rf $(obj_dir_parent) $(SUBDIR_OBJECTS) 351 352 return $(stripEmpty $(ofiles)) 353 354 355 356#------------------------------------------------------- 357# StaticObject 358# 359# ���� 360# Object ��K�p���A�������ꂽ�t�@�C�����w��̏ꏊ�ɃR�s�[���� 361# �R�s�[��̃t�@�C���̃p�X�̃��X�g��Ԃ� 362# 363# �Q�Ƃ��Ă���O���[�o���ϐ� 364# �Ȃ� 365#------------------------------------------------------- 366StaticObject(config, srcs) = 367 private.libdir = $(config.getLibraryDirectory true) 368 369 private.ofiles = 370 foreach(filename, $(srcs)) 371 private.obj = $(ObjectOne $(config),$(filename),$(config.getObjectDirectory)) 372 private.libpath = $(file $(libdir)/$(config.getStaticObjectName $(rootname $(filename)))) 373 value $(AddRuleToInstall $(libpath),$(obj)) 374 375 clean: 376 rm -f $(ofiles) 377 378 return $(ofiles) 379 380 381#------------------------------------------------------- 382# StaticObject 383# 384# ���� 385# �����̓��̓t�@�C�����A���̊g���q�ɉ����ēK�ȏ������s���� 386# �I�u�W�F�N�g�t�@�C���ւƕϊ������̂��A 387# .a �t�@�C���ւ܂Ƃ߂� 388# .a �t�@�C���̃p�X��Ԃ� 389# 390# �Q�Ƃ��Ă���O���[�o���ϐ� 391# �Ȃ� 392#------------------------------------------------------- 393StaticLibrary(config, name, files) = 394 private.libdir = $(config.getLibraryDirectory true) 395 private.objs = $(filter %$(EXT_OBJ),$(files)) 396 private.srcs = $(filter-out %$(EXT_OBJ),$(files)) 397 private.ofiles = $(objs) $(Object $(config), $(srcs)) 398 private.libpath = $(file $(libdir)$(DIRSEP)$(config.getLibraryName $(name))) 399 return $(AddRuleToMakeStaticLibrary $(libpath), $(ofiles)) 400 401 402#------------------------------------------------------- 403# ObjectFromBinaryWithSymbol 404# 405# ���� 406# �C�ӂ̃t�@�C�����I�u�W�F�N�g�t�@�C���ւƕϊ����� 407# ���������I�u�W�F�N�g�t�@�C���̃p�X��Ԃ� 408# 409# �Q�Ƃ��Ă���O���[�o���ϐ� 410# BIN2OBJ_FLAGS 411#------------------------------------------------------- 412public.ObjectFromBinaryWithSymbol(config, files, symbol_function) = 413 private.obj_dir_parent = $(config.getObjectDirectory) 414 private.ofiles = 415 foreach(filename, $(files)) 416 private.ofile = $(file $(obj_dir_parent)/$(basename $(filename))$(EXT_OBJ)) 417 private.symbol_pair = $(symbol_function $(filename)) 418 $(ofile): $(obj_dir_parent) 419 value $(AddRuleToMakeObjectFromBinary $(ofile),$(filename),$(symbol_pair),$(BIN2OBJ_FLAGS)) 420 return $(ofiles) 421 422 423#------------------------------------------------------- 424# ObjectFromBinary 425# 426# ���� 427# �C�ӂ̃t�@�C�����I�u�W�F�N�g�t�@�C���ւƕϊ����� 428# ���������V���{���Ƀf�t�H���g�̌`�����g�p���� 429# ���������I�u�W�F�N�g�t�@�C���̃p�X��Ԃ� 430# 431# �Q�Ƃ��Ă���O���[�o���ϐ� 432# �Ȃ� 433#------------------------------------------------------- 434public.ObjectFromBinary(config, files) = 435 return $(ObjectFromBinaryWithSymbol $(config), $(files), $(Bin2ObjDefaultSymbolFunction)) 436 437 438 439#------------------------------------------------------- 440# PreProcess 441# 442# ���� 443# C �̃v���v���Z�X������K�p�����t�@�C�����쐬���� 444# �K�p��̃t�@�C���̃p�X��Ԃ� 445# 446# �Q�Ƃ��Ă���O���[�o���ϐ� 447# CCFLAGS_MACRO COMPILER 448# INCLUDES CCFLAGS PREFIXED_INCLUDES CSCANFLAGS 449#------------------------------------------------------- 450public.PreProcess(config, infile, outfile) = 451 CCFLAGS_MACRO += $(COMPILER.getMacroFlags $(config)) -DNN_USE_MAKECCI 452 return $(AddRuleToPreProcess $(outfile),$(infile),$(INCLUDES),$(CCFLAGS) $(PREFIXED_INCLUDES),$(CSCANFLAGS)) 453 454 455#------------------------------------------------------- 456# InstallFiles 457# 458# ���� 459# �����̃t�@�C�����R�s�[���� 460# 461# �Q�Ƃ��Ă���O���[�o���ϐ� 462# �Ȃ� 463#------------------------------------------------------- 464public.InstallFiles(source_root, sources, destination) = 465 private.destination = $(absname $(destination)) 466 private.source_root = $(absname $(source_root)) 467 private.sources = $(removeprefix $(source_root)$(DIRSEP), $(sources)) 468 469 private.dfiles = $(addprefix $(destination)$(DIRSEP), $(sources)) 470 471 .SUBDIRS: $(source_root) 472 foreach(source, $(sources)) 473 private.dfile = $(addprefix $(destination)$(DIRSEP), $(source)) 474 AddRuleToInstall($(dfile),$(source)) 475 476 return $(dfiles) 477 478 479Elf(elf, flags, files, depends) = 480 if $(equal $(LDRESP),$(EMPTY)) 481 return $(AddRuleToMakeElf $(elf), $(flags), $(files), $(depends)) 482 else 483 return $(AddRuleToMakeElfUsingCmdFile $(elf), $(flags), $(files), $(depends)) 484 485#------------------------------------------------------- 486# ExecutableElf 487# 488# ���� 489# EXECUTABLE �`���� ELF ���쐬���� 490# 491# �Q�Ƃ��Ă���O���[�o���ϐ� 492# LIBDIR, LDFLAGS, COMPILER, MINIMUM_LIBS, DEFAULT_LIBS, 493# LIBS, TOOL, LIBFILES, CRT_0_O, MAPFILE, LDSCRIPT_TEMPLATE, 494# LDSCRIPT 495#------------------------------------------------------- 496ExecutableElf(config, name, files) = 497 private.image_dir = $(config.getImageDirectory false) 498 private.elf = $(config.getBinaryPath $(name), $(EXT_ELF)) 499 LIBDIR = $(config.getLibraryDirectory false) 500 LDFLAGS += $(COMPILER.getLDFlags $(config)) 501 502 MINIMUM_LIBS += $(config.getMinimumLibraries) 503 DEFAULT_LIBS += $(config.getDefaultLibraries) 504 if $(config.isHostIoEnable) 505 DEFAULT_LIBS += $(config.getHostIoLibraries) 506 export 507 508 private.ext_elfs = $(addprefix %, $(EXT_OBJ) $(EXT_ELF) $(EXT_PLF)) 509 private.ofiles = $(Object $(config), $(filter-out $(ext_elfs),$(files))) $(filter $(ext_elfs),$(files)) 510 private.lfiles = $(EMPTY) 511 LDSCRIPT = $(EMPTY) 512 513 if $(filter %$(EXT_LIB), $(LIBS)) 514 eprintln($""!!! WARNING: the LIBS variable should contain libraries _without_ extensions."") 515 LIBS = $(replacesuffixes $(EXT_LIB), $"$(EMPTY)", $(LIBS)) 516 export 517 518 if $(not $(and $(defined TOOL), $(TOOL))) 519 private.filtered_lfiles = $(filter-out $"$(EMPTY)",$(LIBS)) 520 export lfiles 521 export LDSCRIPT 522 lfiles = $(file $(addprefix $(LIBDIR)$(DIRSEP), $(addsuffix $(EXT_LIB), $(completeLibrarySuffix $(config), $(filtered_lfiles))))) 523 lfiles += $(file $(addsuffix $(EXT_LIB), $(completeLibrarySuffix $(config), $(replacesuffixes $(EXT_LIB), $"$(EMPTY)", $(LIBFILES))))) 524 525 if $(and $(defined CRT_0_O),$(not $(equal $(LDRESP),$(EMPTY)))) 526 lfiles += $(file $(addprefix $(LIBDIR)$(DIRSEP), $(addsuffix $(EXT_OBJ), $(completeLibrarySuffix $(config), $(removesuffix $(CRT_0_O)))))) 527 528 MAPFILE = $(config.getMapfilePath $(name)) 529 export MAPFILE 530 531 if $(defined LDSCRIPT_TEMPLATE) 532 LDSCRIPT = $(PreProcess $(config), $(LDSCRIPT_TEMPLATE), $(absname $(config.getLdscriptPath $(name)))) 533 534 $(LDSCRIPT): $(image_dir) 535 536 $(elf): $(LDSCRIPT) :effects: $(MAPFILE) 537 538 clean: 539 rm -rf $(image_dir) $(SUBDIR_IMAGES) 540 541 return $(Elf $(elf), $(LDFLAGS), $(ofiles) $(lfiles), $(ofiles) $(lfiles)) 542 543#Program(config, name, files) = 544 545 546 547#------------------------------------ 548# ���̑� 549#------------------------------------ 550 551# �S�Ẵ\�[�X�t�@�C���̃R���p�C���O�Ɏ��s����^�[�Q�b�g 552public.RequireSetup(targets) = 553 .PHONY/$(ROOT)/build-setup: $(targets) 554 555 556public.DefineDefaultRules() = 557 558 .DEFAULT: build 559 560 all: build tests 561 562 run: run-scripts 563 564 %.log: run-scripts 565 566 dotests run: $(RUNNER) :effects: $(RUNNER_LOCK) 567 $(RunDependMCR $@) 568 569public.ShowConfig() = 570 NOT_FOUND = $"������܂���" 571 println($"���ϐ�/�����ݒ�--------------------------------------") 572 println($" HORIZON_ROOT: " $(absname $(HORIZON_ROOT))) 573 println($" HORIZON_ADDINS_ROOT: " $(HORIZON_ADDINS_ROOT)) 574 println($" HORIZON_TARGETS: " $(if $(defined-env HORIZON_TARGETS), $`(getenv HORIZON_TARGETS))) 575 println($" ARMLMD_LICENSE_FILE: " $(if $(defined-env ARMLMD_LICENSE_FILE), $`(getenv ARMLMD_LICENSE_FILE))) 576 println($" $(RVCT_ENV_PREFIX)BIN: " $(if $(defined-env $(RVCT_ENV_PREFIX)BIN), $`(getenv $(RVCT_ENV_PREFIX)BIN))) 577 if $(defined-env $(RVCT_ENV_PREFIX)BIN) 578 ARMCC_VERSION = $(gsub $(string $(shell $"$(RVCT_BINDIR)armcc.exe" --help)), $" Usage:.*", $(EMPTY)) 579 ARMASM_VERSION = $(gsub $(string $(shell $"$(RVCT_BINDIR)armasm.exe" --help)), $" Usage:.*", $(EMPTY)) 580 ARMLINK_VERSION = $(gsub $(string $(shell $"$(RVCT_BINDIR)armlink.exe" --help)), $" Usage:.*", $(EMPTY)) 581 ARMAR_VERSION = $(gsub $(string $(shell $"$(RVCT_BINDIR)armar.exe" --help)), $" - archive.*", $(EMPTY)) 582 FROMELF_VERSION = $(gsub $(string $(shell $"$(RVCT_BINDIR)fromelf.exe" --help)), $"ARM image.*", $(EMPTY)) 583 584 println($" - $(ARMCC_VERSION)") 585 println($" - $(ARMASM_VERSION)") 586 println($" - $(ARMLINK_VERSION)") 587 println($" - $(ARMAR_VERSION)") 588 println($" - $(FROMELF_VERSION)") 589 println($" $(RVCT_ENV_PREFIX)INC: " $(if $(defined-env $(RVCT_ENV_PREFIX)INC), $`(getenv $(RVCT_ENV_PREFIX)INC))) 590 println($" $(RVCT_ENV_PREFIX)LIB: " $(if $(defined-env $(RVCT_ENV_PREFIX)LIB), $`(getenv $(RVCT_ENV_PREFIX)LIB))) 591 592 println($" ") 593 println($"�v���W�F�N�g�ݒ�---------------------------------------") 594 println($" ROOT: " $(absname $(ROOT))) 595 println($" INSTALL_ROOT: " $(absname $(INSTALL_ROOT))) 596 println($" INSTALL_ROOT_IMAGES: " $(absname $(INSTALL_ROOT_IMAGES))) 597 println($" INSTALL_ROOT_LIBRARIES: " $(absname $(INSTALL_ROOT_LIBRARIES))) 598 println($" ") 599 println($"�v���O����---------------------------------------------") 600 601 GCC_VERSION = 602 if $(GCC) 603 GCC_VERSION = $`(gsub $(string $(shell $(GCC) --version)), $" Copyright.*", $(EMPTY)) 604 export 605 606 #OMAKE_VERSION_ = $`(gsub $(string $(shell omake --version)), $":.*", $(EMPTY)) 607 println($" GCC: " $(if $(equal $(GCC), $(EMPTY)), $(NOT_FOUND), $`(GCC) [$`(GCC_VERSION)])) 608 println($" RUBY: " $(if $(equal $(RUBY), $(EMPTY)), $(NOT_FOUND), $`(RUBY) [$`(RUBY_VERSION)])) 609 println($" 7ZIP: " $(if $(equal $(7ZIP), $(EMPTY)), $(NOT_FOUND), $`(7ZIP))) 610 println($" UNZIP: " $(if $(equal $(UNZIP), $(EMPTY)), $(NOT_FOUND), $`(UNZIP))) 611 println($" ") 612 613 614 615public.CGeneratedFiles(files) = 616 CGeneratedFilesTarget: $(files) 617 618public.LocalCGeneratedFiles(files) = 619 .SCANNER: scan-c-%: $(files) 620 .SCANNER: scan-cxx-%: $(files) 621 .SCANNER: %$(EXT_OBJ): $(files) 622 export 623 624 625makePlatformDefsPath(name) = 626 return $(ROOT_OMAKE)/platforms/$(TARGET_PLATFORM.Name)/$(TARGET_PLATFORM.Name).$(name).om 627 628IsTestBuild() = 629 return $(filter dotests% tests, $(TARGETS)) 630 631IsDocumentBuild() = 632 return $(filter documents clean-documents, $(TARGETS)) 633 634 635 636 637