Files
harbour-core/harbour/make_xmingwce.sh
Viktor Szakats 92de1a6444 2008-08-01 14:44 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* source/pp/ppcore.c
   * doc/whatsnew.txt
     ! __PLATFORM__* macros now all #defined in full uppercase.
       F.e.:
       __PLATFORM__Windows becomes __PLATFORM_WINDOWS
       __PLATFORM__Linux   becomes __PLATFORM__LINUX
       INCOMPATIBLE.

   * contrib/xhb/hbcompat.ch
     + Added compatibility #defines for __PLATFORM__* macros.

   * include/hbdefs.h
     ! Minor formatting.

   * harbour-ce-spec
   * harbour-w32-spec
   * make_xmingw.sh
   * make_xmingwce.sh
   * source/debug/debugger.prg
   * contrib/hbtpathy/telepath.prg
   * contrib/hbw32/w32_tole.prg
   * contrib/hbw32/w32_tprn.prg
   * utils/hbdot/hbdot.prg
   * utils/hbmake/hbmake.prg
     * Changed __PLATFORM__* #define according to latest changes.
     ; NOTE: I find this kind of compile-time platform dependency 
             quite wrong in an normal application, and we should 
             definitely avoid it in core Harbour.
             In core Harbour there is one place where it would 
             better be eliminated, and in order to do this, we'd 
             need to have a filename equality comparison FS 
             function. Maybe we already have one, I don't know.
2008-08-01 13:05:48 +00:00

136 lines
3.6 KiB
Bash
Executable File

#!/bin/sh
[ "$BASH" ] || exec bash `which $0` ${1+"$@"}
#
# $Id$
#
# This script simplifies cross-compiling Harbour for Windows-CE from Unix systems.
#
# Copyright 2007 by Przemyslaw Czerpak (druzus/at/priv.onet.pl)
#
cleanup()
{
rm -fR "${HB_BIN_COMPILE}"
}
export HB_ARCHITECTURE=w32
export HB_COMPILER=cemgw
UNAME=`uname -s | tr -d "[-]" 2>/dev/null`
if [ "$OSTYPE" = "msdosdjgpp" ]; then
HB_HOST_ARCH="dos"
HB_HOST_CC="djgpp"
else
HB_HOST_ARCH=`echo "$UNAME"|tr '[A-Z]' '[a-z]'`
HB_HOST_CC="gcc"
case "$HB_HOST_ARCH" in
*windows*|*mingw32*|msys*) HB_HOST_ARCH="w32"; HB_HOST_CC="mingw32" ;;
*dos) HB_HOST_ARCH="dos" ;;
*bsd) HB_HOST_ARCH="bsd" ;;
*darwin) HB_HOST_ARCH="darwin" ;;
esac
fi
CC_PRG_USR="-D__PLATFORM__WINCE"
if [ "$HB_HOST_ARCH" != "w32" ]; then
CC_PRG_USR="$CC_PRG_USR -D__PLATFORM__WINDOWS -undef:__PLATFORM__UNIX -undef:__PLATFORM__$UNAME"
fi
[ -z "$HB_INSTALL_PREFIX" ] && \
export HB_INSTALL_PREFIX="/usr/local/arm-wince-cemgw-harbour"
export CC_C_USR=""
export C_USR="$CC_C_USR $C_USR"
export CC_PRG_USR
export PRG_USR="$CC_PRG_USR $PRG_USR"
# default cegcc instalation path
[ -z "$CCPATH" ] && CCPATH="/opt/mingw32ce/bin"
export PATH="$CCPATH:$PATH"
# cegcc executables prefix - this
# has changed in cegcc/gcc4.3.0
if [ -z "$CCPREFIX" ]; then
if [ -x "${CCPATH}/arm-wince-mingw32ce-gcc" ]; then
export CCPREFIX="arm-wince-mingw32ce-"
else
if [ -x "${CCPATH}/arm-mingw32ce-gcc" ]; then
export CCPREFIX="arm-mingw32ce-"
else
echo "cegcc compiler executable not found. Ensure you have cegcc package installed in"
echo "/opt/mingw32ce dir, or (alternativly) set environment variable CCPATH to a cegcc"
echo "instalation directory"
exit 1
fi
fi
fi
export CCPATH="${CCPATH}:"
export HB_TOOLS_PREF="hbce"
export HB_XBUILD="wce"
export HB_HOST_BUILD="lib"
export HB_GT_LIB="gtwvt"
export HB_BIN_COMPILE="/tmp/hb-${CCPREFIX}-$$"
rm -fR "${HB_BIN_COMPILE}"
trap cleanup EXIT &>/dev/null
mkdir ${HB_BIN_COMPILE}
DIR=`cd $(dirname $0);pwd`
if [ -z "${HB_COMP_PATH}" ]; then
if which harbour &> /dev/null; then
HB_COMP_PATH=`which harbour 2> /dev/null`
else
HB_COMP_PATH="$DIR/source/main/$HB_HOST_ARCH/$HB_HOST_CC/harbour"
fi
fi
if [ -x "${HB_COMP_PATH}" ]; then
ln -s "${HB_COMP_PATH}" ${HB_BIN_COMPILE}/harbour.exe
else
echo "You must have a working 'harbour' executable for your platform on your PATH."
exit 1
fi
if [ -z "${HB_PPGEN_PATH}" ]; then
if which hbpp &> /dev/null; then
HB_PPGEN_PATH=`which hbpp 2> /dev/null`
elif [ -x "${DIR}/source/pp/${HB_HOST_ARCH}/${HB_HOST_CC}/hbpp" ]; then
HB_PPGEN_PATH="${DIR}/source/pp/${HB_HOST_ARCH}/${HB_HOST_CC}/hbpp"
else
DIR=`dirname ${HB_COMP_PATH}`
if [ -x "${DIR}/hbpp" ]; then
HB_PPGEN_PATH="${DIR}/hbpp"
else
HB_PPGEN_PATH="$DIR/source/pp/$HB_HOST_ARCH/$HB_HOST_CC/hbpp"
fi
fi
fi
if [ -d "${HB_PPGEN_PATH}" ]; then
if [ -x "${HB_PPGEN_PATH}/hbpp" ]; then
HB_PPGEN_PATH="${HB_PPGEN_PATH}/hbpp"
fi
fi
if [ -x "${HB_PPGEN_PATH}" ] && [ -f "${HB_PPGEN_PATH}" ]; then
ln -s ${HB_PPGEN_PATH} ${HB_BIN_COMPILE}/hbpp.exe
HB_PPGEN_PATH="${HB_BIN_COMPILE}"
else
echo "You must have a working 'hbpp' executable for your platform on your PATH."
exit 1
fi
export HB_PPGEN_PATH
case "$1" in
tgz|gnu)
ext=$1
shift
. `dirname $0`/make_${ext}.sh "$@"
;;
*)
. `dirname $0`/make_gnu.sh "$@"
;;
esac
stat="$?"
cleanup
exit "${stat}"