Skip to content
This repository has been archived by the owner on Apr 13, 2022. It is now read-only.

Commit

Permalink
merging build-bash and build-mksh into build-shell and adding heirloo…
Browse files Browse the repository at this point in the history
…m sh
  • Loading branch information
geirha committed Sep 25, 2012
1 parent d006441 commit cc6ea02
Show file tree
Hide file tree
Showing 7 changed files with 169 additions and 147 deletions.
27 changes: 16 additions & 11 deletions Makefile
@@ -1,10 +1,14 @@
bashes = build/bin/bash1 build/bin/bash2 build/bin/bash3 build/bin/bash4 build/bin/bash+
awks = build/bin/bwk build/bin/gawk3 build/bin/gawk4 build/bin/mawk build/bin/nawk build/bin/oawk
.PHONY: clean

shells = build/bin/bash1 build/bin/bash2 build/bin/bash3 \
build/bin/bash4 build/bin/bash+ build/bin/mksh build/bin/bsh
awks = build/bin/bwk build/bin/gawk3 build/bin/gawk4 build/bin/mawk \
build/bin/nawk build/bin/oawk

evalbot: hda


initramfs.cpio.gz: $(bashes) build/bin/mksh $(awks) build/bin/adu build/bin/ex initramfs
initramfs.cpio.gz: $(shells) $(awks) build/bin/adu build/bin/ex initramfs
{ cd initramfs && pax -x sv4cpio -w .; } | gzip -9 > initramfs.cpio.gz

initramfs: generate-initramfs
Expand All @@ -23,15 +27,19 @@ clean:
rm -f initramfs.cpio.gz hda hda.tmp fifo *~

build/bin/bash1:
./build-bash 1.14.7 bash1
./build-shell bash 1.14.7 bash1
build/bin/bash2:
./build-bash 2.05b bash2
./build-shell bash 2.05b bash2
build/bin/bash3:
./build-bash 3.2 bash3
./build-shell bash 3.2 bash3
build/bin/bash4:
./build-bash 4.2 bash4
./build-shell bash 4.2 bash4
build/bin/bash+:
./build-bash devel bash+
./build-shell bash devel bash+
build/bin/bsh:
./build-shell bourne 050706 bsh
build/bin/mksh:
./build-shell mksh R40i20120901 mksh

build/bin/bwk:
./build-awk bwk
Expand All @@ -46,9 +54,6 @@ build/bin/nawk:
build/bin/oawk:
./build-awk oawk

build/bin/mksh:
./build-mksh R40i20120901 mksh

build/bin/adu:
./build-adu
build/bin/ex:
Expand Down
121 changes: 0 additions & 121 deletions build-bash

This file was deleted.

13 changes: 0 additions & 13 deletions build-mksh

This file was deleted.

145 changes: 145 additions & 0 deletions build-shell
@@ -0,0 +1,145 @@
#!/bin/bash
shopt -s extglob

shell=$1 version=$2 bin_name=${3:-$shell$version}

mkdir -p build/{bin,man/man1} || exit

case $shell in
mksh)
cd build &&
wget -c -O "mksh-$version.tgz" "https://www.mirbsd.org/MirOS/dist/mir/mksh/snapshot/mksh-$version.tgz" &&

gzip -cd "mksh-$version.tgz" | pax -r &&
cd mksh &&
sh Build.sh &&
cp mksh "../bin/$bin_name" &&
cp mksh.1 "../man/man1/$bin_name.1"
;;
bourne)
cd build &&
wget -c -O heirloom-sh.tar.bz2 "http://sourceforge.net/projects/heirloom/files/heirloom-sh/$version/heirloom-sh-$version.tar.bz2/download" &&
bzip2 -cd heirloom-sh.tar.bz2 | pax -rs '|^[^/]*|heirloom-sh|' &&
cd heirloom-sh &&
make &&
cp sh ../bin/$bin_name &&
cp sh.1 ../man/man1/$bin_name.1
;;
bash) : ;; #handled below
*) exit 1;;
esac

