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-09-20#$ 15# $Rev: 26320 $ 16# $Author: sasaki_yu $ 17#---------------------------------------------------------------------------- 18 19TEST_TARGETS = 20 21CCFLAGS += --diag-suppress=2817 22 23CTR_NO_BANNER = 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 = $(testutil_dir)/test_importer.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-scripts: $(FILES) 119 120 run-emumem: $(RUN_EMUMEM_FILES) 121 run-spi: $(RUN_SPI_FILES) 122 123 if $(and $(defined BUILD_TESTS),$(equal $(BUILD_TESTS),true)) 124 if $(FilterTestAttributes $(filter-out test__%, $(filter test_%, $(BASENAME)))) 125 if $(and $(defined TEST_ENVIRONMENT_PROCESSLIST), $(TEST_ENVIRONMENT_PROCESSLIST)) 126 dotests-proclist: $(RUN_PROCLIST_FILES) 127 if $(and $(defined TEST_ENVIRONMENT_EMUMEM), $(TEST_ENVIRONMENT_EMUMEM)) 128 dotests-emumem: $(RUN_EMUMEM_FILES) 129 if $(and $(defined TEST_ENVIRONMENT_IMPORT), $(TEST_ENVIRONMENT_IMPORT)) 130 dotests-import: $(RUN_IMPORT_FILES) 131 TARGET_FILES += $(IMPORTER) 132 export 133 if $(and $(defined TEST_ENVIRONMENT_ARM9), $(TEST_ENVIRONMENT_ARM9)) 134 dotests-arm9: $(RUN_ARM9_FILES) 135 if $(and $(defined TEST_ENVIRONMENT_SPI), $(TEST_ENVIRONMENT_SPI)) 136 dotests-spi: $(RUN_SPI_FILES) 137 export 138 export 139 140 return $(TARGET_FILES) 141 142if $(not $(defined OBJECTS)) 143 OBJECTS = 144 export 145 146if $(and $(defined DESCRIPTOR), $(defined DESC_PARAM)) 147 if $(not $(defined DESC_BASE)) 148 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 149 DESC_BASE = $(TARGET.getDefaultDescriptorPath) 150 export 151 export 152 if $(defined DESC_BASE) 153 DESC($(DESCRIPTOR), $(DESC_PARAM), $(DESC_BASE)) 154 155if $(defined SOURCES_TEST) 156 if $(filter test tests dotest dotests dotests-emumem dotests-proclist dotests-arm9 dotests-spi dotests-import, $(TARGETS)) 157 LIBS += libnn_test librtport 158 BUILD_TESTS = true 159 CTR_MAKE_DEVELOPMENT_IMAGE = true 160 if $(not $(defined TEST_ENVIRONMENT_PROCESSLIST)) 161 TEST_ENVIRONMENT_PROCESSLIST = true 162 export TEST_ENVIRONMENT_PROCESSLIST 163 if $(not $(defined TEST_ENVIRONMENT_EMUMEM)) 164 TEST_ENVIRONMENT_EMUMEM = true 165 export TEST_ENVIRONMENT_EMUMEM 166 if $(not $(defined TEST_ENVIRONMENT_IMPORT)) 167 TEST_ENVIRONMENT_IMPORT = false 168 if $(not $(defined TEST_ENVIRONMENT_ARM9)) 169 TEST_ENVIRONMENT_ARM9 = false 170 export TEST_ENVIRONMENT_ARM9 171 if $(not $(defined TEST_ENVIRONMENT_SPI)) 172 TEST_ENVIRONMENT_SPI = true 173 export TEST_ENVIRONMENT_SPI 174 if $(not $(defined TEST_COMMON_SOURCES)) 175 TEST_COMMON_SOURCES = 176 export TEST_COMMON_SOURCES 177 foreach(SOURCE_TEST, $(FilterTest $(SOURCES_TEST))) 178 foreach(TARGET, $(BUILDER.getTargets $(SUPPORTED_TARGETS))) 179 EXEFILE = $(UserProcessTest $(TARGET), $(SOURCE_TEST) $(TEST_COMMON_SOURCES) $(OBJECTS)) 180 TEST_TARGETS += $(EXEFILE) 181 export 182 export 183 export 184 export 185 186DefineDefaultRules() 187