* make_gnu.sh
! Restored old sln/crs detection code, to fix creation of hbmk.cfg.
I'll try to remove the need for this content in hbmk.cfg, but
I don't know how yet (maybe by checking for gtsln/gtcrs/gtxwc libs
in lib dir would be the best, if they are there, we must assume the
dynamic lib has them, too). This way hbmk2 setup becomes fully dynamic.
206 lines
5.7 KiB
Bash
Executable File
206 lines
5.7 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.
|
|
# ---------------------------------------------------------------
|
|
|
|
# ---------------------------------------------------------------
|
|
# See GNU bash docs here:
|
|
# http://www.gnu.org/software/bash/manual/bashref.html
|
|
# See POSIX shell docs here:
|
|
# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
|
|
# ---------------------------------------------------------------
|
|
|
|
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 [ -z "${HB_WITHOUT_GTSLN}" ]; then
|
|
HB_WITHOUT_GTSLN=yes
|
|
case "$HB_ARCHITECTURE" in
|
|
linux|bsd|darwin|hpux|sunos)
|
|
for dir in /usr /usr/local /sw /opt/local
|
|
do
|
|
if [ -f ${dir}/include/slang.h ] || \
|
|
[ -f ${dir}/include/slang/slang.h ]; then
|
|
HB_WITHOUT_GTSLN=no
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
export HB_WITHOUT_GTSLN
|
|
fi
|
|
|
|
if [ -z "${HB_WITHOUT_GTCRS}" ]; then
|
|
HB_WITHOUT_GTCRS=yes
|
|
case "$HB_ARCHITECTURE" in
|
|
linux|bsd|darwin|hpux|sunos)
|
|
for dir in /usr /usr/local /sw /opt/local
|
|
do
|
|
if [ -f ${dir}/include/curses.h ] || \
|
|
[ -f ${dir}/include/ncurses.h ] || \
|
|
[ -f ${dir}/include/ncurses/ncurses.h ]; then
|
|
HB_WITHOUT_GTCRS=no
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
export HB_WITHOUT_GTCRS
|
|
fi
|
|
|
|
if [ "$HB_ARCHITECTURE" = "linux" ]
|
|
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"
|
|
HB_ARCH64="yes"
|
|
;;
|
|
*[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
|
|
|
|
export HARBOUR=
|
|
export CLIPPER=
|
|
|
|
# ---------------------------------------------------------------
|
|
# 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
|