@echo off
:: -----------------------------------------------------------------------------
:: Definir:
::      * Empresa;
::      * diretorio de instalacao do Harbour 3.2;
::      * compilador (mingw64, neste caso);
set EMPRESA=PORTELA INFO
set HB_INSTALL_PREFIX=c:\harbour
set HB_COMPILER=mingw64

:: -----------------------------------------------------------------------------
:: verifica se existe o diretorio de instalacao do Harbour 3.2
if not exist "%HB_INSTALL_PREFIX%" (
    echo.
    echo %EMPRESA% - Script de compilacao do Harbour 3.2 - 64 bits
    echo Diretorio de instalacao nao existe: %HB_INSTALL_PREFIX%
    echo Saindo ...
    exit /b
)


:: pegando a data e hora do sistema
for /f "tokens=1-4 delims=/ " %%a in ('date /t') do (
    set dia=%%a
    set mes=%%b
    set ano=%%c
)
for /f "tokens=1-2 delims=: " %%a in ('time /t') do (
    set hora=%%a
    set minuto=%%b
)

:: coloca a data e hora no formato (AAAA_MM_DD_HH_mm)
set timestamp=%ano%_%mes%_%dia%_%hora%_%minuto%

:: nomes dos arquivos de log e erro em clean
set arq_clean_log=modo_clean_log_%timestamp%.txt
set arq_clean_err=modo_clean_err_%timestamp%.txt

:: nomes dos arquivos de log e erro em comp
set arq_log_install=modo_install_log_%timestamp%.txt
set arq_err_install=modo_install_err_%timestamp%.txt


:: se variaveis existem, remover ...
if defined HB_WITH_PCRE         set HB_WITH_PCRE=
if defined HB_WITH_ZLIB         set HB_WITH_ZLIB=
if defined HB_WITH_BZIP2        set HB_WITH_BZIP2=
if defined HB_WITH_LZF          set HB_WITH_LZF=
if defined HB_WITH_MINIZIP      set HB_WITH_MINIZIP=
if defined HB_WITH_MINILZO      set HB_WITH_MINILZO=
if defined HB_WITH_CURL         set HB_WITH_CURL=
if defined HB_WITH_OPENSSL      set HB_WITH_OPENSSL=
if defined HB_WITH_MYSQL        set HB_WITH_MYSQL=
if defined HB_WITH_FIREBIRD     set HB_WITH_FIREBIRD=
if defined HB_WITH_LIBHARU      set HB_WITH_LIBHARU=
if defined HB_WITH_XDIFF        set HB_WITH_XDIFF=
if defined HB_WITH_MXML         set HB_WITH_MXML=
if defined HB_WITH_SQLITE3      set HB_WITH_SQLITE3=
if defined HB_WITH_TINYMT       set HB_WITH_TINYMT=
if defined HB_WITH_BLAT         set HB_WITH_BLAT=
if defined HB_WITH_PGSQL        set HB_WITH_PGSQL=
if defined HB_STATIC_CURL       set HB_STATIC_CURL=
if defined HB_STATIC_OPENSSL    set HB_STATIC_OPENSSL=
if defined HB_BUILD_PKG         set HB_BUILD_PKG=
if defined HB_BUILD_DYN         set HB_BUILD_DYN=
if defined HB_BUILD_CONTRIB_DYN set HB_BUILD_CONTRIB_DYN=
if defined HB_BUILD_SHARED      set HB_BUILD_SHARED=
if defined HB_BUILD_DEBUG       set HB_BUILD_DEBUG=
if defined HB_BUILD_STRIP       set HB_BUILD_STRIP=
if defined HB_BUILD_OPTIM       set HB_BUILD_OPTIM=
if defined HB_BUILD_MODE        set HB_BUILD_MODE=
if defined HB_BUILD_PARTS       set HB_BUILD_PARTS=
if defined HB_BUILD_3RDEXT      set HB_BUILD_3RDEXT=
if defined HB_INSTALL_IMPLIB    set HB_INSTALL_IMPLIB=
if defined HB_INSTALL_3RDDYN    set HB_INSTALL_3RDDYN=
if defined HB_REBUILD_EXTERN    set HB_REBUILD_EXTERN=
if defined HB_REBUILD_PARSER    set HB_REBUILD_PARSER=
if defined HB_BUILD_NOGPLLIB    set HB_BUILD_NOGPLLIB=

