чување 845fbdbfdff5e7c2ea33feacc9c4dada3b583793
родитељ 84e779fbd584a22fc345a598447c2b3d008daef4
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Fri, 5 Aug 2022 09:29:54 +0200
Add handling of legal files; split lib/defaults.mk into it and lib/derivatives.mk
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 5, додавања: 42(+), брисања: 14(-)
diff --git a/TODO b/TODO
@@ -1,7 +1,17 @@
TODO
====
-[ ] Handle legal files like the bootstrap scripts
+[x] Change defaults.mk: it should set variables to fixed defaults, and a new
+ file, derivatives.mk, would take into account possibly changed values of
+ variables like DESTDIR and PREFIX
+ - But then standalone lib/*.mk would have to read project's config.mk, whose
+ existance can't be assumed
+ - <| if [ -e config.mk ]; then cat config.mk; fi
+ - This is actually only an issue for build.mk?
+
+[x] Handle legal files like the bootstrap scripts
+ - Handle them differently; since we have mkfiles here, it is possible to
+ specify legal files per-package and avoid automated search
< > Install dependencies (it would call `mk -f $mkpklib/install.mk`)
- It would need dependencies db or dependencies file with the mkfiles; maybe
diff --git a/lib/build.mk b/lib/build.mk
@@ -18,4 +18,4 @@ build-package:QV:
fi
cp -R "$SRCMKFILES/$PKGBASE"/* "$found/"
cd "$found"
- "$MK" ignoreenv=1 package-install
+ "$MK" package-install
diff --git a/lib/defaults.mk b/lib/defaults.mk
@@ -1,17 +1,10 @@
#DESTDIR= # Automatically ignored if empty
-PREFIX= `{ if [ -n "$PREFIX" ]; then echo $PREFIX; \
- else echo /local; fi }
-BINDIR= `{ if [ -n "$BINDIR" ] && [ "$ignoreenv" -ne 1 ]; \
- then echo $BINDIR; \
- else echo $DESTDIR$PREFIX/bin; fi }
-DOCDIR= $DESTDIR/share/doc/$PKG
+PREFIX= /local
+BINDIR= $DESTDIR$PREFIX/bin
+DOCDIR= $DESTDIR$PREFIX/share/doc/$PKG # PKG must be defined
LEGALDIR= $DESTDIR/share/legal/$PKG
-LIBDIR= `{ if [ -n "$LIBDIR" ] && [ "$ignoreenv" -ne 1 ]; \
- then echo $LIBDIR; \
- else echo $DESTDIR$PREFIX/lib; fi }
-MANDIR= `{ if [ -n "$MANDIR" ] && [ "$ignoreenv" -ne 1 ]; \
- then echo $MANDIR; \
- else echo $DESTDIR$PREFIX/share/man; fi }
+LIBDIR= $DESTDIR$PREFIX/lib
+MANDIR= $DESTDIR$PREFIX/share/man
MKFILESREPO= https://git.sr.ht/~strahinja/galeb-mkfiles
PKGDIR= /pkg
diff --git a/lib/derivatives.mk b/lib/derivatives.mk
@@ -0,0 +1,13 @@
+BINDIR= $DESTDIR$PREFIX/bin
+DOCDIR= $DESTDIR$PREFIX/share/doc/$PKG
+LEGALDIR= $DESTDIR/share/legal/$PKG
+LIBDIR= $DESTDIR$PREFIX/lib
+MANDIR= $DESTDIR$PREFIX/share/man
+
+SRCMKFILES= $SRCBASEDIR/mkfiles
+PKGDB= $PKGDIR/pkgdb.tsv
+
+SUCKS= $DESTDIR/sucks
+SUCKSBIN= $SUCKS/bin
+SUCKSLIB= $SUCKS/lib
+SUCKSMAN= $SUCKS/share/man
diff --git a/lib/standard.mk b/lib/standard.mk
@@ -20,6 +20,10 @@ install-standard:QV: all
printf " INST\t%s\n" "$binary"
$INSTALL -Dm0755 "$binary" "$BINDIR/$binary"
done
+ for legalfile in $LEGALFILES; do
+ printf " INST\t%s\n" "$legalfile"
+ $INSTALL -Dm0644 "$legalfile" "$LEGALDIR"
+ done
for doc in $DOCS; do
printf " INST\t%s\n" "$doc"
$INSTALL -Dm644 "$doc" "$DOCDIR/$doc"
@@ -70,6 +74,14 @@ uninstall-standard:QV:
printf " RM\t%s\n" "$BINDIR/$binary"
rm -f "$BINDIR/$binary"
done
+ for legalfile in $LEGALFILES; do
+ printf " RM\t%s\n" "$LEGALDIR/$legalfile"
+ rm -f "$LEGALDIR/$legalfile"
+ done
+ for doc in $DOCS; do
+ printf " RM\t%s\n" "$DOCDIR/$doc"
+ rm -f "$DOCDIR/$doc"
+ done
for libfile in $LIBFILES; do
printf " RM\t%s\n" "$LIBDIR/$libfile"
rm -f "$LIBDIR/$libfile"