1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593SmuzhiyunFILES= \ 3*4882a593Smuzhiyun test-all.bin \ 4*4882a593Smuzhiyun test-backtrace.bin \ 5*4882a593Smuzhiyun test-bionic.bin \ 6*4882a593Smuzhiyun test-dwarf.bin \ 7*4882a593Smuzhiyun test-dwarf_getlocations.bin \ 8*4882a593Smuzhiyun test-eventfd.bin \ 9*4882a593Smuzhiyun test-fortify-source.bin \ 10*4882a593Smuzhiyun test-sync-compare-and-swap.bin \ 11*4882a593Smuzhiyun test-get_current_dir_name.bin \ 12*4882a593Smuzhiyun test-glibc.bin \ 13*4882a593Smuzhiyun test-gtk2.bin \ 14*4882a593Smuzhiyun test-gtk2-infobar.bin \ 15*4882a593Smuzhiyun test-hello.bin \ 16*4882a593Smuzhiyun test-libaudit.bin \ 17*4882a593Smuzhiyun test-libbfd.bin \ 18*4882a593Smuzhiyun test-libbfd-buildid.bin \ 19*4882a593Smuzhiyun test-disassembler-four-args.bin \ 20*4882a593Smuzhiyun test-reallocarray.bin \ 21*4882a593Smuzhiyun test-libbfd-liberty.bin \ 22*4882a593Smuzhiyun test-libbfd-liberty-z.bin \ 23*4882a593Smuzhiyun test-cplus-demangle.bin \ 24*4882a593Smuzhiyun test-libcap.bin \ 25*4882a593Smuzhiyun test-libelf.bin \ 26*4882a593Smuzhiyun test-libelf-getphdrnum.bin \ 27*4882a593Smuzhiyun test-libelf-gelf_getnote.bin \ 28*4882a593Smuzhiyun test-libelf-getshdrstrndx.bin \ 29*4882a593Smuzhiyun test-libdebuginfod.bin \ 30*4882a593Smuzhiyun test-libnuma.bin \ 31*4882a593Smuzhiyun test-numa_num_possible_cpus.bin \ 32*4882a593Smuzhiyun test-libperl.bin \ 33*4882a593Smuzhiyun test-libpython.bin \ 34*4882a593Smuzhiyun test-libslang.bin \ 35*4882a593Smuzhiyun test-libslang-include-subdir.bin \ 36*4882a593Smuzhiyun test-libcrypto.bin \ 37*4882a593Smuzhiyun test-libunwind.bin \ 38*4882a593Smuzhiyun test-libunwind-debug-frame.bin \ 39*4882a593Smuzhiyun test-libunwind-x86.bin \ 40*4882a593Smuzhiyun test-libunwind-x86_64.bin \ 41*4882a593Smuzhiyun test-libunwind-arm.bin \ 42*4882a593Smuzhiyun test-libunwind-aarch64.bin \ 43*4882a593Smuzhiyun test-libunwind-debug-frame-arm.bin \ 44*4882a593Smuzhiyun test-libunwind-debug-frame-aarch64.bin \ 45*4882a593Smuzhiyun test-pthread-attr-setaffinity-np.bin \ 46*4882a593Smuzhiyun test-pthread-barrier.bin \ 47*4882a593Smuzhiyun test-stackprotector-all.bin \ 48*4882a593Smuzhiyun test-timerfd.bin \ 49*4882a593Smuzhiyun test-libdw-dwarf-unwind.bin \ 50*4882a593Smuzhiyun test-libbabeltrace.bin \ 51*4882a593Smuzhiyun test-compile-32.bin \ 52*4882a593Smuzhiyun test-compile-x32.bin \ 53*4882a593Smuzhiyun test-zlib.bin \ 54*4882a593Smuzhiyun test-lzma.bin \ 55*4882a593Smuzhiyun test-bpf.bin \ 56*4882a593Smuzhiyun test-libbpf.bin \ 57*4882a593Smuzhiyun test-get_cpuid.bin \ 58*4882a593Smuzhiyun test-sdt.bin \ 59*4882a593Smuzhiyun test-cxx.bin \ 60*4882a593Smuzhiyun test-gettid.bin \ 61*4882a593Smuzhiyun test-jvmti.bin \ 62*4882a593Smuzhiyun test-jvmti-cmlr.bin \ 63*4882a593Smuzhiyun test-sched_getcpu.bin \ 64*4882a593Smuzhiyun test-setns.bin \ 65*4882a593Smuzhiyun test-libopencsd.bin \ 66*4882a593Smuzhiyun test-clang.bin \ 67*4882a593Smuzhiyun test-llvm.bin \ 68*4882a593Smuzhiyun test-llvm-version.bin \ 69*4882a593Smuzhiyun test-libaio.bin \ 70*4882a593Smuzhiyun test-libzstd.bin \ 71*4882a593Smuzhiyun test-clang-bpf-co-re.bin \ 72*4882a593Smuzhiyun test-file-handle.bin \ 73*4882a593Smuzhiyun test-libpfm4.bin 74*4882a593Smuzhiyun 75*4882a593SmuzhiyunFILES := $(addprefix $(OUTPUT),$(FILES)) 76*4882a593Smuzhiyun 77*4882a593SmuzhiyunPKG_CONFIG ?= $(CROSS_COMPILE)pkg-config 78*4882a593SmuzhiyunLLVM_CONFIG ?= llvm-config 79*4882a593SmuzhiyunCLANG ?= clang 80*4882a593Smuzhiyun 81*4882a593Smuzhiyunall: $(FILES) 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun__BUILD = $(CC) $(CFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.c,$(@F)) $(LDFLAGS) 84*4882a593Smuzhiyun BUILD = $(__BUILD) > $(@:.bin=.make.output) 2>&1 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun__BUILDXX = $(CXX) $(CXXFLAGS) -MD -Wall -Werror -o $@ $(patsubst %.bin,%.cpp,$(@F)) $(LDFLAGS) 87*4882a593Smuzhiyun BUILDXX = $(__BUILDXX) > $(@:.bin=.make.output) 2>&1 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun############################### 90*4882a593Smuzhiyun 91*4882a593Smuzhiyun$(OUTPUT)test-all.bin: 92*4882a593Smuzhiyun $(BUILD) -fstack-protector-all -O2 -D_FORTIFY_SOURCE=2 -ldw -lelf -lnuma -lelf -I/usr/include/slang -lslang $(FLAGS_PERL_EMBED) $(FLAGS_PYTHON_EMBED) -DPACKAGE='"perf"' -lbfd -ldl -lz -llzma -lzstd -lcap 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun$(OUTPUT)test-hello.bin: 95*4882a593Smuzhiyun $(BUILD) 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun$(OUTPUT)test-pthread-attr-setaffinity-np.bin: 98*4882a593Smuzhiyun $(BUILD) -D_GNU_SOURCE -lpthread 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun$(OUTPUT)test-pthread-barrier.bin: 101*4882a593Smuzhiyun $(BUILD) -lpthread 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun$(OUTPUT)test-stackprotector-all.bin: 104*4882a593Smuzhiyun $(BUILD) -fstack-protector-all 105*4882a593Smuzhiyun 106*4882a593Smuzhiyun$(OUTPUT)test-fortify-source.bin: 107*4882a593Smuzhiyun $(BUILD) -O2 -D_FORTIFY_SOURCE=2 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun$(OUTPUT)test-bionic.bin: 110*4882a593Smuzhiyun $(BUILD) 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun$(OUTPUT)test-libcap.bin: 113*4882a593Smuzhiyun $(BUILD) -lcap 114*4882a593Smuzhiyun 115*4882a593Smuzhiyun$(OUTPUT)test-libelf.bin: 116*4882a593Smuzhiyun $(BUILD) -lelf 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun$(OUTPUT)test-eventfd.bin: 119*4882a593Smuzhiyun $(BUILD) 120*4882a593Smuzhiyun 121*4882a593Smuzhiyun$(OUTPUT)test-get_current_dir_name.bin: 122*4882a593Smuzhiyun $(BUILD) 123*4882a593Smuzhiyun 124*4882a593Smuzhiyun$(OUTPUT)test-glibc.bin: 125*4882a593Smuzhiyun $(BUILD) 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun$(OUTPUT)test-sched_getcpu.bin: 128*4882a593Smuzhiyun $(BUILD) 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun$(OUTPUT)test-setns.bin: 131*4882a593Smuzhiyun $(BUILD) 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun$(OUTPUT)test-libopencsd.bin: 134*4882a593Smuzhiyun $(BUILD) # -lopencsd_c_api -lopencsd provided by 135*4882a593Smuzhiyun # $(FEATURE_CHECK_LDFLAGS-libopencsd) 136*4882a593Smuzhiyun 137*4882a593SmuzhiyunDWARFLIBS := -ldw 138*4882a593Smuzhiyunifeq ($(findstring -static,${LDFLAGS}),-static) 139*4882a593SmuzhiyunDWARFLIBS += -lelf -lebl -lz -llzma -lbz2 140*4882a593Smuzhiyunendif 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun$(OUTPUT)test-dwarf.bin: 143*4882a593Smuzhiyun $(BUILD) $(DWARFLIBS) 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun$(OUTPUT)test-dwarf_getlocations.bin: 146*4882a593Smuzhiyun $(BUILD) $(DWARFLIBS) 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun$(OUTPUT)test-libelf-getphdrnum.bin: 149*4882a593Smuzhiyun $(BUILD) -lelf 150*4882a593Smuzhiyun 151*4882a593Smuzhiyun$(OUTPUT)test-libelf-gelf_getnote.bin: 152*4882a593Smuzhiyun $(BUILD) -lelf 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun$(OUTPUT)test-libelf-getshdrstrndx.bin: 155*4882a593Smuzhiyun $(BUILD) -lelf 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun$(OUTPUT)test-libdebuginfod.bin: 158*4882a593Smuzhiyun $(BUILD) -ldebuginfod 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun$(OUTPUT)test-libnuma.bin: 161*4882a593Smuzhiyun $(BUILD) -lnuma 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun$(OUTPUT)test-numa_num_possible_cpus.bin: 164*4882a593Smuzhiyun $(BUILD) -lnuma 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun$(OUTPUT)test-libunwind.bin: 167*4882a593Smuzhiyun $(BUILD) -lelf 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun$(OUTPUT)test-libunwind-debug-frame.bin: 170*4882a593Smuzhiyun $(BUILD) -lelf 171*4882a593Smuzhiyun$(OUTPUT)test-libunwind-x86.bin: 172*4882a593Smuzhiyun $(BUILD) -lelf -lunwind-x86 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun$(OUTPUT)test-libunwind-x86_64.bin: 175*4882a593Smuzhiyun $(BUILD) -lelf -lunwind-x86_64 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun$(OUTPUT)test-libunwind-arm.bin: 178*4882a593Smuzhiyun $(BUILD) -lelf -lunwind-arm 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun$(OUTPUT)test-libunwind-aarch64.bin: 181*4882a593Smuzhiyun $(BUILD) -lelf -lunwind-aarch64 182*4882a593Smuzhiyun 183*4882a593Smuzhiyun$(OUTPUT)test-libunwind-debug-frame-arm.bin: 184*4882a593Smuzhiyun $(BUILD) -lelf -lunwind-arm 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun$(OUTPUT)test-libunwind-debug-frame-aarch64.bin: 187*4882a593Smuzhiyun $(BUILD) -lelf -lunwind-aarch64 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun$(OUTPUT)test-libaudit.bin: 190*4882a593Smuzhiyun $(BUILD) -laudit 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun$(OUTPUT)test-libslang.bin: 193*4882a593Smuzhiyun $(BUILD) -lslang 194*4882a593Smuzhiyun 195*4882a593Smuzhiyun$(OUTPUT)test-libslang-include-subdir.bin: 196*4882a593Smuzhiyun $(BUILD) -lslang 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun$(OUTPUT)test-libcrypto.bin: 199*4882a593Smuzhiyun $(BUILD) -lcrypto 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun$(OUTPUT)test-gtk2.bin: 202*4882a593Smuzhiyun $(BUILD) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null) -Wno-deprecated-declarations 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun$(OUTPUT)test-gtk2-infobar.bin: 205*4882a593Smuzhiyun $(BUILD) $(shell $(PKG_CONFIG) --libs --cflags gtk+-2.0 2>/dev/null) 206*4882a593Smuzhiyun 207*4882a593Smuzhiyungrep-libs = $(filter -l%,$(1)) 208*4882a593Smuzhiyunstrip-libs = $(filter-out -l%,$(1)) 209*4882a593Smuzhiyun 210*4882a593SmuzhiyunPERL_EMBED_LDOPTS = $(shell perl -MExtUtils::Embed -e ldopts 2>/dev/null) 211*4882a593SmuzhiyunPERL_EMBED_LDFLAGS = $(call strip-libs,$(PERL_EMBED_LDOPTS)) 212*4882a593SmuzhiyunPERL_EMBED_LIBADD = $(call grep-libs,$(PERL_EMBED_LDOPTS)) 213*4882a593SmuzhiyunPERL_EMBED_CCOPTS = $(shell perl -MExtUtils::Embed -e ccopts 2>/dev/null) 214*4882a593SmuzhiyunFLAGS_PERL_EMBED=$(PERL_EMBED_CCOPTS) $(PERL_EMBED_LDOPTS) 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunifeq ($(CC_NO_CLANG), 0) 217*4882a593Smuzhiyun PERL_EMBED_LDOPTS := $(filter-out -specs=%,$(PERL_EMBED_LDOPTS)) 218*4882a593Smuzhiyun PERL_EMBED_CCOPTS := $(filter-out -flto=auto -ffat-lto-objects, $(PERL_EMBED_CCOPTS)) 219*4882a593Smuzhiyun PERL_EMBED_CCOPTS := $(filter-out -specs=%,$(PERL_EMBED_CCOPTS)) 220*4882a593Smuzhiyun FLAGS_PERL_EMBED += -Wno-compound-token-split-by-macro 221*4882a593Smuzhiyunendif 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun$(OUTPUT)test-libperl.bin: 224*4882a593Smuzhiyun $(BUILD) $(FLAGS_PERL_EMBED) 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun$(OUTPUT)test-libpython.bin: 227*4882a593Smuzhiyun $(BUILD) $(FLAGS_PYTHON_EMBED) 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun$(OUTPUT)test-libbfd.bin: 230*4882a593Smuzhiyun $(BUILD) -DPACKAGE='"perf"' -lbfd -ldl 231*4882a593Smuzhiyun 232*4882a593Smuzhiyun$(OUTPUT)test-libbfd-buildid.bin: 233*4882a593Smuzhiyun $(BUILD) -DPACKAGE='"perf"' -lbfd -ldl 234*4882a593Smuzhiyun 235*4882a593Smuzhiyun$(OUTPUT)test-disassembler-four-args.bin: 236*4882a593Smuzhiyun $(BUILD) -DPACKAGE='"perf"' -lbfd -lopcodes 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun$(OUTPUT)test-reallocarray.bin: 239*4882a593Smuzhiyun $(BUILD) 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun$(OUTPUT)test-libbfd-liberty.bin: 242*4882a593Smuzhiyun $(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun$(OUTPUT)test-libbfd-liberty-z.bin: 245*4882a593Smuzhiyun $(CC) $(CFLAGS) -Wall -Werror -o $@ test-libbfd.c -DPACKAGE='"perf"' $(LDFLAGS) -lbfd -ldl -liberty -lz 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun$(OUTPUT)test-cplus-demangle.bin: 248*4882a593Smuzhiyun $(BUILD) -liberty 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun$(OUTPUT)test-backtrace.bin: 251*4882a593Smuzhiyun $(BUILD) 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun$(OUTPUT)test-timerfd.bin: 254*4882a593Smuzhiyun $(BUILD) 255*4882a593Smuzhiyun 256*4882a593Smuzhiyun$(OUTPUT)test-libdw-dwarf-unwind.bin: 257*4882a593Smuzhiyun $(BUILD) # -ldw provided by $(FEATURE_CHECK_LDFLAGS-libdw-dwarf-unwind) 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun$(OUTPUT)test-libbabeltrace.bin: 260*4882a593Smuzhiyun $(BUILD) # -lbabeltrace provided by $(FEATURE_CHECK_LDFLAGS-libbabeltrace) 261*4882a593Smuzhiyun 262*4882a593Smuzhiyun$(OUTPUT)test-sync-compare-and-swap.bin: 263*4882a593Smuzhiyun $(BUILD) 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun$(OUTPUT)test-compile-32.bin: 266*4882a593Smuzhiyun $(CC) -m32 -o $@ test-compile.c 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun$(OUTPUT)test-compile-x32.bin: 269*4882a593Smuzhiyun $(CC) -mx32 -o $@ test-compile.c 270*4882a593Smuzhiyun 271*4882a593Smuzhiyun$(OUTPUT)test-zlib.bin: 272*4882a593Smuzhiyun $(BUILD) -lz 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun$(OUTPUT)test-lzma.bin: 275*4882a593Smuzhiyun $(BUILD) -llzma 276*4882a593Smuzhiyun 277*4882a593Smuzhiyun$(OUTPUT)test-get_cpuid.bin: 278*4882a593Smuzhiyun $(BUILD) 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun$(OUTPUT)test-bpf.bin: 281*4882a593Smuzhiyun $(BUILD) 282*4882a593Smuzhiyun 283*4882a593Smuzhiyun$(OUTPUT)test-libbpf.bin: 284*4882a593Smuzhiyun $(BUILD) -lbpf 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun$(OUTPUT)test-sdt.bin: 287*4882a593Smuzhiyun $(BUILD) 288*4882a593Smuzhiyun 289*4882a593Smuzhiyun$(OUTPUT)test-cxx.bin: 290*4882a593Smuzhiyun $(BUILDXX) -std=gnu++11 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun$(OUTPUT)test-gettid.bin: 293*4882a593Smuzhiyun $(BUILD) 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun$(OUTPUT)test-jvmti.bin: 296*4882a593Smuzhiyun $(BUILD) 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun$(OUTPUT)test-jvmti-cmlr.bin: 299*4882a593Smuzhiyun $(BUILD) 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun$(OUTPUT)test-llvm.bin: 302*4882a593Smuzhiyun $(BUILDXX) -std=gnu++11 \ 303*4882a593Smuzhiyun -I$(shell $(LLVM_CONFIG) --includedir) \ 304*4882a593Smuzhiyun -L$(shell $(LLVM_CONFIG) --libdir) \ 305*4882a593Smuzhiyun $(shell $(LLVM_CONFIG) --libs Core BPF) \ 306*4882a593Smuzhiyun $(shell $(LLVM_CONFIG) --system-libs) \ 307*4882a593Smuzhiyun > $(@:.bin=.make.output) 2>&1 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun$(OUTPUT)test-llvm-version.bin: 310*4882a593Smuzhiyun $(BUILDXX) -std=gnu++11 \ 311*4882a593Smuzhiyun -I$(shell $(LLVM_CONFIG) --includedir) \ 312*4882a593Smuzhiyun > $(@:.bin=.make.output) 2>&1 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun$(OUTPUT)test-clang.bin: 315*4882a593Smuzhiyun $(BUILDXX) -std=gnu++11 \ 316*4882a593Smuzhiyun -I$(shell $(LLVM_CONFIG) --includedir) \ 317*4882a593Smuzhiyun -L$(shell $(LLVM_CONFIG) --libdir) \ 318*4882a593Smuzhiyun -Wl,--start-group -lclangBasic -lclangDriver \ 319*4882a593Smuzhiyun -lclangFrontend -lclangEdit -lclangLex \ 320*4882a593Smuzhiyun -lclangAST -Wl,--end-group \ 321*4882a593Smuzhiyun $(shell $(LLVM_CONFIG) --libs Core option) \ 322*4882a593Smuzhiyun $(shell $(LLVM_CONFIG) --system-libs) \ 323*4882a593Smuzhiyun > $(@:.bin=.make.output) 2>&1 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun-include $(OUTPUT)*.d 326*4882a593Smuzhiyun 327*4882a593Smuzhiyun$(OUTPUT)test-libaio.bin: 328*4882a593Smuzhiyun $(BUILD) -lrt 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun$(OUTPUT)test-libzstd.bin: 331*4882a593Smuzhiyun $(BUILD) -lzstd 332*4882a593Smuzhiyun 333*4882a593Smuzhiyun$(OUTPUT)test-clang-bpf-co-re.bin: 334*4882a593Smuzhiyun $(CLANG) -S -g -target bpf -o - $(patsubst %.bin,%.c,$(@F)) | \ 335*4882a593Smuzhiyun grep BTF_KIND_VAR 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun$(OUTPUT)test-file-handle.bin: 338*4882a593Smuzhiyun $(BUILD) 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun$(OUTPUT)test-libpfm4.bin: 341*4882a593Smuzhiyun $(BUILD) -lpfm 342*4882a593Smuzhiyun 343*4882a593Smuzhiyun############################### 344*4882a593Smuzhiyun 345*4882a593Smuzhiyunclean: 346*4882a593Smuzhiyun rm -f $(FILES) $(OUTPUT)*.d $(FILES:.bin=.make.output) 347