131914882SAlex Richardson# Makefile fragment - requires GNU make 231914882SAlex Richardson# 3*f3087befSAndrew Turner# Copyright (c) 2019-2025, Arm Limited. 4072a4ba8SAndrew Turner# SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 531914882SAlex Richardson 631914882SAlex RichardsonS := $(srcdir)/networking 731914882SAlex RichardsonB := build/networking 831914882SAlex Richardson 931914882SAlex Richardsonifeq ($(ARCH),) 1031914882SAlex Richardsonall-networking check-networking install-networking clean-networking: 1131914882SAlex Richardson @echo "*** Please set ARCH in config.mk. ***" 1231914882SAlex Richardson @exit 1 1331914882SAlex Richardsonelse 1431914882SAlex Richardson 1531914882SAlex Richardsonnetworking-lib-srcs := $(wildcard $(S)/*.[cS]) $(wildcard $(S)/$(ARCH)/*.[cS]) 1631914882SAlex Richardsonnetworking-test-srcs := $(wildcard $(S)/test/*.c) 1731914882SAlex Richardson 1831914882SAlex Richardsonnetworking-includes := $(patsubst $(S)/%,build/%,$(wildcard $(S)/include/*.h)) 1931914882SAlex Richardson 2031914882SAlex Richardsonnetworking-libs := \ 2131914882SAlex Richardson build/lib/libnetworking.so \ 2231914882SAlex Richardson build/lib/libnetworking.a \ 2331914882SAlex Richardson 2431914882SAlex Richardsonnetworking-tools := \ 2531914882SAlex Richardson build/bin/test/chksum 2631914882SAlex Richardson 2731914882SAlex Richardsonnetworking-lib-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(networking-lib-srcs))) 2831914882SAlex Richardsonnetworking-test-objs := $(patsubst $(S)/%,$(B)/%.o,$(basename $(networking-test-srcs))) 2931914882SAlex Richardson 3031914882SAlex Richardsonnetworking-objs := \ 3131914882SAlex Richardson $(networking-lib-objs) \ 3231914882SAlex Richardson $(networking-lib-objs:%.o=%.os) \ 3331914882SAlex Richardson $(networking-test-objs) \ 3431914882SAlex Richardson 3531914882SAlex Richardsonnetworking-files := \ 3631914882SAlex Richardson $(networking-objs) \ 3731914882SAlex Richardson $(networking-libs) \ 3831914882SAlex Richardson $(networking-tools) \ 3931914882SAlex Richardson $(networking-includes) \ 4031914882SAlex Richardson 4131914882SAlex Richardsonall-networking: $(networking-libs) $(networking-tools) $(networking-includes) 4231914882SAlex Richardson 4331914882SAlex Richardson$(networking-objs): $(networking-includes) 4431914882SAlex Richardson$(networking-objs): CFLAGS_ALL += $(networking-cflags) 4531914882SAlex Richardson 4631914882SAlex Richardsonbuild/lib/libnetworking.so: $(networking-lib-objs:%.o=%.os) 4731914882SAlex Richardson $(CC) $(CFLAGS_ALL) $(LDFLAGS) -shared -o $@ $^ 4831914882SAlex Richardson 49*f3087befSAndrew Turnerbuild/lib/libnetworking.a: $(networking-lib-objs) 5031914882SAlex Richardson rm -f $@ 5131914882SAlex Richardson $(AR) rc $@ $^ 5231914882SAlex Richardson $(RANLIB) $@ 5331914882SAlex Richardson 54*f3087befSAndrew Turnerbuild/bin/test/%: $(B)/test/%.o build/lib/libnetworking.a 5531914882SAlex Richardson $(CC) $(CFLAGS_ALL) $(LDFLAGS) -static -o $@ $^ $(LDLIBS) 5631914882SAlex Richardson 5731914882SAlex Richardsonbuild/include/%.h: $(S)/include/%.h 5831914882SAlex Richardson cp $< $@ 5931914882SAlex Richardson 6031914882SAlex Richardsonbuild/bin/%.sh: $(S)/test/%.sh 6131914882SAlex Richardson cp $< $@ 6231914882SAlex Richardson 6331914882SAlex Richardsoncheck-networking: $(networking-tools) 6431914882SAlex Richardson $(EMULATOR) build/bin/test/chksum -i simple 6531914882SAlex Richardson $(EMULATOR) build/bin/test/chksum -i scalar 6631914882SAlex Richardson $(EMULATOR) build/bin/test/chksum -i simd || true # simd is not always available 6731914882SAlex Richardson 6831914882SAlex Richardsoninstall-networking: \ 6931914882SAlex Richardson $(networking-libs:build/lib/%=$(DESTDIR)$(libdir)/%) \ 7031914882SAlex Richardson $(networking-includes:build/include/%=$(DESTDIR)$(includedir)/%) 7131914882SAlex Richardson 7231914882SAlex Richardsonclean-networking: 7331914882SAlex Richardson rm -f $(networking-files) 7431914882SAlex Richardsonendif 7531914882SAlex Richardson 7631914882SAlex Richardson.PHONY: all-networking check-networking install-networking clean-networking 77