2009-08-13 12:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* INSTALL
    * OS/2 prerequisites added. (currently not relevant, but anyway)

  * bin/postinst.bat
  * bin/hb-mkdyn.bat
  * make_gnu.bat
    + Reworked the way .dll generation is done in Harbour build process.
      New method solves the problem in one pass, instead of invoking
      make twice and requiring starter script to control this.
      The new trick is that CC_RULE will generate both dynamic and static
      objects for libs included in the .dll for compilers where such trick
      is necessary (currently all win/wce compilers except gcc based ones).
    * Changed HB_BUILD_LOG forming. Since at this point ARCH/COMP values
      aren't known (and just for this purpose it's not worth to maintain
      parallel detection logic in start script), the automatically
      generated log file will contain the date/time. Maybe even this will
      be dropped in the future. Since this is the only remaining logic
      in starter script (plus finding correct GNU Make, but that's even
      smaller role)
    ; I didn't test watcom yet, plus mpkg_gnu.bat isn't working yet,
      it needs to be moved to postinst phase.
    ; After these changes, there is basically no need for make starter
      scripts. Maybe I'll even remove included make tools to make things
      cleaner/leaner.
    ; TODO: Revise starter .sh scripts.
    ; TODO: mpkg_gnu.bat rework to run from postinst.
    ; TODO: Do some cleanup, remove redundancy in settings, etcetc.
    ; TOFIX: Fix watcom .dll generation.

  * config/global.cf
    ! Deleted double MAKE info line.
    + Showing detected shell in verbose mode.
    + Added mkdir/rm detection for OS/2 shells. (commented)
    % Optimized HB_BIN_COMPILE detection by using $(realpath) function.
      Now it's only detected once per make run.
    + Added HB_*_INSTALL value defaulting similar to make_gnu.sh
      for *nix platforms. (adding /harbour postfix to lib/inc dirs when
      HB_INSTALL_PREFIX is system location (/usr or /opt). Please review.

  * config/lib.cf
    + Added HB_DYN_COMPILE to control compiling for dynamic libs in
      a sperate command.
    + Added HB_DYN_LIBS to hold list of libs which should be built
      with separate command for dynamic libs.

  * config/rules.cf
    + Added logic for duplicate CC_RULE.
      TODO: Notice that it's not yet working when CC_RULE is overridden
            on compiler level. Help would be appreciate here.

  * config/wce/msvcarm.cf
  * config/wce/poccarm.cf
  * config/win/watcom.cf
  * config/win/icc.cf
  * config/win/msvc.cf
  * config/win/xcc.cf
  * config/win/pocc.cf
  * config/win/bcc.cf
    + Enabled HB_DYN_COMPILE for these compilers.

  * contrib/gtqtc/gtqtc.hbc
    ! Fixed lib order for mingw, supc++ moved to the end of list.

  * external/sqlite3/Makefile
  * external/libhpdf/Makefile
  * external/libpng/Makefile
  * external/Makefile
  * source/rtl/gtxwc/Makefile
  * source/rtl/gtcrs/Makefile
  * source/rtl/gtsln/Makefile
  * contrib/Makefile
  * contrib/gtalleg/Makefile
  * contrib/hbmysql/Makefile
  * contrib/hbodbc/Makefile
  * contrib/hbsqlit3/Makefile
  * contrib/hbqt/Makefile
  * contrib/hbfbird/Makefile
  * contrib/hbcurl/Makefile
  * contrib/gtqtc/Makefile
  * contrib/rddsql/sddmy/Makefile
  * contrib/rddsql/sddpg/Makefile
  * contrib/rddsql/sddfb/Makefile
  * contrib/rddsql/sddodbc/Makefile
  * contrib/hbhpdf/Makefile
  * contrib/hbpgsql/Makefile
  * contrib/rddads/Makefile
  * contrib/hbfimage/Makefile
  * contrib/hbgd/Makefile
  * contrib/hbssl/Makefile
    + Indentation.
    % Using ':=' in '*_OK := $(foreach...' expressions, instead of
      former unsafe '+='.

  * config/win/mingw.cf
  * config/wce/mingwarm.cf
  * config/win/cygwin.cf
    + Using 'crs' instead of 'r' as AR command.

  * config/install.cf
    + Don't define rule if INSTALL_RULE is empty.
      Cannot currently happen.

  * config/header.cf
    % Minor optimization.
This commit is contained in:
Viktor Szakats
2009-08-13 10:31:58 +00:00
parent 141413ac82
commit 3bd5b77f25
48 changed files with 433 additions and 697 deletions

View File

@@ -17,6 +17,112 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-08-13 12:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
* OS/2 prerequisites added. (currently not relevant, but anyway)
* bin/postinst.bat
* bin/hb-mkdyn.bat
* make_gnu.bat
+ Reworked the way .dll generation is done in Harbour build process.
New method solves the problem in one pass, instead of invoking
make twice and requiring starter script to control this.
The new trick is that CC_RULE will generate both dynamic and static
objects for libs included in the .dll for compilers where such trick
is necessary (currently all win/wce compilers except gcc based ones).
* Changed HB_BUILD_LOG forming. Since at this point ARCH/COMP values
aren't known (and just for this purpose it's not worth to maintain
parallel detection logic in start script), the automatically
generated log file will contain the date/time. Maybe even this will
be dropped in the future. Since this is the only remaining logic
in starter script (plus finding correct GNU Make, but that's even
smaller role)
; I didn't test watcom yet, plus mpkg_gnu.bat isn't working yet,
it needs to be moved to postinst phase.
; After these changes, there is basically no need for make starter
scripts. Maybe I'll even remove included make tools to make things
cleaner/leaner.
; TODO: Revise starter .sh scripts.
; TODO: mpkg_gnu.bat rework to run from postinst.
; TODO: Do some cleanup, remove redundancy in settings, etcetc.
; TOFIX: Fix watcom .dll generation.
* config/global.cf
! Deleted double MAKE info line.
+ Showing detected shell in verbose mode.
+ Added mkdir/rm detection for OS/2 shells. (commented)
% Optimized HB_BIN_COMPILE detection by using $(realpath) function.
Now it's only detected once per make run.
+ Added HB_*_INSTALL value defaulting similar to make_gnu.sh
for *nix platforms. (adding /harbour postfix to lib/inc dirs when
HB_INSTALL_PREFIX is system location (/usr or /opt). Please review.
* config/lib.cf
+ Added HB_DYN_COMPILE to control compiling for dynamic libs in
a sperate command.
+ Added HB_DYN_LIBS to hold list of libs which should be built
with separate command for dynamic libs.
* config/rules.cf
+ Added logic for duplicate CC_RULE.
TODO: Notice that it's not yet working when CC_RULE is overridden
on compiler level. Help would be appreciate here.
* config/wce/msvcarm.cf
* config/wce/poccarm.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/pocc.cf
* config/win/bcc.cf
+ Enabled HB_DYN_COMPILE for these compilers.
* contrib/gtqtc/gtqtc.hbc
! Fixed lib order for mingw, supc++ moved to the end of list.
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* external/Makefile
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gtsln/Makefile
* contrib/Makefile
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbodbc/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbcurl/Makefile
* contrib/gtqtc/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbssl/Makefile
+ Indentation.
% Using ':=' in '*_OK := $(foreach...' expressions, instead of
former unsafe '+='.
* config/win/mingw.cf
* config/wce/mingwarm.cf
* config/win/cygwin.cf
+ Using 'crs' instead of 'r' as AR command.
* config/install.cf
+ Don't define rule if INSTALL_RULE is empty.
Cannot currently happen.
* config/header.cf
% Minor optimization.
2009-08-13 09:30 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbthread.h
* pacified MinGW warnings caused by recent modification

View File

@@ -109,7 +109,12 @@ HOW TO BUILD AND INSTALL HARBOUR FROM SOURCE
----
You can use OS/2, Windows NT compatible, or Linux hosts to create
OS/2 builds.
Some tricks are required when non-OS/2 host is used, see in examples.
Some config tricks are required when non-OS/2 host is used, see in
examples.
When OS/2 host is used, GNU mkdir and rm utilities will have to
present in PATH. You can get them from this link:
ftp://hobbes.nmsu.edu/pub/os2/util/file/gnufutil.zip
> set HB_COMPILER=<[gcc]|watcom>
> set HB_INSTALL_PREFIX=<DIR>

View File

@@ -23,12 +23,60 @@ if "%HB_BIN_INSTALL%" == "" ( echo HB_BIN_INSTALL needs to be set. && goto END )
if "%HB_LIB_INSTALL%" == "" ( echo HB_LIB_INSTALL needs to be set. && goto END )
set HB_DLL_VERSION=20
set HB_DLL_LIBS=hbcommon hbpp hbrtl hbmacro hblang hbcpage hbpcre hbzlib hbextern hbrdd rddntx rddnsx rddcdx rddfpt hbsix hbhsx hbusrrdd gtcgi gtpca gtstd gtwvt gtgui
set HB_DLL_LIBS_WIN=gtwin
set HB_DLL_LIBS_ST=hbvm
set HB_DLL_LIBS_MT=hbvmmt
set HB_DLL_LIBS=source\common source\pp source\rtl source\macro source\lang source\codepage source\hbpcre source\hbzlib source\hbextern source\rdd source\rdd\dbfntx source\rdd\dbfnsx source\rdd\dbfcdx source\rdd\dbffpt source\rdd\hbsix source\rdd\hsx source\rdd\usrrdd source\rtl\gtcgi source\rtl\gtpca source\rtl\gtstd source\rtl\gtwvt source\rtl\gtgui
set HB_DLL_LIBS_WIN=source\rtl\gtwin
set HB_DLL_LIBS_ST=source\vm
set HB_DLL_LIBS_MT=source\vm\vmmt
set HB_DLL_LIBS_WATCOM=source\vm\maindllh
set HB_OBJ_EXT=.obj
set HB_OBJ_DIR=obj\%HB_ARCHITECTURE%\%HB_COMPILER%%HB_BUILD_NAME%
set HB_OBJ_PREF=
set HB_OBJ_POST=
if "%HB_ARCHITECTURE%" == "wce" set HB_DLL_LIBS_WIN=
set _DST_NAME_ST=
set _DST_NAME_MT=
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_msvcarm" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_msvcarm" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvcia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvcia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_mingwarm" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_mingwarm" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_cygwin" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_cygwin" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_bcc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-bcc
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_bcc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-bcc
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_watcom" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_watcom" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_poccarm" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_poccarm" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-arm
if "%_DST_NAME_ST%" == "" ( echo Harbour .dll creation isn't supported for this platform. && goto END )
if "%HB_ARCHITECTURE%" == "wce" set HB_DLL_LIBS_WIN=
if not "%HB_COMPILER%" == "watcom" set HB_DLL_LIBS_WATCOM=
if "%HB_COMPILER%" == "mingw" set HB_OBJ_EXT=.o
if "%HB_COMPILER%" == "mingw64" set HB_OBJ_EXT=.o
if "%HB_COMPILER%" == "mingwarm" set HB_OBJ_EXT=.o
if "%HB_COMPILER%" == "cygwin" set HB_OBJ_EXT=.o
echo.> _hballst.txt
echo.> _hballmt.txt
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" goto DO_MSVC
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" goto DO_MSVC
@@ -51,263 +99,82 @@ goto END
:DO_MSVC
echo Making .dlls for %HB_ARCHITECTURE% / %HB_COMPILER%...
call :MAKE_LISTS
md _dll
cd _dll
set _BIN_LIB=lib
set _BIN_LINK=link
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" set _BIN_LIB=xilib
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" set _BIN_LINK=xilink
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" set _BIN_LIB=xilib
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" set _BIN_LINK=xilink
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS% %HB_DLL_LIBS_WIN%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo %%p>> _hboneut.txt
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /list > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
%_BIN_LIB% "%HB_LIB_INSTALL%\%%f.lib" /nologo /extract:%%p /out:%%p
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_icc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_iccia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_msvcarm" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_msvcarm" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvcia64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_msvcia64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-ia64
if "%HB_ARCHITECTURE%" == "win" set _SYSLIBS=user32.lib ws2_32.lib advapi32.lib gdi32.lib
if "%HB_ARCHITECTURE%" == "wce" set _SYSLIBS=wininet.lib ws2.lib
echo Making %_DST_NAME_ST%.dll... && %_BIN_LINK% /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hboneut.txt @_hbost.txt %_SYSLIBS% %HB_DLLIBS%
echo Making %_DST_NAME_MT%.dll... && %_BIN_LINK% /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt %_SYSLIBS% %HB_DLLIBS%
echo Making %_DST_NAME_ST%.dll... && %_BIN_LINK% /nologo /dll /subsystem:console /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hballst.txt %_SYSLIBS% %HB_DLLLIBS%
echo Making %_DST_NAME_MT%.dll... && %_BIN_LINK% /nologo /dll /subsystem:console /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hballmt.txt %_SYSLIBS% %HB_DLLLIBS%
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.exp" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.exp" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.exp"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.exp" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.exp" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.exp"
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
rmdir _st
goto END
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
rmdir _mt
:DO_GCC
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
call :MAKE_LISTS
setlocal enabledelayedexpansion
set _HBOST=
for /f %%f in (_hballst.txt) do set _HBOST=!_HBOST! %%f
set _HBOMT=
for /f %%f in (_hballmt.txt) do set _HBOMT=!_HBOMT! %%f
if "%HB_ARCHITECTURE%" == "win" set _SYSLIBS=-luser32 -lws2_32 -ladvapi32 -lgdi32
if "%HB_ARCHITECTURE%" == "wce" set _SYSLIBS=-lwininet -lws2
echo Making %_DST_NAME_ST%.dll... && %HB_CCPREFIX%gcc -shared -o "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" %_HBOST% %HB_USER_LDFLAGS% %_SYSLIBS% %HB_DLLLIBS% -Wl,--output-def,"%HB_BIN_INSTALL%\%_DST_NAME_ST%.def"
echo Making %_DST_NAME_MT%.dll... && %HB_CCPREFIX%gcc -shared -o "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" %_HBOMT% %HB_USER_LDFLAGS% %_SYSLIBS% %HB_DLLLIBS% -Wl,--output-def,"%HB_BIN_INSTALL%\%_DST_NAME_MT%.def"
rem ,--out-implib,"%HB_LIB_INSTALL%\lib%_DST_NAME_ST%.a"
rem ,--out-implib,"%HB_LIB_INSTALL%\lib%_DST_NAME_MT%.a"
goto END
:DO_BCC
echo Making .dlls for %HB_ARCHITECTURE% / %HB_COMPILER%...
echo. c0d32%HB_OBJ_EXT% +> _hballst.txt
echo. c0d32%HB_OBJ_EXT% +> _hballmt.txt
md _dll
cd _dll
set HB_OBJ_PREF=
set HB_OBJ_POST= +
call :MAKE_LISTS
echo. c0d32.obj +> _hballst.txt
echo. c0d32.obj +> _hballmt.txt
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS% %HB_DLL_LIBS_WIN%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo %%p +>> _hballst.txt
echo %%p +>> _hballmt.txt
echo %%p>> _hboneut.txt
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo _st\%%p +>> ..\_hballst.txt
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
tlib "%HB_LIB_INSTALL%\%%f.lib", _hboraw.txt > nul
echo.> _hboraw2.txt
for /F "tokens=1,2" %%f in (_hboraw.txt) do (
if "%%g" == "size" (
echo %%f.obj >> _hboraw2.txt
)
)
del _hboraw.txt
for /F %%p in (_hboraw2.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
tlib "%HB_LIB_INSTALL%\%%f.lib" * %%p > nul
echo _mt\%%p +>> ..\_hballmt.txt
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw2.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-bcc
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-bcc
echo. , "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll",, cw32mt.lib import32.lib %HB_DLLIBS% >> _hballst.txt
echo. , "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll",, cw32mt.lib import32.lib %HB_DLLIBS% >> _hballmt.txt
echo Making %_DST_NAME_ST%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x c0d32.obj @_hballst.txt
echo Making %_DST_NAME_MT%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x c0d32.obj @_hballmt.txt
echo Making %_DST_NAME_ST%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x @_hballst.txt, "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll",, cw32mt.lib import32.lib %HB_DLLLIBS%
echo Making %_DST_NAME_MT%.dll... && ilink32 -q -Gn -C -aa -Tpd -Gi -x @_hballmt.txt, "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll",, cw32mt.lib import32.lib %HB_DLLLIBS%
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
del _hballst.txt
del _hballmt.txt
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:DO_WATCOM
echo Making .dlls for %HB_ARCHITECTURE% / %HB_COMPILER%...
set HB_DLL_LIBS_EXTRA=hbmaindllh
md _dll
cd _dll
set HB_OBJ_PREF=FILE '
set HB_OBJ_POST='
call :MAKE_LISTS
echo.> _hbsst.txt
for %%f in (_hballst.txt) do echo FILE '%%f'>> _hbsst.txt
echo.> _hbsmt.txt
for %%f in (%HB_DLL_LIBS% %HB_DLL_LIBS_WIN% %HB_DLL_LIBS_EXTRA%) do (
echo FILE '%HB_LIB_INSTALL%\%%f.lib'>> _hbsst.txt
echo FILE '%HB_LIB_INSTALL%\%%f.lib'>> _hbsmt.txt
)
for %%f in (_hballst.txt) do echo FILE '%%f'>> _hbsmt.txt
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_ST%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_ST%.lib" - mainwin.obj - mainstd.obj
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_MT%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_MT%.lib" - mainwin.obj - mainstd.obj
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_ST%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_ST%.lib" - mainwin%HB_OBJ_EXT% - mainstd%HB_OBJ_EXT%
copy /b /y "%HB_LIB_INSTALL%\%HB_DLL_LIBS_MT%.lib" . > nul && wlib -q -b "%HB_DLL_LIBS_MT%.lib" - mainwin%HB_OBJ_EXT% - mainstd%HB_OBJ_EXT%
echo FILE '%HB_DLL_LIBS_ST%.lib'>> _hbsst.txt
echo FILE '%HB_DLL_LIBS_MT%.lib'>> _hbsmt.txt
set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
echo Making %_DST_NAME_ST%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll' @_hbsst.txt LIB user32.lib, ws2_32.lib, advapi32.lib, gdi32.lib
echo Making %_DST_NAME_MT%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll' @_hbsmt.txt LIB user32.lib, ws2_32.lib, advapi32.lib, gdi32.lib
echo Making %_DST_NAME_ST%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll' @_hballst.txt LIB user32.lib, ws2_32.lib, advapi32.lib, gdi32.lib
echo Making %_DST_NAME_MT%.dll... && wlink OP QUIET SYS NT_DLL OP IMPLIB NAME '%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll' @_hballmt.txt LIB user32.lib, ws2_32.lib, advapi32.lib, gdi32.lib
if exist "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_ST%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
if exist "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" move "%HB_BIN_INSTALL%\%_DST_NAME_MT%.lib" "%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
@@ -317,190 +184,80 @@ del %HB_DLL_LIBS_MT%.lib
del _hbsst.txt
del _hbsmt.txt
cd ..
rmdir _dll
goto END
:DO_POCC
echo Making .dlls for %HB_ARCHITECTURE% / %HB_COMPILER%...
md _dll
cd _dll
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS% %HB_DLL_LIBS_WIN%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode >> _hboneut.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
md _st
cd _st
rem ; Extract ST objects
echo.> ..\_hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
echo _st\%%p>> ..\_hbost.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> ..\_hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\%%f.lib" (
echo Processing library: %%f
polib "%HB_LIB_INSTALL%\%%f.lib" /list /explode > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll.obj" (
if not "%%p" == "maindllp.obj" (
echo _mt\%%p>> ..\_hbomt.txt
)
)
)
del _hboraw.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
)
cd ..
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_pocc64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_poccarm" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_poccarm" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-arm
call :MAKE_LISTS
if "%HB_ARCHITECTURE%" == "win" set _SYSLIBS=user32.lib ws2_32.lib advapi32.lib gdi32.lib
if "%HB_ARCHITECTURE%" == "wce" set _SYSLIBS=wininet.lib ws2.lib
echo Making %_DST_NAME_ST%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hboneut.txt @_hbost.txt %_SYSLIBS% %HB_DLLIBS%
echo Making %_DST_NAME_MT%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hboneut.txt @_hbomt.txt %_SYSLIBS% %HB_DLLIBS%
echo Making %_DST_NAME_ST%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" @_hballst.txt %_SYSLIBS% %HB_DLLLIBS%
echo Making %_DST_NAME_MT%.dll... && polink /nologo /dll /out:"%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" @_hballmt.txt %_SYSLIBS% %HB_DLLLIBS%
polib "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" /out:"%HB_LIB_INSTALL%\%_DST_NAME_ST%.lib"
polib "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" /out:"%HB_LIB_INSTALL%\%_DST_NAME_MT%.lib"
rem ; Cleanup
for /F %%o in (_hbost.txt) do ( del %%o )
if exist _st\maindll.obj del _st\maindll.obj
if exist _st\maindllp.obj del _st\maindllp.obj
del _hbost.txt
rmdir _st
for /F %%o in (_hbomt.txt) do ( del %%o )
if exist _mt\maindll.obj del _mt\maindll.obj
if exist _mt\maindllp.obj del _mt\maindllp.obj
del _hbomt.txt
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
:DO_GCC
:MAKE_LISTS
echo Making .dlls for %HB_ARCHITECTURE% / %HB_COMPILER%...
md _dll
cd _dll
rem ; Extract neutral objects
echo.> _hboneut.txt
for %%f in (%HB_DLL_LIBS% %HB_DLL_LIBS_WIN%) do (
if exist "%HB_LIB_INSTALL%\lib%%f.a" (
echo Processing library: %%f
%HB_CCPREFIX%ar -x "%HB_LIB_INSTALL%\lib%%f.a"
%HB_CCPREFIX%ar -t "%HB_LIB_INSTALL%\lib%%f.a" >> _hboneut.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
if exist "%%f\%HB_OBJ_DIR%" (
echo Processing directory: %%f\%HB_OBJ_DIR%
dir /b "%%f\%HB_OBJ_DIR%\*_dyn%HB_OBJ_EXT%" > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "hbpp_dyn%HB_OBJ_EXT%" (
echo %HB_OBJ_PREF%%%f\%HB_OBJ_DIR%\%%p%HB_OBJ_POST%>> _hballst.txt
echo %HB_OBJ_PREF%%%f\%HB_OBJ_DIR%\%%p%HB_OBJ_POST%>> _hballmt.txt
)
)
del _hboraw.txt
) else ( echo Directory not found: %%f\%HB_OBJ_DIR% )
)
md _st
cd _st
rem ; Extract ST objects
echo.> _hbost.txt
for %%f in (%HB_DLL_LIBS_ST%) do (
if exist "%HB_LIB_INSTALL%\lib%%f.a" (
echo Processing library: %%f
%HB_CCPREFIX%ar -x "%HB_LIB_INSTALL%\lib%%f.a"
%HB_CCPREFIX%ar -t "%HB_LIB_INSTALL%\lib%%f.a" >> _hbost.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
if exist "%%f\%HB_OBJ_DIR%" (
echo Processing directory: %%f\%HB_OBJ_DIR%
dir /b "%%f\%HB_OBJ_DIR%\*_dyn%HB_OBJ_EXT%" > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll_dyn%HB_OBJ_EXT%" (
if not "%%p" == "maindllp_dyn%HB_OBJ_EXT%" (
echo %HB_OBJ_PREF%%%f\%HB_OBJ_DIR%\%%p%HB_OBJ_POST%>> _hballst.txt
)
)
)
del _hboraw.txt
) else ( echo Directory not found: %%f\%HB_OBJ_DIR% )
)
cd ..
md _mt
cd _mt
rem ; Extract MT objects
echo.> _hbomt.txt
for %%f in (%HB_DLL_LIBS_MT%) do (
if exist "%HB_LIB_INSTALL%\lib%%f.a" (
echo Processing library: %%f
%HB_CCPREFIX%ar -x "%HB_LIB_INSTALL%\lib%%f.a"
%HB_CCPREFIX%ar -t "%HB_LIB_INSTALL%\lib%%f.a" >> _hbomt.txt
) else ( echo Library not found: %HB_LIB_INSTALL%\%%f.lib )
if exist "%%f\%HB_OBJ_DIR%" (
echo Processing directory: %%f\%HB_OBJ_DIR%
dir /b "%%f\%HB_OBJ_DIR%\*_dyn%HB_OBJ_EXT%" > _hboraw.txt
for /F %%p in (_hboraw.txt) do (
if not "%%p" == "maindll_dyn%HB_OBJ_EXT%" (
if not "%%p" == "maindllp_dyn%HB_OBJ_EXT%" (
echo %HB_OBJ_PREF%%%f\%HB_OBJ_DIR%\%%p%HB_OBJ_POST%>> _hballmt.txt
)
)
)
del _hboraw.txt
) else ( echo Directory not found: %%f\%HB_OBJ_DIR% )
)
cd ..
setlocal enabledelayedexpansion
set _HBOST=
for /f %%f in (_hboneut.txt) do set _HBOST=!_HBOST! %%f
for /f %%f in (_st\_hbost.txt) do set _HBOST=!_HBOST! _st\%%f
set _HBOMT=
for /f %%f in (_hboneut.txt) do set _HBOMT=!_HBOMT! %%f
for /f %%f in (_mt\_hbomt.txt) do set _HBOMT=!_HBOMT! _mt\%%f
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw64" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "win_mingw64" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-x64
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_mingwarm" set _DST_NAME_ST=harbour-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%_%HB_COMPILER%" == "wce_mingwarm" set _DST_NAME_MT=harbourmt-%HB_DLL_VERSION%-arm
if "%HB_ARCHITECTURE%" == "win" set _SYSLIBS=-luser32 -lws2_32 -ladvapi32 -lgdi32
if "%HB_ARCHITECTURE%" == "wce" set _SYSLIBS=-lwininet -lws2
echo Making %_DST_NAME_ST%.dll... && %HB_CCPREFIX%gcc -shared -o "%HB_BIN_INSTALL%\%_DST_NAME_ST%.dll" %_HBOST% %HB_USER_LDFLAGS% %_SYSLIBS% %HB_DLLIBS% -Wl,--output-def,"%HB_BIN_INSTALL%\%_DST_NAME_ST%.def"
echo Making %_DST_NAME_MT%.dll... && %HB_CCPREFIX%gcc -shared -o "%HB_BIN_INSTALL%\%_DST_NAME_MT%.dll" %_HBOMT% %HB_USER_LDFLAGS% %_SYSLIBS% %HB_DLLIBS% -Wl,--output-def,"%HB_BIN_INSTALL%\%_DST_NAME_MT%.def"
rem ,--out-implib,"%HB_LIB_INSTALL%\lib%_DST_NAME_ST%.a"
rem ,--out-implib,"%HB_LIB_INSTALL%\lib%_DST_NAME_MT%.a"
rem ; Cleanup
cd _st
for /F %%o in (_hbost.txt) do ( del %%o )
del _hbost.txt
cd ..
rmdir _st
cd _mt
for /F %%o in (_hbomt.txt) do ( del %%o )
del _hbomt.txt
cd ..
rmdir _mt
for /F %%o in (_hboneut.txt) do ( del %%o )
del _hboneut.txt
cd ..
rmdir _dll
goto END
goto :EOF
:END
rem del _hballst.txt
rem del _hballmt.txt
endlocal

