Files
harbour-core/harbour/make_gcc.sh
Viktor Szakats cf01ca3701 2007-11-10 05:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* make_b32.bat
   + make_b32.mak
   - makefile.bc
   * make_gcc.sh
   + make_gcc.mak
   - makefile.gc
   * make_vc.bat
   + make_vc.mak
   - makefile.vc
   * common.mak
   - contrib/maketpl.b32
   + contrib/mtpl_b32.mak
   - contrib/maketpl.vc
   + contrib/mtpl_vc.mak
   - contrib/maketpl.mak
   + contrib/mtpl.mak
   * contrib/libct/make_b32.bat
   * contrib/libct/make_vc.bat
     % Makefile name cleanup, batch file synchronization, 
       setting name cleanup. Some minor fixes.
       Now all non-GNU makefiles have the .mak extension.

   - contrib/xhb/makefile.vc
   * contrib/xhb/make_b32.bat
   + contrib/xhb/common.mak
   - contrib/xhb/makefile.bc
   * contrib/xhb/make_vc.bat
   - contrib/libmisc/makefile.vc
   * contrib/libmisc/make_b32.bat
   + contrib/libmisc/common.mak
   - contrib/libmisc/makefile.bc
   * contrib/libmisc/make_vc.bat
   + contrib/apollo/common.mak
   - contrib/apollo/makefile.bc
   * contrib/apollo/make_b32.bat
   + contrib/apollo/make_vc.bat
   - contrib/htmllib/makefile.vc
   * contrib/htmllib/make_b32.bat
   + contrib/htmllib/common.mak
   - contrib/htmllib/Makefile.bc
   * contrib/htmllib/make_vc.bat
   * contrib/libct/make_b32.bat
   * contrib/libct/make_vc.bat
   - contrib/libgt/makefile.vc
   * contrib/libgt/make_b32.bat
   + contrib/libgt/common.mak
   - contrib/libgt/makefile.bc
   * contrib/libgt/make_vc.bat
   * contrib/libnf/make_b32.bat
   - contrib/libnf/makefile.vc
   * contrib/libnf/make_vc.bat
   + contrib/libnf/common.mak
   - contrib/libnf/makefile.bc
   * contrib/gd/make_b32.bat
   + contrib/gd/common.mak
   - contrib/gd/makefile.bc
   + contrib/gd/make_vc.bat
   - contrib/tip/makefile.vc
   * contrib/tip/make_b32.bat
   + contrib/tip/common.mak
   - contrib/tip/makefile.bc
   * contrib/tip/make_vc.bat
   + contrib/adordd/common.mak
   - contrib/adordd/makefile.bc
   * contrib/adordd/make_b32.bat
   + contrib/adordd/make_vc.bat
   - contrib/rdd_ads/makefile.vc
   * contrib/rdd_ads/make_b32.bat
   + contrib/rdd_ads/common.mak
   - contrib/rdd_ads/makefile.bc
   * contrib/rdd_ads/make_vc.bat
   + contrib/btree/common.mak
   - contrib/btree/makefile.bc
   * contrib/btree/make_b32.bat
   + contrib/btree/make_vc.bat
   + contrib/directx/common.mak
   - contrib/directx/makefile.bc
   - contrib/directx/makefile.vc
   * contrib/directx/make_b32.bat
   * contrib/directx/make_vc.bat
   + contrib/win32/common.mak
   - contrib/win32/makefile.bc
   - contrib/win32/makefile.vc
   * contrib/win32/make_b32.bat
   * contrib/win32/make_vc.bat
   + contrib/bmdbfcdx/common.mak
   - contrib/bmdbfcdx/makefile.bc
   * contrib/bmdbfcdx/make_b32.bat
   + contrib/bmdbfcdx/make_vc.bat
   - contrib/samples/makefile.vc
   * contrib/samples/make_b32.bat
   + contrib/samples/common.mak
   - contrib/samples/makefile.bc
   * contrib/samples/make_vc.bat
   * contrib/mysql/common.mak
   - contrib/mysql/makefile.bc
   * contrib/mysql/make_b32.bat
   + contrib/mysql/make_vc.bat
   * contrib/pgsql/common.mak
   - contrib/pgsql/makefile.bc
   * contrib/pgsql/make_b32.bat
   + contrib/pgsql/make_vc.bat
     * Changed most libs to use the generic non-GNU makefiles.
     + Added support for MSVC for all above libs.
     ; directx won't build under MSVC with an error.
     + Added "implib" for rdd_ads. TOFIX: Doesn't work for MSVC.
     ; TOFIX: I couldn't compile pgsql using latest 8.2.5.

   * contrib/samples/gauge.c
     ! Fixed MSVC warning.

   + odbc/test
   + odbc/test/bld_b32.bat
   + odbc/test/harbour.mdb
   + odbc/test/odbcdemo.prg
   + odbc/test/browodbc.prg
   + odbc/test/odbccall.prg
   + odbc/test/testodbc.prg
   - odbc/bld_b32.bat
   - odbc/harbour.mdb
   - odbc/odbcdemo.prg
   - odbc/browodbc.prg
   - odbc/odbccall.prg
   - odbc/testodbc.prg
   - odbc/bldodbc.bat
   + odbc/make_b32.bat
   + odbc/make_vc.bat
   - odbc/hbodbc.b32
   + odbc/common.mak
     * Moved test functions to test fir.
     ! Fixed bld_b32.bat
     ! Renamed non-GNU BC make files to be in sync with the rest of contribs.
     ; TOFIX: There are some warnings under MSVC.
     ; TOFIX: .def -> .lib conversions fails under MSVC.

   - contrib/ole
   - contrib/delphi
   - contrib/hb_struc
   - contrib/dot
   - contrib/tprepro
     - Removed obsolete, incomplete or non-working contribs.
