Files
harbour-core/harbour/make_gnu.sh
Przemyslaw Czerpak 21ddfc5d47 2004-01-12 18:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/hbgtmk.sh
  * harbour/make_rpm.sh
  * harbour/harbour.spec
    * added flex to dependences
    * added --without gpl swich to exclude code which needs 3-rd party
      GPL libs (GPM, SLANG) - necessary for people who want to create
      commercial closed source application

  * harbour/make_gnu.sh
    * modified DJGPP detection - try to use env var first
    * set HB_GT_LIB depending on platform information
    * check PREFIX env var for default installation

  * harbour/make_tgz.sh
    * modified to work with DJGPP and 8.3 file names

  * harbour/bin/hb-func.sh
    * DJGPP support

  * harbour/bin/pack_src.sh
    * autodetect Harbour version number

  * harbour/config/linux/gcc.cf
    * added small comment

  + harbour/config/linux/owatcom.cf
    + OpenWatcom support on Linux

  * harbour/config/w32/global.cf
  * harbour/config/w32/mingw32.cf
    * small modification in clean procedure
    + added Phil's modification for MINGW cross compilation in Linux and BSD

  * harbour/source/compiler/gencobj.c
    + added Phil's modification for MINGW cross compilation in Linux and BSD

  * harbour/include/hbsetup.h
    * added OS_HAS_DRIVE_LETTER, OS_PATH_DELIMITER_STRING, OS_FILE_MASK,
      OS_DRIVE_DELIMITER and HOST_OS_UNIX_COMPATIBLE
    * modified for OW on Linux and MINGW cross compilation
    * added snprintf macro for compilers which do not support it

  * harbour/source/rtl/mod.c
    ! fixed bug in mod(a,b) when a/b exceeds LONG limit

  * harbour/source/rtl/filesys.c
    * removed HB_FS_DRIVE_LETTER - use OS_HAS_DRIVE_LETTER
    * modified for OW on Linux and MINGW cross compilation

  * harbour/contrib/libct/files.c
  * harbour/include/hb_io.h
  * harbour/include/hbdefs.h
  * harbour/source/rtl/diskspac.c
  * harbour/source/rtl/disksphb.c
  * harbour/source/rtl/fssize.c
  * harbour/source/rtl/fstemp.c
  * harbour/source/rtl/hbffind.c
  * harbour/source/rtl/net.c
  * harbour/source/rtl/seconds.c
  * harbour/source/rtl/gtcrs/Makefile
  * harbour/source/rtl/gtcrs/kbdcrs.c
  * harbour/source/rtl/gtpca/gtpca.c
  * harbour/source/rtl/gtsln/Makefile
  * harbour/source/rtl/gtsln/gtsln.c
  * harbour/source/rtl/gtsln/kbsln.c
  * harbour/source/rtl/gtstd/gtstd.c
  * harbour/source/vm/hvm.c
  * harbour/source/vm/mainstd.c
  * harbour/source/vm/mainwin.c
    * modified for OW on Linux and MINGW cross compilation

  * harbour/source/vm/memvars.c
    - removed unnecessary checking for s_globalTable == NULL in
      hb_memvarValueDecRef() - in Harbour it cannot happen
  * harbour/source/vm/itemapi.c
    - removed snprintf macros (see hbsetup.h)
    * fixed possible GPF in hb_itemCopyC()
    * modified hb_itemGetPtr() to check item type
2005-01-12 17:28:05 +00:00

166 lines
5.2 KiB
Bash

