mkpk

Систем за управљање пакетима који користи mk из система Plan9
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 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:
MTODO | 12+++++++++++-
Mlib/build.mk | 2+-
Mlib/defaults.mk | 17+++++------------
Alib/derivatives.mk | 13+++++++++++++
Mlib/standard.mk | 12++++++++++++
измењених датотека: 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"