:: Configura as variaveis necessarias aqui m baixo ...
:: set HB_WITH_PCRE=C:\dev\tools\pcre
:: set HB_WITH_ZLIB=C:\dev\tools\zlib
:: set HB_WITH_BZIP2=C:\dev\tools\bzip2
:: set HB_WITH_LZF=C:\dev\tools\liblzf
:: set HB_WITH_MINIZIP=C:\dev\tools\zlib\contrib\minizip
:: set HB_WITH_MINILZO=C:\dev\tools\minilzo\
:: set HB_WITH_MYSQL=C:\dev\tools\mysql-5.7.43\include
:: set HB_WITH_MXML=C:\dev\tools\mxml
:: set HB_WITH_FIREBIRD=C:\dev\tools\Firebird-2.5\src\include
:: set HB_WITH_XDIFF=C:\dev\tools\libxdiff\xdiff
:: set HB_WITH_LIBHARU=C:\dev\tools\libharu\include
:: set HB_WITH_PGSQL=C:\dev\tools\postgresql-16.0\src\include
:: set HB_WITH_FIREBIRD=C:\Firebird\Firebird_3_0\include
:: set HB_WITH_SQLITE3=C:\dev\tools\sqlite3
:: set HB_WITH_TINYMT=C:\dev\tools\TinyMT\tinymt
:: set HB_WITH_BLAT=C:\dev\tools\blat\full\source
:: set HB_WITH_CURL=C:\dev\tools\curl\include
:: set HB_WITH_OPENSSL=C:\dev\tools\openssl\include
:: set HB_STATIC_CURL=yes
:: set HB_STATIC_OPENSSL=yes
:: set HB_BUILD_PKG=yes
:: set HB_BUILD_DYN=no
:: set HB_BUILD_CONTRIB_DYN=yes
:: set HB_BUILD_SHARED=yes
:: set HB_BUILD_DEBUG=no
:: set HB_BUILD_STRIP=no
:: set HB_BUILD_OPTIM=yes
:: set HB_BUILD_MODE=c
:: set HB_BUILD_PARTS=[all|compiler|lib]
:: set HB_BUILD_3RDEXT=yes
:: set HB_INSTALL_IMPLIB=yes
:: set HB_INSTALL_3RDDYN=no
:: set HB_REBUILD_EXTERN=no
:: set HB_REBUILD_PARSER=no
:: set HB_BUILD_NOGPLLIB=yes


cls
:: cabecalho
echo %EMPRESA% - Script de compilacao do Harbour 3.2 - 64 bits
echo.
echo HB_INSTALL_PREFIX = %HB_INSTALL_PREFIX%
echo HB_COMPILER = %HB_COMPILER%


:: inicio do processo
for /f "tokens=1-2 delims=: " %%a in ('time /t') do (
    set hora_inicio=%%a
    set minuto_inicio=%%b
)


:: executa a limpeza e redireciona a saida para arquivos de log e erro
echo.
echo Modo: clean
win-make clean >%arq_clean_log% 2>%arq_clean_err%


:: informar sobre os arquivos de log e erro da limpeza
echo.
echo Modo clean pronto! Verificar os arquivo de Log e Erro:
echo     %arq_clean_log%
echo     %arq_clean_err%


:: compila e redireciona a saida para arquivos de log e erro
echo.
echo Modo: install
win-make install >%arq_log_install% 2>%arq_err_install%


:: final do processo
for /f "tokens=1-2 delims=: " %%a in ('time /t') do (
    set hora_final=%%a
    set minuto_final=%%b
)
:: calcula a diferenca de tempo
set /a hora_dif=hora_final-hora_inicio
set /a minuto_dif=minuto_final-minuto_inicio


:: Informar sobre os arquivos de log e erro da compilacao
echo.
echo Modo install pronto! Verificar os arquivo de Log e Erro:
echo     %arq_log_install%
echo     %arq_err_install%
echo.
echo Inicio: %hora_inicio%:%minuto_inicio%
echo Final : %hora_final%:%minuto_final%
echo Tempo decorrido: %hora_dif% horas %minuto_dif% minutos
echo.
:: fim