2007-11-10 04:53:45 +00:00

190 lines
4.9 KiB
Bash
Executable File

#!/bin/sh
#
# $Id$
#
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*) hb_arch="w32" ;;
*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
w32) HB_CC_NAME="mingw" ;;
dos) HB_CC_NAME="djgpp" ;;
*) HB_CC_NAME="gcc" ;;
esac
export HB_CC_NAME
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="gttrm" ;;
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
# default lib dir name
HB_LIBDIRNAME="lib"
HB_ARCH64=""
if [ "$HB_ARCHITECTURE" = "linux" ]
then
HB_CPU=`uname -m`
case "$HB_CPU" in
*[_@]64)
export C_USR="$C_USR -fPIC"
HB_ARCH64="yes"
;;
*)
;;
esac
fi
[ -z "$CC" ] && CC="gcc"
[ -z "$LD" ] && LD="gcc"
MAKE="make"
EXEEXT=""
CRSLIB="ncurses"
OS_LIBS="-lm"
GT_LIST="TRM"
case "$HB_ARCHITECTURE" in
w32) HB_OS="WIN_32"
GT_LIST="WIN WVT GUI"
OS_LIBS="-luser32 -lwinspool -lwsock32"
EXEEXT=".exe"
;;
dos) HB_OS="DOS"
GT_LIST="DOS"
EXEEXT=".exe"
;;
linux) HB_OS="LINUX"
[ -d "/usr/lib/lib64" ] && [ "${HB_ARCH64}" = yes ] && HB_LIBDIRNAME="lib64"
OS_LIBS="$OS_LIBS -ldl"
;;
bsd) HB_OS="BSD"
MAKE="gmake"
;;
darwin) HB_OS="DARWIN"
;;
sunos) HB_OS="SUNOS"
OS_LIBS="$OS_LIBS -lrt"
CRSLIB="curses"
;;
hpux) HB_OS="HPUX"
MAKE="gmake"
OS_LIBS="$OS_LIBS -lrt"
;;
*) HB_OS=`echo $HB_ARCHITECTURE | tr '[a-z]' '[A-Z]'`
;;
esac
GTSLN=""
GTCRS=""
GTXWC=""
for dir in /usr /usr/local /sw /opt/local
do
if [ "$GTSLN" != yes ]; then
if [ -f $dir/include/slang.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTSLN=yes
elif [ -f $dir/include/slang/slang.h ]; then
C_USR="$C_USR -I$dir/include/slang"
GTSLN=yes
fi
fi
if [ "$GTCRS" != yes ]; then
if [ -f ${dir}/include/curses.h ]; then
[ $dir = /usr ] || C_USR="$C_USR -I$dir/include"
GTCRS=yes
elif [ -f ${dir}/include/${CRSLIB}/curses.h ]; then
C_USR="$C_USR -I$dir/include/${CRSLIB}"
GTCRS=yes
fi
fi
if [ "$GTXWC" != yes ]; 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 ] || C_USR="$C_USR -I$dir/include"
GTXWC=yes
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
export C_USR="$C_USR -DHB_OS_$HB_OS"
export HB_OS_LIBS="$HB_OS_LIBS $OS_LIBS"
export HB_GT_LIST="$HB_GT_LIST $GT_LIST"
export CC LD EXEEXT
#export HB_BUILD_VERBOSE=yes
mkdir -p obj/$HB_CC_NAME lib/$HB_CC_NAME bin/$HB_CC_NAME
# Convert common.mak (for BCC/VC) to common.cf (GCC)
sed -e "s/\.obj/.o/g" \
-e "s/\.lib/.a/g" \
-e "s/\.dll/.so/g" \
-e "s/\.exe//g" \
-e "s/;/ /g" \
-e 's!\\\(.\)!/\1!g' \
-e "s/^HB_LIB_PREFIX=.*$/HB_LIB_PREFIX=lib/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' \
-e 's/$(HB_GT_LIST)/$(foreach gt, $(HB_GT_LIST), $(GT$(gt)_LIB))/g' \
common.mak > common.cf
#$MAKE -n -p -r -f make_gcc.mak 1>EOK 2>ERR
$MAKE -r -f make_gcc.mak $*
rm -f common.cf