summaryrefslogtreecommitdiffstats
path: root/share/tests/libc-str-len/Makefile
blob: 223cb8a1e41b02c7c7b24060628e5da7ba18735b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# Copyright 2022 Alejandro Colomar <alx@kernel.org>
# SPDX-License-Identifier:  LGPL-3.0-or-later WITH LGPL-3.0-linking-exception


SHELL := /usr/bin/env bash -Eeuo pipefail


MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
MAKEFLAGS += --no-builtin-variables
MAKEFLAGS += --no-print-directory


CC      := cc
FIND    := find
GREP    := grep
PKGCONF := pkgconf
SORT    := sort


libname := libc-str-len


PKGCONFFLAGS :=

CPPFLAGS :=

CFLAGS := -Wall -Wextra -Werror
CFLAGS += -std=gnu2x
CFLAGS += $(shell $(PKGCONF) $(PKGCONFFLAGS) --cflags $(libname))

LDFLAGS := -Wl,--as-needed
LDFLAGS += -Wl,--no-allow-shlib-undefined
LDFLAGS += -Wl,--no-copy-dt-needed-entries
LDFLAGS += -Wl,--no-undefined
LDFLAGS += $(shell $(PKGCONF) $(PKGCONFFLAGS) --libs-only-L $(libname))
LDFLAGS += $(shell $(PKGCONF) $(PKGCONFFLAGS) --libs-only-other $(libname))

LDLIBS := $(shell $(PKGCONF) $(PKGCONFFLAGS) --libs-only-l $(libname))


TESTDIR := .


TESTS_c := $(shell $(FIND) $(TESTDIR) -type f | $(GREP) '\.c$$' | $(SORT))
TESTS   := $(patsubst %.c,%,$(TESTS_c))


.PHONY: all
all: $(TESTS)


$(TESTS): %: %.c FORCE
	$(info	TEST	$(dir $@))
	$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $< $(LDLIBS) -o $@
	cd $(dir $@) && ./test.sh


V :=
$(V).SILENT:


FORCE: