2009-02-27 19:19 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* INSTALL
  * make_gnu.bat
  * make_gnu.sh
    + Added listing of supported C compilers.
    + Added list of available built-time options.
      (may be incomplete).
    ! Added -n options to hbmk2 calls.
    - Removed similar content from script files.

  * make_gnu.bat
    - Removed --install-with-dll option.
      Use set HB_BUILD_DLL=yes instead.

  * utils/hbmk2/hbmk2.prg
    ! Fixed swapped -hbcc and -hbcmp meaning.
    + Don't deal with compiler autodetection if called with
      -hbcmp option. In this mode a C compiler isn't needed
      at all.
This commit is contained in:
Viktor Szakats
2009-02-27 18:19:42 +00:00
parent 8f55af95e6
commit 03f89cb121
5 changed files with 232 additions and 213 deletions

View File

@@ -8,6 +8,26 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-02-27 19:19 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* INSTALL
* make_gnu.bat
* make_gnu.sh
+ Added listing of supported C compilers.
+ Added list of available built-time options.
(may be incomplete).
! Added -n options to hbmk2 calls.
- Removed similar content from script files.
* make_gnu.bat
- Removed --install-with-dll option.
Use set HB_BUILD_DLL=yes instead.
* utils/hbmk2/hbmk2.prg
! Fixed swapped -hbcc and -hbcmp meaning.
+ Don't deal with compiler autodetection if called with
-hbcmp option. In this mode a C compiler isn't needed
at all.
2009-02-27 17:54 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* make_gnu.bat
! Fixed to work when DLLs weren't requested.

View File

@@ -7,7 +7,7 @@ HOW TO BUILD AND INSTALL HARBOUR
For all platforms you'll need:
* GNU make
* GNU Make
* Supported C compiler
Linux/Darwin/BSD/HP-UX/Solaris
@@ -18,7 +18,7 @@ HOW TO BUILD AND INSTALL HARBOUR
$ sudo ./make_gnu.sh install
To test it, go to <DIR>/bin directory and type:
$ ./hbmk2 ../tests/hello.prg
$ ./hbmk2 -n ../tests/hello.prg
$ ./hello
You should see: 'Hello world!' on screen.
@@ -34,7 +34,7 @@ HOW TO BUILD AND INSTALL HARBOUR
> sh make_gnu.sh install
To test it, go to <DIR>/bin directory and type:
> hbmk2 ../tests/hello.prg
> hbmk2 -n ../tests/hello.prg
> hello
You should see: 'Hello world!' on screen.
@@ -51,11 +51,9 @@ HOW TO BUILD AND INSTALL HARBOUR
> set HB_COMPILER=<msvc|bcc32|owatcom|...>
> set HB_INSTALL_PREFIX=<DIR>
> make_gnu.bat install
or
> make_gnu.bat --install-with-dll
To test it, go to <DIR>\bin directory and type:
> hbmk2 ..\tests\hello.prg
> hbmk2 -n ..\tests\hello.prg
> hello
You should see: 'Hello world!' on screen.
@@ -107,4 +105,93 @@ HOW TO ENABLE OPTIONAL COMPONENTS BEFORE BUILD
HB_INC_PGSQL=C:\pgsql\include
SUPPORTED C COMPILERS UNDER DIFFERENT PLATFORMS
===============================================
Abbreviation below can be used as HB_COMPILER values.
Linux
-----
gcc - GNU C
gpp - GNU C++
owatcom - Open Watcom C++
icc - Intel(R) C/C++
Darwin/BSD/HP-UX/Solaris
------------------------
gcc - GNU C
Windows
-------
mingw - MinGW GNU C
msvc - Microsoft Visual C++
gcc - Cygwin GNU C
bcc32 - Borland/CodeGear C++ 4.x and above
rxsnt - EMX/RSXNT/Windows GNU C
icc - IBM Visual Age C++
dmc - Digital Mars C
msvc64 - Microsoft Visual C++ x64
msvcia64 - Microsoft Visual C++ ia64
mingwce - MinGW GNU C (Windows CE / ARM)
msvcce - Microsoft Visual C++ (Windows CE / ARM)
pocc - Pelles C 4.5 and above
pocc64 - Pelles C 5.0 x64
poccce - Pelles C 5.0 (Windows CE / ARM)
xcc - Pelles C (xhb)
DOS (32-bit)
---
djgpp - Delorie GNU C
owatcom - Open Watcom C++ 9.x and above
rxs32 - EMX/RSXNT/DOS GNU C
OS/2
----
gcc - EMX GNU C
owatcom - Open Watcom C++
icc - IBM Visual Age C++ 3.0
OPTIONS AVAILABLE WHEN BUILDING HARBOUR
=======================================
You can fine-tune Harbour builds with below listed
environment variables. All of these are optional.
General
-------
- HB_USER_PRGFLAGS User Harbour compiler options
- HB_USER_CFLAGS User C compiler options
- HB_USER_LDFLAGS User linker options for executables
- HB_USER_AFLAGS User linker options for libraries
- HB_USER_MAKEFLAGS User GNU Make options
- HB_BIN_INSTALL Target directory to install executables
- HB_LIB_INSTALL Target directory to install libraries
- HB_INC_INSTALL Target directory to install language headers
- HB_DOC_INSTALL Target directory to install documentation
Special
-------
- HB_BUILD_DLL=yes To create a full build with .dlls.
This is only needed and available for
non-GNU Windows compilers.
- HB_REBUILD_PARSER=yes To rebuild the language parses.
This requires GNU Bison.
- HB_VISUALC_VER_PRE80=yes Set this if you're using a pre-8.0
version of MSVC compiler.
Cross building
--------------
HB_BIN_COMPILE=<HARBOUR_NATIVE_BUILD_DIR>\bin
HB_PPGEN_PATH=<HARBOUR_NATIVE_BUILD_DIR>\bin
HB=<HARBOUR_NATIVE_BUILD_DIR>\bin\harbour[.exe]
HBPP=<HARBOUR_NATIVE_BUILD_DIR>\bin\hbpp[.exe]
You need these when building for a platform different to host.
For this to work, you will need to point above envvars to
a native Harbour build available on your system.
[ Viktor Szakats <harbour.01 syenar.hu> ]