# bash
case $version in
devel)
mkdir -p build/loadables &&
cd bash &&
./configure &&
make &&
cp bash "../build/bin/$bin_name" &&
cp doc/bash.1 "../build/man/man1/$bin_name.1" &&
# loadable builtins
cd examples/loadables &&
make &&
for file in !(*.*); do
[[ -f $file && -x $file ]] || continue
cp "${file}" ../../../build/loadables
done
;;
1.14.7)
cd build &&
wget -c -O "bash-$version.tar.gz" "http://ftp.gnu.org/gnu/bash/bash-$version.tar.gz" &&
gzip -cd "bash-$version.tar.gz" | pax -r &&
cd "bash-$version" &&
patch -p0 << 'EOF' &&
diff -ur bash-1.14.7.orig/machines.h bash-1.14.7/machines.h
--- ../bash-1.14.7.orig/machines.h 1995-12-18 20:13:22.000000000 +0100
+++ ../bash-1.14.7/machines.h 2012-09-16 20:04:56.545130869 +0200
@@ -76,6 +76,32 @@
#define MACHINE_CFLAGS
/* **************************************************************** */
+/* */
+/* x86 64-bit machines */
+/* */
+/* **************************************************************** */
+
+#if defined (__x86_64__) && defined (__linux__)
+# define M_MACHINE "x86_64"
+# define M_OS "Linux"
+# define SYSDEP_CFLAGS -DHAVE_GETDTABLESIZE -DHAVE_BCOPY \
+ -DHAVE_GETPW_DECLS -DHAVE_GETHOSTNAME
+# define REQUIRED_LIBRARIES
+# define HAVE_GETGROUPS
+# define HAVE_STRERROR
+# define VOID_SIGHANDLER
+# define HAVE_SYS_SIGLIST
+# define SEARCH_LIB_NEEDS_SPACE
+# if defined (__GNUC__)
+# define HAVE_FIXED_INCLUDES
+# endif /* __GNUC__ */
+# undef USE_GNU_MALLOC
+# undef HAVE_SETLINEBUF
+# undef HAVE_GETWD
+#endif /* __x86_64__ && __linux__ */
+
+
+/* **************************************************************** */
/* */
/* Sun Microsystems Machines */
/* */
@@ -889,8 +915,6 @@
# define HAVE_STRERROR
# define VOID_SIGHANDLER
# define HAVE_SYS_SIGLIST
-# define HAVE_VFPRINTF
-# define HAVE_VARARGS_H
# define SEARCH_LIB_NEEDS_SPACE
# if defined (__GNUC__)
# define HAVE_FIXED_INCLUDES
diff -ur bash-1.14.7.orig/support/getcppsyms.c bash-1.14.7/support/getcppsyms.c
--- ../bash-1.14.7.orig/support/getcppsyms.c 1995-05-31 17:02:14.000000000 +0200
+++ ../bash-1.14.7/support/getcppsyms.c 2012-09-16 19:57:00.501120007 +0200
@@ -422,6 +422,12 @@
#if defined (vax)
printf (" -Dvax");
#endif /* vax */
+#if defined (__x86_64)
+ printf (" -D__x86_64");
+#endif /* __x86_64 */
+#if defined (__x86_64__)
+ printf (" -D__x86_64__");
+#endif /* __x86_64__ */
printf ("\n");
exit (0);
EOF
make &&
cp bash "../bin/$bin_name" &&
cp documentation/bash.1 "../man/man1/$bin_name.1"
;;
2.05b)
cd build &&
wget -c -O "bash-$version.tar.gz" "http://ftp.gnu.org/gnu/bash/bash-$version.tar.gz" &&
gzip -cd "bash-$version.tar.gz" | pax -r &&
cd "bash-$version" &&
wget -r --level=1 -A 'bash*-[0-9][0-9][0-9]' -nH --cut-dirs=2 "http://ftp.gnu.org/gnu/bash/bash-$version-patches/" &&
cat "../bash-$version-patches"/bash*-[0-9][0-9][0-9] | patch -p0 || exit
./configure --without-bash-malloc && # bash2's malloc doesn't build
make &&
cp bash "../bin/$bin_name" &&
cp doc/bash.1 "../man/man1/$bin_name.1"
;;
3.[0-2]|4.[0-2])
cd build &&
wget -c -O "bash-$version.tar.gz" "http://ftp.gnu.org/gnu/bash/bash-$version.tar.gz" &&
gzip -cd "bash-$version.tar.gz" | pax -r &&
cd "bash-$version" &&
wget -r --level=1 -A 'bash*-[0-9][0-9][0-9]' -nH --cut-dirs=2 "http://ftp.gnu.org/gnu/bash/bash-$version-patches/" &&
cat "../bash-$version-patches"/bash*-[0-9][0-9][0-9] | patch -p0 || exit
./configure &&
make &&
cp bash "../bin/$bin_name" &&
cp doc/bash.1 "../man/man1/$bin_name.1"
;;
esac
4 changes: 4 additions & 0 deletions generate-initramfs
Expand Up @@ -202,6 +202,7 @@ declare -A commands='(
[bash3]="GNU Bourne-Again SHell 3.x"
[bash4]="GNU Bourne-Again SHell 4.x"
[bash+]="GNU Bourne-Again Shell devel branch"
[bsh]="the standard command interpreter"
[bwk]="pattern-directed scanning and processing language"
[gawk3]="pattern scanning and processing language"
[gawk4]="pattern scanning and processing language"
Expand Down Expand Up @@ -404,6 +405,7 @@ read -r shell
case $shell in
bash1) setsid bash1 -login ;;
[bj]sh) PS1='' TIMEOUT=1 setsid exec -a "-$shell" "$shell" ;;
*) setsid "$shell" -l ;;
esac
Expand All @@ -417,6 +419,8 @@ shopt -s nullglob
bashes=( initramfs/bin/bash[1-4] )
ln -sf "${bashes[-1]##*/}" initramfs/bin/bash || exit

# jsh, bourne shell with job control
ln -sf bsh initramfs/bin/jsh

# decide on a /bin/sh
for shell in initramfs/bin/{dash,ksh,bash}; do
Expand Down

0 comments on commit cc6ea02

Please sign in to comment.