loa

Virtual machine for the Logic of Assumptions
git clone git://juanmeleiro.mat.br/loa
Log | Files | Refs

commit c478cb456d822ba3957eef09d5fe26af9c1a24b7
parent 2d17ed2923abaa7cbfd924ef9101821cdf8e7d2a
Author: Juan F. Meleiro <juan@juanmeleiro.mat.br>
Date:   Thu,  9 May 2024 10:53:54 +0200

Improve build system by reducing redundant rebuilds

Diffstat:
Mcoding/.gitignore | 4++--
Mcoding/clean.do | 4++--
Acoding/default.o.do | 2++
Mcoding/default.test.do | 11+++++------
Acoding/default.test.o.do | 8++++++++
Mcoding/test.do | 4++--
6 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/coding/.gitignore b/coding/.gitignore @@ -1 +1,2 @@ -*.test -\ No newline at end of file +*.test +*.o diff --git a/coding/clean.do b/coding/clean.do @@ -1 +1 @@ -rm -f *.test -\ No newline at end of file +rm -f *.test *.o +\ No newline at end of file diff --git a/coding/default.o.do b/coding/default.o.do @@ -0,0 +1 @@ +cc -c $(basename "$1" .o).c -o "$3" +\ No newline at end of file diff --git a/coding/default.test.do b/coding/default.test.do @@ -1,6 +1,5 @@ -#!/bin/sh - -headers=*.h -src=$(ls *.c | grep -v .test.c) -redo-ifchange $src $headers -cc -g -Wall -Wextra -fmax-errors=1 $src $1.c -o $3 >&2 +deps=$(grep '^#include ".*"$' $1.c | sed 's/#include "\(.*\)\.h"/\1.o/') +redo-ifchange "$1.o" +redo-ifchange $deps +src=$(ls *.o | grep -v .test.o) +cc -o "$3" $src "$1.o" diff --git a/coding/default.test.o.do b/coding/default.test.o.do @@ -0,0 +1,8 @@ +#!/bin/sh + +headers=*.h +src=$(basename $1 .o).c +deps=$(grep '^#include ".*"$' $src | sed 's/#include "\(.*\)\.h"/\1.c/') +redo-ifchange $deps +redo-ifchange $src +cc -c -g -Wall -Wextra -fmax-errors=1 $src -o $3 >&2 diff --git a/coding/test.do b/coding/test.do @@ -1,8 +1,8 @@ #!/bin/sh -for t in symbol assoc stack tree schema gardener model +for t in symbol assoc stack tree schema gardener zen model do - redo $t.test || exit 1 + redo-ifchange $t.test || exit 1 ./$t.test >&2 || exit 1 done