1*412f47f9SXin Li# Makefile fragment - requires GNU make 2*412f47f9SXin Li# 3*412f47f9SXin Li# Copyright (c) 2019-2020, Arm Limited. 4*412f47f9SXin Li# SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 5*412f47f9SXin Li 6*412f47f9SXin LiS := $(srcdir)/networking 7*412f47f9SXin LiB := build/networking 8*412f47f9SXin Li 9*412f47f9SXin Liifeq ($(ARCH),) 10*412f47f9SXin Liall-networking check-networking install-networking clean-networking: 11*412f47f9SXin Li @echo "*** Please set ARCH in config.mk. ***" 12*412f47f9SXin Li @exit 1 13*412f47f9SXin Lielse 14*412f47f9SXin Li 15*412f47f9SXin Linetworking-lib-srcs := $(wildcard $(S)/*.[cS]) $(wildcard $(S)/$(ARCH)/*.[cS]) 16*412f47f9SXin Linetworking-test-srcs := $(wildcard $(S)/test/*.c) 17*412f47f9SXin Li 18*412f47f9SXin Linetworking-includes := $(patsubst $(S)/%,build/%,$(wildcard $(S)/include/*.h)) 19*412f47f9SXin Li 20*412f47f9SXin Linetworking-libs := \ 21*412f47f9SXin Li build/lib/libnetworking.so \ 22*412f47f9SXin Li build/lib/libnetworking.a \ 23*412f47f9SXin Li 24*412f47f9SXin Linetworking-tools := \ 25*412f47f9SXin Li build/bin/test/chksum 26*412f47f9SXin Li 27*412f47f9SXin Linetworking-lib-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(networking-lib-srcs))) 28*412f47f9SXin Linetworking-test-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(networking-test-srcs))) 29*412f47f9SXin Li 30*412f47f9SXin Linetworking-objs := \ 31*412f47f9SXin Li $(networking-lib-objs) \ 32*412f47f9SXin Li $(networking-lib-objs:%.o=%.os) \ 33*412f47f9SXin Li $(networking-test-objs) \ 34*412f47f9SXin Li 35*412f47f9SXin Linetworking-files := \ 36*412f47f9SXin Li $(networking-objs) \ 37*412f47f9SXin Li $(networking-libs) \ 38*412f47f9SXin Li $(networking-tools) \ 39*412f47f9SXin Li $(networking-includes) \ 40*412f47f9SXin Li 41*412f47f9SXin Liall-networking: $(networking-libs) $(networking-tools) $(networking-includes) 42*412f47f9SXin Li 43*412f47f9SXin Li$(networking-objs): $(networking-includes) 44*412f47f9SXin Li$(networking-objs): CFLAGS_ALL += $(networking-cflags) 45*412f47f9SXin Li 46*412f47f9SXin Libuild/lib/libnetworking.so: $(networking-lib-objs:%.o=%.os) 47*412f47f9SXin Li $(CC) $(CFLAGS_ALL) $(LDFLAGS) -shared -o $@ $^ 48*412f47f9SXin Li 49*412f47f9SXin Libuild/lib/libnetworkinglib.a: $(networking-lib-objs) 50*412f47f9SXin Li rm -f $@ 51*412f47f9SXin Li $(AR) rc $@ $^ 52*412f47f9SXin Li $(RANLIB) $@ 53*412f47f9SXin Li 54*412f47f9SXin Libuild/bin/test/%: $(B)/test/%.o build/lib/libnetworkinglib.a 55*412f47f9SXin Li $(CC) $(CFLAGS_ALL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS) 56*412f47f9SXin Li 57*412f47f9SXin Libuild/include/%.h: $(S)/include/%.h 58*412f47f9SXin Li cp $< $@ 59*412f47f9SXin Li 60*412f47f9SXin Libuild/bin/%.sh: $(S)/test/%.sh 61*412f47f9SXin Li cp $< $@ 62*412f47f9SXin Li 63*412f47f9SXin Licheck-networking: $(networking-tools) 64*412f47f9SXin Li $(EMULATOR) build/bin/test/chksum -i simple 65*412f47f9SXin Li $(EMULATOR) build/bin/test/chksum -i scalar 66*412f47f9SXin Li $(EMULATOR) build/bin/test/chksum -i simd || true # simd is not always available 67*412f47f9SXin Li 68*412f47f9SXin Liinstall-networking: \ 69*412f47f9SXin Li $(networking-libs:build/lib/%=$(DESTDIR)$(libdir)/%) \ 70*412f47f9SXin Li $(networking-includes:build/include/%=$(DESTDIR)$(includedir)/%) 71*412f47f9SXin Li 72*412f47f9SXin Liclean-networking: 73*412f47f9SXin Li rm -f $(networking-files) 74*412f47f9SXin Liendif 75*412f47f9SXin Li 76*412f47f9SXin Li.PHONY: all-networking check-networking install-networking clean-networking 77