View File

@@ -42,24 +42,15 @@ goto INST_%HB_ARCHITECTURE%
if not "%HB_INSTALL_PREFIX%" == "" copy INSTALL "%HB_INSTALL_PREFIX%\" > nul
if not "%HB_INSTALL_PREFIX%" == "" copy TODO "%HB_INSTALL_PREFIX%\" > nul
if "%HB_COMPILER%" == "mingw" set HB_DYNLIB=yes
if "%HB_COMPILER%" == "mingw64" set HB_DYNLIB=yes
if "%HB_COMPILER%" == "mingwarm" set HB_DYNLIB=yes
if "%HB_COMPILER%" == "cygwin" set HB_DYNLIB=yes
call "%~dp0hb-mkdyn.bat"
if not "%HB_DYNLIB%" == "yes" goto _SKIP_DLL_BIN
call "%~dp0hb-mkdyn.bat"
if exist "%HB_BIN_INSTALL%\*.dll" (
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbrun-dll" "%~dp0..\utils\hbrun\hbrun.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbmk2-dll" "%~dp0..\utils\hbmk2\hbmk2.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbtest-dll" "%~dp0..\utils\hbtest\hbtest.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbi18n-dll" "%~dp0..\utils\hbi18n\hbi18n.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbformat-dll" "%~dp0..\utils\hbformat\hbformat.hbp"
)
:_SKIP_DLL_BIN
if exist "%HB_BIN_INSTALL%\*.dll" (
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbrun-dll" "%~dp0..\utils\hbrun\hbrun.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbmk2-dll" "%~dp0..\utils\hbmk2\hbmk2.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbtest-dll" "%~dp0..\utils\hbtest\hbtest.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbi18n-dll" "%~dp0..\utils\hbi18n\hbi18n.hbp"
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbformat-dll" "%~dp0..\utils\hbformat\hbformat.hbp"
)
rem ; We build this here, because GNU Make wouldn't add the icon.
"%HB_HOST_BIN_DIR%\hbmk2" -q0 -lng=en-EN "-o%HB_BIN_INSTALL%\hbrun" "%~dp0..\utils\hbrun\hbrun.hbp"