View File

@@ -23,17 +23,6 @@ rem Copyright 1999-2001 Viktor Szakats (viktor.szakats@syenar.hu)
rem See doc/license.txt for licensing terms.
rem ---------------------------------------------------------------
rem ---------------------------------------------------------------
rem Set these envvars for cross compilation:
rem set HB_BIN_COMPILE=<harbourroot>\bin
rem set HB_PPGEN_PATH=<harbourroot>\bin
rem set HB=<harbourroot>\bin\harbour.exe
rem set HBPP=<harbourroot>\bin\hbpp.exe
rem
rem Set this if you need to rebuild the language parser:
rem set HB_REBUILD_PARSER=yes
rem ---------------------------------------------------------------
if "%HB_ARCHITECTURE%" == "" if not "%WINDIR%" == "" set HB_ARCHITECTURE=win
if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=dos
@@ -69,36 +58,8 @@ if not exist %HB_INC_INSTALL%\*.* md %HB_INC_INSTALL%
echo - clean
echo - install
echo.
echo Notes:
echo.
echo - HB_ARCHITECTURE and HB_COMPILER envvars must be set.
echo The following values are currently supported:
echo.
echo HB_ARCHITECTURE:
echo - win
echo - dos
echo.
pause
echo HB_COMPILER:
echo - When HB_ARCHITECTURE=win
echo - msvc (Microsoft Visual C++, Windows 32-bit)
echo - msvc64 (Microsoft Visual C++, Windows 64-bit)
echo - mingw (MinGW GNU C, Windows 32-bit)
echo - gcc (Cygnus/Cygwin GNU C, Windows 32-bit)
echo - bcc32 (Borland C++ 4.x, 5.x, Windows 32-bit)
echo - rxsnt (EMX/RSXNT/Windows GNU C, Windows 32-bit)
echo - icc (IBM Visual Age C++, Windows 32-bit)
echo - When HB_ARCHITECTURE=dos
echo - djgpp (Delorie GNU C, DOS 32-bit)
echo - owatcom (Watcom C++ 9.x, 10.x, 11.x, DOS 32-bit)
echo - rxs32 (EMX/RSXNT/DOS GNU C, DOS 32-bit)
echo.
echo - Use these optional envvars to configure the make process
echo when using the 'all' command:
echo.
echo HB_USER_PRGFLAGS - Extra Harbour compiler options
echo HB_USER_CFLAGS - Extra C compiler options
echo HB_USER_LDFLAGS - Extra linker options
echo Please read INSTALL for HOWTOs and description
echo of available options.
goto END
:BAD_ARCH
@@ -121,16 +82,9 @@ if not exist %HB_INC_INSTALL%\*.* md %HB_INC_INSTALL%
rem It will automatically build Harbour in two passes, one for
rem the .dlls and a final pass for the regular version.
if not "%HB_ARCHITECTURE%" == "win" goto SKIP_WIN
if not "%HB_ARCHITECTURE%" == "win" goto SKIP_WINDLL
if not "%HB_BUILD_DLL%" == "yes" goto SKIP_WINDLL
set _HB_BUILD_DLL_OLD=%HB_BUILD_DLL%
set _HB_BUILD_DLL=%HB_BUILD_DLL%
if "%1" == "--install-with-dll" set _HB_BUILD_DLL=yes
if "%1" == "--install-with-dll" shift
if not "%_HB_BUILD_DLL%" == "yes" goto SKIP_WINDLL
set HB_BUILD_DLL=yes
set _HB_CONTRIBLIBS=%HB_CONTRIBLIBS%
set _HB_CONTRIB_ADDONS=%HB_CONTRIB_ADDONS%
set HB_CONTRIBLIBS=no
@@ -144,21 +98,12 @@ if not exist %HB_INC_INSTALL%\*.* md %HB_INC_INSTALL%
set _HB_CONTRIB_ADDONS=
make clean %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
make install %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
set HB_BUILD_DLL=%_HB_BUILD_DLL_OLD%
set _HB_BUILD_DLL=
set _HB_BUILD_DLL_OLD=
set HB_BUILD_DLL=yes
goto END
:SKIP_WINDLL
set HB_BUILD_DLL=%_HB_BUILD_DLL_OLD%
set _HB_BUILD_DLL=
set _HB_BUILD_DLL_OLD=
:SKIP_WIN
make %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9
goto END

