Merge pull request #22 from stikonas/bash_parser

Bash parser
This commit is contained in:
fosslinux 2021-01-30 08:15:41 +11:00 committed by GitHub
commit bc402d8af8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 12 deletions

View file

@ -181,14 +181,7 @@ old tooling instead.
#### Part 7: sed 4.0.7
You are most likely aware of GNU `sed`, a line editor. Here, we had to make a
compromise between two versions:
- 1.18: fully functional `s/a/b`, but no `-i`.
- 4.0.7: fully functional `-i`, but broken `s/a/b`.
We opted for the latter, as otherwise there would be no patching of files for
quite some time. We can delete lines from files now!
You are most likely aware of GNU `sed`, a line editor.
#### Part 8: tar 1.12
@ -252,16 +245,17 @@ be useful later for autotools.
of standard UNIX utilities derived from code by Caldera and Sun. Differently from
the analogous utilities from the GNU project, they can be compiled with a simple `Makefile`.
#### Part 21: bash 2.05b
#### Part 18: bash 2.05b
GNU `bash` is the most well known shell and the most complex piece of software
so far. However, it comes with a number of great benefits over kaem, including
proper POSIX sh support, globbing, etc.
NOTE: Currently, there is a bison pre-generated file here, which we are working
to remove.
Bash ships with a bison pre-generated file here which we delete. Unfortunately,
we have not bootstrapped bison but fortunately for us, heirloom yacc is able to
cope here.
#### Part 22: m4 1.4
#### Part 19: m4 1.4
`m4` is the first piece of software we need in the autotools suite. It allows
macros to be defined and files to be generated from those macros.

View file

@ -17,6 +17,7 @@ cp ../../mk/common.mk common.mk
touch config.h
touch include/version.h
touch include/pipesize.h
rm y.tab.c y.tab.h
# Patch
patch -Np0 -i ../../patches/mes-libc.patch

View file

@ -78,6 +78,9 @@ mksignames: $(MKSIGNAMES_OBJS)
signames.h: mksignames
./mksignames $@
y.tab.c: parse.y
yacc -d $^
trap.c: signames.h
bash: libsh.a libglob.a libtilde.a $(OBJS)