From 9c6917a866bd7736001b88e10f20e0e35ec7e977 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Thu, 13 Oct 2022 00:05:05 +0200 Subject: Move from make(1) to tup(1) --- .gitignore | 5 +++-- Makefile | 32 +++++++++++--------------------- Tupfile.ini | 8 ++++++++ src/Tupfile | 12 ++++++++++++ 4 files changed, 34 insertions(+), 23 deletions(-) create mode 100644 Tupfile.ini create mode 100644 src/Tupfile diff --git a/.gitignore b/.gitignore index c96aa38..865f7fd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .aspell.en.prepl -*.[ao] -*.so man/*.bak +src/* +!src/*.[ch] +!src/Tupfile diff --git a/Makefile b/Makefile index c9e54d4..788670a 100644 --- a/Makefile +++ b/Makefile @@ -1,31 +1,21 @@ .POSIX: -CFLAGS = -std=c11 -pipe -O3 -Wall -Wextra -Werror -pedantic -PREFIX = /usr -MANDIR = ${PREFIX}/share/man +PREFIX = /usr +DPREFIX = ${DESTDIR}${PREFIX} +MANDIR = ${DPREFIX}/share/man -sources = liblux.o lux.h -outputs = liblux.so liblux.a - -all: ${outputs} - -liblux.o: liblux.c - -liblux.a: ${sources} - ${AR} ${ARFLAGS} $@ liblux.o - -liblux.so: ${sources} - ${CC} ${CFLAGS} -o $@ -fPIC -shared liblux.o +all: + @echo "run `tup` to build the library" >&2 install: - mkdir -p ${PREFIX}/include ${PREFIX}/lib ${MANDIR}/man0 ${MANDIR}/man3 - cp ${outputs} ${PREFIX}/lib - cp lux.h ${PREFIX}/include - cp man/*.0 ${MANDIR}/man0 - cp man/*.3 ${MANDIR}/man3 + mkdir -p ${DPREFIX}/include ${DPREFIX}/lib ${DMANDIR}/man0 ${DMANDIR}/man3 + cp src/liblux.a src/liblux.so ${DPREFIX}/lib + cp src/lux.h ${DPREFIX}/include + cp man/*.0 ${DMANDIR}/man0 + cp man/*.3 ${DMANDIR}/man3 file=/usr/share/groff/site-tmac/mdoc.local; \ grep '^\.ds doc-str-Lb-liblux' $$file > /dev/null || \ cat man/Lb-desc.tmac >> $$file clean: - rm -f ${outputs} liblux.o + rm -rf .tup/ src/*.[ao] src/*.so diff --git a/Tupfile.ini b/Tupfile.ini new file mode 100644 index 0000000..8700219 --- /dev/null +++ b/Tupfile.ini @@ -0,0 +1,8 @@ +Run `tup` to compile everything: + + $ tup + [ tup ] [0.002s] Scanning filesystem... + [ tup ] [0.005s] Reading in new environment variables... + [ tup ] [0.007s] Parsing Tupfiles... + ... + $ diff --git a/src/Tupfile b/src/Tupfile new file mode 100644 index 0000000..ac7f050 --- /dev/null +++ b/src/Tupfile @@ -0,0 +1,12 @@ +import CFLAGS= +CFLAGS += -Wall -Wextra -Wpedantic -Werror +CFLAGS += -march=native -mtune=native +CFLAGS += -fomit-frame-pointer -O3 +CFLAGS += -pipe + +import CC=cc +import AR=ar + +: foreach *.c |> ^ CC %f^ $(CC) $(CFLAGS) -c %f |> %B.o +: *.o |> ^ AR %f^ $(AR) crs %o %f |> liblux.a +: *.o |> ^ CC %f^ $(CC) $(CFLAGS) -fPIC -shared -o %o %f |> liblux.so -- cgit v1.2.3