#!/bin/sh # # Shell script to configure TC for MinGW and create the Inno setup script. # # License: TinyCOBOL is covered by GNU General Public License # Copyright (C) 2001-2004 David Essex # # cmd: tconfig.mingw.sh [options] # options: # -h Display this information # -d 'YYYY/MM/DD' Set release date (default is current date) # -i 'directory' Set make file install directory (default='C:/TinyCOBOL') # -l language Set language (en/es/fr/it/pt_BR/ default=en) # -m Set MF compatability option on (default=off) # -r build Set release build (default=1) # -v 'major.minor.patch' Set release version (default is parsed from configure.in) # # e0a="invalid number of parms..." e0b="invalid option(s) " e0c="TC configure and Inno setup script for MinGW" e0d="usage: tconfig.mingw.sh [ options ]\nOptions:\n\ -h Display this information\n\ -d 'YYYY/MM/DD' Set release date (default is current date)\n\ -i 'directory' Set make file install directory (default='C:/TinyCOBOL')\n\ -l language Set language (en/es/fr/it/pt_BR/ default=en)\n\ -m Set MF compatability option on (default=off)\n\ -r build Set release build (default=1)\n\ -v 'major.minor.patch' Set release version (default is parsed from configure.in)\ " # p_print1 () { for arg in "$@" do # echo $arg >&2 printf "$arg\n" >&2 done } # TCOB_MAJOR_VERSION='' TCOB_MINOR_VERSION='' TCOB_PATCH_LEVEL='' TCOB_RELEASE_VERSION=1 TCOB_VERSION='' TCOB_RELEASE_DATE='' tcob_version=$TCOB_VERSION tcob_rdate=$TCOB_RELEASE_DATE tcob_release=$TCOB_RELEASE_VERSION # TCOBPP_MAJOR_VERSION='' TCOBPP_MINOR_VERSION='' TCOBPP_PATCH_LEVEL='' TCOBPP_VERSION='' TCOBPP_RELEASE_DATE='' tcobpp_version=$TCOBPP_VERSION tcobpp_rdate=$TCOBPP_RELEASE_DATE # with_lang='' tcob_lang=en tcob_install_dir='C:/TinyCOBOL' host_os=MinGW # #/* #undef USE_MF_COMPATABILITY */ tcob_mfopt='0' tcob_mfopt1='\/\* \#undef USE_MF_COMPATABILITY \*\/' tcob_mfopt2='\#define USE_MF_COMPATABILITY 1' # errf1=0 # # Get information from configure.in file # p_set_version () { # if [ -z "$tcob_version" ] then TCOB_MAJOR_VERSION=`grep '^TCOB_MAJOR_VERSION' version.txt | cut -f2 -d'='` TCOB_MINOR_VERSION=`grep '^TCOB_MINOR_VERSION' version.txt | cut -f2 -d'='` TCOB_PATCH_LEVEL=`grep '^TCOB_PATCH_LEVEL' version.txt | cut -f2 -d'='` TCOB_VERSION=$TCOB_MAJOR_VERSION.$TCOB_MINOR_VERSION.$TCOB_PATCH_LEVEL tcob_version=$TCOB_VERSION else str1=`echo "$tcob_version" | sed 's|[0-9]*\.[0-9]*\.[0-9]*||g'` # echo "debug: str1=$str1;" if [ -z "$str1" ] then TCOB_MAJOR_VERSION=`echo "$tcob_version" | cut -f1 -d'.'` TCOB_MINOR_VERSION=`echo "$tcob_version" | cut -f2 -d'.'` TCOB_PATCH_LEVEL=`echo "$tcob_version" | cut -f3 -d'.'` TCOB_VERSION=$TCOB_MAJOR_VERSION.$TCOB_MINOR_VERSION.$TCOB_PATCH_LEVEL tcob_version=$TCOB_VERSION else e00="error: version=$tcob_version is invalid ...aborting" p_print1 "$e00" exit 1 fi fi } # p_set_release_date () { # if [ -z "$tcob_rdate" ] then # TCOB_RELEASE_DATE=`date +%Y\\/%m\\/%d | sed 's.\/.\\\/.g'` TCOB_RELEASE_DATE=`date +%Y/%m/%d` tcob_rdate=$TCOB_RELEASE_DATE else str1=`echo "$tcob_rdate" | sed 's|[12][0-9]\{3\}\/[0-9]\{1,2\}\/[0-9]\{1,2\}||g'` if [ -z "$str1" ] then # TCOB_RELEASE_DATE=`echo "$tcob_rdate" | sed 's.\/.\\\/.g'` TCOB_RELEASE_DATE="$tcob_rdate" tcob_rdate=$TCOB_RELEASE_DATE else e00="error: release date=$tcob_rdate is invalid ...aborting" p_print1 "$e00" exit 1 fi fi } # p_set_cobpp_version () { TCOBPP_MAJOR_VERSION=`cat configure.in | grep '^TCOBPP_MAJOR_VERSION' | cut -f2 -d'='` TCOBPP_MINOR_VERSION=`cat configure.in | grep '^TCOBPP_MINOR_VERSION' | cut -f2 -d'='` TCOBPP_PATCH_LEVEL=`cat configure.in | grep '^TCOBPP_PATCH_LEVEL' | cut -f2 -d'='` TCOBPP_VERSION=$TCOBPP_MAJOR_VERSION.$TCOBPP_MINOR_VERSION.$TCOBPP_PATCH_LEVEL TCOBPP_RELEASE_DATE=`cat configure.in | grep '^TCOBPP_RELEASE_DATE' | cut -f2 -d'=' | sed 's.\/.\\\/.g'` tcobpp_version=$TCOBPP_VERSION tcobpp_rdate=$TCOBPP_RELEASE_DATE # # echo "debug: TCOB_RELEASE_DATE=$TCOB_RELEASE_DATE, $tcob_rdate" # echo "debug: TCOBPP_RELEASE_DATE=$TCOBPP_RELEASE_DATE, $tcobpp_rdate" } # # # Check and set language option # p_check_lang_otion () { # case "x$with_lang" in x) tcob_lang='en' ;; xen) tcob_lang='en' ;; xes) tcob_lang='es' ;; xfr) tcob_lang='fr' ;; xit) tcob_lang='it' ;; xpt_BR) tcob_lang='pt_BR' ;; *) echo "Language option '$with_lang' not available, defaulting to language=en (English)" tcob_lang='en';; esac } # # Create PP version and command line help files # p_cobpp () { # p_check_file_exists cobpp/tcppversion.h if [ $errf1 -eq 0 ] then cat cobpp/tcppversion.h.in | \ sed \ -e "s|@TCOBPP_MAJOR_VERSION@|$TCOBPP_MAJOR_VERSION|g" \ -e "s|@TCOBPP_MINOR_VERSION@|$TCOBPP_MINOR_VERSION|g" \ -e "s|@TCOBPP_PATCH_LEVEL@|$TCOBPP_PATCH_LEVEL|g" \ -e "s|@TCOBPP_VERSION@|$tcobpp_version|g" \ -e "s|@TCOBPP_RELEASE_DATE@|$tcobpp_rdate|g" \ -e "s|@host_os@|$host_os|g" \ > cobpp/tcppversion.h fi # # cat cobpp/tcpphelp.h.in | # sed # -e "s|@tcob_lang@|$tcob_lang|g" # > cobpp/tcpphelp.h } # # Create main compiler version and command line help files # p_cob () { p_check_file_exists compiler/htversion.h if [ $errf1 -eq 0 ] then cat compiler/htversion.h.in | \ sed \ -e "s|@TCOB_MAJOR_VERSION@|$TCOB_MAJOR_VERSION|g" \ -e "s|@TCOB_MINOR_VERSION@|$TCOB_MINOR_VERSION|g" \ -e "s|@TCOB_PATCH_LEVEL@|$TCOB_PATCH_LEVEL|g" \ -e "s|@TCOB_VERSION@|$tcob_version|g" \ -e "s|@TCOB_RELEASE_DATE@|$tcob_rdate|g" \ -e "s|@host_os@|$host_os|g" \ > compiler/htversion.h fi # } # # # Create config # p_config () { # p_check_file_exists htconfig.h if [ $errf1 -eq 0 ] then if [ $tcob_mfopt = "0" ] then cat htconfig.mingw.h | \ sed \ -e "s|@tcob_lang@|$tcob_lang|g" \ -e "s|@tcobpp_lang@|$tcob_lang|g" \ -e "s|@install_dir@|$tcob_install_dir|g" \ > htconfig.h else cat htconfig.mingw.h | \ sed \ -e "s|@tcob_lang@|$tcob_lang|g" \ -e "s|@tcobpp_lang@|$tcob_lang|g" \ -e "s|@install_dir@|$tcob_install_dir|g" \ -e "s|$tcob_mfopt1|$tcob_mfopt2|" \ > htconfig.h fi fi # } # # Create make and WIN32 resource files # p_main () { # p_check_file_exists Makefile if [ $errf1 -eq 0 ] then cp -f Makefile.mingw Makefile fi # p_check_file_exists cobpp/Makefile if [ $errf1 -eq 0 ] then # cp -i cobpp/Makefile.mingw cobpp/Makefile cat cobpp/Makefile.mingw | \ sed \ -e "s|@install_dir@|$tcob_install_dir|g" \ > cobpp/Makefile fi # p_check_file_exists compiler/Makefile if [ $errf1 -eq 0 ] then # cp -i compiler/Makefile.mingw compiler/Makefile cat compiler/Makefile.mingw | \ sed \ -e "s|@install_dir@|$tcob_install_dir|g" \ > compiler/Makefile fi # p_check_file_exists lib/Makefile if [ $errf1 -eq 0 ] then # cp -i lib/Makefile.mingw lib/Makefile cat lib/Makefile.mingw | \ sed \ -e "s|@tcob_version@|$TCOB_VERSION|g" \ -e "s|@install_dir@|$tcob_install_dir|g" \ > lib/Makefile fi # p_check_file_exists cobroutines/Makefile if [ $errf1 -eq 0 ] then # cp -i lib/Makefile.mingw lib/Makefile cat cobroutines/Makefile.mingw | \ sed \ -e "s|@tcob_version@|$TCOB_VERSION|g" \ -e "s|@install_dir@|$tcob_install_dir|g" \ > cobroutines/Makefile fi # p_check_file_exists compiler/htcobolrc if [ $errf1 -eq 0 ] then cp -f compiler/htcobolrc.mingw compiler/htcobolrc fi # p_check_file_exists lib/htcobolrt.rc if [ $errf1 -eq 0 ] then cat lib/htcobolrt.rc.in | \ sed \ -e "s|@TCOB_MAJOR_VERSION@|$TCOB_MAJOR_VERSION|g" \ -e "s|@TCOB_MINOR_VERSION@|$TCOB_MINOR_VERSION|g" \ -e "s|@TCOB_PATCH_LEVEL@|$TCOB_PATCH_LEVEL|g" \ -e "s|@TCOB_VERSION@|$tcob_version|g" \ -e "s|@TCOB_RELEASE_DATE@|$tcob_rdate|g" \ > lib/htcobolrt.rc fi # p_check_file_exists cobrun/Makefile if [ $errf1 -eq 0 ] then # cp -i cobrun/Makefile.mingw cobrun/Makefile cp -f cobrun/Makefile.mingw cobrun/Makefile cat cobrun/Makefile.mingw | \ sed \ -e "s|@tcob_version@|$TCOB_VERSION|g" \ -e "s|@install_dir@|$tcob_install_dir|g" \ > cobrun/Makefile fi # } # # # Create the Inno setup script from template # p_isetup () { p_check_file_exists tcobol.iss if [ $errf1 -eq 0 ] then t1=`echo ' ' | tr ' ' '\15'` # -e "s|$|$t1|" # sed -c cat info/isetup/tcobol.iss.in | \ sed \ -e "s|@TCOB_VERSION@|$TCOB_MAJOR_VERSION.$TCOB_MINOR_VERSION|g" \ -e "s|@TCOB_RELEASE_VERSION@|$tcob_release|g" \ -e "s|$|$t1|" \ > tcobol.iss fi } # # # Check if make files install directory exists # p_check_install_dir () { # if [ -d "$tcob_install_dir" ] then e22="WARNING: \n\ Install directory '$tcob_install_dir' exists.\n\ Directory contents will be over-written during installation process. \n" # printf "$e22" fi } # # # Check if make files install directory exists # p_check_file_exists () { # errf1=0 if [ -f "$1" ] then e22="file exists, overwrite '$1' ? y/n[n]:" printf "$e22" read reply if [ "$reply" != "y" ] then errf1=5 fi fi } # while getopts hd:i:l:mr:v: opt do case "$opt" in h) p_print1 "$e0c" "$e0d" exit 1 ;; d) tcob_rdate=$OPTARG ;; i) # tcob_install_dir=$OPTARG # sed 's.\/.\\\/.g' # tcob_install_dir0=`echo "$OPTARG" | sed "s|'\'|'\\\'|g"` # tcob_install_dir0=`echo "$OPTARG" | sed 's|\\|\\\/|g'` # echo "OPTARG=$OPTARG, tcob_install_dir=$tcob_install_dir;" # exit 1 tcob_install_dir=`echo "$OPTARG" | tr '\134' '\57'` ;; l) with_lang=$OPTARG p_check_lang_otion ;; m) tcob_mfopt='1' ;; r) tcob_release=$OPTARG ;; v) tcob_version=$OPTARG ;; \?) # e1="$e0b$opt ..." p_print1 "$e0c" "$e0d" exit 1 ;; esac done # p_check_install_dir # p_set_release_date p_set_version p_set_cobpp_version # p_main # p_config # p_cobpp # p_cob # p_isetup #