From 3fc89ce9c0395620a92340e8290c18e156ca367e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 10 Nov 2019 13:10:29 +0000 Subject: [PATCH] WIP --- NOTES | 28 +++++++++++++++++++--------- Subdir.mk.in | 1 + build-aux/subdirmk-setup | 32 ++++++++++++++++++++++++++++++++ build-aux/subdirmk.in | 2 ++ lib/Subdir.mk.in | 2 +- 5 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 Subdir.mk.in create mode 100644 build-aux/subdirmk-setup diff --git a/NOTES b/NOTES index b202381..fcb4e95 100644 --- a/NOTES +++ b/NOTES @@ -1,14 +1,20 @@ -&= => subdir -&_ => subdir_ -&/ => subdir/ -&CAPS => subdir_CAPS -&lc => subdir/lc - -&.= &._ &./ &.CAPS &.lc => $(top_srcdir)/subdir -&:= &:_ &:/ &:CAPS &:lc => $(abs_top_srcdir)/subdir +&= => subdir +&_ => subdir_ +&/ => subdir/ +&CAPS => subdir_CAPS _ counts +&lc => subdir/lc _ counts + +&,= &,_ &,/ &,CAPS &,lc prefixes $(top_srcdir)/subdir +&;= &;_ &;/ &;CAPS &;lc prefixes $(abs_top_srcdir)/subdir + +&. => $(top_srcdir) +&: => $(abs_top_srcdir) + & thing thing => like &thing &thing (until EOL) + (edits only `thing's which are CAPS or lc + and follow a space) -&& => & +&& => & &! spc disables & *until* EOL @@ -22,3 +28,7 @@ eg notably eg &!@@@ @@@ is recognised instead of & @@@!& go back to & + +&TARGETS[_things] is handled specially + must be spelled precisely this way + if no _things, means _all diff --git a/Subdir.mk.in b/Subdir.mk.in new file mode 100644 index 0000000..792d600 --- /dev/null +++ b/Subdir.mk.in @@ -0,0 +1 @@ +# diff --git a/build-aux/subdirmk-setup b/build-aux/subdirmk-setup new file mode 100644 index 0000000..9f3c8c6 --- /dev/null +++ b/build-aux/subdirmk-setup @@ -0,0 +1,32 @@ +#!/usr/bin/perl -w +# +# $(srcdir)/build-aux/subdirmk-setup SUBDIR... +# +# generates +# Subdir.mk.tmp +# Makefile.tmp + +use strict; + +our @allsubdirs = @ARGV; + +sub write_makefile () { + start_output_file("Makefile"); + print O <