2009-03-16 00:38 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* bin/postinst.bat
    + Added owatcom and pocc support for implib generation.

  * utils/hbmk2/hbmk2.prg
    + Fixed win/pocc support.
    + Added resource support for win/pocc.
    + Added .dll support for win/pocc.
    + Added win/xcc support (untested).
    + -DHB_DYNLIB is passed to C compiler in -hbdyn (.dll) mode
      for win targets. (still need fixing to create usable .dlls)
    ; NOTE: pocc support is very limited as pocc compiler doesn't
            support multiple input files.
This commit is contained in:
Viktor Szakats
2009-03-15 23:40:53 +00:00
parent 4e1e358ed1
commit a6569d6ef9
3 changed files with 99 additions and 11 deletions

View File

@@ -8,6 +8,20 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-03-16 00:38 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* bin/postinst.bat
+ Added owatcom and pocc support for implib generation.
* utils/hbmk2/hbmk2.prg
+ Fixed win/pocc support.
+ Added resource support for win/pocc.
+ Added .dll support for win/pocc.
+ Added win/xcc support (untested).
+ -DHB_DYNLIB is passed to C compiler in -hbdyn (.dll) mode
for win targets. (still need fixing to create usable .dlls)
; NOTE: pocc support is very limited as pocc compiler doesn't
support multiple input files.
2009-03-15 20:51 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* INSTALL
+ Documented cross-build config for minwgce.

View File

