1#!/usr/bin/env omake 2#---------------------------------------------------------------------------- 3# Project: Horizon 4# File: modulerules.om 5# 6# Copyright 2007-2009 Nintendo. All rights reserved. 7# 8# These coded instructions, statements, and computer programs contain 9# proprietary information of Nintendo of America Inc. and/or Nintendo 10# Company Ltd., and are protected by Federal copyright law. They may 11# not be disclosed to third parties or copied or duplicated in any form, 12# in whole or in part, without the prior written consent of Nintendo. 13# 14# $Date:: 2010-11-09#$ 15# $Rev: 30688 $ 16# $Author: takiguchi_shinichi $ 17#---------------------------------------------------------------------------- 18 19TEST_TARGETS = 20 21CCFLAGS += --diag-suppress=2817 22 23CTR_NO_BANNER_ICON = true 24 25MAKE_CIA_ARCHIVE = $(ROOT_COMMANDS)$(DIRSEP)ctr_makeciaarchive32.exe 26 27# �e�X�g���C���|�[�g/���s���邽�߂̃C���|�[�^�����܂��B 28public.MakeImporter(target_files) = 29 target_dir = $(dirname $(nth 0, $(target_files))) 30 target_ciafiles = $(filter %$(EXT_CIA), $(target_files)) 31 testutil_dir = $(ROOT_SOURCES)/libraries/test/util 32 rsf_content = $(testutil_dir)/content.rsf 33 importer = 34 35 foreach(ciafile, $(target_ciafiles)) 36 cianame = $(basename $(ciafile)) 37 content_testcfa = $(target_dir)/$(removesuffix $(cianame))$(EXT_CFA) 38 39 # �C���|�[�g����e�X�g�����܂��B 40 cia_archive_root = $(target_dir)/$(removesuffix $(cianame)).cia_archive_root 41 $(content_testcfa): $(ciafile) $(makeDirectory $(cia_archive_root)) $(MAKE_CIA_ARCHIVE) :effects: $(cia_archive_root) 42 $(MAKE_CIA_ARCHIVE) -cia $(ciafile) -rsf $(rsf_content) -o $(content_testcfa) --romfs-root $(cia_archive_root) 43 44 # �C���|�[�^�����܂��B 45 content_importer = $(target_dir)/test_Importer$(EXT_CXI) 46 section 47 sources[] = 48 $(testutil_dir)/test_Importer.cpp 49 $(testutil_dir)/test_ImportFile.cpp 50 LIBS += libnn_am \ 51 libnn_ns 52 53 LIBS += libnn_test 54 target_program = test_Importer 55 56 DESC_BASE = $(HORIZON_ROOT)/resources/specfiles/Application.desc 57 DESCRIPTOR = $(HORIZON_ROOT)/sources/tools/DevMenu/DevMenu.autogen.desc 58 DESC_PARAM[] = 59 ServiceAccessControl+=fs:USER 60 ServiceAccessControl+=ns:s 61 Dependency+=am 62 Dependency+=ns 63 ROM_SPEC_FILE = $(testutil_dir)/test_importrun.rsf 64 ROMFS_DEPENDENCIES = 65 ROMFS_ROOT = 66 67 if $(defined UserRunProcess) 68 importer_files = $(UserRunProcess $(config), $(target_program), $(sources)) 69 else 70 importer_files = $(UserProcess $(config), $(target_program), $(sources)) 71 72 # �e�X�g�ƃC���|�[�^���R���e���c�Ƃ��� test_*.importer.cci �����܂��B 73 importer_name = $(removesuffix $(cianame)).import 74 importer = $(target_dir)/$(importer_name)$(EXT_CCI) 75 section 76 CTR_APPTYPE = BOTH 77 title_contents[] = 78 0>$(content_importer) 79 1>$(content_testcfa) 80 target_title = $(importer_name) 81 UNIQUE_ID = 0xF1234 82 MAKEROMFLAGS += -DUNIQUE_ID=$(UNIQUE_ID) 83 ROM_SPEC_FILE = $(rsf_content) 84 85 if $(defined Title) 86 $(importer): $(content_importer) $(content_testcfa) 87 Title($(config), $(target_title), $(title_contents)) 88 export importer 89 90 return $(importer) 91 92public.UserProcessTest(config, files) = 93 BUILD_TESTS = true 94 name = $(removesuffix $(basename $(nth 0,$(files)))) 95 96 TARGET_FILES = 97 98 TARGET_FILES += $(UserProcess $(config), $(name), $(files)) 99 100 IMPORTER = $(MakeImporter $(TARGET_FILES)) 101 102 LIST_PREFIX = $(removesuffix $(basename $(TARGET_FILES))) 103 CCIFile = $(replacesuffixes $(EXT_ELF), $(EXT_CCI), $(TARGET_FILES)) 104 CIPFile = $(replacesuffixes $(EXT_ELF), $(EXT_CIP), $(TARGET_FILES)) 105 106 BASENAME = $(basename $(nth 0, $(TARGET_FILES))) 107 108 RUN_PROCLIST_FILES = $(FilesToRunProcessList $(config),$(absname $(TARGET_FILES))) 109 RUN_EMUMEM_FILES = $(FilesToRunEmulationMemory $(config),$(absname $(TARGET_FILES))) 110 RUN_IMPORT_FILES = $(FilesToRunEmulationMemory $(config),$(absname $(IMPORTER))) 111 RUN_SPI_FILES = $(FilesToRunSPI $(config),$(absname $(TARGET_FILES))) 112 113 export RUN_ARM9_FILES 114 RUN_ARM9_FILES = 115 if $(and $(defined FilesToRunARM9), $(defined IS_CIP), $(and $(defined REPLACE_KERNEL), $(REPLACE_KERNEL))) 116 RUN_ARM9_FILES = $(FilesToRunARM9 $(config),$(absname $(CIPFile))) 117 118 run-emumem: $(RUN_EMUMEM_FILES) 119 run-spi: $(RUN_SPI_FILES) 120 121 if $(not $(defined RUN_FILTER)) 122 RUN_FILTER= * 123 export 124 125 if $(and $(defined BUILD_TESTS),$(equal $(BUILD_TESTS),true)) 126 if $(and $(FilterTestAttributes $(filter-out test__%, $(filter test_%, $(BASENAME)))), \ 127 $(isFilterMatch $(compileToRegex $(RUN_FILTER)), $(config.getScannerName))) 128 if $(and $(defined TEST_ENVIRONMENT_PROCESSLIST), $(TEST_ENVIRONMENT_PROCESSLIST)) 129 dotests-proclist: $(RUN_PROCLIST_FILES) 130 if $(and $(defined TEST_ENVIRONMENT_EMUMEM), $(TEST_ENVIRONMENT_EMUMEM)) 131 dotests-emumem: $(RUN_EMUMEM_FILES) 132 if $(and $(defined TEST_ENVIRONMENT_IMPORT), $(TEST_ENVIRONMENT_IMPORT)) 133 dotests-import: $(RUN_IMPORT_FILES) 134 TARGET_FILES += $(IMPORTER) 135 export 136 if $(and $(defined TEST_ENVIRONMENT_ARM9), $(TEST_ENVIRONMENT_ARM9)) 137 dotests-arm9: $(RUN_ARM9_FILES) 138 if $(and $(defined TEST_ENVIRONMENT_SPI), $(TEST_ENVIRONMENT_SPI)) 139 dotests-spi: $(RUN_SPI_FILES) 140 export 141 export 142 143 return $(TARGET_FILES) 144 145if $(not $(defined OBJECTS)) 146 OBJECTS = 147 export 148 149if $(and $(defined DESCRIPTOR), $(defined DESC_PARAM)) 150 if $(not $(defined DESC_BASE)) 151 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 152 DESC_BASE = $(TARGET.getDefaultDescriptorPath) 153 export 154 export 155 if $(defined DESC_BASE) 156 DESC($(DESCRIPTOR), $(DESC_PARAM), $(DESC_BASE)) 157 158if $(defined SOURCES_TEST) 159 if $(filter test tests dotest dotests dotests-%, $(TARGETS)) 160 LIBS += libnn_test librtport 161 BUILD_TESTS = true 162 if $(not $(defined TEST_ENVIRONMENT_PROCESSLIST)) 163 TEST_ENVIRONMENT_PROCESSLIST = true 164 export TEST_ENVIRONMENT_PROCESSLIST 165 if $(not $(defined TEST_ENVIRONMENT_EMUMEM)) 166 TEST_ENVIRONMENT_EMUMEM = true 167 export TEST_ENVIRONMENT_EMUMEM 168 if $(not $(defined TEST_ENVIRONMENT_IMPORT)) 169 TEST_ENVIRONMENT_IMPORT = false 170 if $(not $(defined TEST_ENVIRONMENT_ARM9)) 171 TEST_ENVIRONMENT_ARM9 = false 172 export TEST_ENVIRONMENT_ARM9 173 if $(not $(defined TEST_ENVIRONMENT_SPI)) 174 TEST_ENVIRONMENT_SPI = true 175 export TEST_ENVIRONMENT_SPI 176 if $(not $(defined TEST_COMMON_SOURCES)) 177 TEST_COMMON_SOURCES = 178 export TEST_COMMON_SOURCES 179 180 # �v���Z�X���X�g�Ŏ��s���Ȃ��e�X�g�� cdi �����Ȃ� 181 CTR_MAKE_DEVELOPMENT_IMAGE = $(TEST_ENVIRONMENT_PROCESSLIST) 182 183 foreach(SOURCE_TEST, $(FilterTest $(SOURCES_TEST))) 184 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 185 EXEFILE = $(UserProcessTest $(TARGET), $(SOURCE_TEST) $(TEST_COMMON_SOURCES) $(OBJECTS)) 186 TEST_TARGETS += $(EXEFILE) 187 export 188 export 189 export 190 export 191 192DefineDefaultRules() 193