xref: /aosp_15_r20/external/arm-optimized-routines/networking/Dir.mk (revision 412f47f9e737e10ed5cc46ec6a8d7fa2264f8a14)
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