@@ -97,6 +97,60 @@ if "%HB_BUILD_IMPLIB%" == "yes" (
goto END
)
if "%HB_COMPILER%" == "pocc" (
if exist "%HB_DIR_ADS%\Redistribute\ace32.lib" copy /b /y "%HB_DIR_ADS%\Redistribute\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib"
if exist "%HB_DIR_ADS%\ace32.lib" copy /b /y "%HB_DIR_ADS%\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib"
if exist "%HB_DIR_ADS%\32bit\ace32.lib" copy /b /y "%HB_DIR_ADS%\32bit\ace32.lib" "%HB_LIB_INSTALL%\ace32.lib"
if exist "%HB_DIR_ALLEGRO%\lib\alleg.lib" copy /b /y "%HB_DIR_ALLEGRO%\lib\alleg.lib" "%HB_LIB_INSTALL%\alleg.lib"
if exist "%HB_DIR_APOLLO%\sde61.dll" polib "%HB_DIR_APOLLO%\sde61.dll" /out:"%HB_LIB_INSTALL%\sde61.lib"
if exist "%HB_DIR_BLAT%\full\blat.lib" copy /b /y "%HB_DIR_BLAT%\full\blat.lib" "%HB_LIB_INSTALL%\blat.lib"
if exist "%HB_DIR_CURL%\libcurl.dll" polib "%HB_DIR_CURL%\libcurl.dll" /out:"%HB_LIB_INSTALL%\libcurl.lib"
if exist "%HB_DIR_CURL%\bin\libcurl.dll" polib "%HB_DIR_CURL%\bin\libcurl.dll" /out:"%HB_LIB_INSTALL%\libcurl.lib"
if exist "%HB_DIR_FIREBIRD%\lib\fbclient_ms.lib" copy /b /y "%HB_DIR_FIREBIRD%\lib\fbclient_ms.lib" "%HB_LIB_INSTALL%\fbclient.lib"
if exist "%HB_DIR_FREEIMAGE%\Dist\FreeImage.lib" copy /b /y "%HB_DIR_FREEIMAGE%\Dist\FreeImage.lib" "%HB_LIB_INSTALL%\FreeImage.lib"
if exist "%HB_DIR_GD%\lib\bgd.lib" copy /b /y "%HB_DIR_GD%\lib\bgd.lib" "%HB_LIB_INSTALL%\bgd.lib"
if exist "%HB_DIR_LIBHARU%\libhpdf.lib" copy /b /y "%HB_DIR_LIBHARU%\libhpdf.lib" "%HB_LIB_INSTALL%\libhpdf.lib"
if exist "%HB_DIR_LIBHARU%\lib_dll\libhpdf.lib" copy /b /y "%HB_DIR_LIBHARU%\lib_dll\libhpdf.lib" "%HB_LIB_INSTALL%\libhpdf.lib"
if exist "%HB_DIR_MYSQL%\lib\opt\libmySQL.lib" copy /b /y "%HB_DIR_MYSQL%\lib\opt\libmySQL.lib" "%HB_LIB_INSTALL%\libmySQL.lib"
if exist "%HB_DIR_OPENSSL%\out32dll\libeay32.lib" copy /b /y "%HB_DIR_OPENSSL%\out32dll\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib"
if exist "%HB_DIR_OPENSSL%\dll\libeay32.lib" copy /b /y "%HB_DIR_OPENSSL%\dll\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib"
if exist "%HB_DIR_OPENSSL%\libeay32.lib" copy /b /y "%HB_DIR_OPENSSL%\libeay32.lib" "%HB_LIB_INSTALL%\libeay32.lib"
if exist "%HB_DIR_OPENSSL%\out32dll\ssleay32.lib" copy /b /y "%HB_DIR_OPENSSL%\out32dll\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib"
if exist "%HB_DIR_OPENSSL%\dll\ssleay32.lib" copy /b /y "%HB_DIR_OPENSSL%\dll\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib"
if exist "%HB_DIR_OPENSSL%\ssleay32.lib" copy /b /y "%HB_DIR_OPENSSL%\ssleay32.lib" "%HB_LIB_INSTALL%\ssleay32.lib"
if exist "%HB_DIR_PGSQL%\lib\libpq.lib" copy /b /y "%HB_DIR_PGSQL%\lib\libpq.lib" "%HB_LIB_INSTALL%\libpq.lib"
goto END
)
if "%HB_COMPILER%" == "owatcom" (
if exist "%HB_DIR_ADS%\Redistribute\ace32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\ace32.lib" "%HB_DIR_ADS%\Redistribute\ace32.dll"
if exist "%HB_DIR_ADS%\ace32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\ace32.lib" "%HB_DIR_ADS%\ace32.dll"
if exist "%HB_DIR_ADS%\32bit\ace32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\ace32.lib" "%HB_DIR_ADS%\32bit\ace32.dll"
if exist "%HB_DIR_ALLEGRO%\lib\alleg.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\alleg.lib" "%HB_DIR_ALLEGRO%\bin\alleg42.dll"
if exist "%HB_DIR_APOLLO%\sde61.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\sde61.lib" "%HB_DIR_APOLLO%\sde61.dll"
if exist "%HB_DIR_BLAT%\full\blat.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\blat.lib" "%HB_DIR_BLAT%\full\blat.dll"
if exist "%HB_DIR_CURL%\libcurl.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libcurl.lib" "%HB_DIR_CURL%\libcurl.dll"
if exist "%HB_DIR_CURL%\bin\libcurl.dll" wlib.exe -q -o="%HB_LIB_INSTALL%\libcurl.lib" "%HB_DIR_CURL%\bin\libcurl.dll"
if exist "%HB_DIR_FIREBIRD%\lib\fbclient_ms.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\fbclient.lib" "%HB_LIB_INSTALL%\fblient.lib"
if exist "%HB_DIR_FREEIMAGE%\Dist\FreeImage.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\FreeImage.lib" "%HB_DIR_FREEIMAGE%\Dist\FreeImage.dll"
if exist "%HB_DIR_GD%\lib\bgd.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\bgd.lib" "%HB_DIR_GD%\bin\bgd.dll"
if exist "%HB_DIR_LIBHARU%\libhpdf.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libhpdf.lib" "%HB_DIR_LIBHARU%\libhpdf.dll"
if exist "%HB_DIR_LIBHARU%\lib_dll\libhpdf.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libhpdf.lib" "%HB_DIR_LIBHARU%\lib_dll\libhpdf.dll"
if exist "%HB_DIR_MYSQL%\lib\opt\libmySQL.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libmySQL.lib" "%HB_DIR_MYSQL%\bin\libmySQL.dll"
if exist "%HB_DIR_OPENSSL%\out32dll\libeay32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libeay32.lib" "%HB_DIR_OPENSSL%\out32dll\libeay32.dll"
if exist "%HB_DIR_OPENSSL%\dll\libeay32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libeay32.lib" "%HB_DIR_OPENSSL%\dll\libeay32.dll"
if exist "%HB_DIR_OPENSSL%\libeay32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libeay32.lib" "%HB_DIR_OPENSSL%\libeay32.dll"
if exist "%HB_DIR_OPENSSL%\out32dll\ssleay32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\ssleay32.lib" "%HB_DIR_OPENSSL%\out32dll\ssleay32.dll"
if exist "%HB_DIR_OPENSSL%\dll\ssleay32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\ssleay32.lib" "%HB_DIR_OPENSSL%\dll\ssleay32.dll"
if exist "%HB_DIR_OPENSSL%\ssleay32.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\ssleay32.lib" "%HB_DIR_OPENSSL%\ssleay32.dll"
if exist "%HB_DIR_PGSQL%\lib\libpq.lib" wlib.exe -q -o="%HB_LIB_INSTALL%\libpq.lib" "%HB_DIR_PGSQL%\lib\libpq.dll"
goto END
)
)
)