View File

@@ -186,7 +186,6 @@ ifeq ($(HB_CONFIG_SHOWN),)
$(info ! Dynamic library creation phase)
endif
$(info ! MAKE: $(MAKE))
$(info ! MAKE: $(MAKE))
ifneq ($(HB_USER_PRGFLAGS),)
$(info ! HB_USER_PRGFLAGS: $(HB_USER_PRGFLAGS))
endif
@@ -346,9 +345,22 @@ endif
ifeq ($(HB_BUILD_VERBOSE),yes)
ifneq ($(MAKE_381),)
$(info ! Detected host platform: $(HB_HOST_ARCH))
$(info ! Detected shell: $(HB_SHELL))
endif
endif
# Couldn't find a builds of these tools which would fit Harbour respository,
# so these will have to installed by user.
#ifeq ($(HB_SHELL),os2)
# ifeq ($(call find_in_path,mkdir),)
# $(error ! Harbour build on OS/2 requires GNU mkdir executable in PATH. See INSTALL for more.)
# else
# ifeq ($(call find_in_path,rm),)
# $(error ! Harbour build on OS/2 requires GNU rm executable in PATH. See INSTALL for more.)
# endif
# endif
#endif
HB_HOST_CPU :=
ifeq ($(HB_HOST_ARCH),win)
ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
@@ -566,9 +578,11 @@ ifneq ($(HB_HOST_ARCH)$(HB_HOST_CPU),$(HB_ARCHITECTURE)$(HB_CPU))
HB_BIN_COMPILE := $(dir $(firstword $(wildcard $(TOP)$(ROOT)bin/$(HB_HOST_ARCH)/*/harbour$(HB_HOST_BIN_EXT))))
ifeq ($(HB_BIN_COMPILE),)
HB_BIN_COMPILE := $(dir $(firstword $(foreach dir,$(subst $(PTHSEP), ,$(PATH)),$(wildcard $(dir)/harbour$(HB_HOST_BIN_EXT)))))
ifeq ($(HB_BIN_COMPILE),)
export HB_BIN_COMPILE
ifneq ($(HB_BIN_COMPILE),)
HB_BIN_COMPILE := $(realpath $(HB_BIN_COMPILE))
endif
else
HB_BIN_COMPILE := $(realpath $(HB_BIN_COMPILE))
endif
ifeq ($(HB_BIN_COMPILE),)
$(warning ! Warning: HB_BIN_COMPILE not specified. Couldn't find native build.)
@@ -579,6 +593,7 @@ ifneq ($(HB_HOST_ARCH)$(HB_HOST_CPU),$(HB_ARCHITECTURE)$(HB_CPU))
endif
endif
endif
export HB_BIN_COMPILE
else
HB_CROSS_BUILD := yes
endif
@@ -704,7 +719,7 @@ endif
ifneq ($(HB_INSTALL_PREFIX),)
# TOFIX: HB_INSTALL_PREFIX will have to be duplicated internally to avoid
# recursive operation here
# recursive operation here.
# Handle simple macros in value
HB_INSTALL_PREFIX := $(subst {HB_ARCH},$(HB_ARCHITECTURE),$(HB_INSTALL_PREFIX))
@@ -715,6 +730,15 @@ ifneq ($(HB_INSTALL_PREFIX),)
ifeq ($(HB_UNIX_COMPATIBLE),no)
LIBPOSTFIX := $(DIRSEP)$(subst /,$(DIRSEP),$(ARCH_COMP))
else
# Not perfect, please enhance it.
ifneq ($(findstring /usr,$(HB_INSTALL_PREFIX)),)
LIBPOSTFIX := $(DIRSEP)harbour
else
ifneq ($(findstring /opt,$(HB_INSTALL_PREFIX)),)
LIBPOSTFIX := $(DIRSEP)harbour
endif
endif
endif
ifeq ($(HB_BIN_INSTALL),)
@@ -744,6 +768,8 @@ ifeq ($(HB_INC_COMPILE),)
HB_INC_COMPILE := $(TOP)$(ROOT)include
endif
HB_DYN_COMPILE := no
# export some variables to eliminate repeated setting in recursive calls
export HB_HOST_ARCH
export HB_HOST_BIN_DIR

View File

@@ -7,18 +7,17 @@ include $(TOP)$(ROOT)config/global.cf
ifneq ($(HB_ARCHITECTURE),)
ifneq ($(HB_COMPILER),)
ALL_HEADERS = $(C_HEADERS) $(PRG_HEADERS) $(API_HEADERS)
first::
ifeq ($(HB_INC_INSTALL),)
install::
else
INSTALL_FILES = $(ALL_HEADERS)
INSTALL_FILES = $(C_HEADERS) $(PRG_HEADERS) $(API_HEADERS)
INSTALL_DIR = $(HB_INC_INSTALL)
include $(TOP)$(ROOT)config/install.cf
endif
endif
endif

View File

@@ -4,7 +4,9 @@
include $(TOP)$(ROOT)config/instsh.cf
ifneq ($(INSTALL_RULE),)
ifneq ($(HB_INSTALL_DEF),yes)
install:: first
$(INSTALL_RULE)
endif
endif

View File

@@ -7,6 +7,8 @@ include $(TOP)$(ROOT)config/global.cf
ifneq ($(HB_ARCHITECTURE),)
ifneq ($(HB_COMPILER),)
HB_DYN_LIBS := hbcommon hbpp hbrtl hbmacro hblang hbcpage hbpcre hbzlib hbextern hbrdd rddntx rddnsx rddcdx rddfpt hbsix hbhsx hbusrrdd gtcgi gtpca gtstd gtwvt gtgui gtwin hbvm hbvmmt maindllh
include $(TOP)$(ROOT)config/$(HB_ARCHITECTURE)/$(HB_COMPILER).cf
include $(TOP)$(ROOT)config/c.cf
include $(TOP)$(ROOT)config/prg.cf

View File

@@ -34,6 +34,18 @@ HB_RULE = $(HB) $? -n1 $(HB_INC_DEPEND) $(HB_FLAGS) -gc$(HB_GCMODE) $(HB_FLAGSEX
# The rule to compile a C source file.
ifeq ($(CC_RULE),)
CC_RULE = $(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CDYNLIB) $(HB_CUNICODE) $(CC_OUT)$(<F:.c=$(OBJ_EXT)) $(CC_IN) $<
ifeq ($(HB_DYN_COMPILE),yes)
ifneq ($(LIBNAME),)
ifneq ($(findstring $(LIBNAME),$(HB_DYN_LIBS)),)
define cc_comp_all
$(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CUNICODE) $(CC_OUT)$(<F:.c=$(OBJ_EXT)) $(CC_IN) $<
$(CC) $(HB_INC_DEPEND) $(CPPFLAGS) $(CFLAGS) $(HB_CDBG) $(HB_USER_CFLAGS) $(HB_CUNICODE) $(CC_OUT)$(<F:.c=_dyn$(OBJ_EXT)) -DHB_DYNLIB $(CC_IN) $<
endef
CC_RULE = $(cc_comp_all)
endif
endif
endif
endif
# The rule to compile a C++ source file.

View File

@@ -45,6 +45,6 @@ LDFLAGS += $(LIBPATHS)
AR := $(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) cr $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
include $(TOP)$(ROOT)config/rules.cf

View File

@@ -8,6 +8,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
ifeq ($(HB_VISUALC_VER_PRE80),)
CC := cl.exe
else

View File

@@ -8,6 +8,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
CC := pocc.exe
CC_IN := -c
CC_OUT := -Fo

View File

@@ -8,6 +8,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
CC := bcc32.exe
CC_IN := -c
CC_OUT := -o

View File

@@ -48,6 +48,6 @@ LDFLAGS += $(LIBPATHS)
AR := ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) r $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(LIB_DIR)/$@
include $(TOP)$(ROOT)config/rules.cf

View File

@@ -9,6 +9,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
CC := icl.exe
CC_IN := -c
CC_OUT := -Fo

View File

@@ -55,6 +55,6 @@ LDFLAGS += $(LIBPATHS)
AR := $(HB_CCPREFIX)ar
ARFLAGS :=
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) cr $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
AR_RULE = $(AR) $(ARFLAGS) $(HB_USER_AFLAGS) crs $(LIB_DIR)/$@ $(^F) || $(RM) $(subst /,$(DIRSEP),$(LIB_DIR)/$@)
include $(TOP)$(ROOT)config/rules.cf

View File

@@ -6,6 +6,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
CC := cl.exe
CC_IN := -c
CC_OUT := -Fo

View File

@@ -8,6 +8,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
CC := pocc.exe
CC_IN := -c
CC_OUT := -Fo

View File

@@ -15,6 +15,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
ifeq ($(HB_BUILD_MODE),c)
CC := wcc386
endif

View File

@@ -8,6 +8,8 @@ OBJ_EXT := .obj
LIB_PREF :=
LIB_EXT := .lib
HB_DYN_COMPILE := yes
CC := xcc.exe
CC_IN := -c
CC_OUT := -Fo

View File

@@ -52,7 +52,7 @@ DIRS += \
else
ifneq ($(HB_CONTRIBLIBS),no)
DIRS := $(HB_CONTRIBLIBS)
DIRS := $(HB_CONTRIBLIBS)
endif
endif

View File

@@ -22,7 +22,7 @@ HB_INC_ALLEGRO := /usr/include /opt/local/include
endif
endif
HB_INC_ALLEGRO_OK += $(foreach d, $(HB_INC_ALLEGRO), $(if $(wildcard $(d)/allegro.h),$(d),))
HB_INC_ALLEGRO_OK := $(foreach d, $(HB_INC_ALLEGRO), $(if $(wildcard $(d)/allegro.h),$(d),))
ifneq ($(strip $(HB_INC_ALLEGRO_OK)),)

View File

@@ -44,7 +44,7 @@ HB_INC_QT := /usr/include/qt4 /usr/lib/qt4/include /usr/include /Developer/qt/in
endif
endif
HB_INC_QT_OK += $(foreach d, $(HB_INC_QT), $(if $(wildcard $(d)/Qt/qglobal.h),$(d),))
HB_INC_QT_OK := $(foreach d, $(HB_INC_QT), $(if $(wildcard $(d)/Qt/qglobal.h),$(d),))
ifeq ($(HB_ARCHITECTURE),darwin)
ifeq ($(strip $(HB_INC_QT_OK)),)
HB_INC_QT_OK := $(if $(wildcard /Library/Frameworks/QtCore.framework/Versions/4/Headers/QtCore),spec,)

View File

@@ -4,7 +4,6 @@
{allwin}libpaths=${HB_DIR_QT}\lib
{mingw|mingwce|(gcc&(linux|darwin))}libs=supc++
{allwin&!HB_QT_STATIC}libs=QtCore4 QtGui4 QtNetwork4 QtWebKit4
{allwin&HB_QT_STATIC}libs=QtCore QtGui QtNetwork QtWebKit
{linux}libs=QtCore QtGui QtNetwork QtWebKit
@@ -12,6 +11,7 @@
{darwin}libs=/Library/Frameworks/QtGui.framework/QtGui
{darwin}libs=/Library/Frameworks/QtNetwork.framework/QtNetwork
{darwin}libs=/Library/Frameworks/QtWebKit.framework/QtWebKit
{mingw|mingwce|(gcc&(linux|darwin))}libs=supc++
gui=yes
{!HB_QT_STATIC}gt=gtqtc
{HB_QT_STATIC}gt=gtqtcs

View File

@@ -18,7 +18,7 @@ HB_INC_CURL := /usr/include
endif
endif
HB_INC_CURL_OK += $(foreach d, $(HB_INC_CURL), $(if $(wildcard $(d)/curl/curl.h),$(d),))
HB_INC_CURL_OK := $(foreach d, $(HB_INC_CURL), $(if $(wildcard $(d)/curl/curl.h),$(d),))
endif

View File

@@ -17,7 +17,7 @@ HB_INC_FIREBIRD := /usr/include /opt/firebird/include
endif
endif
HB_INC_FIREBIRD_OK += $(foreach d, $(HB_INC_FIREBIRD), $(if $(wildcard $(d)/ibase.h),$(d),))
HB_INC_FIREBIRD_OK := $(foreach d, $(HB_INC_FIREBIRD), $(if $(wildcard $(d)/ibase.h),$(d),))
ifneq ($(strip $(HB_INC_FIREBIRD_OK)),)

View File

@@ -22,7 +22,7 @@ HB_INC_FREEIMAGE := /usr/include /opt/local/include
endif
endif
HB_INC_FREEIMAGE_OK += $(foreach d, $(HB_INC_FREEIMAGE), $(if $(wildcard $(d)/FreeImage.h),$(d),))
HB_INC_FREEIMAGE_OK := $(foreach d, $(HB_INC_FREEIMAGE), $(if $(wildcard $(d)/FreeImage.h),$(d),))
endif
ifneq ($(strip $(HB_INC_FREEIMAGE_OK)),)

View File

@@ -18,7 +18,7 @@ HB_INC_GD := /usr/include /opt/local/include
endif
endif
HB_INC_GD_OK += $(foreach d, $(HB_INC_GD), $(if $(wildcard $(d)/gd.h),$(d),))
HB_INC_GD_OK := $(foreach d, $(HB_INC_GD), $(if $(wildcard $(d)/gd.h),$(d),))
ifneq ($(strip $(HB_INC_GD_OK)),)

View File

@@ -12,7 +12,7 @@ HB_INC_LIBHARU = /usr/include /usr/local/include $(TOP)$(ROOT)external/libhpdf
endif
endif
HB_INC_LIBHARU_OK += $(foreach d, $(HB_INC_LIBHARU), $(if $(wildcard $(d)/hpdf.h),$(d),))
HB_INC_LIBHARU_OK := $(foreach d, $(HB_INC_LIBHARU), $(if $(wildcard $(d)/hpdf.h),$(d),))
ifneq ($(strip $(HB_INC_LIBHARU_OK)),)

View File

@@ -12,7 +12,7 @@ HB_INC_MYSQL := /usr/include/mysql /opt/local/include/mysql5/mysql
endif
endif
HB_INC_MYSQL_OK += $(foreach d, $(HB_INC_MYSQL), $(if $(wildcard $(d)/mysql.h),$(d),))
HB_INC_MYSQL_OK := $(foreach d, $(HB_INC_MYSQL), $(if $(wildcard $(d)/mysql.h),$(d),))
ifneq ($(strip $(HB_INC_MYSQL_OK)),)

View File

@@ -28,7 +28,7 @@ HB_INC_ODBC := /usr/include /usr/local/include
endif
endif
HB_INC_ODBC_OK += $(foreach d, $(HB_INC_ODBC), $(if $(wildcard $(d)/sql.h),$(d),))
HB_INC_ODBC_OK := $(foreach d, $(HB_INC_ODBC), $(if $(wildcard $(d)/sql.h),$(d),))
ifneq ($(strip $(HB_INC_ODBC_OK)),)
HB_USER_CFLAGS += $(foreach d, $(HB_INC_ODBC_OK), -I$(d))

View File

@@ -12,7 +12,7 @@ HB_INC_PGSQL := /usr/include /usr/local/pgsql/include /usr/local/pgsql/include/l
endif
endif
HB_INC_PGSQL_OK += $(foreach d, $(HB_INC_PGSQL), $(if $(wildcard $(d)/libpq-fe.h),$(d),))
HB_INC_PGSQL_OK := $(foreach d, $(HB_INC_PGSQL), $(if $(wildcard $(d)/libpq-fe.h),$(d),))
ifneq ($(strip $(HB_INC_PGSQL_OK)),)

View File

@@ -44,7 +44,7 @@ HB_INC_QT := /usr/include/qt4 /usr/lib/qt4/include /usr/include /Developer/qt/in
endif
endif
HB_INC_QT_OK += $(foreach d, $(HB_INC_QT), $(if $(wildcard $(d)/Qt/qglobal.h),$(d),))
HB_INC_QT_OK := $(foreach d, $(HB_INC_QT), $(if $(wildcard $(d)/Qt/qglobal.h),$(d),))
ifeq ($(HB_ARCHITECTURE),darwin)
ifeq ($(strip $(HB_INC_QT_OK)),)
HB_INC_QT_OK := $(if $(wildcard /Library/Frameworks/QtCore.framework/Versions/4/Headers/QtCore),spec,)

View File

@@ -26,7 +26,7 @@ endif
endif
endif
HB_INC_SQLITE3_OK += $(foreach d, $(HB_INC_SQLITE3), $(if $(wildcard $(d)/sqlite3.h),$(d),))
HB_INC_SQLITE3_OK := $(foreach d, $(HB_INC_SQLITE3), $(if $(wildcard $(d)/sqlite3.h),$(d),))
ifneq ($(strip $(HB_INC_SQLITE3_OK)),)

View File

@@ -19,7 +19,7 @@ HB_INC_OPENSSL := /usr/include /usr/local/ssl/include
endif
endif
HB_INC_OPENSSL_OK += $(foreach d, $(HB_INC_OPENSSL), $(if $(wildcard $(d)/openssl/ssl.h),$(d),))
HB_INC_OPENSSL_OK := $(foreach d, $(HB_INC_OPENSSL), $(if $(wildcard $(d)/openssl/ssl.h),$(d),))
endif

View File

@@ -15,7 +15,7 @@ ifeq ($(HB_INC_ADS),)
HB_INC_ADS := /usr/local/ads/acesdk $(HOME)/ads/acesdk
endif
HB_INC_ADS_OK += $(foreach d, $(HB_INC_ADS), $(if $(wildcard $(d)/ace.h),$(d),))
HB_INC_ADS_OK := $(foreach d, $(HB_INC_ADS), $(if $(wildcard $(d)/ace.h),$(d),))
endif
endif

View File

@@ -16,7 +16,7 @@ HB_INC_FIREBIRD := /usr/include /opt/firebird/include
endif
endif
HB_INC_FIREBIRD_OK += $(foreach d, $(HB_INC_FIREBIRD), $(if $(wildcard $(d)/ibase.h),$(d),))
HB_INC_FIREBIRD_OK := $(foreach d, $(HB_INC_FIREBIRD), $(if $(wildcard $(d)/ibase.h),$(d),))
ifneq ($(strip $(HB_INC_FIREBIRD_OK)),)

View File

@@ -12,7 +12,7 @@ HB_INC_MYSQL := /usr/include/mysql /opt/local/include/mysql5/mysql
endif
endif
HB_INC_MYSQL_OK += $(foreach d, $(HB_INC_MYSQL), $(if $(wildcard $(d)/mysql.h),$(d),))
HB_INC_MYSQL_OK := $(foreach d, $(HB_INC_MYSQL), $(if $(wildcard $(d)/mysql.h),$(d),))
ifneq ($(strip $(HB_INC_MYSQL_OK)),)

View File

@@ -28,7 +28,7 @@ HB_INC_ODBC := /usr/include /usr/local/include
endif
endif
HB_INC_ODBC_OK += $(foreach d, $(HB_INC_ODBC), $(if $(wildcard $(d)/sql.h),$(d),))
HB_INC_ODBC_OK := $(foreach d, $(HB_INC_ODBC), $(if $(wildcard $(d)/sql.h),$(d),))
ifneq ($(strip $(HB_INC_ODBC_OK)),)
HB_USER_CFLAGS += $(foreach d, $(HB_INC_ODBC_OK), -I$(d))

View File

@@ -12,7 +12,7 @@ HB_INC_PGSQL := /usr/include /usr/local/pgsql/include /usr/local/pgsql/include/l
endif
endif
HB_INC_PGSQL_OK += $(foreach d, $(HB_INC_PGSQL), $(if $(wildcard $(d)/libpq-fe.h),$(d),))
HB_INC_PGSQL_OK := $(foreach d, $(HB_INC_PGSQL), $(if $(wildcard $(d)/libpq-fe.h),$(d),))
ifneq ($(strip $(HB_INC_PGSQL_OK)),)

View File

@@ -15,7 +15,7 @@ DIRS := \
else
ifneq ($(HB_EXTERNALLIBS),no)
DIRS := $(HB_EXTERNALLIBS)
DIRS := $(HB_EXTERNALLIBS)
endif
endif

View File

@@ -13,50 +13,49 @@ HB_USER_CFLAGS += -I$(TOP)$(ROOT)source/hbzlib
LIBNAME := libhpdf
ifeq ($(HB_WITH_LIBHPDF),)
HB_WITH_LIBHPDF := yes
ifeq ($(HB_COMPILER),watcom)
HB_WITH_LIBHPDF := no
endif
ifeq ($(HB_COMPILER),pocc64)
HB_WITH_LIBHPDF := no
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_LIBHPDF := no
endif
ifeq ($(HB_COMPILER),mingwarm)
HB_WITH_LIBHPDF := yes
HB_USER_CFLAGS += -U__COREDLL__
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_LIBHPDF := yes
endif
HB_WITH_LIBHPDF := yes
ifeq ($(HB_COMPILER),watcom)
HB_WITH_LIBHPDF := no
endif
ifeq ($(HB_COMPILER),pocc64)
HB_WITH_LIBHPDF := no
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_LIBHPDF := no
endif
ifeq ($(HB_COMPILER),mingwarm)
HB_WITH_LIBHPDF := yes
HB_USER_CFLAGS += -U__COREDLL__
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_LIBHPDF := yes
endif
endif
ifeq ($(HB_WITH_LIBHPDF),yes)
ifeq ($(HB_INC_LIBPNG),)
ifeq ($(HB_XBUILD),)
HB_INC_LIBPNG = /usr/include
ifeq ($(HB_ARCHITECTURE),win)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),darwin)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
endif
ifeq ($(HB_XBUILD),)
HB_INC_LIBPNG = /usr/include
ifeq ($(HB_ARCHITECTURE),win)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
ifeq ($(HB_ARCHITECTURE),darwin)
HB_INC_LIBPNG += $(TOP)$(ROOT)external/libpng
endif
endif
endif
HB_INC_LIBPNG_OK += $(foreach d, $(HB_INC_LIBPNG), $(if $(wildcard $(d)/png.h),$(d),))
HB_INC_LIBPNG_OK := $(foreach d, $(HB_INC_LIBPNG), $(if $(wildcard $(d)/png.h),$(d),))
ifneq ($(strip $(HB_INC_LIBPNG_OK)),)

View File

@@ -10,30 +10,30 @@ HB_BUILD_WARN := no
HB_USER_CFLAGS += -I$(TOP)$(ROOT)source/hbzlib
ifeq ($(HB_COMPILER),djgpp)
HB_USER_CFLAGS += -DPNG_NO_SNPRINTF
HB_USER_CFLAGS += -DPNG_NO_SNPRINTF
endif
LIBNAME := libpng
ifeq ($(HB_WITH_LIBPNG),)
ifeq ($(HB_ARCHITECTURE),win)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),darwin)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_COMPILER),poccarm)
HB_WITH_LIBPNG := no
endif
ifeq ($(HB_ARCHITECTURE),win)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_ARCHITECTURE),darwin)
HB_WITH_LIBPNG := yes
endif
ifeq ($(HB_COMPILER),poccarm)
HB_WITH_LIBPNG := no
endif
endif
ifeq ($(HB_WITH_LIBPNG),yes)

View File

@@ -10,39 +10,40 @@ HB_BUILD_WARN := no
HB_BUILD_MODE := c
ifeq ($(HB_ARCHITECTURE),wce)
HB_USER_CFLAGS += -D_WIN32_WCE
HB_USER_CFLAGS += -D_WIN32_WCE
endif
ifeq ($(HB_ARCHITECTURE),dos)
# DJGPP and OpenWatcom in DOS aren't correctly recognized by SQLite,
# so we're forcing the next best available option. This will cause missing
# externals though. [vszakats]
HB_USER_CFLAGS += -DSQLITE_OS_OTHER
# DJGPP and OpenWatcom in DOS aren't correctly recognized by SQLite,
# so we're forcing the next best available option. This will cause missing
# externals though. [vszakats]
HB_USER_CFLAGS += -DSQLITE_OS_OTHER
endif
LIBNAME := sqlite3
ifeq ($(HB_WITH_SQLITE3),)
ifeq ($(HB_ARCHITECTURE),win)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_COMPILER),mingwarm)
HB_WITH_SQLITE3 := no
endif
ifeq ($(HB_COMPILER),poccarm)
HB_WITH_SQLITE3 := no
endif
ifeq ($(HB_ARCHITECTURE),win)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_ARCHITECTURE),wce)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_ARCHITECTURE),os2)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_ARCHITECTURE),dos)
HB_WITH_SQLITE3 := yes
endif
ifeq ($(HB_COMPILER),mingwarm)
HB_WITH_SQLITE3 := no
endif
ifeq ($(HB_COMPILER),poccarm)
HB_WITH_SQLITE3 := no
endif
endif
ifeq ($(HB_WITH_SQLITE3),yes)
C_SOURCES := \
sqlite3.c \

View File

@@ -13,87 +13,14 @@ rem
rem Please read INSTALL for further information.
rem ---------------------------------------------------------------
rem Setup defaults
if "%HB_ARCHITECTURE%" == "" if not "%WINDIR%" == "" set HB_ARCHITECTURE=win
if "%HB_ARCHITECTURE%" == "" set HB_ARCHITECTURE=dos
if "%HB_COMPILER%" == "" if not "%WINDIR%" == "" goto WIN_AUTODETECT
if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
:CONTINUE_MAKE
if "%HB_COMPILER%" == "djgpp" set HB_ARCHITECTURE=dos
if "%HB_COMPILER%" == "msvcarm" set HB_ARCHITECTURE=wce
if "%HB_COMPILER%" == "mingwarm" set HB_ARCHITECTURE=wce
if "%HB_COMPILER%" == "poccarm" set HB_ARCHITECTURE=wce
if "%HB_ARCHITECTURE%" == "" goto BAD_ARCH
if "%HB_COMPILER%" == "" goto BAD_COMP
if "%HB_INSTALL_PREFIX%" == "" if "%OS%" == "Windows_NT" set HB_INSTALL_PREFIX=%~dp0
goto MAKE
:WIN_AUTODETECT
rem We need some batch features to autodetect compiler
if not "%OS%" == "Windows_NT" goto HELP
rem Order is significant
call :COMP_DET_ONE arm-wince-mingw32ce-gcc.exe mingwarm wce arm-wince-mingw32ce-
call :COMP_DET_ONE arm-mingw32ce-gcc.exe mingwarm wce arm-mingw32ce-
call :COMP_DET_ONE cygstart.exe cygwin win
call :COMP_DET_ONE gcc.exe mingw win
call :COMP_DET_ONE wpp386.exe watcom win
call :COMP_DET_ONE ml64.exe msvc64 win
call :COMP_DET_ONE icl.exe icc win
call :COMP_DET_ONE cl.exe msvc win
call :COMP_DET_ONE bcc32.exe bcc win
call :COMP_DET_ONE pocc.exe pocc win
call :COMP_DET_ONE xcc.exe xcc win
call :COMP_DET_ONE x86_64-w64-mingw32-gcc.exe mingw64 win x86_64-w64-mingw32-
if "%HB_COMPILER%" == "" ( echo HB_COMPILER couldn't be automatically determined. && goto HELP )
echo Harbour HB_COMPILER autodetected: '%HB_COMPILER%'
echo Harbour HB_ARCHITECTURE autodetected: '%HB_ARCHITECTURE%'
if not "%HB_CCPREFIX%" == "" echo Harbour HB_CCPREFIX autodetected: '%HB_CCPREFIX%'
goto CONTINUE_MAKE
:HELP
echo.
echo Usage: make_gnu [command]
echo.
echo The following commands are supported:
echo - all (default)
echo - clean
echo - install
echo.
echo Please read INSTALL for HOWTOs and description
echo of available options.
goto END
:BAD_ARCH
echo Harbour: Error: HB_ARCHITECTURE not set.
goto HELP
:BAD_COMP
echo Harbour: Error: HB_COMPILER not set.
goto HELP
:MAKE
rem ---------------------------------------------------------------
rem Setup output log
set _HB_BUILD_LOG=
set HB_BUILD_LOGFILE=
if not "%HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=%HB_BUILD_LOG%
: if "%HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=log-%HB_ARCHITECTURE%-%HB_COMPILER%.txt
if "%_HB_BUILD_LOG%" == "yes" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=log-%HB_ARCHITECTURE%-%HB_COMPILER%.txt
: if "%HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=hb-build-%DATE:~0,4%%DATE:~6,2%%DATE:~10,2%-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt
if "%_HB_BUILD_LOG%" == "yes" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=hb-build-%DATE:~0,4%%DATE:~6,2%%DATE:~10,2%-%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.txt
if "%_HB_BUILD_LOG%" == "no" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set HB_BUILD_LOGFILE=%_HB_BUILD_LOG%
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" echo Harbour build output to: '%_HB_BUILD_LOG%'
@@ -101,110 +28,21 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
if not "%_HB_BUILD_LOG%" == "" if "%OS%" == "Windows_NT" set _HB_BUILD_LOG=^>^> %_HB_BUILD_LOG% 2^>^&1
rem ---------------------------------------------------------------
rem Detect name of GNU Make
rem
rem Look for mingw32-make.exe and use it if found. Works only
rem on Windows NT and upper. [vszakats]
rem Decide about GNU Make executable name
rem Some other name variations: gnumake.exe, gmake.exe
set _HB_MAKE=make.exe
set _HB_MAKE=
if "%HB_MAKE%%OS%" == "Windows_NT" if exist "%~dp0config\dj-make.exe" set _HB_MAKE="%~dp0config\dj-make.exe"
if "%HB_MAKE%%OS%" == "Windows_NT" set _HB_MAKE=mingw32-make.exe
if "%OS%" == "Windows_NT" goto _FM_DONE
if exist config\dj-make.exe set _HB_MAKE=config\dj-make.exe
if not exist config\dj-make.exe set _HB_MAKE=make.exe
if not "%HB_ARCHITECTURE%" == "dos" goto _FM_WIN
if "%OS%" == "Windows_NT" goto _DOS_NT
if not exist config\dj-make.exe goto SKIP_WINDLL
set _HB_MAKE=config\dj-make.exe
goto SKIP_WINDLL
:_DOS_NT
if not exist "%~dp0config\dj-make.exe" goto SKIP_WINDLL
set _HB_MAKE="%~dp0config\dj-make.exe"
goto SKIP_WINDLL
:_FM_WIN
if not "%OS%" == "Windows_NT" echo Windows NT or upper is required to build Harbour for '%HB_ARCHITECTURE%' platform.
if not "%OS%" == "Windows_NT" goto MAKE_DONE
if not exist "%~dp0config\mingw32-make.exe" goto _FM_NOLOCAL
set _HB_MAKE="%~dp0config\mingw32-make.exe"
goto _FM_DONE
:_FM_NOLOCAL
if not "%OS%" == "Windows_NT" goto _FM_DONE
set _HB_CHECK=mingw32-make.exe
if exist "%_HB_CHECK%" ( set _HB_MAKE=%_HB_CHECK%&& goto _FM_DONE )
set _HB_PATH=%PATH%
:_FM_LOOP
for /F "delims=; tokens=1,2*" %%p in ("%_HB_PATH%") do (
if exist "%%p\%_HB_CHECK%" ( set _HB_MAKE=%_HB_CHECK%&& goto _FM_DONE )
if exist "%%p%_HB_CHECK%" ( set _HB_MAKE=%_HB_CHECK%&& goto _FM_DONE )
set _HB_PATH=%%~q;%%~r
)
if not "%_HB_PATH%"==";" goto _FM_LOOP
:_FM_DONE
set _HB_CHECK=
set _HB_PATH=
if "%HB_ARCHITECTURE%" == "os2" goto SKIP_WINDLL
if "%HB_ARCHITECTURE%" == "linux" goto SKIP_WINDLL
rem ---------------------------------------------------------------
rem Start the GNU Make system
rem ---------------------------------------------------------------
rem Special build mode when HB_BUILD_DLL=yes on Windows platform.
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_BUILD_DLL%" == "yes" goto SKIP_WINDLL
if "%HB_COMPILER%%HB_CCPREFIX%" == "mingw64" set HB_CCPREFIX=x86_64-pc-mingw32-
if "%HB_COMPILER%%HB_CCPREFIX%" == "mingwarm" set HB_CCPREFIX=arm-wince-mingw32ce-
if "%HB_COMPILER%" == "mingw" goto DO_GCC
if "%HB_COMPILER%" == "mingw64" goto DO_GCC
if "%HB_COMPILER%" == "mingwarm" goto DO_GCC
if "%HB_COMPILER%" == "cygwin" goto DO_GCC_CYG
set _HB_CONTRIBLIBS=%HB_CONTRIBLIBS%
set _HB_CONTRIB_ADDONS=%HB_CONTRIB_ADDONS%
set _HB_EXTERNALLIBS=%HB_EXTERNALLIBS%
set _HB_EXTERNAL_ADDONS=%HB_EXTERNAL_ADDONS%
set HB_DYNLIB=yes
set HB_CONTRIBLIBS=no
set HB_CONTRIB_ADDONS=
set HB_EXTERNALLIBS=no
set HB_EXTERNAL_ADDONS=
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
if errorlevel 1 goto MAKE_DONE
set HB_DYNLIB=no
set HB_CONTRIBLIBS=%_HB_CONTRIBLIBS%
set HB_CONTRIB_ADDONS=%_HB_CONTRIB_ADDONS%
set HB_EXTERNALLIBS=%_HB_EXTERNALLIBS%
set HB_EXTERNAL_ADDONS=%_HB_EXTERNAL_ADDONS%
set _HB_CONTRIBLIBS=
set _HB_CONTRIB_ADDONS=
set _HB_EXTERNALLIBS=
set _HB_EXTERNAL_ADDONS=
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:DO_GCC
set HB_DYNLIB=no
%_HB_MAKE% clean install %HB_USER_MAKEFLAGS% %_HB_BUILD_LOG%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:DO_GCC_CYG
set HB_DYNLIB=no
sh %~dp0make_gnu.sh clean install %HB_USER_MAKEFLAGS%
if errorlevel 1 echo Harbour GNU Make returned: %ERRORLEVEL%
goto MAKE_DONE
:SKIP_WINDLL
if "%HB_COMPILER%" == "cygwin" goto SKIP_WINDLL_CYG
%_HB_MAKE% %HB_USER_MAKEFLAGS% %1 %2 %3 %4 %5 %6 %7 %8 %9 %_HB_BUILD_LOG%
@@ -223,20 +61,4 @@ if "%HB_COMPILER%" == "" set HB_COMPILER=djgpp
set _HB_BUILD_LOG=
goto END
:COMP_DET_ONE
if not "%HB_COMPILER%" == "" goto END
if exist "%1" ( set HB_COMPILER=%2&& set HB_ARCHITECTURE=%3&& set HB_CCPREFIX=%4&& goto _CDO_EXIT )
set _PATH=%PATH%
:_CDO_LOOP
for /F "delims=; tokens=1,2*" %%p in ("%_PATH%") do (
if exist "%%p\%1" ( set HB_COMPILER=%2&& set HB_ARCHITECTURE=%3&& set HB_CCPREFIX=%4&& goto _CDO_EXIT )
if exist "%%p%1" ( set HB_COMPILER=%2&& set HB_ARCHITECTURE=%3&& set HB_CCPREFIX=%4&& goto _CDO_EXIT )
set _PATH=%%~q;%%~r
)
if not "%_PATH%"==";" goto _CDO_LOOP
:_CDO_EXIT
set _PATH=
goto END
:END

View File

@@ -28,13 +28,11 @@ ifeq ($(HB_ARCHITECTURE),os2)
HB_INC_CURSES :=
endif
HB_INC_CURSES_OK += $(foreach d, $(HB_INC_CURSES), $(if $(wildcard $(d)/curses.h),$(d),))
HB_INC_CURSES_OK := $(strip $(HB_INC_CURSES_OK))
HB_INC_CURSES_OK := $(strip $(foreach d, $(HB_INC_CURSES), $(if $(wildcard $(d)/curses.h),$(d),)))
ifeq ($(HB_INC_CURSES_OK),)
ifeq ($(HB_COMPILER),djgpp)
HB_INC_CURSES_OK += $(foreach d, $(subst ;, ,$(PATH)), $(if $(wildcard $(d)/../include/curses.h),$(d)/../include,))
HB_INC_CURSES_OK := $(strip $(HB_INC_CURSES_OK))
HB_INC_CURSES_OK := $(strip $(foreach d, $(subst ;, ,$(PATH)), $(if $(wildcard $(d)/../include/curses.h),$(d)/../include,)))
endif
endif

View File

@@ -32,7 +32,7 @@ ifeq ($(HB_COMMERCE),yes)
HB_INC_SLANG :=
endif
HB_INC_SLANG_OK += $(foreach d, $(HB_INC_SLANG), $(if $(wildcard $(d)/slang.h),$(d),))
HB_INC_SLANG_OK := $(foreach d, $(HB_INC_SLANG), $(if $(wildcard $(d)/slang.h),$(d),))
ifneq ($(strip $(HB_INC_SLANG_OK)),)

View File

@@ -21,7 +21,7 @@ ifeq ($(HB_WITHOUT_GTXWC),yes)
HB_INC_X11 :=
endif
HB_INC_X11_OK += $(foreach d, $(HB_INC_X11), $(if $(wildcard $(d)/X11/Xlib.h),$(d),))
HB_INC_X11_OK := $(foreach d, $(HB_INC_X11), $(if $(wildcard $(d)/X11/Xlib.h),$(d),))
ifneq ($(strip $(HB_INC_X11_OK)),)