Files
harbour-core/harbour/make_gcc.sh
Viktor Szakats a341b29acd 2009-02-06 23:47 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* common.mak
  * harbour-wce-spec
  * harbour-win-spec
  * harbour.spec
  * make_b32.bat
  * make_b32.mak
  * make_gcc.mak
  * make_gcc.sh
  * make_gnu.bat
  * make_gnu.sh
  * make_gnu_os2.cmd
  * make_gnu_xmingw.sh
  * make_gnu_xmingwce.sh
  * make_vc.bat
  * make_vc.mak
  * mpkg_tgz.sh
  * bin/hb-func.sh
  * bin/hb-mkslib.sh
  * bin/hbmk.bat
  * bin/hbmk_os2.cmd
  * bin/postinst.sh
  * config/bin.cf
  * config/bsd/gcc.cf
  * config/darwin/gcc.cf
  * config/dos/bcc16.cf
  * config/dos/djgpp.cf
  * config/dos/owatcom.cf
  * config/dos/rsx32.cf
  * config/hpux/gcc.cf
  * config/lib.cf
  * config/linux/gcc.cf
  * config/linux/owatcom.cf
  * config/os2/gcc.cf
  * config/os2/icc.cf
  * config/rules.cf
  * config/sunos/gcc.cf
  * config/win/bcc32.cf
  * config/win/dm.cf
  * config/win/gcc.cf
  * config/win/icc.cf
  * config/win/mingw.cf
  * config/win/mingwce.cf
  * config/win/msvc.cf
  * config/win/msvcce.cf
  * config/win/owatcom.cf
  * config/win/pocc.cf
  * config/win/pocc64.cf
  * config/win/poccce.cf
  * config/win/rsxnt.cf
  * config/win/xcc.cf
  * contrib/gtalleg/Makefile
  * contrib/hbapollo/Makefile
  * contrib/hbcurl/Makefile
  * contrib/hbfbird/Makefile
  * contrib/hbfimage/Makefile
  * contrib/hbgd/Makefile
  * contrib/hbgd/tests/hbmk_b32.bat
  * contrib/hbgd/tests/hbmk_vc.bat
  * contrib/hbgf/hbgfgtk/Makefile
  * contrib/hbhpdf/Makefile
  * contrib/hbmysql/Makefile
  * contrib/hbodbc/Makefile
  * contrib/hbpgsql/Makefile
  * contrib/hbssl/Makefile
  * contrib/hbtip/ChangeLog
  * contrib/hbwhat/Makefile
  * contrib/hbwhat/tests/hbmk_b32.bat
  * contrib/hbwhat/tests/hbmk_vc.bat
  * contrib/mtpl_b32.bat
  * contrib/mtpl_b32.mak
  * contrib/mtpl_gcc.mak
  * contrib/mtpl_gcc.sh
  * contrib/mtpl_vc.bat
  * contrib/mtpl_vc.mak
  * contrib/rddads/Makefile
  * contrib/rddsql/sddfb/Makefile
  * contrib/rddsql/sddmy/Makefile
  * contrib/rddsql/sddpg/Makefile
  * doc/es/tracing.txt
  * doc/gmake.txt
  * doc/tracing.txt
  * include/hbapi.h
  * source/main/harbour.c
  * source/pp/hbpp.c
  * source/rdd/dbffpt/Makefile
  * source/vm/cmdarg.c
  * source/vm/Makefile
  * source/vm/vmmt/Makefile
  * tests/multifnc/Makefile
  * tests/testid.prg
  * utils/hbdoc/Makefile
  * utils/hbi18n/Makefile
  * utils/hbmake/hbmake.prg
  * utils/hbmake/Makefile
  * utils/hbrun/Makefile
  * utils/hbtest/Makefile
    * Renamed remaining build configration envvars:
      - PRG_USR -> HB_USER_PRGFLAGS
      - C_USR   -> HB_USER_CFLAGS
      - L_USR   -> HB_USER_LDFLAGS
      - A_USR   -> HB_USER_AFLAGS
      - MK_USR  -> HB_USER_MAKEFLAGS
      (finally settled with HB_USER* instead of HB_USR*,
      this also means that HB_USER_LIBS was kept unchanged.)
    ; Please update your environment.
      You may use these commands to make it easy:
      gsar -o -sPRG_USR -rHB_USER_PRGFLAGS  *
      gsar -o -sC_USR   -rHB_USER_CFLAGS    *
      gsar -o -sL_USR   -rHB_USER_LDFLAGS   *
      gsar -o -sA_USR   -rHB_USER_AFLAGS    *
      gsar -o -sMK_USR  -rHB_USER_MAKEFLAGS *
2009-02-06 23:15:37 +00:00

198 lines
5.3 KiB
Bash
Executable File