#!/bin/sh
[ "$BASH" ] || exec bash `which $0` ${1+"$@"}
#
# $Id$
#
# ---------------------------------------------------------------
# Template to initialize the environment before starting
# the GNU make system for Harbour
#
# For further information about the GNU make system please
# check doc/gmake.txt
#
# Copyright 1999-2001 Viktor Szakats (viktor.szakats@syenar.hu)
# See doc/license.txt for licensing terms.
# ---------------------------------------------------------------
if [ -z "$HB_ARCHITECTURE" ]; then
if [ "$OSTYPE" = "msdosdjgpp" ]; then
hb_arch="dos"
else
hb_arch=`uname -s | tr -d "[-]" | tr '[A-Z]' '[a-z]' 2>/dev/null`
case "$hb_arch" in
*windows*) hb_arch="w32" ;;
*dos) hb_arch="dos" ;;
*bsd) hb_arch="bsd" ;;
esac
fi
export HB_ARCHITECTURE="$hb_arch"
fi
if [ -z "$HB_COMPILER" ]; then
case "$HB_ARCHITECTURE" in
w32) HB_COMPILER="mingw32" ;;
dos) HB_COMPILER="djgpp" ;;
*) HB_COMPILER="gcc" ;;
esac
export HB_COMPILER
fi
if [ -z "$HB_GT_LIB" ]; then
case "$HB_ARCHITECTURE" in
w32) HB_GT_LIB="gtwin" ;;
dos) HB_GT_LIB="gtdos" ;;
os2) HB_GT_LIB="gtos2" ;;
*) HB_GT_LIB="gtstd" ;;
esac
export HB_GT_LIB
fi
if [ -z "$HB_GPM_MOUSE" ]; then
if [ "$HB_ARCHITECTURE" = "linux" ] && \
( [ -f /usr/include/gpm.h ] || [ -f /usr/local/include/gpm.h ]); then
HB_GPM_MOUSE=yes
else
HB_GPM_MOUSE=no
fi
export HB_GPM_MOUSE
fi
if [ -z "$HB_COMMERCE" ]; then export HB_COMMERCE=no; fi
if [ "$HB_COMMERCE" = yes ]
then
export HB_GPM_MOUSE=no
export HB_WITHOUT_GTSLN=yes
fi
# export PRG_USR=
# export C_USR=
# export L_USR=
if [ -z "$PREFIX" ]; then export PREFIX=/usr/local; fi
# Set to constant value to be consistent with the non-GNU make files.
if [ -z "$HB_BIN_INSTALL" ]; then export HB_BIN_INSTALL=$PREFIX/bin/; fi
if [ -z "$HB_LIB_INSTALL" ]; then export HB_LIB_INSTALL=$PREFIX/lib/harbour/; fi
if [ -z "$HB_INC_INSTALL" ]; then export HB_INC_INSTALL=$PREFIX/include/harbour/; fi
if [ -z "$HB_ARCHITECTURE" ]; then
echo "Error: HB_ARCHITECTURE is not set."
fi
if [ -z "$HB_COMPILER" ]; then
echo "Error: HB_COMPILER is not set."
fi
if [ -z "$HB_ARCHITECTURE" ] || [ -z "$HB_COMPILER" ]; then
echo
echo "Usage: make_gnu.sh [command]"
echo
echo "The following commands are supported:"
echo " - all (default)"
echo " - clean"
echo " - install"
echo
echo "Notes:"
echo
echo " - HB_ARCHITECTURE and HB_COMPILER envvars must be set."
echo " The following values are currently supported:"
echo
echo " HB_ARCHITECTURE:"
echo " - dos (HB_GT_LIB=gtdos by default)"
echo " - w32 (HB_GT_LIB=gtw32 by default)"
echo " - os2 (HB_GT_LIB=gtos2 by default)"
echo " - linux (HB_GT_LIB=gtstd by default)"
echo " - bsd (HB_GT_LIB=gtstd by default)"
echo " - darwin (HB_GT_LIB=gtstd by default)"
echo " - sunos (HB_GT_LIB=gtstd by default)"
echo " - hpux (HB_GT_LIB=gtstd by default)"
echo
read
echo " HB_COMPILER:"
echo " - When HB_ARCHITECTURE=dos"
echo " - bcc16 (Borland C++ 3.x, 4.x, 5.0x, DOS 16-bit)"
echo " - djgpp (Delorie GNU C, DOS 32-bit)"
echo " - rxs32 (EMX/RSXNT/DOS GNU C, DOS 32-bit)"
echo " - watcom (Watcom C++ 9.x, 10.x, 11.x, DOS 32-bit)"
echo " - When HB_ARCHITECTURE=w32"
echo " - bcc32 (Borland C++ 4.x, 5.x, Windows 32-bit)"
echo " - gcc (Cygnus/Cygwin GNU C, Windows 32-bit)"
echo " - mingw32 (MinGW32 GNU C, Windows 32-bit)"
echo " - rsxnt (EMX/RSXNT/Win32 GNU C, Windows 32-bit)"
echo " - icc (IBM Visual Age C++, Windows 32-bit)"
echo " - msvc (Microsoft Visual C++, Windows 32-bit)"
echo " - When HB_ARCHITECTURE=linux"
echo " - gcc (GNU C, 32-bit)"
echo " - When HB_ARCHITECTURE=os2"
echo " - gcc (EMX GNU C, OS/2 32-bit)"
echo " - icc (IBM Visual Age C++ 3.0, OS/2 32-bit)"
echo
read
echo " HB_GT_LIB:"
echo " - gtstd (Standard streaming) (for all architectures)"
echo " - gtdos (DOS console) (for dos architecture)"
echo " - gtwin (Win32 console) (for w32 architecture)"
echo " - gtos2 (OS/2 console) (for os2 architecture)"
echo " - gtpca (PC ANSI console) (for all architectures)"
echo " - gtcrs (Curses console) (for linux, w32 architectures)"
echo " - gtsln (Slang console) (for linux, w32 architectures)"
echo
echo " - Use these optional envvars to configure the make process"
echo " when using the 'all' command:"
echo
echo " PRG_USR - Extra Harbour compiler options"
echo " C_USR - Extra C compiler options"
echo " L_USR - Extra linker options"
exit
else
# ---------------------------------------------------------------
# Start the GNU make system
if [ "$HB_ARCHITECTURE" = "bsd" ] || [ `uname` = "FreeBSD" ]; then
gmake $*
else
make $*
fi
if [ "$*" = "clean" ]; then
find . -type d -name "$HB_ARCHITECTURE" | xargs rmdir 2> /dev/null
fi
fi