From ba1b04d64bdfaf377915b22f77520216ebe47674 Mon Sep 17 00:00:00 2001 From: kx Date: Thu, 1 Oct 2026 12:02:28 +0300 Subject: Version 1.0.2 --- bootstrap | 106 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100755 bootstrap (limited to 'bootstrap') diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..0557f2d --- /dev/null +++ b/bootstrap @@ -0,0 +1,106 @@ +#!/bin/bash + +CWD=`pwd` +program=`basename $0` + +usage() { + cat << EOF_USAGE + +Usage: $program [options] + +Options: + -h,--help Display this message. + -d,--target-dest-dir=DIR The target ROOTFS directory + [default: DIR=/]. + +The script regenerates files that do not need to be stored in Git: + src/mcpp-expr.c from src/mcpp-expr.zubr using ZUBR 4.1.0; + aclocal.m4 and m4 macros using aclocal; + config.h.in using autoheader; + Makefile.in and helper files using automake; + configure using autoconf. + +EOF_USAGE +} + +TARGET_DEST_DIR=/ +ACDIR=usr/share/aclocal +INCDIR=usr/include +SYSTEM_ACDIR= +SYSTEM_INCDIR= + +while [ 0 ] ; do + if [ "$1" = "-h" -o "$1" = "--help" ] ; then + usage + exit 0 + elif [ "$1" = "-d" -o "$1" = "--target-dest-dir" ] ; then + if [ "$2" = "" ] ; then + echo -e "\n${program}: ERROR: --target-dest-dir is not specified.\n" + usage + exit 1 + fi + TARGET_DEST_DIR="$2" + shift 2 + elif [[ $1 == --target-dest-dir=* ]] ; then + TARGET_DEST_DIR="`echo $1 | cut -f2 -d'='`" + shift 1 + else + if [ "$1" != "" ] ; then + echo -e "\n${program}: ERROR: Unknown argument: $1.\n" + usage + exit 1 + fi + break + fi +done + +if [ ! -d "${TARGET_DEST_DIR}" ] ; then + echo -e "\n${program}: ERROR: --target-dest-dir is not a directory.\n" + usage + exit 1 +fi + +# Absolute path: +if [ "${TARGET_DEST_DIR:0:1}" != "/" ] ; then + TARGET_DEST_DIR=${CWD}/${TARGET_DEST_DIR} +fi + +# Remove last '/' char except for the root itself: +if [ "${TARGET_DEST_DIR}" != "/" -a "${TARGET_DEST_DIR: -1}" = "/" ] ; then + len=${#TARGET_DEST_DIR} + let "len = len - 1" + tmp="${TARGET_DEST_DIR:0:$len}" + TARGET_DEST_DIR=${tmp} +fi + +if [ "${TARGET_DEST_DIR}" = "/" ] ; then + SYSTEM_ACDIR=/${ACDIR} + SYSTEM_INCDIR=/${INCDIR} +else + SYSTEM_ACDIR="${TARGET_DEST_DIR}/${ACDIR}" + SYSTEM_INCDIR="${TARGET_DEST_DIR}/${INCDIR}" +fi + +if ! command -v zubr >/dev/null 2>&1 ; then + echo -e "\n${program}: ERROR: ZUBR 4.1.0 is required to regenerate src/mcpp-expr.c.\n" + exit 1 +fi + +( + cd "$CWD/src" || exit 1 + echo -e "\n${program}: producing './src/mcpu-expr.c'" + zubr -vl -s -Bmcpp_ -o mcpp-expr.c mcpp-expr.zubr +) || exit 1 + +aclocal --install -I m4 --force --system-acdir=${SYSTEM_ACDIR} || exit 1 +autoheader --include=${SYSTEM_INCDIR} || exit 1 +automake --gnu --add-missing --copy --force-missing || exit 1 +autoconf --force || exit 1 + +################################################################ +# Remove cache and backup files: +# +rm -rf autom4te.cache src/z.output *~ src/*~ tests/*~ doc/*~ etc/*~ +# +# End of Cleanup. +################################################################ -- cgit v1.2.3