Update m4 to 1.4.7
This commit is contained in:
parent
b88fbd1a2d
commit
c9a390d67c
18
README.md
18
README.md
|
@ -254,13 +254,7 @@ 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
|
we have not bootstrapped bison but fortunately for us, heirloom yacc is able to
|
||||||
cope here.
|
cope here.
|
||||||
|
|
||||||
#### Part 19: m4 1.4.4
|
#### Part 19: flex 2.5.11
|
||||||
|
|
||||||
`m4` is the first piece of software we need in the autotools suite and flex
|
|
||||||
2.6.4. It allows macros to be defined and files to be generated from those
|
|
||||||
macros.
|
|
||||||
|
|
||||||
#### Part 20: flex 2.5.11
|
|
||||||
|
|
||||||
`flex` is a tool for generating lexers or scanners: programs that recognize
|
`flex` is a tool for generating lexers or scanners: programs that recognize
|
||||||
lexical patters.
|
lexical patters.
|
||||||
|
@ -271,7 +265,7 @@ that it can be processed by lex for the Heirloom project (the required
|
||||||
modifications are mostly syntactical, plus a few workarounds to avoid some flex
|
modifications are mostly syntactical, plus a few workarounds to avoid some flex
|
||||||
advanced features).
|
advanced features).
|
||||||
|
|
||||||
#### Part 21: musl 1.1.24
|
#### Part 20: musl 1.1.24
|
||||||
|
|
||||||
`musl` is a C standard library that is lightweight, fast, simple, free, and
|
`musl` is a C standard library that is lightweight, fast, simple, free, and
|
||||||
strives to be correct in the sense of standards-conformance and safety. `musl`
|
strives to be correct in the sense of standards-conformance and safety. `musl`
|
||||||
|
@ -283,13 +277,19 @@ complex programs.
|
||||||
patches. In particular, we replace all weak symbols with strong symbols and will
|
patches. In particular, we replace all weak symbols with strong symbols and will
|
||||||
patch `tcc` in the next step to ignore duplicate symbols.
|
patch `tcc` in the next step to ignore duplicate symbols.
|
||||||
|
|
||||||
#### Part 22: tcc 0.9.27 (musl)
|
#### Part 21: tcc 0.9.27 (musl)
|
||||||
|
|
||||||
We recompile `tcc` against musl. This is a two stage process. First we build
|
We recompile `tcc` against musl. This is a two stage process. First we build
|
||||||
tcc-0.9.27 that itself links to Mes C library but produces binaries linked to
|
tcc-0.9.27 that itself links to Mes C library but produces binaries linked to
|
||||||
musl. Then we recompile newly produced tcc with itself. Interestingly,
|
musl. Then we recompile newly produced tcc with itself. Interestingly,
|
||||||
tcc-0.9.27 linked against musl is self hosting.
|
tcc-0.9.27 linked against musl is self hosting.
|
||||||
|
|
||||||
|
#### Part 22: m4 1.4.7
|
||||||
|
|
||||||
|
`m4` is the first piece of software we need in the autotools suite, flex
|
||||||
|
2.6.4 and bison. It allows macros to be defined and files to be generated from those
|
||||||
|
macros.
|
||||||
|
|
||||||
#### Part 23: flex 2.6.14
|
#### Part 23: flex 2.6.14
|
||||||
|
|
||||||
We recompile unpatched GNU `flex` using older flex 2.5.11. This is again a two
|
We recompile unpatched GNU `flex` using older flex 2.5.11. This is again a two
|
||||||
|
|
|
@ -124,15 +124,15 @@ get_file http://downloads.sourceforge.net/project/heirloom/heirloom-devtools/070
|
||||||
# bash 2.05b
|
# bash 2.05b
|
||||||
get_file https://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
|
get_file https://ftp.gnu.org/pub/gnu/bash/bash-2.05b.tar.gz
|
||||||
|
|
||||||
# m4 1.4.4
|
|
||||||
get_file https://ftp.gnu.org/gnu/m4/m4-1.4.4.tar.gz
|
|
||||||
|
|
||||||
# flex 2.5.11
|
# flex 2.5.11
|
||||||
get_file http://download.nust.na/pub2/openpkg1/sources/DST/flex/flex-2.5.11.tar.gz
|
get_file http://download.nust.na/pub2/openpkg1/sources/DST/flex/flex-2.5.11.tar.gz
|
||||||
|
|
||||||
# musl 1.1.24
|
# musl 1.1.24
|
||||||
get_file https://musl.libc.org/releases/musl-1.1.24.tar.gz
|
get_file https://musl.libc.org/releases/musl-1.1.24.tar.gz
|
||||||
|
|
||||||
|
# m4 1.4.7
|
||||||
|
get_file https://ftp.gnu.org/gnu/m4/m4-1.4.7.tar.gz
|
||||||
|
|
||||||
# flex 2.6.4
|
# flex 2.6.4
|
||||||
get_file https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
|
get_file https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
|
||||||
|
|
||||||
|
|
|
@ -103,13 +103,13 @@ default_src_configure() {
|
||||||
|
|
||||||
# Default function for compiling source. It simply runs make without any parameters.
|
# Default function for compiling source. It simply runs make without any parameters.
|
||||||
default_src_compile() {
|
default_src_compile() {
|
||||||
make
|
make -f Makefile
|
||||||
}
|
}
|
||||||
|
|
||||||
# Default installing function. PREFIX should be set by run.sh script.
|
# Default installing function. PREFIX should be set by run.sh script.
|
||||||
# Note that upstream makefiles might ignore PREFIX and have to be configured in configure stage.
|
# Note that upstream makefiles might ignore PREFIX and have to be configured in configure stage.
|
||||||
default_src_install() {
|
default_src_install() {
|
||||||
make install PREFIX="${PREFIX}"
|
make -f Makefile install PREFIX="${PREFIX}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if bash function exists
|
# Check if bash function exists
|
||||||
|
|
|
@ -1,33 +0,0 @@
|
||||||
PRODUCT = m4
|
|
||||||
VERSION = 1.4
|
|
||||||
|
|
||||||
CC = tcc
|
|
||||||
LD = tcc
|
|
||||||
AR = tcc -ar
|
|
||||||
|
|
||||||
CFLAGS = -I lib \
|
|
||||||
-DPRODUCT=\"$(PRODUCT)\" \
|
|
||||||
-DVERSION=\"$(VERSION)\" \
|
|
||||||
-DHAVE_SIGNAL_H=1 \
|
|
||||||
-DPACKAGE_STRING=\"GNU\ M4\ 1.4.4\"
|
|
||||||
|
|
||||||
LDFLAGS = -L . -lm4
|
|
||||||
|
|
||||||
.PHONY: all
|
|
||||||
|
|
||||||
LIB_SRC = regex getopt getopt1 error obstack xmalloc xstrdup
|
|
||||||
LIB_OBJECTS = $(addprefix lib/, $(addsuffix .o, $(LIB_SRC)))
|
|
||||||
|
|
||||||
M4_SRC = m4 builtin debug eval format freeze input macro output path symtab
|
|
||||||
M4_OBJ = $(addprefix src/, $(addsuffix .o, $(M4_SRC)))
|
|
||||||
|
|
||||||
all: m4
|
|
||||||
|
|
||||||
m4: libm4.a $(M4_OBJ)
|
|
||||||
$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
|
|
||||||
|
|
||||||
libm4.a: $(LIB_OBJECTS)
|
|
||||||
$(AR) cr $@ $^
|
|
||||||
|
|
||||||
install: all
|
|
||||||
install m4 $(PREFIX)/bin
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
|
||||||
|
|
||||||
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
CC = tcc
|
||||||
|
AR = tcc -ar
|
||||||
|
|
||||||
|
CFLAGS = -I lib \
|
||||||
|
-DVERSION=\"1.4.7\" \
|
||||||
|
-DPACKAGE_BUGREPORT=\"bug-m4@gnu.org\" \
|
||||||
|
-DPACKAGE_STRING=\"GNU\ M4\ 1.4.7\" \
|
||||||
|
-DPACKAGE=\"m4\" \
|
||||||
|
-DPACKAGE_NAME=\"GNU\ M4\" \
|
||||||
|
-DHAVE_STDINT_H=1 \
|
||||||
|
-DHAVE___FPENDING=1 \
|
||||||
|
-DHAVE_DECL___FPENDING=1 \
|
||||||
|
-D_GNU_SOURCE=1 \
|
||||||
|
-D_GL_UNUSED= \
|
||||||
|
-D__getopt_argv_const=const \
|
||||||
|
-DSYSCMD_SHELL=\"/bin/sh\"
|
||||||
|
|
||||||
|
LDFLAGS = -L . -lm4
|
||||||
|
|
||||||
|
.PHONY: all
|
||||||
|
|
||||||
|
LIB_SRC = cloexec close-stream dup-safer error exitfail fd-safer fopen-safer getopt getopt1 mkstemp-safer regex obstack tmpfile-safer verror xalloc-die xasprintf xmalloc xvasprintf
|
||||||
|
LIB_OBJECTS = $(addprefix lib/, $(addsuffix .o, $(LIB_SRC)))
|
||||||
|
|
||||||
|
M4_SRC = m4 builtin debug eval format freeze input macro output path symtab
|
||||||
|
M4_OBJ = $(addprefix src/, $(addsuffix .o, $(M4_SRC)))
|
||||||
|
|
||||||
|
all: src/m4
|
||||||
|
|
||||||
|
src/m4: libm4.a $(M4_OBJ)
|
||||||
|
$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
libm4.a: $(LIB_OBJECTS)
|
||||||
|
$(AR) cr $@ $^
|
||||||
|
|
||||||
|
%.o : %.c lib/config.h
|
||||||
|
$(CC) -c -o $@ $< $(CFLAGS)
|
||||||
|
|
||||||
|
lib/config.h:
|
||||||
|
touch lib/config.h
|
||||||
|
|
||||||
|
install: all
|
||||||
|
install src/m4 $(PREFIX)/bin
|
10
sysa/run.sh
10
sysa/run.sh
|
@ -10,17 +10,17 @@ set -e
|
||||||
export PREFIX=/after
|
export PREFIX=/after
|
||||||
|
|
||||||
# Part 19
|
# Part 19
|
||||||
build m4-1.4.4
|
|
||||||
|
|
||||||
# Part 20
|
|
||||||
build flex-2.5.11
|
build flex-2.5.11
|
||||||
|
|
||||||
# Part 21
|
# Part 20
|
||||||
build musl-1.1.24
|
build musl-1.1.24
|
||||||
|
|
||||||
# Part 22
|
# Part 21
|
||||||
build tcc-0.9.27 tcc-musl.sh
|
build tcc-0.9.27 tcc-musl.sh
|
||||||
|
|
||||||
|
# Part 22
|
||||||
|
build m4-1.4.7
|
||||||
|
|
||||||
# Part 23
|
# Part 23
|
||||||
build flex-2.6.4
|
build flex-2.6.4
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue