2009-06-10 19:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* config/dos/global.cf
    ! Fixed to use xcopy instead of copy to 'install' files.
      This means long filenames (and also casing) will be retained.
      This also means that now 'install' actually works.
      It may also mean that creating a DJGPP build isn't anymore
      possible on a pure DOS system, I can't remember when xcopy
      was introduced. Anyway I think it's better to have this
      requirement than not having a proper DOS build at all
      (since long years).
      This also means that our DOS release cannot even be *used* 
      in pure DOS environment, since our long filenames will 
      be chopped when extracting the distro .zip. Only final 
      .exes are able to run under DOS.
      We still have the option to implement full short name 
      support, but I'm not sure this has any importance anymore.
      If we don't want to do this, we can finally lift some 
      restrictions which tied our hands so far, based on the 
      fact that DOS builds cannot even be created and run on 
      real DOS. So, this means:
        - We may use long filenames as distro name.
        - We may convert DOS platform as a target only platform, 
          similar to WinCE/ARM.
        - If we do the above, we may even embed our DOS
          libs in Windows distro, and build DOS apps using
            hbmk2 hello.prg -arch=dos
        - We may use long filename anywhere in our tree.
          (but we must check first if long names are also 
          supported for headers, dirnames and source names)
      If you have an opinion, please tell.

  * config/dos/global.cf
    ! Adding ending pathsep to DOC_SUBDIR to make xcopy happy
      and not ask if the target is a file or directory.
    ; TOFIX: Anyhow, DOC_SUBDIR feature simply doesn't work since
             very long, so we should do something about it in the future.

  * debian/changelog
    + Added new version entry. (Thanks Guy)

  * bin/postinst.bat
    ! Added workaround to make it work under DOS.
      (avoiding 'Out of environment space' error)

  + mpkg_dos.bat
    + Added DOS package generator batch. Very similar
      to mpkg_win.bat, maybe we should merge them in
      the future.

  * mpkg_win.bat
    * Using short name for main dir, just to sync it with
      DOS version.

  * utils/hbformat/hbformat.prg
    + Changed default GT to GTCGI.

  * utils/hbmk2/hbmk2.prg
    ! Added workaround for dos/djgpp anomaly in hb_DirBase()
      (and also hb_ProgName()) where path contains forward
      slashed instead of backslashes.
    ; TOFIX: In core.

  * source/vm/Makefile
    ! Disabled hbvmall for dos build because of thid djgpp error:
      ---
      gcc -I. -I../../../../include  -Wall -W -O3    -c ../../hvmall.c -ohvmall.o
      In file included from ../../../../include/hbmath.h:60,
                      from ../../itemapi.c:97,
                      from ../../hvmall.c:67:
      c:/devl/djgpp/include/libm/math.h:97: error: redefinition of 'struct exception'
      ---

  * contrib/hbblat/hbblat.hbc
  * contrib/hbhpdf/hbhpdf.hbc
    * Minor formatting.
This commit is contained in:
Viktor Szakats
2009-06-10 17:38:18 +00:00
parent ffac52b2a2
commit 6243be7d28
12 changed files with 204 additions and 38 deletions

View File