View File

@@ -149,48 +149,8 @@ if [ -z "$HB_ARCHITECTURE" ] || [ -z "$HB_COMPILER" ]; then
echo " - clean"
echo " - install"
echo
echo "Notes:"
echo
echo " - HB_ARCHITECTURE and HB_COMPILER envvars must be set."
echo " The following values are currently supported:"
echo
echo " HB_ARCHITECTURE:"
echo " - dos"
echo " - win"
echo " - os2"
echo " - linux"
echo " - bsd"
echo " - darwin"
echo " - sunos"
echo " - hpux"
echo
read
echo " HB_COMPILER:"
echo " - When HB_ARCHITECTURE=dos"
echo " - bcc16 (Borland C++ 3.x, 4.x, 5.0x, DOS 16-bit)"
echo " - djgpp (Delorie GNU C, DOS 32-bit)"
echo " - rsx32 (EMX/RSXNT/DOS GNU C, DOS 32-bit)"
echo " - owatcom (Watcom C++ 9.x, 10.x, 11.x, DOS 32-bit)"
echo " - When HB_ARCHITECTURE=win"
echo " - bcc32 (Borland C++ 4.x, 5.x, Windows 32-bit)"
echo " - gcc (Cygnus/Cygwin GNU C, Windows 32-bit)"
echo " - mingw (MinGW GNU C, Windows 32-bit)"
echo " - rsxnt (EMX/RSXNT/Windows GNU C, Windows 32-bit)"
echo " - icc (IBM Visual Age C++, Windows 32-bit)"
echo " - msvc (Microsoft Visual C++, Windows 32-bit)"
echo " - msvc64 (Microsoft Visual C++, Windows 64-bit)"
echo " - When HB_ARCHITECTURE=linux"
echo " - gcc (GNU C, 32-bit)"
echo " - When HB_ARCHITECTURE=os2"
echo " - gcc (EMX GNU C, OS/2 32-bit)"
echo " - icc (IBM Visual Age C++ 3.0, OS/2 32-bit)"
echo
echo " - Use these optional envvars to configure the make process"
echo " when using the 'all' target:"
echo
echo " HB_USER_PRGFLAGS - Extra Harbour compiler options"
echo " HB_USER_CFLAGS - Extra C compiler options"
echo " HB_USER_LDFLAGS - Extra linker options"
echo "Please read INSTALL for HOWTOs and description"
echo "of available options."
exit
else

View File

