diff --git a/harbour/ChangeLog b/harbour/ChangeLog index bb2cdb30b7..4e8624e29b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,63 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-06-10 23:33 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) + + ; TOFIX: dos/owatcom builds can now created successfully + (using standard Open Watcom 1.8 installation), + the bad news is that f.e. hbmk2 will crash the + NTVDM when trying a simple make. + + * INSTALL + ! Minor fix to DOS instructions. + + Added DOS build examples. + + * mpkg_dos.bat + ! Fixed target dir and archive name to be different + for djgpp and owatcom builds. + + * make_gnu.bat + + config/djg-make.exe + + Added embedded copy of DOS build of GNU Make. + This is to make DOS builds, specifically dos/owatcom + builds simpler. Original filename was 'make.exe'. + This can probably be removed once we move DOS + platform status to a 'target-only' one, like WinCE/ARM. + + * make_gnu.bat + ! Ugly hack added to create doc/en-EN dir. This still + won't solve the DOS copy problem unless I remove + the hack committed previously. If I remove it + the make process cannot be anymore started without + this batch file as it would choke on xcopy if + above dir doesn't exist. + + * make_gnu.sh + ! Applied fix to only create install dirs if called + with 'install' option. At the same time enabled + this feature for all platforms. It will also create + doc/en-EN dir. + PLEASE TEST/REVIEW, I didn't do any testing. + ; TOFIX: Much or all of these should IMO be done directly + from make files, it would be much self-contained + and consistent. + + * source/pp/Makefile + ! Fixed to find ChangeLog when building for DOS targets. + This was a problem when trying to build dos/owatcom. + Now in DOS mode it will refer to the ChangeLog by its + 8.3 name. + + * utils/hbmk2/hbmk2.prg + * Minor formatting. + + * mpkg_deb.sh + * harbour.spec + - Deleted hbmsql. + ; TOFIX: hbqt is missing from some Linux make files. + ; TOFIX: (in next major release) We should try to + make Linux build files less-maintenance intensive. + 2009-06-10 21:10 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * utils/hbmk2/hbmk2.prg ! Fixed windows/dos cross-compilation. The error is very diff --git a/harbour/INSTALL b/harbour/INSTALL index 4a68c790ea..f5846bcbac 100644 --- a/harbour/INSTALL +++ b/harbour/INSTALL @@ -98,10 +98,15 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE DOS --- + > set HB_ARCHITECTURE=dos > set HB_COMPILER=<[djgpp]|owatcom> > set HB_INSTALL_PREFIX= > make_gnu.bat install + NOTE: Build process was only tested on Windows host system, + and most probably it doesn't work anymore under + pure MS-DOS. + OS/2 ---- > set HB_COMPILER=<[gcc]|owatcom> @@ -504,6 +509,47 @@ EXAMPLES call mpkg_win.bat > log-%HB_COMPILER%.txt 2>&1 -->8-- + DOS + --- + + --- Delorie GNU C + set DJGPP=C:\devl\djgpp\djgpp.env + set PATH=C:\devl\djgpp\bin;%PATH% + rem + set HB_ARCHITECTURE=dos + set HB_COMPILER=djgpp + set HB_INSTALL_PREFIX=C:\hb-%HB_COMPILER% + call make_gnu.bat %1 %2 > log-%HB_COMPILER%.txt 2>&1 + --- + + --- Open Watcom C++ + SET WATCOM=C:\devl\owatcom-1.8 + SET PATH=%WATCOM%\BINNT;%WATCOM%\BINW;%PATH% + SET EDPATH=%WATCOM%\EDDAT + SET INCLUDE=%WATCOM%\H;%WATCOM%\H\NT + rem + set HB_ARCHITECTURE=dos + set HB_COMPILER=owatcom + set HB_INSTALL_PREFIX=C:\hb-ow + call make_gnu.bat %1 %2 > log-%HB_COMPILER%.txt 2>&1 + --- + + --8<-- + rem ; Add these *before* above sample scripts to configure 3rd party dependencies. + rem You have to use 8.3 path notation. + set HB_INC_ALLEGRO=C:\devl\ALLEGR~1.2\include + set HB_INC_FIREBIRD=C:\devl\FIREBI~1.4\include + set HB_INC_GD=C:\devl\GD-20~1.34\include + set HB_INC_MYSQL=C:\devl\MYSQL-~1.67\include + set HB_INC_PGSQL=C:\devl\PGSQL-~1.3\include + -->8-- + + --8<-- + rem ; To create installation packages (.zip), + rem replace last line (calling make_gnu.bat) with this one: + call mpkg_dos.bat > log-%HB_COMPILER%.txt 2>&1 + -->8-- + HOW TO GET THE HARBOUR SOURCES ============================== diff --git a/harbour/config/djg-make.exe b/harbour/config/djg-make.exe new file mode 100644 index 0000000000..f17394cd69 Binary files /dev/null and b/harbour/config/djg-make.exe differ diff --git a/harbour/harbour.spec b/harbour/harbour.spec index e8492ec9a0..15e93d92ab 100644 --- a/harbour/harbour.spec +++ b/harbour/harbour.spec @@ -81,7 +81,7 @@ %define hb_idir export HB_INC_INSTALL=%{_includedir}/%{name} %define hb_ldir export HB_LIB_INSTALL=%{_libdir}/%{name} %define hb_cmrc export HB_COMMERCE=%{?_without_gpllib:yes} -%define hb_ctrb export HB_CONTRIBLIBS="hbbmcdx hbbtree hbclipsm hbct hbgt hbmisc hbmsql hbmzip hbtip hbtpathy hbhpdf hbvpdf hbziparc xhb rddsql %{!?_without_nf:hbnf} %{?_with_odbc:hbodbc} %{?_with_curl:hbcurl} %{?_with_libharu:hbhpdf} %{?_with_ads:rddads} %{?_with_gd:hbgd} %{?_with_pgsql:hbpgsql} %{?_with_mysql:hbmysql} %{?_with_fbsql:hbfbird} %{?_with_allegro:gtalleg}" +%define hb_ctrb export HB_CONTRIBLIBS="hbbmcdx hbbtree hbclipsm hbct hbgt hbmisc hbmzip hbtip hbtpathy hbhpdf hbvpdf hbziparc xhb rddsql %{!?_without_nf:hbnf} %{?_with_odbc:hbodbc} %{?_with_curl:hbcurl} %{?_with_libharu:hbhpdf} %{?_with_ads:rddads} %{?_with_gd:hbgd} %{?_with_pgsql:hbpgsql} %{?_with_mysql:hbmysql} %{?_with_fbsql:hbfbird} %{?_with_allegro:gtalleg}" %define hb_extrn export HB_EXTERNALLIBS=no %define hb_env %{hb_arch} ; %{hb_cc} ; %{hb_cflag} ; %{hb_lflag} ; %{hb_gpm} ; %{hb_crs} ; %{hb_sln} ; %{hb_x11} ; %{hb_bdir} ; %{hb_idir} ; %{hb_ldir} ; %{hb_ctrb} ; %{hb_extrn} ; %{hb_cmrc} %define hb_host www.harbour-project.org @@ -667,7 +667,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/%{name}/libhbbmcdx.a %{_libdir}/%{name}/libhbclipsm.a %{_libdir}/%{name}/librddsql.a -%{_libdir}/%{name}/libhbmsql.a %{_libdir}/%{name}/libhbtpathy.a %{_libdir}/%{name}/libhbziparc.a diff --git a/harbour/make_gnu.bat b/harbour/make_gnu.bat index 6c285a089b..ca6ac46d1e 100644 --- a/harbour/make_gnu.bat +++ b/harbour/make_gnu.bat @@ -34,10 +34,11 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp if "%HB_DOC_INSTALL%" == "" set HB_DOC_INSTALL=%HB_INSTALL_PREFIX%\doc rem Try to create install dirs. - if not exist %HB_BIN_INSTALL%\*.* md %HB_BIN_INSTALL% - if not exist %HB_LIB_INSTALL%\*.* md %HB_LIB_INSTALL% - if not exist %HB_INC_INSTALL%\*.* md %HB_INC_INSTALL% - if not exist %HB_DOC_INSTALL%\*.* md %HB_DOC_INSTALL% + if not exist %HB_BIN_INSTALL%\*.* md %HB_BIN_INSTALL% + if not exist %HB_LIB_INSTALL%\*.* md %HB_LIB_INSTALL% + if not exist %HB_INC_INSTALL%\*.* md %HB_INC_INSTALL% + if not exist %HB_DOC_INSTALL%\*.* md %HB_DOC_INSTALL% + if not exist %HB_DOC_INSTALL%\en-EN\*.* md %HB_DOC_INSTALL%\en-EN goto MAKE @@ -108,8 +109,12 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp set _HB_MAKE=make.exe - if "%HB_ARCHITECTURE%" == "dos" goto SKIP_WINDLL + if not "%HB_ARCHITECTURE%" == "dos" goto _FM_WIN + if not exist config\djg-make.exe goto SKIP_WINDLL + set _HB_MAKE=config\djg-make.exe + goto _FM_DONE + :_FM_WIN if not exist config\mingw32-make.exe goto _FM_NOLOCAL set _HB_MAKE=config\mingw32-make.exe goto _FM_DONE diff --git a/harbour/make_gnu.sh b/harbour/make_gnu.sh index e4d3df5ad8..a014e727ee 100755 --- a/harbour/make_gnu.sh +++ b/harbour/make_gnu.sh @@ -176,7 +176,11 @@ if [ "$HB_ARCHITECTURE" = "win" ] || \ [ "$HB_ARCHITECTURE" = "dos" ] || \ [ "$HB_ARCHITECTURE" = "os2" ]; then if [ -z "$HB_DOC_INSTALL" ]; then export HB_DOC_INSTALL="$HB_INSTALL_PREFIX/doc"; fi - mkdir -p "$HB_BIN_INSTALL" "$HB_LIB_INSTALL" "$HB_INC_INSTALL" "$HB_DOC_INSTALL" +fi + +if test_param "$@"; then + mkdir -p "$HB_BIN_INSTALL" "$HB_LIB_INSTALL" "$HB_INC_INSTALL" + [ -z "$HB_DOC_INSTALL" ] || mkdir -p "$HB_DOC_INSTALL" "$HB_DOC_INSTALL/en-EN" fi if [ -z "$HB_ARCHITECTURE" ]; then @@ -219,3 +223,14 @@ else find . -type d -name "$HB_ARCHITECTURE" | xargs rmdir 2> /dev/null fi fi + +test_param() +{ + local inst + inst=no + while [ $# != 0 ] && [ "$inst" != yes ]; do + [ "$1" = install ] && inst=yes + shift + done + [ "$inst" = yes ] + } diff --git a/harbour/mpkg_deb.sh b/harbour/mpkg_deb.sh index 87e6653804..84ee666cd2 100755 --- a/harbour/mpkg_deb.sh +++ b/harbour/mpkg_deb.sh @@ -49,7 +49,7 @@ then export HB_WITHOUT_X11=yes fi -export HB_CONTRIBLIBS="hbbmcdx hbbtree hbclipsm hbct hbgt hbmisc hbmsql hbmzip hbnf hbsqlit3 hbtip hbtpathy hbvpdf hbziparc xhb" +export HB_CONTRIBLIBS="hbbmcdx hbbtree hbclipsm hbct hbgt hbmisc hbmzip hbnf hbsqlit3 hbtip hbtpathy hbvpdf hbziparc xhb" if [ ! -f "/usr/include/hpdf.h" ] && \ [ ! -f "/usr/local/include/hpdf.h" ] @@ -81,7 +81,7 @@ then fi if test_reqpkg libgd-xpm-dev || \ - test_reqpkg libgd2-xpm-dev + test_reqpkg libgd2-xpm-dev then export HB_CONTRIBLIBS="${HB_CONTRIBLIBS} hbgd" fi diff --git a/harbour/mpkg_dos.bat b/harbour/mpkg_dos.bat index 94e251a9c6..c38409981a 100644 --- a/harbour/mpkg_dos.bat +++ b/harbour/mpkg_dos.bat @@ -25,7 +25,7 @@ setlocal rem ; Basic setup set HB_VERSION=200 if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=dos -set HB_PKGNAME=hb%HB_VERSION% +set HB_PKGNAME=hb%HB_VERSION%%HB_COMPILER:~0,2% set HB_DIRNAME=%HB_PKGNAME% rem ; Dir setup diff --git a/harbour/source/pp/Makefile b/harbour/source/pp/Makefile index fe06bc6152..fbf3ad2ee3 100644 --- a/harbour/source/pp/Makefile +++ b/harbour/source/pp/Makefile @@ -24,12 +24,18 @@ include $(TOP)$(ROOT)config/lib.cf INSTALL_RULE_LIBRARIES := $(INSTALL_RULE) +ifeq ($(HB_ARCHITECTURE),dos) + HB_CHANGELOG=../../../../CHANGE~1 +else + HB_CHANGELOG=../../../../ChangeLog +endif + ifneq ($(HB_PP_RULES),) pptable.c : $(HB_PP_RULES) $(CP) $(subst /,$(DIRSEP),$<) $@ else pptable.c : hbpp$(EXE_EXT) - $(HB_PPGEN_PATH)/hbpp$(EXE_EXT) $(TOP)$(ROOT)include/hbstdgen.ch -opptable.c -q -c -v$(TOP)$(ROOT)include/hbverbld.h + $(HB_PPGEN_PATH)/hbpp$(EXE_EXT) $(TOP)$(ROOT)include/hbstdgen.ch -opptable.c -q -c$(HB_CHANGELOG) -v$(TOP)$(ROOT)include/hbverbld.h endif ifneq ($(HB_BIN_INSTALL),) diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index 79442ba7e7..6fda3f04f9 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -106,7 +106,7 @@ ANNOUNCE HB_GTSYS REQUEST HB_GT_CGI_DEFAULT /* Include these for -pause support. */ -#if defined( __PLATFORM__WINCE ) +#if defined( __PLATFORM__WINCE ) REQUEST HB_GT_WVT #elif defined( __PLATFORM__WINDOWS ) REQUEST HB_GT_WIN