configure: pregenerate interface files

Implements: https://todo.sr.ht/~jeremy/esv/8
This commit is contained in:
Jeremy Baxter 2024-08-02 19:05:12 +12:00
parent fc529a3e23
commit ddab4da4fb
2 changed files with 17 additions and 1 deletions

2
.gitignore vendored
View file

@ -1,6 +1,8 @@
*.o *.o
*.so *.so
*.a *.a
di/
esv esv
esvsearch esvsearch
result result

16
configure vendored
View file

@ -5,6 +5,8 @@
set -e set -e
mkf=config.mk mkf=config.mk
di='di'
imports="$di"
objs='esvapi.o util.o initial.o' objs='esvapi.o util.o initial.o'
srcs='esvapi.d util.d initial.d' srcs='esvapi.d util.d initial.d'
@ -115,6 +117,18 @@ gen_DC
gen_CFLAGS gen_CFLAGS
gen_LDFLAGS gen_LDFLAGS
for directory in $imports; do
mkdir -p directory
Iflags="$(printf '%s -I%s' "$Iflags" "$directory" | xargs)"
done
for src in $srcs; do
! (echo "$src" | grep -Eq '\.d$') \
&& throw "$src: invalid source file extension"
[ -t 2 ] && printf ' (DI) %s \r' "$src" 1>&2
"$dc" -o- -op -H -Hd="$di" "$src"
done
rm -f "$mkf" rm -f "$mkf"
{ {
@ -122,7 +136,7 @@ rm -f "$mkf"
_DC = %s _DC = %s
_CFLAGS = %s _CFLAGS = %s
_LDFLAGS = %s _LDFLAGS = %s
' "$dc" "$cflags" "$ldflags" ' "$dc" "$(echo "$cflags $Iflags" | xargs)" "$ldflags"
## generate obj list ## generate obj list
printf '_OBJS =' printf '_OBJS ='