brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 215452c Raw
102 lines · plain
1# Makefile fragment - requires GNU make2#3# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4# See https://llvm.org/LICENSE.txt for license information.5# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6 7S := $(srcdir)/string8B := build/string9 10ifeq ($(ARCH),)11all-string check-string install-string clean-string:12	@echo "*** Please set ARCH in config.mk. ***"13	@exit 114else15 16string-lib-srcs := $(wildcard $(S)/$(ARCH)/*.[cS])17string-test-srcs := $(wildcard $(S)/test/*.c)18 19string-includes := $(patsubst $(S)/%,build/%,$(wildcard $(S)/include/*.h))20 21string-libs := \22	build/lib/libstringlib.so \23	build/lib/libstringlib.a \24 25string-tools := \26	build/bin/test/memcpy \27	build/bin/test/memmove \28	build/bin/test/memset \29	build/bin/test/memchr \30	build/bin/test/memcmp \31	build/bin/test/strcpy \32	build/bin/test/stpcpy \33	build/bin/test/strcmp \34	build/bin/test/strchr \35	build/bin/test/strrchr \36	build/bin/test/strchrnul \37	build/bin/test/strlen \38	build/bin/test/strnlen \39	build/bin/test/strncmp40 41string-lib-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(string-lib-srcs)))42string-test-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(string-test-srcs)))43 44string-objs := \45	$(string-lib-objs) \46	$(string-lib-objs:%.o=%.os) \47	$(string-test-objs) \48 49string-files := \50	$(string-objs) \51	$(string-libs) \52	$(string-tools) \53	$(string-includes) \54 55all-string: $(string-libs) $(string-tools) $(string-includes)56 57$(string-objs): $(string-includes)58$(string-objs): CFLAGS_ALL += $(string-cflags)59 60build/lib/libstringlib.so: $(string-lib-objs:%.o=%.os)61	$(CC) $(CFLAGS_ALL) $(LDFLAGS) -shared -o $@ $^62 63build/lib/libstringlib.a: $(string-lib-objs)64	rm -f $@65	$(AR) rc $@ $^66	$(RANLIB) $@67 68build/bin/test/%: $(B)/test/%.o build/lib/libstringlib.a69	$(CC) $(CFLAGS_ALL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS)70 71build/include/%.h: $(S)/include/%.h72	cp $< $@73 74build/bin/%.sh: $(S)/test/%.sh75	cp $< $@76 77check-string: $(string-tools)78	$(EMULATOR) build/bin/test/memcpy79	$(EMULATOR) build/bin/test/memmove80	$(EMULATOR) build/bin/test/memset81	$(EMULATOR) build/bin/test/memchr82	$(EMULATOR) build/bin/test/memcmp83	$(EMULATOR) build/bin/test/strcpy84	$(EMULATOR) build/bin/test/stpcpy85	$(EMULATOR) build/bin/test/strcmp86	$(EMULATOR) build/bin/test/strchr87	$(EMULATOR) build/bin/test/strrchr88	$(EMULATOR) build/bin/test/strchrnul89	$(EMULATOR) build/bin/test/strlen90	$(EMULATOR) build/bin/test/strnlen91	$(EMULATOR) build/bin/test/strncmp92 93install-string: \94 $(string-libs:build/lib/%=$(DESTDIR)$(libdir)/%) \95 $(string-includes:build/include/%=$(DESTDIR)$(includedir)/%)96 97clean-string:98	rm -f $(string-files)99endif100 101.PHONY: all-string check-string install-string clean-string102