Files
org-hyperion-cules/_build
Volker Bandke 2cbcde6a89 Fix Keyboard processing for pseudo-graphical console (by Marian Gasparovic)
git-svn-id: file:///home/jj/hercules.svn/trunk@2141 956126f8-22a0-4046-8f4a-272fa8102e63
2003-12-19 07:32:52 +00:00

362 lines
13 KiB
Bash

#!/bin/bash
# +-------------------------------------------------------------------+
# ! !
# ! Name: _build !
# ! !
# ! Desc: build Hercules with various options !
# ! !
# ! Usage: !
# ! !
# ! >>- build -+------------------------+-+---------------------+-> !
# ! ! ! ! ! !
# ! +- -c --+- i586 -------+-+ +- -t -+-- fthread -+-+ !
# ! ! ! ! ! !
# ! +- i686 -------+ +-- f -------+ !
# ! ! ! ! ! !
# ! +- pentium ----+ +-- pthread -+ !
# ! ! ! ! ! !
# ! +- athlon -----+ +-- p -------+ !
# ! ! ! !
# ! +- pentiumpro -+ !
# ! ! ! !
# ! +- p4 ---------+ !
# ! ! ! !
# ! +- pentium4 ---+ !
# ! !
# ! >---------+-------+------------------------------------------> !
# ! ! ! !
# ! +- -f --+ force rebuilding of configure !
# ! !
# ! !
# ! >---------+-------------------------------------+------------>< !
# ! ! ! !
# ! +- -p -- number_of_processors (<=8) --+ !
# ! !
# ! !
# ! Defaults: build -c `uname -m` -t f -p 2 !
# ! !
# +-------------------------------------------------------------------+
# !
# ! Change Log: '$Log$
# ! Change Log: 'Revision 1.20 2003/10/12 06:48:13 vbandke
# ! Change Log: 'remove extraneous CR from _build scripts
# ! Change Log: '
# ! Change Log: 'Revision 1.19 2003/10/06 19:51:24 vbandke
# ! Change Log: 'Add support for Linux build. Add support for -p flag (number of processors)
# ! Change Log: '
# ! Change Log: 'Revision 1.18 2003/08/26 11:53:08 vbandke
# ! Change Log: 'remove reference to ABOUT-NLS. Add option -f to forece generation of ./configure
# ! Change Log: '
# ! Change Log: 'Revision 1.17 2003/08/15 13:56:14 vbandke
# ! Change Log: 'fixed minor details
# ! Change Log: '
# ! Change Log: 'Revision 1.16 2002/12/16 16:19:17 vbandke
# ! Change Log: 'remove --prefix=`pwd` from ./configure invocation
# ! Change Log: '
# ! Change Log: 'Revision 1.15 2002/12/15 21:56:03 vbandke
# ! Change Log: 'Complete rework. Include support for P4 processor
# ! Change Log: '
function pause() {
echo -e -n "${MSG}Press the ${MSGHI}ENTER${MSG} key to continue"
read dummy
}
function log() {
if [ $# != 0 ] ; then
THE_TIME=`date +%H:%M:%S`
echo -e "${MSG}${THE_TIME}${DEFAULT} - ${MSGHI}${1}${DEFAULT}"
echo -e "${THE_TIME} - ${1}" >>${LOGFILE} 2>&1
fi
return
}
function logn() {
if [ $# != 0 ] ; then
echo -e " ${MSGHI}${1}${DEFAULT}"
echo -e " ${1}" >>${LOGFILE} 2>&1
fi
return
}
function loga() {
if [ $# != 0 ] ; then
THE_TIME=`date +%H:%M:%S`
echo -e "${MSG}${THE_TIME}${DEFAULT} - ${ERRHI}\a${1}${DEFAULT}"
echo -e "${THE_TIME} - ${1}" >>${LOGFILE} 2>&1
fi
return
}
function lower() {
if [ "${1}X" = "X" ] ; then
echo ""
else
echo -E "${1}" | tr [:upper:] [:lower:]
fi
}
function upper() {
if [ "${1}X" = "X" ] ; then
echo ""
else
echo -E "${1}" | tr [:lower:] [:upper:]
fi
}
function abort() {
loga "*******************************************************************"
loga "* *"
loga "* A B O R T *"
loga "* ========= *"
loga "* *"
loga "*******************************************************************"
logn " "
logn "${1}"
logn " "
logn "Check error messages in logfile ${LOGFILE}"
logn " "
pause
exit
}
clear
. set_color_vars
if [ ${OSTYPE} = cygwin ] ; then
THIS_CYGWIN=`cygcheck -s | grep -i dll\ version:`
THIS_CYGWIN=${THIS_CYGWIN##*: }
DEFTHREAD=fthreads
else
THIS_CYGWIN=n/a
DEFTHREAD=posix
fi
MYCMD=`basename ${0}`
LOGFILE=`pwd`/${MYCMD}.log
cat >${LOGFILE}<<!EOF!
*************************************************************************
*
* Name: ${LOGFILE}
*
* Date: `date`
*
* Command line: ${0} ${1} ${2} ${3} ${4} ${5} ${6} ${7} ${8} ${9}
*
*************************************************************************
!EOF!
log "Building Hercules Binaries from Local Source"
THREAD_SET=false
CPU_SET=false
NUMCPU_SET=false
NUMCPU=2
AUTO_SET=false
ANSI_SET=true
CPU_TYPE=auto
THREAD_TYPE=fthread
while getopts :c:fn:p:t: THE_OPT ; do
THE_OPT=`lower ${THE_OPT}`
case ${THE_OPT} in
c) CPU_TYPE=${OPTARG}
CPU_SET=true
;;
f) rm -f ./configure
;;
n) ANSI_SET=false
;;
p) NUMCPU_SET=true
NUMCPU=${OPTARG}
;;
t) THREAD_TYPE=${OPTARG}
THREAD_SET=true
;;
:) abort "Required information is missing"
;;
\?) loga "Invalid command switch ${OPTARG}\n"
logn "Syntax is\n"
logn "_build [-c <cputype>] [-t <threadmodel>] [-n] [-f] [-p number_of_CPUs]"
logn " ! ! ! ! !"
logn " ! ! ! ! +--- Number of emulated"
logn " ! ! ! ! Hercules processors"
logn " ! ! ! +-------- force rebuild of configure"
logn " ! ! +------------- no-ansi, do not"
logn " ! ! use fancy colours"
logn " ! +-------------------------------- thread model to use"
logn " ! f or fthread or fish"
logn " ! p or pthread or posix"
logn " +----------------------------------------------- target cpu type "
logn " i586 for Pentium "
logn " i686 for Pentium Pro "
logn " p4 for Pentium 4 "
logn " "
logn " The default is ${MYCMD} -c `uname -m` -t ${DEFTHREAD} -p 2"
logn " "
pause
exit
;;
esac
done
if ! ${CPU_SET} ; then
CPU_TYPE=`uname -m`
HOST_OPT=
fi
if ! ${NUMCPU_SET} ; then
NUMCPU=2
fi
case ${OSTYPE} in
cygwin) OSTEXT=cygwin
;;
linux*) OSTEXT=linux-gnu
;;
*) abort "This script does not work for OSTYPE=${OSTYPE}"
;;
esac
CPU_TYPE=`lower ${CPU_TYPE}`
log "CPU type ................................ ${CPU_TYPE}"
case ${CPU_TYPE} in
i586 | pentium | athlon)
HOST_OPT=--host=i586-pc-${OSTEXT}
TARG_CPU=i586
;;
i686 | pentiumpro)
HOST_OPT=--host=i686-pc-${OSTEXT}
TARG_CPU=i686
;;
p4 | pentium4)
# HOST_OPT=--host=p4-pc-${OSTEXT}
TARG_CPU=p4
OPTOPT="-fomit-frame-pointer -O3 -march=pentium4 -mcpu=pentium4"
OPTOPT=${OPTOPT}" -mmmx -msse -msse2 -minline-all-stringops -mfpmath=sse"
OPTOPT=${OPTOPT}" -maccumulate-outgoing-args"
;;
*) abort "Invalid CPU type ${CPU_TYPE}"
;;
esac
log "Number of host processors supported ..... ${NUMCPU}"
if ! ${THREAD_SET} ; then
if [ ${OSTYPE} = cygwin ] ; then
THREAD_TYPE=fthread
else
THREAD_TYPE=pthread
fi
fi
THREAD_TYPE=`lower ${THREAD_TYPE}`
log "Threading model being used .............. ${THREAD_TYPE}"
case ${THREAD_TYPE} in
f | fthread* | fish ) FTHREAD=yes
THREAD_TYPE="optimzed thread (Fish)"
;;
p | pthread* | posix) FTHREAD=no
THREAD_TYPE="standard thread (posix)"
;;
*) abort "Invalid thread model \"${THREAD_TYPE}\""
;;
esac
if test -f Makefile ; then
log "Cleaning up previous installation"
log "make uninstall"
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! make uninstall
! ==============
!
+------------------------------------------------------------------------
!EOF!
make uninstall >>${LOGFILE} 2>&1
log "make distclean"
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! make distclean
! ==============
!
+------------------------------------------------------------------------
!EOF!
make distclean >>${LOGFILE} 2>&1
fi
if ! test -f ./configure ; then
log "Running autogen.sh"
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! bash autogen.sh
! ===============
!
+------------------------------------------------------------------------
!EOF!
bash autogen.sh >>${LOGFILE} 2>&1 || abort "autogen processing failed"
log "autogen completed successfully"
fi
logn "./configure ${HOST_OPT}"
logn " --enable-fthreads=${FTHREAD}"
logn " --enable-custom=\"compiled for ${TARG_CPU}\""
if [ "${OPTOPT}X" != "X" ] ; then
logn " --enable-optimization=\"${OPTOPT:0:27}\"... "
fi
logn " --enable-multi-cpu=${NUMCPU} "
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! ./configure
! ===========
!
+------------------------------------------------------------------------
!EOF!
while ! test -f Makefile ; do
if [ "${OPTOPT}X" != "X" ] ; then
./configure ${HOST_OPT} \
--enable-fthreads=${FTHREAD} \
--enable-custom="compiled for ${TARG_CPU}" \
--enable-optimization="${OPTOPT}" \
--enable-cckd-bzip2 \
--enable-het-bzip2 \
--enable-multi-cpu=${NUMCPU} >>${LOGFILE} 2>&1
else
./configure ${HOST_OPT} \
--enable-fthreads=${FTHREAD} \
--enable-custom="compiled for ${TARG_CPU}" \
--enable-cckd-bzip2 \
--enable-het-bzip2 \
--enable-multi-cpu=${NUMCPU} >>${LOGFILE} 2>&1
fi
done
RC=$?
if [ ${RC} != 0 ] ; then
abort "./configure script failed"
fi
rm -f version.o 2>/dev/null
log "make"
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! make
! ====
!
+------------------------------------------------------------------------
!EOF!
make >>${LOGFILE} 2>&1 || abort "make failed"
log "make install-strip"
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! make install-strip
! ==================
!
+------------------------------------------------------------------------
!EOF!
make install-strip >>${LOGFILE} 2>&1 || abort "make install-strip failed"
cat >>${LOGFILE} <<!EOF!
+------------------------------------------------------------------------
!
! Time: `date +%H:%M:%S`
!
! F I N I T O ! ! !
! ===================
!
+------------------------------------------------------------------------
!EOF!