# Copyright (c) 2023 Emma Tebibyte # Copyright (c) 2023 DTB # Copyright (c) 2023 Sasha Koshka # SPDX-License-Identifier: FSFAP # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice and this # notice are preserved. This file is offered as-is, without any warranty. # If we want to use POSIX make we can’t use ifeq # .POSIX: # .PRAGMA: posix_202x .PHONY: clean .PHONY: install .PHONY: test PREFIX=/usr/local CC=cc CFLAGS=-O3 -Lbuild/lib RUSTC=rustc ifeq ($(CC), gcc) CFLAGS=-O3 -s -Wl,-z,noseparate-code,-z,nosectionheader -flto \ -Lbuild/lib endif ifeq ($(CC), clang) CFLAGS=-O3 -Wall -Lbuild/lib endif ifeq ($(CC), tcc) CFLAGS=-O3 -s -Wl -flto -Lbuild/lib endif build: build_dir false intcmp scrut str strcmp true build_dir: mkdir -p build/o build/lib build/bin clean: rm -rf build/ install: build mkdir -p $(PREFIX)/bin $(PREFIX)/lib mkdir -p $(PREFIX)/man/man1 $(PREFIX)/man/man3 cp -f build/lib/*.so $(PREFIX)/lib/ cp -f build/bin/* $(PREFIX)/bin/ cp -f docs/*.1 $(PREFIX)/man/man1/ cp -f docs/*.3 $(PREFIX)/man/man3/ test: build tests/cc-compat.sh tests/posix-compat.sh false: src/false.rs build_dir $(RUSTC) -o build/bin/false src/false.rs intcmp: src/intcmp.c build_dir $(CC) $(CFLAGS) -o build/bin/intcmp src/intcmp.c scrut: src/scrut.c libfileis build_dir $(CC) $(CFLAGS) -lfileis -o build/bin/scrut src/scrut.c str: src/str.c build_dir $(CC) $(CFLAGS) -o build/bin/str src/str.c strcmp: src/strcmp.c build_dir $(CC) $(CFLAGS) -o build/bin/strcmp src/strcmp.c true: src/true.c build_dir $(CC) $(CFLAGS) -o build/bin/true src/true.c libfileis: src/libfileis.c src/libfileis.h build_dir $(CC) $(CFLAGS) -c -fPIC -o build/o/libfileis.o src/libfileis.c $(CC) -shared -o build/lib/libfileis.so build/o/libfileis.o