@@ -17,11 +17,87 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-06-10 19:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/dos/global.cf
! Fixed to use xcopy instead of copy to 'install' files.
This means long filenames (and also casing) will be retained.
This also means that now 'install' actually works.
It may also mean that creating a DJGPP build isn't anymore
possible on a pure DOS system, I can't remember when xcopy
was introduced. Anyway I think it's better to have this
requirement than not having a proper DOS build at all
(since long years).
This also means that our DOS release cannot even be *used*
in pure DOS environment, since our long filenames will
be chopped when extracting the distro .zip. Only final
.exes are able to run under DOS.
We still have the option to implement full short name
support, but I'm not sure this has any importance anymore.
If we don't want to do this, we can finally lift some
restrictions which tied our hands so far, based on the
fact that DOS builds cannot even be created and run on
real DOS. So, this means:
- We may use long filenames as distro name.
- We may convert DOS platform as a target only platform,
similar to WinCE/ARM.
- If we do the above, we may even embed our DOS
libs in Windows distro, and build DOS apps using
hbmk2 hello.prg -arch=dos
- We may use long filename anywhere in our tree.
(but we must check first if long names are also
supported for headers, dirnames and source names)
If you have an opinion, please tell.
* config/dos/global.cf
! Adding ending pathsep to DOC_SUBDIR to make xcopy happy
and not ask if the target is a file or directory.
; TOFIX: Anyhow, DOC_SUBDIR feature simply doesn't work since
very long, so we should do something about it in the future.
* debian/changelog
+ Added new version entry. (Thanks Guy)
* bin/postinst.bat
! Added workaround to make it work under DOS.
(avoiding 'Out of environment space' error)
+ mpkg_dos.bat
+ Added DOS package generator batch. Very similar
to mpkg_win.bat, maybe we should merge them in
the future.
* mpkg_win.bat
* Using short name for main dir, just to sync it with
DOS version.
* utils/hbformat/hbformat.prg
+ Changed default GT to GTCGI.
* utils/hbmk2/hbmk2.prg
! Added workaround for dos/djgpp anomaly in hb_DirBase()
(and also hb_ProgName()) where path contains forward
slashed instead of backslashes.
; TOFIX: In core.
* source/vm/Makefile
! Disabled hbvmall for dos build because of thid djgpp error:
---
gcc -I. -I../../../../include -Wall -W -O3 -c ../../hvmall.c -ohvmall.o
In file included from ../../../../include/hbmath.h:60,
from ../../itemapi.c:97,
from ../../hvmall.c:67:
c:/devl/djgpp/include/libm/math.h:97: error: redefinition of 'struct exception'
---
* contrib/hbblat/hbblat.hbc
* contrib/hbhpdf/hbhpdf.hbc
* Minor formatting.
2009-06-10 13:19 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
+ examples/hbmsql/tests/hbmk.hbm
- examples/hbmsql/tests/hbmsql.hbc
+ examples/hbmsql/hbmsql.hbc
* hbmk2 make file rearrangement continued.
+ examples/hbmsql/tests/hbmk.hbm
- examples/hbmsql/tests/hbmsql.hbc
+ examples/hbmsql/hbmsql.hbc
* hbmk2 make file rearrangement continued.
2009-06-10 13:17 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
+ contrib/gtalleg/tests/hbmk.hbm

View File

@@ -13,13 +13,11 @@ rem
rem See COPYING for licensing terms.
rem ---------------------------------------------------------------
set _HBMK_CFG=%HB_BIN_INSTALL%\hbmk.cfg
echo Generating %_HBMK_CFG%...
echo # Harbour Make configuration> %_HBMK_CFG%
echo # Generated by Harbour build process>> %_HBMK_CFG%
echo arch=%HB_ARCHITECTURE%>> %_HBMK_CFG%
echo comp=%HB_COMPILER%>> %_HBMK_CFG%
set _HBMK_CFG=
echo Generating %HB_BIN_INSTALL%\hbmk.cfg...
echo # Harbour Make configuration> %HB_BIN_INSTALL%\hbmk.cfg
echo # Generated by Harbour build process>> %HB_BIN_INSTALL%\hbmk.cfg
echo arch=%HB_ARCHITECTURE%>> %HB_BIN_INSTALL%\hbmk.cfg
echo comp=%HB_COMPILER%>> %HB_BIN_INSTALL%\hbmk.cfg
goto inst_%HB_ARCHITECTURE%

View File

@@ -14,7 +14,7 @@ install::
else
INSTALL_OBJS = $(DOC_FILES)
INSTALL_DIR = $(HB_DOC_INSTALL)$(DOC_SUBDIR)
INSTALL_DIR = $(HB_DOC_INSTALL)$(DOC_SUBDIR)/
include $(TOP)$(ROOT)config/install.cf
endif

View File

@@ -49,7 +49,7 @@ endif
RM = del
RD = rmdir
CP = $(COMSPEC) /Ccopy
CP = $(COMSPEC) /Cxcopy /D
MV = move
MD = md

View File

@@ -2,4 +2,5 @@
# $Id$
#
libs=hbblat blat
libs=hbblat
libs=blat

View File

@@ -2,4 +2,5 @@
# $Id$
#
libs=hbhpdf libhpdf libpng
libs=hbhpdf
libs=libhpdf libpng

View File

