2010-07-04 19:03 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

- bin/patchup.hbs
  + bin/hbxpatch.hbs
    * Renamed to have hb prefix.
      Better suggestion are welcome for the name, don't
      consider this final. Pbly sth like hbupdext.prg
      would be better.

  * contrib/Makefile
    * Changed test status of makefile.hbs call to make it
      do some actual work.

  * config/postinst.hbs
    - Deleted implib creation. Now done by makefile.hbs.
      Implibs are never required for core, so this is now
      much cleaner.
    - Deleted experimental HB_BUILD_ADDONS support. This
      feature has moved to makefile.hbs and it can be
      controlled by HB_ADDONS_LIB and HB_ADDONS_BIN to add
      non-hosted extra components to the build process.
      The envvar names are not finalized.
    * Changed to only copy .hbs files starting with 'hb'
      in bin dir to avoid catching local scripts and adding
      them to install.

  * contrib/makefile.hbs
    + Makred dependencies from external.
    * Reworked the way project list is assembled.
    ! Fixed root dir issues.
    ! Fixed -instpath option

  * config/postinst.hbs
    * Tweaked to convert pathseps in external tool calls
      to native.

  * ChangeLog
    ! Corrected most basic problems with Massimo's latest
      log entry. Massimo: You fixed a one byte typo and 
      caused by to fix about 10 typos writing 3-4 letters.
      This isn't very effective help.
This commit is contained in:
Viktor Szakats
2010-07-04 17:04:24 +00:00
parent 1a6ccb67b6
commit ea84a85230
5 changed files with 114 additions and 133 deletions

View File

@@ -15,10 +15,51 @@
under different terms, please contact respective author(s).
The license applies to all entries newer than 2009-04-28.
*/
2010-07-04 18:30 UTC+0100 Belgrano Massuno (mbelgrano@deltain.it)
corrected small typo in harbour/examples/httpsrv/uhttp d.prg
made and posted from Jacek Kubica
2010-07-04 19:03 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
- bin/patchup.hbs
+ bin/hbxpatch.hbs
* Renamed to have hb prefix.
Better suggestion are welcome for the name, don't
consider this final. Pbly sth like hbupdext.prg
would be better.
* contrib/Makefile
* Changed test status of makefile.hbs call to make it
do some actual work.
* config/postinst.hbs
- Deleted implib creation. Now done by makefile.hbs.
Implibs are never required for core, so this is now
much cleaner.
- Deleted experimental HB_BUILD_ADDONS support. This
feature has moved to makefile.hbs and it can be
controlled by HB_ADDONS_LIB and HB_ADDONS_BIN to add
non-hosted extra components to the build process.
The envvar names are not finalized.
* Changed to only copy .hbs files starting with 'hb'
in bin dir to avoid catching local scripts and adding
them to install.
* contrib/makefile.hbs
+ Makred dependencies from external.
* Reworked the way project list is assembled.
! Fixed root dir issues.
! Fixed -instpath option
* config/postinst.hbs
* Tweaked to convert pathseps in external tool calls
to native.
* ChangeLog
! Corrected most basic problems with Massimo's latest
log entry. Massimo: You fixed a one byte typo and
caused by to fix about 10 typos writing 3-4 letters.
This isn't very effective help.
2010-07-04 18:30 UTC+0100 Belgrano Massuno (mbelgrano@deltain.it)
* harbour/examples/httpsrv/uhttpd.prg
made and posted from Jacek Kubica corrected small typo in
2010-07-04 09:08 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbxbp/xbpmenubar.prg
@@ -60,38 +101,38 @@ made and posted from Jacek Kubica
+ Reworked: ideDBU interface.
Now it is hosted in a MDI interface which is more natural
to table management, including relational views. User can
to table management, including relational views. User can
rearrange and resize the browsers to his personal tastes.
Here is the layout hirarchy of ideDBU:
hbIDE
ideDBU - docking pane, right-hand, floatable, dockable.
Toolbar
Add a table, Form View, Tabbed View, Original View,
Cascaded View, Tiled View, Remove browser,
Add a table, Form View, Tabbed View, Original View,
Cascaded View, Tiled View, Remove browser,
Panels - create button, switch menu
Panels - user defined, only one visible at a time
Panel 1
Browser 1 - .dbf, an array ( TODO, functionality is there )
Browser 2
Browser 2
Browser n
Panel 2
Panel 2
Browser 1
Browser 2
Browser 2
Browser n
Panel n
Panel n
Browser 1
Browser 2
Browser 2
Browser n
Panels retain their last contents and are presented
on next run as is. The only exception being panel "Main"
Panels retain their last contents and are presented
on next run as is. The only exception being panel "Main"
is always the first visible.
NOTE: there is a lot on my drawing board.
So far I was struggling to make the behavior of
So far I was struggling to make the behavior of
XbpBrowser stable per TBrowse specs and interface
design. Rest will follow soon.
2010-07-04 15:53 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* harbour-win-spec
* harbour-wce-spec

