xref: /freebsd/contrib/arm-optimized-routines/networking/Dir.mk (revision f3087bef11543b42e0d69b708f367097a4118d24)
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