View File

@@ -1624,9 +1624,12 @@ FUNCTION Main( ... )
cResExt := ".res"
ENDIF
CASE t_cARCH == "win" .AND. t_cCOMP == "pocc"
CASE ( t_cARCH == "win" .AND. t_cCOMP == "pocc" ) .OR. ;
( t_cARCH == "win" .AND. t_cCOMP == "xcc" )
/* TODO: pocc doesn't support multiple .c input files.
This means we need to do the heavy lifting. */
IF s_lGUI
AAdd( s_aOPTL, "/subsystem:windows" )
ELSE
@@ -1636,23 +1639,37 @@ FUNCTION Main( ... )
cLibExt := ".lib"
cObjExt := ".obj"
cLibLibExt := cLibExt
cBin_CompC := "pocc.exe"
cOpt_CompC := "/Ze /Go /Ot /Tx86-coff {FC} /I{DI} {LC}"
cBin_Lib := "polib.exe"
IF t_cCOMP == "xcc"
cBin_CompC := "xcc.exe"
cBin_Lib := "xlib.exe"
cBin_Link := "xlink.exe"
cBin_Res := "xrc.exe"
ELSE
cBin_CompC := "pocc.exe"
cBin_Lib := "polib.exe"
cBin_Link := "polink.exe"
cBin_Res := "porc.exe"
ENDIF
cBin_Dyn := cBin_Link
cOpt_CompC := "/c /Ze /Go {FC} /I{DI} {LC}"
cOpt_Lib := "{FA} /out:{OL} {LO}"
cOpt_Dyn := "{FD} /dll /out:{OD} {DL} {LO} {LL} {LS}"
IF t_cCOMP == "pocc"
AAdd( s_aOPTC, "/Ot" )
AAdd( s_aOPTC, "/Tx86-coff" )
ENDIF
cOpt_Res := "{LR}"
cResExt := ".res"
cOpt_Lib := "{FA} /out:{OL} {LO}"
IF s_lMT
AAdd( s_aOPTC, "/MT" )
ENDIF
IF lStopAfterCComp
AAdd( s_aOPTC, "/c" )
IF ( Len( s_aPRG ) + Len( s_aC ) ) == 1
AAdd( s_aOPTC, "/Fo{OO}" )
ENDIF
ELSE
AAdd( s_aOPTC, "/Fo{OE}" )
ENDIF
cBin_Link := "polink.exe"
cOpt_Link := "{LO} {DL} {FL} {LL}"
cOpt_Link := "{LO} {DL} {FL} {LL} {LS}"
cLibPathPrefix := "/libpath:"
cLibPathSep := " "
IF s_lSHARED
@@ -1664,7 +1681,7 @@ FUNCTION Main( ... )
IF s_lDEBUG
AAdd( s_aOPTL, "/debug" )
ENDIF
s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "user32", "wsock32", "advapi32", "gdi32" } )
s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "kernel32", "user32", "wsock32", "advapi32", "gdi32" } )
/* TODO */
CASE t_cARCH == "linux" .AND. t_cCOMP == "icc"
@@ -1675,9 +1692,12 @@ FUNCTION Main( ... )
s_aLIBSYS := ArrayJoin( s_aLIBSYS, { "wininet", "ws2", "commdlg", "commctrl", "uuid", "ole32" } )
ENDIF
CASE t_cARCH == "win" .AND. t_cCOMP == "msvcce" /* NOTE: Cross-platform: wince/ARM on win/x86 */
CASE t_cARCH == "win" .AND. t_cCOMP == "xcc"
ENDCASE
IF lCreateDyn .AND. t_cARCH == "win"
AAdd( s_aOPTC, "-DHB_DYNLIB" )
ENDIF
/* Do entry function detection on platform required and supported */
IF ! lStopAfterCComp .AND. s_cMAIN == NIL
tmp := iif( Lower( FN_ExtGet( s_cFIRST ) ) == ".prg" .OR. Empty( FN_ExtGet( s_cFIRST ) ), FN_ExtSet( s_cFIRST, ".c" ), s_cFIRST )