View File

@@ -84,21 +84,10 @@ PROCEDURE Main()
hb_FCopy( "COPYING", GetEnv( "HB_INSTALL_PREFIX" ) + _PS_ + "COPYING" )
hb_FCopy( "INSTALL", GetEnv( "HB_INSTALL_PREFIX" ) + _PS_ + "INSTALL" )
hb_FCopy( "TODO" , GetEnv( "HB_INSTALL_PREFIX" ) + _PS_ + "TODO" )
ENDIF
/* Import library generation */
IF GetEnv( "HB_PLATFORM" ) $ "win|wce|os2" .AND. ;
GetEnv( "HB_BUILD_IMPLIB" ) == "yes" .AND. ;
! Empty( GetEnv( "HB_HOST_BIN_DIR" ) )
FOR EACH tmp IN PackageList( "contrib" + _PS_ + hb_osFileMask(), GetEnv( "HB_CONTRIBLIBS" ), GetEnv( "HB_CONTRIB_ADDONS" ) )
IF hb_FileExists( "contrib" + _PS_ + tmp + _PS_ + tmp + ".hbi" )
mk_hb_processRun( GetEnv( "HB_HOST_BIN_DIR" ) + _PS_ + "hbmk2" +;
" -quiet -lang=en" +;
" contrib/" + tmp + "/" + tmp + ".hbi" +;
" -o${HB_LIB_INSTALL}/" )
ENDIF
/* public Harbour scripts */
FOR EACH tmp IN { "hbxpatch.hbs" }
hb_FCopy( "bin" + _PS_ + tmp, GetEnv( "HB_BIN_INSTALL" ) + _PS_ + tmp )
NEXT
ENDIF
@@ -114,23 +103,6 @@ PROCEDURE Main()
cOptions += " -debug"
ENDIF
/* Creating extra binaries */
IF ! Empty( GetEnv( "HB_BUILD_ADDONS" ) ) .AND. ;
! Empty( GetEnv( "HB_HOST_BIN_DIR" ) )
OutStd( "! Making binaries for .hbp project addons..." + hb_osNewLine() )
FOR EACH tmp IN hb_ATokens( GetEnv( "HB_BUILD_ADDONS" ),, .T. )
IF ! Empty( tmp )
mk_hb_processRun( GetEnv( "HB_HOST_BIN_DIR" ) + _PS_ + "hbmk2" +;
" -quiet -lang=en -q0" + cOptions +;
" " + Chr( 34 ) + StrTran( tmp, "\", "/" ) + Chr( 34 ) +;
" -o${HB_BIN_INSTALL}/" )
ENDIF
NEXT
ENDIF
/* Creating shared version of Harbour binaries
(except one which have shared versions build by default and hbmk2) */
@@ -148,7 +120,7 @@ PROCEDURE Main()
!( tmp[ F_NAME ] $ "hbformat|hbi18n|hbtest|hbmk2" ) .AND. ;
hb_FileExists( "utils" + _PS_ + tmp[ F_NAME ] + _PS_ + tmp[ F_NAME ] + ".hbp" )
mk_hb_processRun( GetEnv( "HB_HOST_BIN_DIR" ) + _PS_ + "hbmk2" +;
mk_hb_processRun( PathSepToSelf( GetEnv( "HB_HOST_BIN_DIR" ) ) + _PS_ + "hbmk2" +;
" -quiet -lang=en -q0 -shared" + cOptions +;
" utils/" + tmp[ F_NAME ] + "/" + tmp[ F_NAME ] + ".hbp" +;
" -o${HB_BIN_INSTALL}/" + tmp[ F_NAME ] + "-dll" )
@@ -177,7 +149,7 @@ PROCEDURE Main()
cOldDir := _PS_ + CurDir()
DirChange( GetEnv( "HB_INSTALL_PREFIX" ) + _PS_ + ".." )
mk_hb_processRun( GetEnv( "HB_DIR_ZIP" ) + "zip" +;
mk_hb_processRun( PathSepToSelf( GetEnv( "HB_DIR_ZIP" ) ) + "zip" +;
" -q -9 -X -r -o" +;
" " + FN_Escape( tmp ) +;
" . -i " + FN_Escape( GetEnv( "HB_PKGNAME" ) + _PS_ + "*" ) +;
@@ -191,7 +163,7 @@ PROCEDURE Main()
OutStd( "! Making Harbour .exe install package: '" + tmp + "'" + hb_osNewLine() )
mk_hb_processRun( GetEnv( "HB_DIR_NSIS" ) + "makensis.exe" +;
mk_hb_processRun( PathSepToSelf( GetEnv( "HB_DIR_NSIS" ) ) + "makensis.exe" +;
" -V2" +;
" " + FN_Escape( StrTran( "package/mpkg_win.nsi", "/", _PS_ ) ) )
ENDIF
@@ -210,43 +182,11 @@ STATIC FUNCTION mk_hb_processRun( cCommand )
STATIC FUNCTION FN_Escape( cFN )
RETURN Chr( 34 ) + cFN + Chr( 34 )
/* NOTE: Must be in sync with contrib/Makefile logic */
STATIC FUNCTION PackageList( cMask, cBase, cAddOn )
LOCAL aList := {}
LOCAL aBase
LOCAL tmp
aBase := iif( Empty( cBase ), {}, hb_ATokens( cBase,, .T. ) )
DO CASE
CASE Len( aBase ) == 1 .AND. aBase[ 1 ] == "no"
/* fall through */
CASE Len( aBase ) > 1 .AND. aBase[ 1 ] == "no"
hb_ADel( aBase, 1, .T. )
FOR EACH tmp IN Directory( cMask, "D" )
IF "D" $ tmp[ F_ATTR ] .AND. !( tmp[ F_NAME ] == "." ) .AND. !( tmp[ F_NAME ] == ".." ) .AND. ;
AScan( aBase, {| tmp1 | tmp1 == tmp[ F_NAME ] } ) == 0
AAdd( aList, tmp[ F_NAME ] )
ENDIF
NEXT
CASE Len( aBase ) > 0
aList := hb_ATokens( cBase,, .T. )
OTHERWISE
FOR EACH tmp IN Directory( cMask, "D" )
IF "D" $ tmp[ F_ATTR ] .AND. !( tmp[ F_NAME ] == "." ) .AND. !( tmp[ F_NAME ] == ".." )
AAdd( aList, tmp[ F_NAME ] )
ENDIF
NEXT
ENDCASE
IF ! Empty( cAddOn )
FOR EACH tmp IN hb_ATokens( cAddOn,, .T. )
IF ! Empty( tmp )
IF AScan( aList, {| tmp1 | tmp1 == tmp } ) == 0
AAdd( aList, tmp )
ENDIF
ENDIF
NEXT
ENDIF
RETURN aList
STATIC FUNCTION PathSepToSelf( cFileName )
#if defined( __PLATFORM__WINDOWS ) .OR. ;
defined( __PLATFORM__DOS ) .OR. ;
defined( __PLATFORM__OS2 )
RETURN StrTran( cFileName, "/", "\" )
#else
RETURN StrTran( cFileName, "\", "/" )
#endif

View File

@@ -82,10 +82,10 @@ else
endif
clean::
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/makefile.hbs clean test,)
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/makefile.hbs clean migr,)
install::
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/makefile.hbs install test,)
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/makefile.hbs install migr,)
all:
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/makefile.hbs all test,)
$(if $(wildcard $(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT)),+$(HB_HOST_BIN_DIR)/hbrun$(HB_HOST_BIN_EXT) --hb:gtcgi $(TOP)$(ROOT)contrib/makefile.hbs all migr,)

View File

@@ -10,9 +10,6 @@
* See COPYING for licensing terms.
*/
/* WARNING: This file is part of the GNU Make-based build
system. Running it separately is not supported. */
/* TODO:
1. error handling / reporting / feedback
2. copy headers (or solve .hbc search path in universal way)
@@ -32,7 +29,8 @@ STATIC s_lTest
PROCEDURE Main( ... )
LOCAL cBase := "contrib/"
LOCAL cBase := ""
LOCAL cRoot := "../"
LOCAL aImpLibs := {;
"gtalleg/gtalleg.hbi" ,;
@@ -54,7 +52,7 @@ PROCEDURE Main( ... )
LOCAL aLibsPass1 := {;
"hbblink/hbblink.hbp" ,;
"hbbz2/hbbz2.hbp" ,;
"hbbz2/hbbz2.hbp" ,; /* uses: bz2 (external) */
"hbclipsm/hbclipsm.hbp" ,;
"hbcomm/hbcomm.hbp" ,;
"hbct/hbct.hbp" ,;
@@ -63,12 +61,12 @@ PROCEDURE Main( ... )
"hbgt/hbgt.hbp" ,;
"hbmemio/hbmemio.hbp" ,;
"hbmisc/hbmisc.hbp" ,;
"hbmzip/hbmzip.hbp" ,;
"hbmzip/hbmzip.hbp" ,; /* uses: minizip (external) */
"hbnetio/hbnetio.hbp" ,;
"hbnf/hbnf.hbp" ,;
"hbodbc/hbodbc.hbp" ,;
"hbsms/hbsms.hbp" ,;
"hbsqlit3/hbsqlit3.hbp" ,;
"hbsqlit3/hbsqlit3.hbp" ,; /* uses: sqlite3 (external) */
"hbtpathy/hbtpathy.hbp" ,;
"hbwin/hbwin.hbp" ,;
"hbxpp/hbxpp.hbp" ,;
@@ -106,7 +104,7 @@ PROCEDURE Main( ... )
"sddoci/sddoci.hbp" ,; /* uses: rddsql */
"sddodbc/sddodbc.hbp" ,; /* uses: rddsql */
"sddpg/sddpg.hbp" ,; /* uses: rddsql */
"sddsqlt3/sddsqlt3.hbp" } /* uses: rddsql */
"sddsqlt3/sddsqlt3.hbp" } /* uses: rddsql, sqlite3 (external) */
LOCAL aLibsPass3 := {;
"gtwvg/gtwvg.hbp" ,; /* uses: hbwin */
@@ -119,28 +117,11 @@ PROCEDURE Main( ... )
"hbnetio/utils/netiosrv.hbp" ,; /* uses: hbnetio */
"hbide/hbide.hbp" } /* uses: hbxbp, hbqt */
LOCAL aAll := {;
aImpLibs ,;
aLibsPass1 ,;
aLibsPass2 ,;
aLibsPass3 ,;
aUtils,;
hb_ATokens( GetEnv( "HB_ADDONS_LIB" ),, .T. ),;
hb_ATokens( GetEnv( "HB_ADDONS_BIN" ),, .T. ) }
LOCAL aAll
LOCAL hItem
LOCAL aAllType := {;
"implib" ,;
"lib" ,;
"lib" ,;
"lib" ,;
"bin" ,;
"lib" ,;
"bin" }
LOCAL chunk
LOCAL cProject
LOCAL cProjectDir
LOCAL cType
LOCAL cInstallDirVar
LOCAL cTargetDir
@@ -156,8 +137,8 @@ PROCEDURE Main( ... )
s_lTest := AScan( aParams, "test" ) > 0
IF s_lTest
OutStd( "! New contrib make orchestrator test run." + iif( AScan( aParams, "clean" ) > 0, " CLEAN", "" ) + iif( AScan( aParams, "install" ) > 0, " INSTALL", "" ) + hb_osNewLine() )
IF AScan( aParams, "migr" ) > 0
OutStd( "! New contrib make orchestrator test run." + iif( AScan( aParams, "clean" ) > 0, " CLEAN", "" ) + iif( AScan( aParams, "install" ) > 0, " INSTALL", "" ) + " " + hb_dirBase() + " " + CurDir() + hb_osNewLine() )
/* testing with a limited set of contribs */
aLibsPass1 := {;
@@ -217,8 +198,17 @@ PROCEDURE Main( ... )
/* Start building */
FOR EACH chunk, cType IN aAll, aAllType
FOR EACH cProject IN chunk
aAll := {;
{ "type" => "implib", "list" => aImpLibs },;
{ "type" => "lib" , "list" => aLibsPass1 },;
{ "type" => "lib" , "list" => aLibsPass2 },;
{ "type" => "lib" , "list" => aLibsPass3 },;
{ "type" => "bin" , "list" => aUtils },;
{ "type" => "lib" , "list" => hb_ATokens( GetEnv( "HB_ADDONS_LIB" ),, .T. ) },;
{ "type" => "bin" , "list" => hb_ATokens( GetEnv( "HB_ADDONS_BIN" ),, .T. ) } }
FOR EACH hItem IN aAll
FOR EACH cProject IN hItem[ "list" ]
IF ! Empty( cProject )
@@ -235,14 +225,14 @@ PROCEDURE Main( ... )
AScan( aFilter, {| tmp | tmp == cProjectDir } ) == 0,;
AScan( aFilter, {| tmp | tmp == cProjectDir } ) > 0 )
SWITCH cType
SWITCH hItem[ "type" ]
CASE "lib"
CASE "implib"
cTargetDir := "lib/${hb_plat}/${hb_comp}" + iif( lBuildName, "/${hb_build}", "" )
cTargetDir := cRoot + "lib/${hb_plat}/${hb_comp}" + iif( lBuildName, "/${hb_build}", "" )
cInstallDirVar := "HB_LIB_INSTALL"
EXIT
CASE "bin"
cTargetDir := "bin/${hb_plat}/${hb_comp}" + iif( lBuildName, "/${hb_build}", "" )
cTargetDir := cRoot + "bin/${hb_plat}/${hb_comp}" + iif( lBuildName, "/${hb_build}", "" )
cInstallDirVar := "HB_BIN_INSTALL"
EXIT
ENDSWITCH
@@ -251,14 +241,15 @@ PROCEDURE Main( ... )
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -clean", .F. )
ELSEIF AScan( aParams, "install" ) > 0
IF ! Empty( GetEnv( cInstallDirVar ) ) .AND. ;
( ! ( cType == "implib" ) .OR. GetEnv( "HB_BUILD_IMPLIB" ) == "yes" )
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -instpath=${" + cInstallDirVar + "}", .F. )
( ! ( hItem[ "type" ] == "implib" ) .OR. GetEnv( "HB_BUILD_IMPLIB" ) == "yes" )
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -instpath=${" + cInstallDirVar + "}/", .F. )
ENDIF
ELSE
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -inc", .F. )
ENDIF
IF cType == "lib" .AND. GetEnv( "HB_BUILD_CONTRIB_DLL" ) == "yes" .AND. ;
/* Highly experimental */
IF hItem[ "type" ] == "lib" .AND. GetEnv( "HB_BUILD_CONTRIB_DLL" ) == "yes" .AND. ;
hb_FileExists( FN_ExtSet( cBase + cProject, ".hbc" ) )
cInstallDirVar := "HB_BIN_INSTALL"
@@ -267,8 +258,8 @@ PROCEDURE Main( ... )
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -clean", .T. )
ELSEIF AScan( aParams, "install" ) > 0
IF ! Empty( GetEnv( cInstallDirVar ) ) .AND. ;
( ! ( cType == "implib" ) .OR. GetEnv( "HB_BUILD_IMPLIB" ) == "yes" )
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -instpath=${" + cInstallDirVar + "}", .T. )
( ! ( hItem[ "type" ] == "implib" ) .OR. GetEnv( "HB_BUILD_IMPLIB" ) == "yes" )
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -instpath=${" + cInstallDirVar + "}/", .T. )
ENDIF
ELSE
call_hbmk2( cBase + cProject, cTargetDir, cOptions + " -inc", .T. )
@@ -294,7 +285,7 @@ STATIC FUNCTION call_hbmk2( cProject, cTargetDir, cOptions, lDyn )
/* TOFIX: Add -implib option. It collides with static lib so needs to be resolved. */
nErrorLevel := mk_hb_processRun( GetEnv( "HB_HOST_BIN_DIR" ) + _PS_ + "hbmk2" +;
nErrorLevel := mk_hb_processRun( PathSepToSelf( GetEnv( "HB_HOST_BIN_DIR" ) ) + _PS_ + "hbmk2" +;
" -quiet -lang=en -width=1000 -q0" + cOptions +;
" " + cProject +;
iif( lDyn, " -hbdyn -nohblib- " + FN_ExtSet( cProject, ".hbc" ), "" ) +;
@@ -319,3 +310,12 @@ STATIC FUNCTION FN_ExtSet( cFileName, cExt )
hb_FNameSplit( cFileName, @cDir, @cName )
RETURN hb_FNameMerge( cDir, cName, cExt )
STATIC FUNCTION PathSepToSelf( cFileName )
#if defined( __PLATFORM__WINDOWS ) .OR. ;
defined( __PLATFORM__DOS ) .OR. ;
defined( __PLATFORM__OS2 )
RETURN StrTran( cFileName, "/", "\" )
#else
RETURN StrTran( cFileName, "\", "/" )
#endif