~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/lib.mk

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/testing/selftests/lib.mk (Architecture mips) and /tools/testing/selftests/lib.mk (Architecture alpha)


  1 # This mimics the top-level Makefile. We do it      1 # This mimics the top-level Makefile. We do it explicitly here so that this
  2 # Makefile can operate with or without the kbu      2 # Makefile can operate with or without the kbuild infrastructure.
  3 ifneq ($(LLVM),)                                    3 ifneq ($(LLVM),)
  4 ifneq ($(filter %/,$(LLVM)),)                       4 ifneq ($(filter %/,$(LLVM)),)
  5 LLVM_PREFIX := $(LLVM)                              5 LLVM_PREFIX := $(LLVM)
  6 else ifneq ($(filter -%,$(LLVM)),)                  6 else ifneq ($(filter -%,$(LLVM)),)
  7 LLVM_SUFFIX := $(LLVM)                              7 LLVM_SUFFIX := $(LLVM)
  8 endif                                               8 endif
  9                                                     9 
 10 CLANG := $(LLVM_PREFIX)clang$(LLVM_SUFFIX)         10 CLANG := $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
 11                                                    11 
 12 CLANG_TARGET_FLAGS_arm          := arm-linux-g     12 CLANG_TARGET_FLAGS_arm          := arm-linux-gnueabi
 13 CLANG_TARGET_FLAGS_arm64        := aarch64-lin     13 CLANG_TARGET_FLAGS_arm64        := aarch64-linux-gnu
 14 CLANG_TARGET_FLAGS_hexagon      := hexagon-lin     14 CLANG_TARGET_FLAGS_hexagon      := hexagon-linux-musl
 15 CLANG_TARGET_FLAGS_i386         := i386-linux-     15 CLANG_TARGET_FLAGS_i386         := i386-linux-gnu
 16 CLANG_TARGET_FLAGS_m68k         := m68k-linux-     16 CLANG_TARGET_FLAGS_m68k         := m68k-linux-gnu
 17 CLANG_TARGET_FLAGS_mips         := mipsel-linu     17 CLANG_TARGET_FLAGS_mips         := mipsel-linux-gnu
 18 CLANG_TARGET_FLAGS_powerpc      := powerpc64le     18 CLANG_TARGET_FLAGS_powerpc      := powerpc64le-linux-gnu
 19 CLANG_TARGET_FLAGS_riscv        := riscv64-lin     19 CLANG_TARGET_FLAGS_riscv        := riscv64-linux-gnu
 20 CLANG_TARGET_FLAGS_s390         := s390x-linux     20 CLANG_TARGET_FLAGS_s390         := s390x-linux-gnu
 21 CLANG_TARGET_FLAGS_x86          := x86_64-linu     21 CLANG_TARGET_FLAGS_x86          := x86_64-linux-gnu
 22 CLANG_TARGET_FLAGS_x86_64       := x86_64-linu     22 CLANG_TARGET_FLAGS_x86_64       := x86_64-linux-gnu
 23                                                    23 
 24 # Default to host architecture if ARCH is not      24 # Default to host architecture if ARCH is not explicitly given.
 25 ifeq ($(ARCH),)                                    25 ifeq ($(ARCH),)
 26 CLANG_TARGET_FLAGS := $(shell $(CLANG) -print-     26 CLANG_TARGET_FLAGS := $(shell $(CLANG) -print-target-triple)
 27 else                                               27 else
 28 CLANG_TARGET_FLAGS := $(CLANG_TARGET_FLAGS_$(A     28 CLANG_TARGET_FLAGS := $(CLANG_TARGET_FLAGS_$(ARCH))
 29 endif                                              29 endif
 30                                                    30 
 31 ifeq ($(CROSS_COMPILE),)                           31 ifeq ($(CROSS_COMPILE),)
 32 ifeq ($(CLANG_TARGET_FLAGS),)                      32 ifeq ($(CLANG_TARGET_FLAGS),)
 33 $(error Specify CROSS_COMPILE or add '--target     33 $(error Specify CROSS_COMPILE or add '--target=' option to lib.mk)
 34 else                                               34 else
 35 CLANG_FLAGS     += --target=$(CLANG_TARGET_FLA     35 CLANG_FLAGS     += --target=$(CLANG_TARGET_FLAGS)
 36 endif # CLANG_TARGET_FLAGS                         36 endif # CLANG_TARGET_FLAGS
 37 else                                               37 else
 38 CLANG_FLAGS     += --target=$(notdir $(CROSS_C     38 CLANG_FLAGS     += --target=$(notdir $(CROSS_COMPILE:%-=%))
 39 endif # CROSS_COMPILE                              39 endif # CROSS_COMPILE
 40                                                    40 
 41 # gcc defaults to silence (off) for the follow     41 # gcc defaults to silence (off) for the following warnings, but clang defaults
 42 # to the opposite. The warnings are not useful     42 # to the opposite. The warnings are not useful for the kernel itself, which is
 43 # why they have remained disabled in gcc for t     43 # why they have remained disabled in gcc for the main kernel build. And it is
 44 # only due to including kernel data structures     44 # only due to including kernel data structures in the selftests, that we get the
 45 # warnings from clang. Therefore, disable the      45 # warnings from clang. Therefore, disable the warnings for clang builds.
 46 CFLAGS += -Wno-address-of-packed-member            46 CFLAGS += -Wno-address-of-packed-member
 47 CFLAGS += -Wno-gnu-variable-sized-type-not-at-     47 CFLAGS += -Wno-gnu-variable-sized-type-not-at-end
 48                                                    48 
 49 CC := $(CLANG) $(CLANG_FLAGS) -fintegrated-as      49 CC := $(CLANG) $(CLANG_FLAGS) -fintegrated-as
 50 else                                               50 else
 51 CC := $(CROSS_COMPILE)gcc                          51 CC := $(CROSS_COMPILE)gcc
 52 endif # LLVM                                       52 endif # LLVM
 53                                                    53 
 54 ifeq (0,$(MAKELEVEL))                              54 ifeq (0,$(MAKELEVEL))
 55     ifeq ($(OUTPUT),)                              55     ifeq ($(OUTPUT),)
 56         OUTPUT := $(shell pwd)                     56         OUTPUT := $(shell pwd)
 57         DEFAULT_INSTALL_HDR_PATH := 1              57         DEFAULT_INSTALL_HDR_PATH := 1
 58     endif                                          58     endif
 59 endif                                              59 endif
 60 selfdir = $(realpath $(dir $(filter %/lib.mk,$     60 selfdir = $(realpath $(dir $(filter %/lib.mk,$(MAKEFILE_LIST))))
 61 top_srcdir = $(selfdir)/../../..                   61 top_srcdir = $(selfdir)/../../..
 62                                                    62 
 63 # msg: emit succinct information message descr     63 # msg: emit succinct information message describing current building step
 64 # $1 - generic step name (e.g., CC, LINK, etc)     64 # $1 - generic step name (e.g., CC, LINK, etc);
 65 # $2 - optional "flavor" specifier; if provide     65 # $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
 66 # $3 - target (assumed to be file); only file      66 # $3 - target (assumed to be file); only file name will be emitted;
 67 # $4 - optional extra arg, emitted as-is, if p     67 # $4 - optional extra arg, emitted as-is, if provided.
 68 ifeq ($(V),1)                                      68 ifeq ($(V),1)
 69 Q =                                                69 Q =
 70 msg =                                              70 msg =
 71 else                                               71 else
 72 Q = @                                              72 Q = @
 73 msg = @printf '  %-8s%s %s%s\n' "$(1)" "$(if $     73 msg = @printf '  %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
 74 MAKEFLAGS += --no-print-directory                  74 MAKEFLAGS += --no-print-directory
 75 endif                                              75 endif
 76                                                    76 
 77 ifeq ($(KHDR_INCLUDES),)                           77 ifeq ($(KHDR_INCLUDES),)
 78 KHDR_INCLUDES := -isystem $(top_srcdir)/usr/in     78 KHDR_INCLUDES := -isystem $(top_srcdir)/usr/include
 79 endif                                              79 endif
 80                                                    80 
 81 # In order to use newer items that haven't yet     81 # In order to use newer items that haven't yet been added to the user's system
 82 # header files, add $(TOOLS_INCLUDES) to the c     82 # header files, add $(TOOLS_INCLUDES) to the compiler invocation in each
 83 # each selftest.                                   83 # each selftest.
 84 # You may need to add files to that location,      84 # You may need to add files to that location, or to refresh an existing file. In
 85 # order to do that, run "make headers" from $(     85 # order to do that, run "make headers" from $(top_srcdir), then copy the
 86 # header file that you want from $(top_srcdir)     86 # header file that you want from $(top_srcdir)/usr/include/... , to the matching
 87 # subdir in $(TOOLS_INCLUDE).                      87 # subdir in $(TOOLS_INCLUDE).
 88 TOOLS_INCLUDES := -isystem $(top_srcdir)/tools     88 TOOLS_INCLUDES := -isystem $(top_srcdir)/tools/include/uapi
 89                                                    89 
 90 # The following are built by lib.mk common com     90 # The following are built by lib.mk common compile rules.
 91 # TEST_CUSTOM_PROGS should be used by tests th     91 # TEST_CUSTOM_PROGS should be used by tests that require
 92 # custom build rule and prevent common build r     92 # custom build rule and prevent common build rule use.
 93 # TEST_PROGS are for test shell scripts.           93 # TEST_PROGS are for test shell scripts.
 94 # TEST_CUSTOM_PROGS and TEST_PROGS will be run     94 # TEST_CUSTOM_PROGS and TEST_PROGS will be run by common run_tests
 95 # and install targets. Common clean doesn't to     95 # and install targets. Common clean doesn't touch them.
 96 TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(T     96 TEST_GEN_PROGS := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS))
 97 TEST_GEN_PROGS_EXTENDED := $(patsubst %,$(OUTP     97 TEST_GEN_PROGS_EXTENDED := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_PROGS_EXTENDED))
 98 TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(T     98 TEST_GEN_FILES := $(patsubst %,$(OUTPUT)/%,$(TEST_GEN_FILES))
 99                                                    99 
100 all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTEND    100 all: $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) \
101         $(if $(TEST_GEN_MODS_DIR),gen_mods_dir    101         $(if $(TEST_GEN_MODS_DIR),gen_mods_dir)
102                                                   102 
103 define RUN_TESTS                                  103 define RUN_TESTS
104         BASE_DIR="$(selfdir)";                    104         BASE_DIR="$(selfdir)";                  \
105         . $(selfdir)/kselftest/runner.sh;         105         . $(selfdir)/kselftest/runner.sh;       \
106         if [ "X$(summary)" != "X" ]; then         106         if [ "X$(summary)" != "X" ]; then       \
107                 per_test_logging=1;               107                 per_test_logging=1;             \
108         fi;                                       108         fi;                                     \
109         run_many $(1)                             109         run_many $(1)
110 endef                                             110 endef
111                                                   111 
112 define INSTALL_INCLUDES                           112 define INSTALL_INCLUDES
113         $(if $(TEST_INCLUDES), \                  113         $(if $(TEST_INCLUDES), \
114                 relative_files=""; \              114                 relative_files=""; \
115                 for entry in $(TEST_INCLUDES);    115                 for entry in $(TEST_INCLUDES); do \
116                         entry_dir=$$(readlink     116                         entry_dir=$$(readlink -e "$$(dirname "$$entry")"); \
117                         entry_name=$$(basename    117                         entry_name=$$(basename "$$entry"); \
118                         relative_dir=$${entry_    118                         relative_dir=$${entry_dir#"$$SRC_PATH"/}; \
119                         if [ "$$relative_dir"     119                         if [ "$$relative_dir" = "$$entry_dir" ]; then \
120                                 echo "Error: T    120                                 echo "Error: TEST_INCLUDES entry \"$$entry\" not located inside selftests directory ($$SRC_PATH)" >&2; \
121                                 exit 1; \         121                                 exit 1; \
122                         fi; \                     122                         fi; \
123                         relative_files="$$rela    123                         relative_files="$$relative_files $$relative_dir/$$entry_name"; \
124                 done; \                           124                 done; \
125                 cd $(SRC_PATH) && rsync -aR $$    125                 cd $(SRC_PATH) && rsync -aR $$relative_files $(OBJ_PATH)/ \
126         )                                         126         )
127 endef                                             127 endef
128                                                   128 
129 run_tests: all                                    129 run_tests: all
130 ifdef building_out_of_srctree                     130 ifdef building_out_of_srctree
131         @if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTE    131         @if [ "X$(TEST_PROGS)$(TEST_PROGS_EXTENDED)$(TEST_FILES)$(TEST_GEN_MODS_DIR)" != "X" ]; then \
132                 rsync -aq --copy-unsafe-links     132                 rsync -aq --copy-unsafe-links $(TEST_PROGS) $(TEST_PROGS_EXTENDED) $(TEST_FILES) $(TEST_GEN_MODS_DIR) $(OUTPUT); \
133         fi                                        133         fi
134         @$(INSTALL_INCLUDES)                      134         @$(INSTALL_INCLUDES)
135         @if [ "X$(TEST_PROGS)" != "X" ]; then     135         @if [ "X$(TEST_PROGS)" != "X" ]; then \
136                 $(call RUN_TESTS, $(TEST_GEN_P    136                 $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) \
137                                   $(addprefix     137                                   $(addprefix $(OUTPUT)/,$(TEST_PROGS))) ; \
138         else \                                    138         else \
139                 $(call RUN_TESTS, $(TEST_GEN_P    139                 $(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS)); \
140         fi                                        140         fi
141 else                                              141 else
142         @$(call RUN_TESTS, $(TEST_GEN_PROGS) $    142         @$(call RUN_TESTS, $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS))
143 endif                                             143 endif
144                                                   144 
145 gen_mods_dir:                                     145 gen_mods_dir:
146         $(Q)$(MAKE) -C $(TEST_GEN_MODS_DIR)       146         $(Q)$(MAKE) -C $(TEST_GEN_MODS_DIR)
147                                                   147 
148 clean_mods_dir:                                   148 clean_mods_dir:
149         $(Q)$(MAKE) -C $(TEST_GEN_MODS_DIR) cl    149         $(Q)$(MAKE) -C $(TEST_GEN_MODS_DIR) clean
150                                                   150 
151 define INSTALL_SINGLE_RULE                        151 define INSTALL_SINGLE_RULE
152         $(if $(INSTALL_LIST),@mkdir -p $(INSTA    152         $(if $(INSTALL_LIST),@mkdir -p $(INSTALL_PATH))
153         $(if $(INSTALL_LIST),rsync -a --copy-u    153         $(if $(INSTALL_LIST),rsync -a --copy-unsafe-links $(INSTALL_LIST) $(INSTALL_PATH)/)
154 endef                                             154 endef
155                                                   155 
156 define INSTALL_MODS_RULE                          156 define INSTALL_MODS_RULE
157         $(if $(INSTALL_LIST),@mkdir -p $(INSTA    157         $(if $(INSTALL_LIST),@mkdir -p $(INSTALL_PATH)/$(INSTALL_LIST))
158         $(if $(INSTALL_LIST),rsync -a --copy-u    158         $(if $(INSTALL_LIST),rsync -a --copy-unsafe-links $(INSTALL_LIST)/*.ko $(INSTALL_PATH)/$(INSTALL_LIST))
159 endef                                             159 endef
160                                                   160 
161 define INSTALL_RULE                               161 define INSTALL_RULE
162         $(eval INSTALL_LIST = $(TEST_PROGS)) $    162         $(eval INSTALL_LIST = $(TEST_PROGS)) $(INSTALL_SINGLE_RULE)
163         $(eval INSTALL_LIST = $(TEST_PROGS_EXT    163         $(eval INSTALL_LIST = $(TEST_PROGS_EXTENDED)) $(INSTALL_SINGLE_RULE)
164         $(eval INSTALL_LIST = $(TEST_FILES)) $    164         $(eval INSTALL_LIST = $(TEST_FILES)) $(INSTALL_SINGLE_RULE)
165         $(eval INSTALL_LIST = $(TEST_GEN_PROGS    165         $(eval INSTALL_LIST = $(TEST_GEN_PROGS)) $(INSTALL_SINGLE_RULE)
166         $(eval INSTALL_LIST = $(TEST_CUSTOM_PR    166         $(eval INSTALL_LIST = $(TEST_CUSTOM_PROGS)) $(INSTALL_SINGLE_RULE)
167         $(eval INSTALL_LIST = $(TEST_GEN_PROGS    167         $(eval INSTALL_LIST = $(TEST_GEN_PROGS_EXTENDED)) $(INSTALL_SINGLE_RULE)
168         $(eval INSTALL_LIST = $(TEST_GEN_FILES    168         $(eval INSTALL_LIST = $(TEST_GEN_FILES)) $(INSTALL_SINGLE_RULE)
169         $(eval INSTALL_LIST = $(notdir $(TEST_    169         $(eval INSTALL_LIST = $(notdir $(TEST_GEN_MODS_DIR))) $(INSTALL_MODS_RULE)
170         $(eval INSTALL_LIST = $(wildcard confi    170         $(eval INSTALL_LIST = $(wildcard config settings)) $(INSTALL_SINGLE_RULE)
171 endef                                             171 endef
172                                                   172 
173 install: all                                      173 install: all
174 ifdef INSTALL_PATH                                174 ifdef INSTALL_PATH
175         $(INSTALL_RULE)                           175         $(INSTALL_RULE)
176         $(INSTALL_INCLUDES)                       176         $(INSTALL_INCLUDES)
177 else                                              177 else
178         $(error Error: set INSTALL_PATH to use    178         $(error Error: set INSTALL_PATH to use install)
179 endif                                             179 endif
180                                                   180 
181 emit_tests:                                       181 emit_tests:
182         for TEST in $(TEST_GEN_PROGS) $(TEST_C    182         for TEST in $(TEST_GEN_PROGS) $(TEST_CUSTOM_PROGS) $(TEST_PROGS); do \
183                 BASENAME_TEST=`basename $$TEST    183                 BASENAME_TEST=`basename $$TEST`;        \
184                 echo "$(COLLECTION):$$BASENAME    184                 echo "$(COLLECTION):$$BASENAME_TEST";   \
185         done                                      185         done
186                                                   186 
187 # define if isn't already. It is undefined in     187 # define if isn't already. It is undefined in make O= case.
188 ifeq ($(RM),)                                     188 ifeq ($(RM),)
189 RM := rm -f                                       189 RM := rm -f
190 endif                                             190 endif
191                                                   191 
192 define CLEAN                                      192 define CLEAN
193         $(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_    193         $(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN)
194 endef                                             194 endef
195                                                   195 
196 clean: $(if $(TEST_GEN_MODS_DIR),clean_mods_di    196 clean: $(if $(TEST_GEN_MODS_DIR),clean_mods_dir)
197         $(CLEAN)                                  197         $(CLEAN)
198                                                   198 
199 # Build with _GNU_SOURCE by default               199 # Build with _GNU_SOURCE by default
200 CFLAGS += -D_GNU_SOURCE=                          200 CFLAGS += -D_GNU_SOURCE=
201                                                   201 
202 # Enables to extend CFLAGS and LDFLAGS from co    202 # Enables to extend CFLAGS and LDFLAGS from command line, e.g.
203 # make USERCFLAGS=-Werror USERLDFLAGS=-static     203 # make USERCFLAGS=-Werror USERLDFLAGS=-static
204 CFLAGS += $(USERCFLAGS)                           204 CFLAGS += $(USERCFLAGS)
205 LDFLAGS += $(USERLDFLAGS)                         205 LDFLAGS += $(USERLDFLAGS)
206                                                   206 
207 # When make O= with kselftest target from main    207 # When make O= with kselftest target from main level
208 # the following aren't defined.                   208 # the following aren't defined.
209 #                                                 209 #
210 ifdef building_out_of_srctree                     210 ifdef building_out_of_srctree
211 LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS    211 LINK.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
212 COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TAR    212 COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
213 LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAG    213 LINK.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(LDFLAGS) $(TARGET_ARCH)
214 endif                                             214 endif
215                                                   215 
216 # Selftest makefiles can override those target    216 # Selftest makefiles can override those targets by setting
217 # OVERRIDE_TARGETS = 1.                           217 # OVERRIDE_TARGETS = 1.
218 ifeq ($(OVERRIDE_TARGETS),)                       218 ifeq ($(OVERRIDE_TARGETS),)
219 LOCAL_HDRS += $(selfdir)/kselftest_harness.h $    219 LOCAL_HDRS += $(selfdir)/kselftest_harness.h $(selfdir)/kselftest.h
220 $(OUTPUT)/%:%.c $(LOCAL_HDRS)                     220 $(OUTPUT)/%:%.c $(LOCAL_HDRS)
221         $(call msg,CC,,$@)                        221         $(call msg,CC,,$@)
222         $(Q)$(LINK.c) $(filter-out $(LOCAL_HDR    222         $(Q)$(LINK.c) $(filter-out $(LOCAL_HDRS),$^) $(LDLIBS) -o $@
223                                                   223 
224 $(OUTPUT)/%.o:%.S                                 224 $(OUTPUT)/%.o:%.S
225         $(COMPILE.S) $^ -o $@                     225         $(COMPILE.S) $^ -o $@
226                                                   226 
227 $(OUTPUT)/%:%.S                                   227 $(OUTPUT)/%:%.S
228         $(LINK.S) $^ $(LDLIBS) -o $@              228         $(LINK.S) $^ $(LDLIBS) -o $@
229 endif                                             229 endif
230                                                   230 
231 .PHONY: run_tests all clean install emit_tests    231 .PHONY: run_tests all clean install emit_tests gen_mods_dir clean_mods_dir
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php