@@ -1,3 +1,9 @@
harbour (2.0.0beta1-1) unstable; urgency=low
* 2.0.0beta1-1
-- Viktor Szakats <harbour___@syenar.hu> Wed, 10 Jun 2009 16:40:15 +0200
harbour (1.0.1-1) unstable; urgency=low
* Please see doc/whatsnew.txt
@@ -24,4 +30,3 @@ harbour (0.44-1) unstable; urgency=low
* Initial Release (closes: Bug#251486).
-- Luis Mayoral <mayoral@linuxadicto.org> Sun, 05 Sep 2004 14:33:19 +0200

73
harbour/mpkg_dos.bat Normal file
View File

@@ -0,0 +1,73 @@
@rem
@rem $Id$
@rem
@echo off
rem ---------------------------------------------------------------
rem Installer creator for Harbour Project
rem
rem Copyright 2009 Viktor Szakats (harbour.01 syenar.hu)
rem See COPYING for licensing terms.
rem
rem This script requires:
rem - Windows NT or upper
rem - Info-ZIP zip.exe in PATH
rem https://sourceforge.net/project/showfiles.php?group_id=118012
rem - HB_COMPILER envvar configured (see INSTALL doc)
rem - C compiler and GNU Make configured (see INSTALL doc)
rem ---------------------------------------------------------------
if not "%OS%" == "Windows_NT" goto END
setlocal
rem ; Basic setup
set HB_VERSION=200
if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=dos
set HB_PKGNAME=hb%HB_VERSION%
set HB_DIRNAME=%HB_PKGNAME%
rem ; Dir setup
set HB_INSTALL_BASE=%~dp0_hb_inst
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
set HB_DOC_INSTALL=%HB_INSTALL_PREFIX%\doc
rem ; Pre-build cleanup
if exist %HB_INSTALL_PREFIX% rmdir /q /s %HB_INSTALL_PREFIX%
rem ; Option setup
set HB_BUILD_OPTIM=yes
set HB_BUILD_DEBUG=no
rem ; Build Harbour
call make_gnu.bat clean install
rem if errorlevel 1 goto MK_ERROR
rem ; Post-build installation
xcopy /D /Y ChangeLog* "%HB_INSTALL_PREFIX%\"
xcopy /D /Y COPYING "%HB_INSTALL_PREFIX%\"
xcopy /D /Y ERRATA "%HB_INSTALL_PREFIX%\"
xcopy /D /Y INSTALL "%HB_INSTALL_PREFIX%\"
xcopy /D /Y TODO "%HB_INSTALL_PREFIX%\"
rem ; Build .zip package
if exist %HB_PKGNAME%.zip del %HB_PKGNAME%.zip
pushd
cd %HB_INSTALL_BASE%
zip -9 -X -r -o %~dp0%HB_PKGNAME%.zip . -i %HB_DIRNAME%\*
popd
:MK_ERROR
rem ; Cleanup
if "%1" == "--deltemp" rmdir /q /s %HB_INSTALL_PREFIX%
if "%1" == "--deltemp" rmdir /q %HB_INSTALL_BASE%
endlocal
:END

View File

@@ -33,7 +33,7 @@ set HB_PKGNAME=harbour-%HB_VERSION%-%HB_ARCHITECTURE%-%HB_COMPILER%
set HB_DIRNAME=harbour-%HB_ARCHITECTURE%-%HB_COMPILER%
rem ; Dir setup
set HB_INSTALL_BASE=%~dp0_hb_install_temp
set HB_INSTALL_BASE=%~dp0_hb_inst
set HB_INSTALL_PREFIX=%HB_INSTALL_BASE%\%HB_DIRNAME%
set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib

View File

@@ -30,6 +30,9 @@ endif
ifeq ($(HB_COMPILER),dmc)
HB_HVM_ALL = no
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_HVM_ALL = no
endif
export HB_HVM_ALL
endif

View File

@@ -58,6 +58,9 @@
#ifndef _CODEFORMAT_EMBEDDED_
ANNOUNCE HB_GTSYS
REQUEST HB_GT_CGI_DEFAULT
MEMVAR cFunctions
FUNCTION MAIN( ... )

View File

@@ -103,7 +103,6 @@
#pragma linenumber=on
ANNOUNCE HB_GTSYS
REQUEST HB_GT_CGI_DEFAULT
/* Include these for -pause support. */
@@ -188,6 +187,13 @@ REQUEST hbmk_KEYW
#define HB_ISFIRSTIDCHAR( c ) ( HB_ISALPHA( c ) .OR. ( c ) == '_' )
#define HB_ISNEXTIDCHAR( c ) ( HB_ISFIRSTIDCHAR(c) .OR. IsDigit( c ) )
/* Workaround for dos/djgpp bug */
#if defined( __PLATFORM__DOS )
#define HB_DIRBASE() StrTran( hb_DirBase(), "/", "\" )
#else
#define HB_DIRBASE() hb_DirBase()
#endif
/* This requires Set( _SET_EXACT, .F. ) */
#define LEFTEQUAL( l, r ) ( l = r )
@@ -975,10 +981,10 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
IF hbmk[ _HBMK_nHBMODE ] != _HBMODE_RAW_C
/* Detect system locations to enable shared library option by default */
lSysLoc := hb_DirBase() == "/usr/local/bin/" .OR. ;
hb_DirBase() == "/usr/bin/" .OR. ;
hb_DirBase() == "/opt/harbour/" .OR. ;
hb_DirBase() == "/opt/bin/"
lSysLoc := HB_DIRBASE() == "/usr/local/bin/" .OR. ;
HB_DIRBASE() == "/usr/bin/" .OR. ;
HB_DIRBASE() == "/opt/harbour/" .OR. ;
HB_DIRBASE() == "/opt/bin/"
s_cHB_BIN_INSTALL := PathSepToSelf( GetEnv( "HB_BIN_INSTALL" ) )
s_cHB_LIB_INSTALL := PathSepToSelf( GetEnv( "HB_LIB_INSTALL" ) )
@@ -987,14 +993,14 @@ FUNCTION hbmk( aArgs, /* @ */ lPause, /* @ */ lUTF8 )
s_cHB_INSTALL_PREFIX := PathSepToSelf( GetEnv( "HB_INSTALL_PREFIX" ) )
IF Empty( s_cHB_INSTALL_PREFIX )
DO CASE
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".."
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() )
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".."
CASE hb_FileExists( DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( hb_DirBase() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".."
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() ) + ".."
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() )
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".."
CASE hb_FileExists( DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + "bin" + hb_osPathSeparator() + cBin_CompPRG + cBinExt )
s_cHB_INSTALL_PREFIX := DirAddPathSep( HB_DIRBASE() ) + ".." + hb_osPathSeparator() + ".." + hb_osPathSeparator() + ".."
OTHERWISE
hbmk_OutErr( hbmk, I_( "Error: HB_INSTALL_PREFIX not set, failed to autodetect." ) )
RETURN 3
@@ -4202,8 +4208,8 @@ STATIC FUNCTION FindInPath( cFileName )
ENDIF
/* Check in the dir of this executable. */
IF ! Empty( hb_DirBase() )
IF hb_FileExists( cFileName := hb_FNameMerge( hb_DirBase(), cName, cExt ) )
IF ! Empty( HB_DIRBASE() )
IF hb_FileExists( cFileName := hb_FNameMerge( HB_DIRBASE(), cName, cExt ) )
RETURN cFileName
ENDIF
ENDIF
@@ -4662,11 +4668,11 @@ STATIC PROCEDURE HBC_ProcessAll( hbmk, lConfigOnly )
#if defined( __PLATFORM__UNIX )
aCFGDirs := { GetEnv( "HOME" ) + "/.harbour/",;
"/etc/harbour",;
DirAddPathSep( hb_DirBase() ) + "../etc/harbour",;
DirAddPathSep( hb_DirBase() ) + "../etc",;
hb_DirBase() }
DirAddPathSep( HB_DIRBASE() ) + "../etc/harbour",;
DirAddPathSep( HB_DIRBASE() ) + "../etc",;
HB_DIRBASE() }
#else
aCFGDirs := { hb_DirBase() }
aCFGDirs := { HB_DIRBASE() }
#endif
FOR EACH cDir IN aCFGDirs
@@ -5133,7 +5139,7 @@ STATIC FUNCTION MacroProc( hbmk, cString, cDirParent )
DO CASE
CASE cMacro == "HB_ROOT"
cMacro := PathSepToSelf( DirAddPathSep( hb_DirBase() ) )
cMacro := PathSepToSelf( DirAddPathSep( HB_DIRBASE() ) )
CASE cMacro == "HB_SELF"
IF Empty( cDirParent )
cMacro := ""
@@ -6036,7 +6042,7 @@ STATIC PROCEDURE SetUILang( hbmk )
hb_i18n_set( NIL )
ELSE
tmp := "${hb_root}hbmk2.${lng}.hbl"
tmp := StrTran( tmp, "${hb_root}", PathSepToSelf( DirAddPathSep( hb_DirBase() ) ) )
tmp := StrTran( tmp, "${hb_root}", PathSepToSelf( DirAddPathSep( HB_DIRBASE() ) ) )
tmp := StrTran( tmp, "${lng}", StrTran( hbmk[ _HBMK_cUILNG ], "-", "_" ) )
hb_i18n_set( iif( hb_i18n_check( tmp := hb_MemoRead( tmp ) ), hb_i18n_restoretable( tmp ), NIL ) )
ENDIF