#!/bin/sh
#
# $Id$
#
# ---------------------------------------------------------------
# Copyright 2007 Przemyslaw Czerpak (druzus/at/priv.onet.pl),
# See doc/license.txt for licensing terms.
# ---------------------------------------------------------------
# Compatibility. Please use 'win'.
if [ "$HB_ARCHITECTURE" == "w32" ]
then
export HB_ARCHITECTURE=win
fi
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_CC_NAME" ]; then
case "$HB_ARCHITECTURE" in
win) HB_CC_NAME="mingw" ;;
dos) HB_CC_NAME="djgpp" ;;
*) HB_CC_NAME="gcc" ;;
esac
export HB_CC_NAME
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
# default lib dir name
HB_LIBDIRNAME="lib"
HB_ARCH64=""
if [ "$HB_ARCHITECTURE" = "linux" ]
then
HB_CPU=`uname -m`
case "$HB_CPU" in
*[_@]64)
HB_ARCH64="yes"
;;
*)
;;
esac
fi
[ -z "$CC" ] && CC="gcc"
[ -z "$LD" ] && LD="gcc"
MAKE="make"
CRSLIB="ncurses"
OS_LIBS="-lm"
GT_LIST="TRM"
case "$HB_ARCHITECTURE" in
win) GT_LIST="WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool -lwsock32 -lgdi32"
;;
cyg) GT_LIST="${GT_LIST} WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool -lwsock32 -lgdi32"
;;
dos) GT_LIST="DOS"
;;
os2) GT_LIST="${GT_LIST} OS2"
;;
linux) OS_LIBS="$OS_LIBS -ldl"
[ -d "/usr/lib/lib64" ] && [ "${HB_ARCH64}" = yes ] && HB_LIBDIRNAME="lib64"
;;
bsd) MAKE="gmake"
;;
sunos) MAKE="gmake"
OS_LIBS="$OS_LIBS -lrt -lsocket -lnsl -lresolv"
CRSLIB="curses"
;;
hpux) MAKE="gmake"
OS_LIBS="$OS_LIBS -lrt"
;;
esac
#GTSLN=""
#GTCRS=""
#GTXWC=""
for dir in /usr /usr/local /sw /opt/local
do
if [ "$GTSLN" != yes ]; then
if [ "$GTSLN" != no ]; then
if [ -f $dir/include/slang.h ]; then
[ $dir = /usr ] || HB_USER_CFLAGS="$HB_USER_CFLAGS -I$dir/include"
GTSLN=yes
elif [ -f $dir/include/slang/slang.h ]; then
HB_USER_CFLAGS="$HB_USER_CFLAGS -I$dir/include/slang"
GTSLN=yes
fi
fi
fi
if [ "$GTCRS" != yes ]; then
if [ "$GTCRS" != no ]; then
if [ -f ${dir}/include/curses.h ]; then
[ $dir = /usr ] || HB_USER_CFLAGS="$HB_USER_CFLAGS -I$dir/include"
GTCRS=yes
elif [ -f ${dir}/include/${CRSLIB}/curses.h ]; then
HB_USER_CFLAGS="$HB_USER_CFLAGS -I$dir/include/${CRSLIB}"
GTCRS=yes
fi
fi
fi
if [ "$GTXWC" != yes ]; then
if [ "$GTXWC" != no ]; then
if [ -f ${dir}/include/X11/Xlib.h ] && \
[ -f ${dir}/include/X11/Xcms.h ] && \
[ -f ${dir}/include/X11/Xutil.h ] && \
[ -f ${dir}/include/X11/keysym.h ]; then
[ $dir = /usr ] || HB_USER_CFLAGS="$HB_USER_CFLAGS -I$dir/include"
GTXWC=yes
fi
fi
fi
done
[ "${HB_WITHOUT_GTSLN}" != "yes" ] || GTSLN=""
if [ "$HB_COMMERCE" = yes ]; then
export HB_GPM_MOUSE=no
GTSLN=""
fi
if [ "$GTCRS" = "yes" ]; then
GT_LIST="$GT_LIST CRS"
OS_LIBS="$OS_LIBS -l${CRSLIB}"
fi
if [ "$GTSLN" = "yes" ]; then
GT_LIST="$GT_LIST SLN"
OS_LIBS="$OS_LIBS -lslang"
fi
if [ "$GTXWC" = "yes" ]; then
GT_LIST="$GT_LIST XWC"
OS_LIBS="$OS_LIBS -lX11 -L/usr/X11R6/$HB_LIBDIRNAME"
fi
for n in $GT_LIST
do
GT_TEMP="$GT_TEMP \$(GT${n}_LIB)"
GT_OBJS="$GT_OBJS \$(GT${n}_LIB_OBJS)"
done
GT_LIST=$GT_TEMP
export HB_OS_LIBS="$HB_OS_LIBS $OS_LIBS"
export HB_GT_LIST="$HB_GT_LIST $GT_LIST"
export HB_GT_OBJS="$HB_GT_OBJS $GT_OBJS"
export CC LD
mkdir -p obj/$HB_CC_NAME/mt obj/$HB_CC_NAME/mt_dll obj/$HB_CC_NAME/dll \
lib/$HB_CC_NAME bin/$HB_CC_NAME
# Convert common.mak (for BCC/VC) to common.cf (GCC)
# Revert Cygwin architecture to 'win'.
# After all it's under Windows OS.
if [ "$HB_ARCHITECTURE" == "cyg" ]
then
export HB_ARCHITECTURE=win
fi
sed -e 's/;/ /g' \
-e 's!\\\\!/!g' \
-e 's!\\\(.\)!/\1!g' \
-e 's/^!if "\($([A-Za-z0-9_]*)\)" != "\(.*\)"/ifneq (\1,\2)/g' \
-e 's/^!if "\($([A-Za-z0-9_]*)\)" == "\(.*\)"/ifeq (\1,\2)/g' \
-e 's/^!ifdef /ifdef /g' \
-e 's/^!ifndef /ifndef /g' \
-e 's/^!else/else/g' \
-e 's/^!endif/endif/g' \
-e 's/^!include/include/g' \
common.mak > common.cf
$MAKE -r -f make_gcc.mak $HB_USER_MAKEFLAGS $*
rm -f common.cf