X-Git-Url: https://deadsoftware.ru/gitweb?p=cpc.git;a=blobdiff_plain;f=make-bootstrap.sh;h=c3a36e66e3e699c3e28dc0cdec84ab8d4e5f6a3d;hp=db2a7eb519b17da99beca90dd13feffe06931407;hb=bd7398793200348c87a743d5dbd51795c8b113e2;hpb=e6f2dc69e5d8af2c60cf85c43fced7c370a9e427 diff --git a/make-bootstrap.sh b/make-bootstrap.sh index db2a7eb..c3a36e6 100755 --- a/make-bootstrap.sh +++ b/make-bootstrap.sh @@ -1,19 +1,40 @@ -#! /bin/sh +#! /bin/bash set -e +abspath() { + [[ "$1" == /* ]] && echo "$1" || echo "$(pwd)/$1" +} + ###^^^^^^^^^^^^^^^^^^### ### Global variables ### ###__________________### _exec="make-bootstrap.sh" -_this="$(dirname "$(readlink -f "$0")")" -_version="v0.2" +_this="$(dirname "$(abspath "$0")")" +_version="v0.3" +_sign=false + +export CPCFLAGS="-no-use-time $CPCFLAGS" +export CPLFLAGS="$CPLFLAGS" ###^^^^^^^^^^^### ### Functions ### ###___________### +usage() { + echo "Usage: make-bootstrap.sh [options]" + echo "Options:" + echo " -v version Set build version" + echo " -S Sign build" + echo "Environment variables:" + echo " CC C compiler binary" + echo " CFLAGS C compiler options" + echo " CPCFLAGS CPC compiler options" + echo " CPLFLAGS CPL linker options" + exit 2 +} + make_bootstrap() { local _cpu="$1" local _target="$2" @@ -24,6 +45,28 @@ make_bootstrap() { -type d -name 'CodeC' -prune -o -exec rm -rf {} + } +error() { + echo "$_exec:" "$@" + exit 1 +} + +###^^^^^^^^^^^^^^^### +### Parse options ### +###_______________### + +while getopts v:Sh _name +do + case "$_name" in + v) _version="$OPTARG" ;; + S) _sign=true ;; + h|?) usage ;; + esac +done + +if [ -z "$_version" ] || echo "$_version" | grep " " > /dev/null; then + error "version not specified or contain spaces" +fi + ###^^^^^^^^^^^^^^^^^^^^### ### Prebuild C sources ### ###____________________### @@ -31,7 +74,15 @@ make_bootstrap() { rm -rf "$_this/bootstrap" mkdir -p "$_this/bootstrap" make_bootstrap 486 cpfront linux -make_bootstrap arm cpfront linux +#make_bootstrap 486 cpfront cygwin +#make_bootstrap arm cpfront linux +#make_bootstrap powerpc cpfront osx + +###^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^### +### Hack: remove temp files from v0.1 ### +###___________________________________### + +find "$_this/bootstrap" -type f -name '.new*' -delete ###^^^^^^^^^^^^^^^^^^^^^^### ### Package dist sources ### @@ -39,7 +90,7 @@ make_bootstrap arm cpfront linux rm -rf "$_this/cpc-$_version" mkdir -p "$_this/cpc-$_version" -cp -rt "$_this/cpc-$_version" -- \ +cp -r \ "$_this/CHANGELOG" \ "$_this/LICENSE" \ "$_this/README" \ @@ -50,5 +101,14 @@ cp -rt "$_this/cpc-$_version" -- \ "$_this/make-bootstrap.sh" \ "$_this/bootstrap" \ "$_this/src" \ - "$_this/C" + "$_this/C" \ + "$_this/cpc-$_version" tar czf "cpc-$_version.src.tar.gz" "cpc-$_version" + +###^^^^^^^^^^^^^^^^### +### Make signature ### +###________________### + +if $_sign; then + gpg --yes --armor --detach-sig "cpc-$_version.src.tar.gz" +fi