summaryrefslogtreecommitdiff
path: root/pkg/awk
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2016-12-11 16:04:20 -0800
committerMichael Forney <mforney@mforney.org>2016-12-13 23:10:30 -0800
commit293f5a93b77d92fd65db7f3d0df654f102e46cfb (patch)
tree6ecd1170e3dd793862dd852814dc1b4cd5e44260 /pkg/awk
parent9a506a6834df01a26795cea222b410f206efa9fa (diff)
Move to flat package hierarchy
Note to self: never try to move submodules again To migrate your existing submodules (more or less): set -x set -e mkdir .git/modules/pkg for old in */*/src ; do new="pkg/${old#*/}" if ! [ -f "$old/.git" ] || [ "${old%%/*}" = pkg ] ; then continue fi git -C ".git/modules/$old" config core.worktree "../../../../../$new" rmdir "$new" mv "$old" "$new" sed -e "s,$old,$new," "$new/.git" > "$new/.git.tmp" mv "$new/.git.tmp" "$new/.git" mkdir ".git/modules/${new%/src}" mv ".git/modules/$old" ".git/modules/$new" rm "${old%/src}"/*.ninja mv "${old%/src}"/*.tar.{gz,xz,bz2} "${new%/src}/" rmdir "${old%/src}" || true done sed -e 's,^\[submodule "[^/]*/,[submodule "pkg/,' .git/config > .git/config.tmp mv .git/config.tmp .git/config
Diffstat (limited to 'pkg/awk')
-rw-r--r--pkg/awk/.gitignore1
-rw-r--r--pkg/awk/gen.rc25
-rw-r--r--pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch26
-rw-r--r--pkg/awk/rev1
m---------pkg/awk/src0
5 files changed, 53 insertions, 0 deletions
diff --git a/pkg/awk/.gitignore b/pkg/awk/.gitignore
new file mode 100644
index 00000000..012dc66e
--- /dev/null
+++ b/pkg/awk/.gitignore
@@ -0,0 +1 @@
+/tools.ninja
diff --git a/pkg/awk/gen.rc b/pkg/awk/gen.rc
new file mode 100644
index 00000000..9d9b3a2e
--- /dev/null
+++ b/pkg/awk/gen.rc
@@ -0,0 +1,25 @@
+cflags\
+ '-std=c90' \
+ -D '_POSIX_C_SOURCE=200809L' \
+ -I '$outdir' \
+ -I '$srcdir'
+
+yacc gram '$srcdir'/awkgram.y
+build '$outdir'/ytab.h copy '$outdir'/gram.tab.h
+
+{
+ include 'toolchain/$host_toolchain.ninja'
+ cflags -I '$outdir'
+ exe maketab -d '$outdir'/ytab.h maketab.c
+} >tools.ninja ; subninja tools.ninja
+
+rule maketab '(cd $outdir && ./maketab) >$out.tmp && mv $out.tmp $out'
+build '$outdir'/proctab.c maketab '|' '$outdir'/^(maketab ytab.h)
+
+exe awk -d '$outdir'/ytab.h\
+ b.c main.c parse.c tran.c lib.c run.c lex.c\
+ '$outdir'/^(gram.tab.c proctab.c)
+file bin/awk '$outdir'/awk 755
+file share/man/man1/awk.1 '$srcdir'/awk.1 644
+
+fetch git
diff --git a/pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch b/pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch
new file mode 100644
index 00000000..cf62346a
--- /dev/null
+++ b/pkg/awk/patch/0001-maketab-Only-consider-define-lines-that-match-the-ex.patch
@@ -0,0 +1,26 @@
+From dd4904dd150f9dfa2c3ca0392d6870c85fc14c26 Mon Sep 17 00:00:00 2001
+From: Michael Forney <mforney@mforney.org>
+Date: Sat, 10 Dec 2016 19:57:39 -0800
+Subject: [PATCH] maketab: Only consider #define lines that match the expected
+ form
+
+---
+ maketab.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/maketab.c b/maketab.c
+index 31acd75..63208c8 100644
+--- a/maketab.c
++++ b/maketab.c
+@@ -132,7 +132,7 @@ int main(int argc, char *argv[])
+ i = 0;
+ while (fgets(buf, sizeof buf, fp) != NULL) {
+ n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok);
+- if (c != '#' || (n != 4 && strcmp(def,"define") != 0)) /* not a valid #define */
++ if (c != '#' || n != 4 || strcmp(def,"define") != 0) /* not a valid #define */
+ continue;
+ if (tok < FIRSTTOKEN || tok > LASTTOKEN) {
+ /* fprintf(stderr, "maketab funny token %d %s ignored\n", tok, buf); */
+--
+2.11.0
+
diff --git a/pkg/awk/rev b/pkg/awk/rev
new file mode 100644
index 00000000..0cfbf088
--- /dev/null
+++ b/pkg/awk/rev
@@ -0,0 +1 @@
+2
diff --git a/pkg/awk/src b/pkg/awk/src
new file mode 160000
+Subproject e37f882d7273c61cb0b33c47d5fed3801ad38a6