@@ -63,6 +63,8 @@
*
*/
#pragma LINENUMBER=ON
#include "common.ch"
#include "directry.ch"
#include "fileio.ch"
@@ -301,8 +303,8 @@ FUNCTION Main( ... )
CASE cParamL == "-quiet" ; t_lQuiet := .T. ; t_lInfo := .F.
CASE Left( cParamL, 6 ) == "-comp=" ; t_cCOMP := SubStr( cParam, 7 )
CASE Left( cParamL, 6 ) == "-arch=" ; t_cARCH := SubStr( cParam, 7 )
CASE cParamL == "-hbcc" ; t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .T.
CASE cParamL == "-hbcmp" ; t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T.
CASE cParamL == "-hbcmp" ; t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .T.
CASE cParamL == "-hbcc" ; t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T.
CASE cParamL == "-hblnk" ; t_lQuiet := .T. ; t_lInfo := .F.
CASE cParamL == "-info" ; t_lInfo := .T.
CASE cParamL == "-help" .OR. ;
@@ -318,18 +320,18 @@ FUNCTION Main( ... )
tmp := Lower( FN_NameGet( hb_argv( 0 ) ) )
DO CASE
CASE Right( tmp, 4 ) == "hbcc" .OR. ;
Left( tmp, 4 ) == "hbcc"
t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .T.
IF t_lInfo
OutStd( "hbmk: Enabled -hbcc option." + hb_osNewLine() )
ENDIF
CASE Right( tmp, 5 ) == "hbcmp" .OR. ;
Left( tmp, 5 ) == "hbcmp"
t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T.
t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .T.
IF t_lInfo
OutStd( "hbmk: Enabled -hbcmp option." + hb_osNewLine() )
ENDIF
CASE Right( tmp, 4 ) == "hbcc" .OR. ;
Left( tmp, 4 ) == "hbcc"
t_lQuiet := .T. ; t_lInfo := .F. ; lStopAfterHarbour := .F. ; lStopAfterCComp := .T.
IF t_lInfo
OutStd( "hbmk: Enabled -hbcc option." + hb_osNewLine() )
ENDIF
CASE Right( tmp, 5 ) == "hblnk" .OR. ;
Left( tmp, 5 ) == "hblnk"
t_lQuiet := .T. ; t_lInfo := .F.
@@ -453,55 +455,60 @@ FUNCTION Main( ... )
/* Autodetect compiler */
IF Empty( t_cCOMP ) .OR. t_cCOMP == "bld"
IF Len( aCOMPSUP ) == 1
t_cCOMP := aCOMPSUP[ 1 ]
ELSEIF t_cARCH == "linux" .OR. t_cCOMP == "bld"
t_cCOMP := cSelfCOMP
IF AScan( aCOMPSUP, {|tmp| tmp == t_cCOMP } ) == 0
t_cCOMP := NIL
ENDIF
ELSEIF ! Empty( aCOMPDET )
/* Look for this compiler first */
FOR tmp := 1 TO Len( aCOMPDET )
IF aCOMPDET[ tmp ][ 2 ] == cSelfCOMP .AND. Eval( aCOMPDET[ tmp ][ 1 ] )
t_cCOMP := aCOMPDET[ tmp ][ 2 ]
EXIT
IF lStopAfterHarbour
/* If we're just compiling .prg to .c we don't need a C compiler. */
t_cCOMP := ""
ELSE
IF Empty( t_cCOMP ) .OR. t_cCOMP == "bld"
IF Len( aCOMPSUP ) == 1
t_cCOMP := aCOMPSUP[ 1 ]
ELSEIF t_cARCH == "linux" .OR. t_cCOMP == "bld"
t_cCOMP := cSelfCOMP
IF AScan( aCOMPSUP, {|tmp| tmp == t_cCOMP } ) == 0
t_cCOMP := NIL
ENDIF
NEXT
IF Empty( t_cCOMP )
/* Check the rest of compilers */
ELSEIF ! Empty( aCOMPDET )
/* Look for this compiler first */
FOR tmp := 1 TO Len( aCOMPDET )
IF !( aCOMPDET[ tmp ][ 2 ] == cSelfCOMP ) .AND. Eval( aCOMPDET[ tmp ][ 1 ] )
IF aCOMPDET[ tmp ][ 2 ] == cSelfCOMP .AND. Eval( aCOMPDET[ tmp ][ 1 ] )
t_cCOMP := aCOMPDET[ tmp ][ 2 ]
EXIT
ENDIF
NEXT
IF Empty( t_cCOMP )
/* Check the rest of compilers */
FOR tmp := 1 TO Len( aCOMPDET )
IF !( aCOMPDET[ tmp ][ 2 ] == cSelfCOMP ) .AND. Eval( aCOMPDET[ tmp ][ 1 ] )
t_cCOMP := aCOMPDET[ tmp ][ 2 ]
EXIT
ENDIF
NEXT
ENDIF
ENDIF
ENDIF
IF ! Empty( t_cCOMP )
IF t_lInfo
OutStd( "hbmk: Autodetected compiler: " + t_cCOMP + hb_osNewLine() )
IF ! Empty( t_cCOMP )
IF t_lInfo
OutStd( "hbmk: Autodetected compiler: " + t_cCOMP + hb_osNewLine() )
ENDIF
ELSE
IF Empty( aCOMPDET )
OutErr( "hbmk: Please choose a compiler by using -comp= option or envvar HB_COMPILER." + hb_osNewLine() )
OutErr( " You have the following choices on your platform: " + hb_osNewLine() )
OutErr( " " + ArrayToList( aCOMPSUP, ", " ) + hb_osNewLine() )
ELSE
OutErr( "hbmk: Harbour Make couldn't detect any supported C compiler in your PATH." + hb_osNewLine() )
OutErr( " Please setup one or set -comp= option or envvar HB_COMPILER " + hb_osNewLine() )
OutErr( " to one of these values:" + hb_osNewLine() )
OutErr( " " + ArrayToList( aCOMPSUP, ", " ) + hb_osNewLine() )
ENDIF
PauseForKey()
RETURN 2
ENDIF
ELSE
IF Empty( aCOMPDET )
OutErr( "hbmk: Please choose a compiler by using -comp= option or envvar HB_COMPILER." + hb_osNewLine() )
OutErr( " You have the following choices on your platform: " + hb_osNewLine() )
OutErr( " " + ArrayToList( aCOMPSUP, ", " ) + hb_osNewLine() )
ELSE
OutErr( "hbmk: Harbour Make couldn't detect any supported C compiler in your PATH." + hb_osNewLine() )
OutErr( " Please setup one or set -comp= option or envvar HB_COMPILER " + hb_osNewLine() )
OutErr( " to one of these values:" + hb_osNewLine() )
OutErr( " " + ArrayToList( aCOMPSUP, ", " ) + hb_osNewLine() )
IF AScan( aCOMPSUP, {|tmp| tmp == t_cCOMP } ) == 0
OutErr( "hbmk: Error: Compiler value unknown." + hb_osNewLine() )
PauseForKey()
RETURN 2
ENDIF
PauseForKey()
RETURN 2
ENDIF
ELSE
IF AScan( aCOMPSUP, {|tmp| tmp == t_cCOMP } ) == 0
OutErr( "hbmk: Error: Compiler value unknown." + hb_osNewLine() )
PauseForKey()
RETURN 2
ENDIF
ENDIF
@@ -670,8 +677,8 @@ FUNCTION Main( ... )
CASE cParamL == "-quiet" .OR. ;
Left( cParamL, 6 ) == "-comp=" .OR. ;
Left( cParamL, 6 ) == "-arch=" .OR. ;
cParamL == "-hbcc" .OR. ;
cParamL == "-hbcmp" .OR. ;
cParamL == "-hbcc" .OR. ;
cParamL == "-hblnk" .OR. ;
cParamL == "-info"
@@ -859,60 +866,6 @@ FUNCTION Main( ... )
RETURN 4
ENDIF
/* If -o with full name wasn't specified, let's
make it the first source file specified. */
DEFAULT s_cPROGNAME TO FN_NameGet( s_cFIRST )
IF t_cCOMP == "mingwce" .OR. ;
t_cCOMP == "poccce"
t_cGTDEFAULT := "gtwvt"
ENDIF
IF s_cGT == t_cGTDEFAULT
s_cGT := NIL
ENDIF
/* Merge user libs from command line and envvar. Command line has priority. */
s_aLIBUSER := ArrayAJoin( { s_aLIBUSER, s_aLIBUSERGT, ListToArray( PathSepToTarget( GetEnv( "HB_USER_LIBS" ) ) ) } )
/* Combine output dir with output name. */
IF ! Empty( s_cPROGDIR )
hb_FNameSplit( s_cPROGNAME, @cDir, @cName, @cExt )
s_cPROGNAME := hb_FNameMerge( iif( Empty( cDir ), s_cPROGDIR, cDir ), cName, cExt )
ENDIF
/* Determine map name from output name. */
s_cMAPNAME := FN_ExtSet( s_cPROGNAME, ".map" )
/* Set output name extension. */
IF t_cARCH $ "os2|win|dos"
s_cPROGNAME := FN_ExtSet( s_cPROGNAME, ".exe" )
ELSE
s_cPROGNAME := FN_ExtSet( s_cPROGNAME )
ENDIF
IF lSysLoc
cPrefix := PathNormalize( s_cHB_LIB_INSTALL, lSysLoc )
ELSE
cPrefix := ""
ENDIF
#if 1
cPostfix := ""
HB_SYMBOL_UNUSED( cDL_Version )
#else
cPostfix := "-" + cDL_Version
#endif
DO CASE
CASE t_cARCH $ "bsd|linux|hpux|sunos" .OR. t_cARCH == "darwin" /* Separated to avoid match with 'win' */
s_aLIBSHARED := { iif( s_lMT, cPrefix + cDynLibNamePrefix + "harbourmt" + cPostfix + cDynLibExt,;
cPrefix + cDynLibNamePrefix + "harbour" + cPostfix + cDynLibExt ) }
CASE t_cARCH $ "os2|win"
s_aLIBSHARED := { iif( s_lMT, cDynLibNamePrefix + "harbourmt",;
cDynLibNamePrefix + "harbour" ) }
OTHERWISE
s_aLIBSHARED := NIL
ENDCASE
/* Harbour compilation */
IF Len( s_aPRG ) > 0
@@ -958,6 +911,60 @@ FUNCTION Main( ... )
IF ! lStopAfterHarbour
/* If -o with full name wasn't specified, let's
make it the first source file specified. */
DEFAULT s_cPROGNAME TO FN_NameGet( s_cFIRST )
IF t_cCOMP == "mingwce" .OR. ;
t_cCOMP == "poccce"
t_cGTDEFAULT := "gtwvt"
ENDIF
IF s_cGT == t_cGTDEFAULT
s_cGT := NIL
ENDIF
/* Merge user libs from command line and envvar. Command line has priority. */
s_aLIBUSER := ArrayAJoin( { s_aLIBUSER, s_aLIBUSERGT, ListToArray( PathSepToTarget( GetEnv( "HB_USER_LIBS" ) ) ) } )
/* Combine output dir with output name. */
IF ! Empty( s_cPROGDIR )
hb_FNameSplit( s_cPROGNAME, @cDir, @cName, @cExt )
s_cPROGNAME := hb_FNameMerge( iif( Empty( cDir ), s_cPROGDIR, cDir ), cName, cExt )
ENDIF
/* Determine map name from output name. */
s_cMAPNAME := FN_ExtSet( s_cPROGNAME, ".map" )
/* Set output name extension. */
IF t_cARCH $ "os2|win|dos"
s_cPROGNAME := FN_ExtSet( s_cPROGNAME, ".exe" )
ELSE
s_cPROGNAME := FN_ExtSet( s_cPROGNAME )
ENDIF
IF lSysLoc
cPrefix := PathNormalize( s_cHB_LIB_INSTALL, lSysLoc )
ELSE
cPrefix := ""
ENDIF
#if 1
cPostfix := ""
HB_SYMBOL_UNUSED( cDL_Version )
#else
cPostfix := "-" + cDL_Version
#endif
DO CASE
CASE t_cARCH $ "bsd|linux|hpux|sunos" .OR. t_cARCH == "darwin" /* Separated to avoid match with 'win' */
s_aLIBSHARED := { iif( s_lMT, cPrefix + cDynLibNamePrefix + "harbourmt" + cPostfix + cDynLibExt,;
cPrefix + cDynLibNamePrefix + "harbour" + cPostfix + cDynLibExt ) }
CASE t_cARCH $ "os2|win"
s_aLIBSHARED := { iif( s_lMT, cDynLibNamePrefix + "harbourmt",;
cDynLibNamePrefix + "harbour" ) }
OTHERWISE
s_aLIBSHARED := NIL
ENDCASE
/* C compilation/linking */
s_aLIB3RD := {}
@@ -2727,9 +2734,9 @@ STATIC PROCEDURE ShowHelp( lLong )
" -[no]trace show commands executed" ,;
" -[no]run run/don't run the created executable" ,;
" -nohbp do not process .hbp files in current directory" ,;
" -hbcc stop after creating the .c Harbour output files" ,;
" -hbcmp stop after creating the .c Harbour output files" ,;
" create link/copy/rename hbmk to hbcc for the same effect" ,;
" -hbcmp stop after creating the object files" ,;
" -hbcc stop after creating the object files" ,;
" create link/copy/rename hbmk to hbcc for the same effect" ,;
" -hblnk act as linker. Currently this is the same as -q" ,;
" -arch=<arch> assume specific architecure. Same as HB_ARCHITECTURE envvar" ,;