2017-09-14 23:00 UTC Viktor Szakats (vszakats users.noreply.github.com)

* contrib/hbmisc/tests/pe.prg
  * contrib/hbpost.hbm
  * contrib/hbpre.hbm
  * contrib/make.hb
    * sync text and minor code/comment updates with the 3.4 fork
This commit is contained in:
Viktor Szakats
2017-09-14 23:01:30 +00:00
parent 0764e1b746
commit b16bd0a0fb
5 changed files with 71 additions and 67 deletions

View File

@@ -7,6 +7,13 @@
Entries may not always be in chronological/commit order.
See license at the end of file. */
2017-09-14 23:00 UTC Viktor Szakats (vszakats users.noreply.github.com)
* contrib/hbmisc/tests/pe.prg
* contrib/hbpost.hbm
* contrib/hbpre.hbm
* contrib/make.hb
* sync text and minor code/comment updates with the 3.4 fork
2017-09-13 21:33 UTC Viktor Szakats (vszakats users.noreply.github.com)
* bin/check.hb
* contrib/gtwvw/*

View File

@@ -45,30 +45,24 @@ STATIC FUNCTION Example_Text()
STATIC FUNCTION Example_Text_Raw()
#pragma __cstream | RETURN %s
~2THE HARBOUR PROJECT LICENSE~1
~3 ===========================
~2Lorem ipsum dolor sit amet, consectetur adipiscing elit.~1
~3 ========================================================
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version, with one exception:
Integer a dolor eu lorem luctus cursus. Proin varius dui quis felis.
Sed vitae lacus ac mauris cursus vehicula. Nulla sodales fringilla
lorem. Praesent odio mi, interdum eget, facilisis et, elementum
luctus, enim. Vivamus sed est. Cras leo dolor, mollis et, suscipit
sed, interdum ac, elit. Phasellus cursus, arcu nec bibendum cursus,
dolor mi vestibulum leo, ut cursus orci sem id dolor. Morbi porttitor
libero nec risus. Duis diam justo, blandit sed, fermentum eu,
consectetur at, arcu. Quisque felis ipsum, facilisis quis, ultrices
sed, venenatis aliquam, urna. Cras sit amet risus. Pellentesque
dictum. In hac habitasse platea dictumst.
The exception is that if you link the Harbour Runtime Library (HRL)
and/or the Harbour Virtual Machine (HVM) with other files to produce
an executable, this does not by itself cause the resulting executable
to be covered by the GNU General Public License. Your use of that
executable is in no way restricted on account of linking the HRL
and/or HVM code into it.
This program is distributed in the hope that it will be useful,
but ~2WITHOUT ANY WARRANTY~1; without even the implied warranty of
~4MERCHANTABILITY~1 or ~5FITNESS FOR A PARTICULAR PURPOSE~1. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
their web site at https://www.gnu.org/).
Nunc odio elit, mattis et, rutrum id, faucibus vitae, ipsum. Donec
aliquet sem sed augue. Aliquam erat volutpat. Etiam ultrices, metus
a tristique ornare, tellus urna congue nunc, vitae iaculis risus
enim quis magna.
~5This file have to be separated with CR/LF characters~1
#pragma __endtext

View File

@@ -1,3 +1,5 @@
# Copyright 2010 Viktor Szakats (vszakats.net/harbour)
# These are mandatory inside Harbour repository, they will always
# override project options.

View File

@@ -1,3 +1,5 @@
# Copyright 2010 Viktor Szakats (vszakats.net/harbour)
# These may be overridden by local project options.
-q0
@@ -12,9 +14,4 @@
{(HB_BUILD_MODE='cpp')|(!HB_BUILD_MODE&allmsvc)}-cpp=yes
{HB_BUILD_MODE='c'}-cpp=no
-c=iso90
# For cegcc Windows headers
-c=gnu90{wce&allmingw}
-warn=yes

View File

@@ -1,4 +1,4 @@
#!/usr/bin/hbrun --hb:gtcgi
#!/usr/bin/env hbmk2
/*
* Package build orchestrator script
*
@@ -15,9 +15,9 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
* their web site at https://www.gnu.org/).
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
* (or visit their website at https://www.gnu.org/licenses/).
*
*/
@@ -103,7 +103,7 @@ PROCEDURE Main( ... )
#4 install install _ACT_INC_INST -inc -instpath=
#5 clean install clean install _ACT_INC_REBUILD_INST -inc -rebuildall -instpath=
*/
PROCEDURE Standalone( aParams, hProjectList )
STATIC PROCEDURE Standalone( aParams, hProjectList )
LOCAL hProjectReqList
@@ -116,7 +116,7 @@ PROCEDURE Standalone( aParams, hProjectList )
LOCAL lCustom
LOCAL cCustomDir
/* Processing cmdline options */
/* Processing command-line options */
DO CASE
CASE AScanL( aParams, "clean" ) > 0 .AND. ;
@@ -142,24 +142,25 @@ PROCEDURE Standalone( aParams, hProjectList )
cOptionsUser := ""
lCustom := .F.
FOR EACH tmp IN aParams
IF !( Lower( tmp ) == "install" ) .AND. ;
!( Lower( tmp ) == "clean" ) .AND. ;
!( Lower( tmp ) == "all" ) .AND. ;
!( Lower( tmp ) == "first" ) .AND. ;
!( Lower( tmp ) == "rebuild" ) .AND. ;
!( Lower( tmp ) == "verbose" )
IF ! Lower( tmp ) == "install" .AND. ;
! Lower( tmp ) == "clean" .AND. ;
! Lower( tmp ) == "all" .AND. ;
! Lower( tmp ) == "first" .AND. ;
! Lower( tmp ) == "rebuild" .AND. ;
! Lower( tmp ) == "verbose"
cOptionsUser += " " + tmp
/* If anything else is passed than options or GNU Make keywords,
consider it a custom project build, f.e. in tests */
IF !( Left( tmp, 1 ) == "-" )
IF ! Left( tmp, 1 ) == "-"
lCustom := .T.
ENDIF
ENDIF
NEXT
/* Assemble list of primary targets (registered projects in current directory) */
/* Assemble list of primary targets (registered projects in or under
current directory) */
hProjectReqList := { => }
@@ -172,7 +173,8 @@ PROCEDURE Standalone( aParams, hProjectList )
ENDIF
IF ! lCustom
/* Find out which projects are in current dir, these will be our primary targets */
/* Find out which projects are in current dir, these will be our
primary targets */
FOR EACH tmp IN hProjectList
tmp1 := hb_ps() + hb_FNameDir( hb_DirSepToOS( tmp:__enumKey() ) )
IF tmp1 == Right( hb_cwd(), Len( tmp1 ) ) /* Not ultimate solution */
@@ -216,7 +218,7 @@ PROCEDURE Standalone( aParams, hProjectList )
#6 install clean install install clean _ACT_INC_INST -inc -instpath=
clean install clean _ACT_INC_CLEAN -inc -clean
*/
PROCEDURE GNUMake( aParams, hProjectList )
STATIC PROCEDURE GNUMake( aParams, hProjectList )
LOCAL cProject
LOCAL hProjectReqList
@@ -255,11 +257,10 @@ PROCEDURE GNUMake( aParams, hProjectList )
IF AScanL( aGNUMakeParams, "clean" ) > 0 .AND. ;
AScanL( aGNUMakeParams, "install" ) > 0 .AND. ;
AScanL( aGNUMakeParams, "install" ) > AScanL( aGNUMakeParams, "clean" )
/* Use rebuild mode. This is needed because the clean phase
might not have been called previously by GNU Make, f.e.
because hbrun or hbmk2 wasn't available. -rebuildall is
costless, so we do it to make sure to build cleanly.
[vszakats] */
/* Use rebuild mode. This is needed because the clean phase might not
have been called previously by core GNU Make, f.e. because hbrun
or hbmk2 wasn't available. -rebuildall is costless, so we do it to
make sure to build cleanly. [vszakats] */
nAction := _ACT_INC_REBUILD_INST
ELSE
nAction := _ACT_INC_INST
@@ -339,7 +340,7 @@ PROCEDURE GNUMake( aParams, hProjectList )
hb_SetEnv( "_HB_INSTALL_ETC", GetEnv( "HB_INSTALL_ETC" ) )
hb_SetEnv( "_HB_INSTALL_CONTRIB", GetEnv( "HB_INSTALL_CONTRIB" ) )
/* Override hbmk2 autodetection. WARNING: Must be in sync with global.mk logic */
/* Override hbmk2 auto-detection. WARNING: Must be in sync with global.mk logic */
hb_SetEnv( "HB_INSTALL_PREFIX", s_cRoot )
hb_SetEnv( "HB_INSTALL_BIN", s_cRoot + "bin/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + GetEnv( "HB_BUILD_NAME" ) )
hb_SetEnv( "HB_INSTALL_LIB", s_cRoot + "lib/" + GetEnv( "HB_PLATFORM" ) + "/" + GetEnv( "HB_COMPILER" ) + GetEnv( "HB_BUILD_NAME" ) )
@@ -392,7 +393,8 @@ STATIC PROCEDURE build_projects( nAction, hProjectList, hProjectReqList, cOption
aSortedList := TopoSort( aPairList )
/* Add referenced project not present in our list and featuring an .hbp file */
/* Add referenced project not present in our list and featuring an .hbp
file */
FOR EACH cProject IN aSortedList
IF AddProject( hProjectList, @cProject )
call_hbmk2_hbinfo( s_cBase + s_cHome + cProject, hProjectList[ cProject ] )
@@ -404,9 +406,9 @@ STATIC PROCEDURE build_projects( nAction, hProjectList, hProjectReqList, cOption
(we need "cType" to decide about dynamic build) */
IF GetEnv( "HB_BUILD_CONTRIB_DYN" ) == "yes"
FOR EACH cProject IN aSortedList
IF !( cProject $ hProjectReqList ) .AND. ;
IF ! cProject $ hProjectReqList .AND. ;
cProject $ hProjectList .AND. ;
!( "lChecked" $ hProjectList[ cProject ] )
! "lChecked" $ hProjectList[ cProject ]
call_hbmk2_hbinfo( s_cBase + s_cHome + cProject, hProjectList[ cProject ] )
ENDIF
NEXT
@@ -415,18 +417,20 @@ STATIC PROCEDURE build_projects( nAction, hProjectList, hProjectReqList, cOption
/* Convert action to hbmk2 options */
cOptions := " -inc"
IF nAction == _ACT_INC_CLEAN
SWITCH nAction
CASE _ACT_INC_CLEAN
cOptions += " -clean"
ELSEIF nAction == _ACT_INC_REBUILD .OR. ;
nAction == _ACT_INC_REBUILD_INST
EXIT
CASE _ACT_INC_REBUILD
CASE _ACT_INC_REBUILD_INST
cOptions += " -rebuildall"
ENDIF
EXIT
ENDSWITCH
cMakeFlags := GetEnv( "MAKEFLAGS" )
IF " -j " $ " " + cMakeFlags + " "
/* GNU Make uses job server to limit number of concurrent operations
* We cannot read it from MAKEFLAGS so I set it to arbitrary value: 8
*/
We cannot read it from MAKEFLAGS so I set it to arbitrary value: 8 */
cOptions += " -jobs=8"
ENDIF
@@ -643,7 +647,7 @@ STATIC PROCEDURE DeptLinesToDeptPairList( aPairList, cParent, aFlatTree )
AddDeptPair( aPairList, "", cParent )
hNode := { "child" => {}, "name" => cParent, "parent" => NIL }
hNode := { "child" => {}, "name" => cParent, "parent" => }
nLevel := 0
FOR EACH hFlatTreeElement IN aFlatTree
/* Min() protects against jumping more than one level down in one step */
@@ -715,7 +719,7 @@ STATIC FUNCTION TopoSort( aEdgeList )
RETURN aList
FUNCTION AddProject( hProjectList, cFileName )
STATIC FUNCTION AddProject( hProjectList, cFileName )
LOCAL cDir
LOCAL cName
@@ -727,11 +731,12 @@ FUNCTION AddProject( hProjectList, cFileName )
hb_FNameSplit( cFileName, @cDir, @cName, @cExt )
IF Empty( cName )
DO CASE
CASE Empty( cName )
cName := DirGetName( cDir )
ELSEIF Empty( cDir )
CASE Empty( cDir )
cDir := cName
ENDIF
ENDCASE
IF Empty( cExt )
cExt := ".hbp"
ENDIF
@@ -745,12 +750,11 @@ FUNCTION AddProject( hProjectList, cFileName )
RETURN .T.
ENDIF
ENDIF
ENDIF
RETURN .F.
PROCEDURE LoadProjectListFromFile( hProjectList, cFileName )
STATIC PROCEDURE LoadProjectListFromFile( hProjectList, cFileName )
LOCAL cItem
@@ -763,7 +767,7 @@ PROCEDURE LoadProjectListFromFile( hProjectList, cFileName )
RETURN
PROCEDURE LoadProjectListFromString( hProjectList, cString )
STATIC PROCEDURE LoadProjectListFromString( hProjectList, cString )
LOCAL cItem