Files
harbour-core/harbour/make_gnu.sh
Viktor Szakats e85ec8a2c2 2009-08-14 23:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    + Separated instructions for linux/darwin and rest of *nixes.
      The only difference is that the latter needs 'gmake' command
      to start.
    + MSYS/Cygwin section extended a bit. (It's now possible to
      build for any compilers from MSYS/Cygwin)

  * make_gnu.sh
    % Deleted unused HB_ARCH64 variable.

  * config/global.cf
    - Deleted svnversion trick since it's not guaranteed this
      command is present on builder's system.
    + Added doc links from make_gnu.sh. (deleted from there)
    * Changed to default HB_INSTALL_PREFIX to /usr/local on
      *nix systems. I very much don't like this (even though I
      understand why it's done that way).
    + Added {HB_TOP} macro for HB_INSTALL_PREFIX, so if someone
      wants to install Harbour in its own dir, it enough to do:
      export/set HB_INSTALL_PREFIX={HB_TOP}.
      This is crucial if someone doesn't want to "pollute" system
      areas with Harbour builds, doesn't want to use admin rights
      to make the install, or if someone wants to use multiple
      Harbour builds in parallel for any reason. hbmk2 works
      perfectly without Harbour being installed to system location.
    + Whenever HB_INSTALL_PREFIX is modified by GNU Make (defaulting
      or macro replacement), the new value will be presented for the
      user.
    % Minor optimization.
    * Minor cleanups to pkg dir assembling logic.

  * config/linux/global.cf
    + Added -fPIC detection logic. This is just a start, it doesn't
      replicate full logic found in make_gnu.sh. Przemek, if you have
      some spare time, please look into it.
2009-08-14 22:00:32 +00:00

163 lines
4.4 KiB
Bash
Executable File

#!/bin/sh
[ "$BASH" ] || exec bash `which $0` ${1+"$@"}
#
# $Id$
#
# ---------------------------------------------------------------
# Copyright 1999-2001 Viktor Szakats (harbour.01 syenar.hu)
# See COPYING for licensing terms.
#
# Harbour Project build script (for *nix systems)
#
# Please read INSTALL for further information.
# ---------------------------------------------------------------
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*|*mingw32*|msys*) hb_arch="win" ;;
cygwin*) hb_arch="cyg" ;;
*os/2*) hb_arch="os2" ;;
*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
win) HB_COMPILER="mingw" ;;
cyg) HB_COMPILER="cygwin" ;;
dos) HB_COMPILER="djgpp" ;;
*) HB_COMPILER="gcc" ;;
esac
export HB_COMPILER
fi
if [ "$HB_ARCHITECTURE" = "cyg" ]
then
export HB_ARCHITECTURE=win
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 [ "$HB_ARCHITECTURE" = "linux" ] && \
[ "$HB_COMPILER" != "sunpro" ]
then
if [ "${HB_USER_CFLAGS}" = "${HB_USER_CFLAGS//-fPIC/}" ]
then
HB_CPU=`uname -m`
case "$HB_CPU" in
*[@_]64)
export HB_USER_CFLAGS="$HB_USER_CFLAGS -fPIC"
;;
*[ix]*86)
;;
*[ix]*86[^0-9]*)
;;
*)
export HB_USER_CFLAGS="$HB_USER_CFLAGS -fPIC"
;;
esac
fi
fi
if [ "$HB_ARCHITECTURE" = "win" ] || \
[ "$HB_ARCHITECTURE" = "wce" ] || \
[ "$HB_ARCHITECTURE" = "dos" ] || \
[ "$HB_ARCHITECTURE" = "os2" ]; then
if [ -n "$HB_INSTALL_PREFIX" ]; then
export HB_INSTALL_PREFIX="${HB_INSTALL_PREFIX//\\//}"
fi
if [ -n "$HB_BIN_INSTALL" ]; then
export HB_BIN_INSTALL="${HB_BIN_INSTALL//\\//}"
fi
if [ -n "$HB_LIB_INSTALL" ]; then
export HB_LIB_INSTALL="${HB_LIB_INSTALL//\\//}"
fi
if [ -n "$HB_INC_INSTALL" ]; then
export HB_INC_INSTALL="${HB_INC_INSTALL//\\//}"
fi
if [ -n "$HB_DOC_INSTALL" ]; then
export HB_DOC_INSTALL="${HB_DOC_INSTALL//\\//}"
fi
fi
[ -z "$HB_INSTALL_PREFIX" ] && [ -n "$PREFIX" ] && export HB_INSTALL_PREFIX="$PREFIX"
[ -z "$HB_INSTALL_PREFIX" ] && export HB_INSTALL_PREFIX="/usr/local"
# Set to constant value to be consistent with the non-GNU make files.
case "$HB_INSTALL_PREFIX" in
/usr|/usr/local|/opt)
hb_instsubdir="/harbour"
;;
*)
hb_instsubdir=""
;;
esac
if [ -z "$HB_BIN_INSTALL" ]; then export HB_BIN_INSTALL="$HB_INSTALL_PREFIX/bin"; fi
if [ -z "$HB_LIB_INSTALL" ]; then export HB_LIB_INSTALL="$HB_INSTALL_PREFIX/lib$hb_instsubdir"; fi
if [ -z "$HB_INC_INSTALL" ]; then export HB_INC_INSTALL="$HB_INSTALL_PREFIX/include$hb_instsubdir"; fi
if [ "$HB_ARCHITECTURE" = "win" ] || \
[ "$HB_ARCHITECTURE" = "wce" ] || \
[ "$HB_ARCHITECTURE" = "dos" ] || \
[ "$HB_ARCHITECTURE" = "os2" ]; then
if [ -z "$HB_DOC_INSTALL" ]; then export HB_DOC_INSTALL="$HB_INSTALL_PREFIX/doc"; fi
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 "Please read INSTALL for HOWTOs and description"
echo "of available options."
exit
else
# ---------------------------------------------------------------
# Start the GNU make system
case "$HB_ARCHITECTURE" in
bsd|hpux|sunos)
gmake $HB_USER_MAKEFLAGS $*
;;
*)
make $HB_USER_MAKEFLAGS $*
;;
esac
if [ "$*" = "clean" ]; then
find . -type d -name "$HB_ARCHITECTURE" | xargs rmdir 2> /dev/null
fi
fi