2007-11-10 05:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* make_b32.bat
+ make_b32.mak
- makefile.bc
* make_gcc.sh
+ make_gcc.mak
- makefile.gc
* make_vc.bat
+ make_vc.mak
- makefile.vc
* common.mak
- contrib/maketpl.b32
+ contrib/mtpl_b32.mak
- contrib/maketpl.vc
+ contrib/mtpl_vc.mak
- contrib/maketpl.mak
+ contrib/mtpl.mak
* contrib/libct/make_b32.bat
* contrib/libct/make_vc.bat
% Makefile name cleanup, batch file synchronization,
setting name cleanup. Some minor fixes.
Now all non-GNU makefiles have the .mak extension.
- contrib/xhb/makefile.vc
* contrib/xhb/make_b32.bat
+ contrib/xhb/common.mak
- contrib/xhb/makefile.bc
* contrib/xhb/make_vc.bat
- contrib/libmisc/makefile.vc
* contrib/libmisc/make_b32.bat
+ contrib/libmisc/common.mak
- contrib/libmisc/makefile.bc
* contrib/libmisc/make_vc.bat
+ contrib/apollo/common.mak
- contrib/apollo/makefile.bc
* contrib/apollo/make_b32.bat
+ contrib/apollo/make_vc.bat
- contrib/htmllib/makefile.vc
* contrib/htmllib/make_b32.bat
+ contrib/htmllib/common.mak
- contrib/htmllib/Makefile.bc
* contrib/htmllib/make_vc.bat
* contrib/libct/make_b32.bat
* contrib/libct/make_vc.bat
- contrib/libgt/makefile.vc
* contrib/libgt/make_b32.bat
+ contrib/libgt/common.mak
- contrib/libgt/makefile.bc
* contrib/libgt/make_vc.bat
* contrib/libnf/make_b32.bat
- contrib/libnf/makefile.vc
* contrib/libnf/make_vc.bat
+ contrib/libnf/common.mak
- contrib/libnf/makefile.bc
* contrib/gd/make_b32.bat
+ contrib/gd/common.mak
- contrib/gd/makefile.bc
+ contrib/gd/make_vc.bat
- contrib/tip/makefile.vc
* contrib/tip/make_b32.bat
+ contrib/tip/common.mak
- contrib/tip/makefile.bc
* contrib/tip/make_vc.bat
+ contrib/adordd/common.mak
- contrib/adordd/makefile.bc
* contrib/adordd/make_b32.bat
+ contrib/adordd/make_vc.bat
- contrib/rdd_ads/makefile.vc
* contrib/rdd_ads/make_b32.bat
+ contrib/rdd_ads/common.mak
- contrib/rdd_ads/makefile.bc
* contrib/rdd_ads/make_vc.bat
+ contrib/btree/common.mak
- contrib/btree/makefile.bc
* contrib/btree/make_b32.bat
+ contrib/btree/make_vc.bat
+ contrib/directx/common.mak
- contrib/directx/makefile.bc
- contrib/directx/makefile.vc
* contrib/directx/make_b32.bat
* contrib/directx/make_vc.bat
+ contrib/win32/common.mak
- contrib/win32/makefile.bc
- contrib/win32/makefile.vc
* contrib/win32/make_b32.bat
* contrib/win32/make_vc.bat
+ contrib/bmdbfcdx/common.mak
- contrib/bmdbfcdx/makefile.bc
* contrib/bmdbfcdx/make_b32.bat
+ contrib/bmdbfcdx/make_vc.bat
- contrib/samples/makefile.vc
* contrib/samples/make_b32.bat
+ contrib/samples/common.mak
- contrib/samples/makefile.bc
* contrib/samples/make_vc.bat
* contrib/mysql/common.mak
- contrib/mysql/makefile.bc
* contrib/mysql/make_b32.bat
+ contrib/mysql/make_vc.bat
* contrib/pgsql/common.mak
- contrib/pgsql/makefile.bc
* contrib/pgsql/make_b32.bat
+ contrib/pgsql/make_vc.bat
* Changed most libs to use the generic non-GNU makefiles.
+ Added support for MSVC for all above libs.
; directx won't build under MSVC with an error.
+ Added "implib" for rdd_ads. TOFIX: Doesn't work for MSVC.
; TOFIX: I couldn't compile pgsql using latest 8.2.5.
* contrib/samples/gauge.c
! Fixed MSVC warning.
+ odbc/test
+ odbc/test/bld_b32.bat
+ odbc/test/harbour.mdb
+ odbc/test/odbcdemo.prg
+ odbc/test/browodbc.prg
+ odbc/test/odbccall.prg
+ odbc/test/testodbc.prg
- odbc/bld_b32.bat
- odbc/harbour.mdb
- odbc/odbcdemo.prg
- odbc/browodbc.prg
- odbc/odbccall.prg
- odbc/testodbc.prg
- odbc/bldodbc.bat
+ odbc/make_b32.bat
+ odbc/make_vc.bat
- odbc/hbodbc.b32
+ odbc/common.mak
* Moved test functions to test fir.
! Fixed bld_b32.bat
! Renamed non-GNU BC make files to be in sync with the rest of contribs.
; TOFIX: There are some warnings under MSVC.
; TOFIX: .def -> .lib conversions fails under MSVC.
- contrib/ole
- contrib/delphi
- contrib/hb_struc
- contrib/dot
- contrib/tprepro
- Removed obsolete, incomplete or non-working contribs.
This commit is contained in:
@@ -8,6 +8,149 @@
|
||||
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2007-11-10 05:50 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* make_b32.bat
|
||||
+ make_b32.mak
|
||||
- makefile.bc
|
||||
* make_gcc.sh
|
||||
+ make_gcc.mak
|
||||
- makefile.gc
|
||||
* make_vc.bat
|
||||
+ make_vc.mak
|
||||
- makefile.vc
|
||||
* common.mak
|
||||
- contrib/maketpl.b32
|
||||
+ contrib/mtpl_b32.mak
|
||||
- contrib/maketpl.vc
|
||||
+ contrib/mtpl_vc.mak
|
||||
- contrib/maketpl.mak
|
||||
+ contrib/mtpl.mak
|
||||
* contrib/libct/make_b32.bat
|
||||
* contrib/libct/make_vc.bat
|
||||
% Makefile name cleanup, batch file synchronization,
|
||||
setting name cleanup. Some minor fixes.
|
||||
Now all non-GNU makefiles have the .mak extension.
|
||||
|
||||
- contrib/xhb/makefile.vc
|
||||
* contrib/xhb/make_b32.bat
|
||||
+ contrib/xhb/common.mak
|
||||
- contrib/xhb/makefile.bc
|
||||
* contrib/xhb/make_vc.bat
|
||||
- contrib/libmisc/makefile.vc
|
||||
* contrib/libmisc/make_b32.bat
|
||||
+ contrib/libmisc/common.mak
|
||||
- contrib/libmisc/makefile.bc
|
||||
* contrib/libmisc/make_vc.bat
|
||||
+ contrib/apollo/common.mak
|
||||
- contrib/apollo/makefile.bc
|
||||
* contrib/apollo/make_b32.bat
|
||||
+ contrib/apollo/make_vc.bat
|
||||
- contrib/htmllib/makefile.vc
|
||||
* contrib/htmllib/make_b32.bat
|
||||
+ contrib/htmllib/common.mak
|
||||
- contrib/htmllib/Makefile.bc
|
||||
* contrib/htmllib/make_vc.bat
|
||||
* contrib/libct/make_b32.bat
|
||||
* contrib/libct/make_vc.bat
|
||||
- contrib/libgt/makefile.vc
|
||||
* contrib/libgt/make_b32.bat
|
||||
+ contrib/libgt/common.mak
|
||||
- contrib/libgt/makefile.bc
|
||||
* contrib/libgt/make_vc.bat
|
||||
* contrib/libnf/make_b32.bat
|
||||
- contrib/libnf/makefile.vc
|
||||
* contrib/libnf/make_vc.bat
|
||||
+ contrib/libnf/common.mak
|
||||
- contrib/libnf/makefile.bc
|
||||
* contrib/gd/make_b32.bat
|
||||
+ contrib/gd/common.mak
|
||||
- contrib/gd/makefile.bc
|
||||
+ contrib/gd/make_vc.bat
|
||||
- contrib/tip/makefile.vc
|
||||
* contrib/tip/make_b32.bat
|
||||
+ contrib/tip/common.mak
|
||||
- contrib/tip/makefile.bc
|
||||
* contrib/tip/make_vc.bat
|
||||
+ contrib/adordd/common.mak
|
||||
- contrib/adordd/makefile.bc
|
||||
* contrib/adordd/make_b32.bat
|
||||
+ contrib/adordd/make_vc.bat
|
||||
- contrib/rdd_ads/makefile.vc
|
||||
* contrib/rdd_ads/make_b32.bat
|
||||
+ contrib/rdd_ads/common.mak
|
||||
- contrib/rdd_ads/makefile.bc
|
||||
* contrib/rdd_ads/make_vc.bat
|
||||
+ contrib/btree/common.mak
|
||||
- contrib/btree/makefile.bc
|
||||
* contrib/btree/make_b32.bat
|
||||
+ contrib/btree/make_vc.bat
|
||||
+ contrib/directx/common.mak
|
||||
- contrib/directx/makefile.bc
|
||||
- contrib/directx/makefile.vc
|
||||
* contrib/directx/make_b32.bat
|
||||
* contrib/directx/make_vc.bat
|
||||
+ contrib/win32/common.mak
|
||||
- contrib/win32/makefile.bc
|
||||
- contrib/win32/makefile.vc
|
||||
* contrib/win32/make_b32.bat
|
||||
* contrib/win32/make_vc.bat
|
||||
+ contrib/bmdbfcdx/common.mak
|
||||
- contrib/bmdbfcdx/makefile.bc
|
||||
* contrib/bmdbfcdx/make_b32.bat
|
||||
+ contrib/bmdbfcdx/make_vc.bat
|
||||
- contrib/samples/makefile.vc
|
||||
* contrib/samples/make_b32.bat
|
||||
+ contrib/samples/common.mak
|
||||
- contrib/samples/makefile.bc
|
||||
* contrib/samples/make_vc.bat
|
||||
* contrib/mysql/common.mak
|
||||
- contrib/mysql/makefile.bc
|
||||
* contrib/mysql/make_b32.bat
|
||||
+ contrib/mysql/make_vc.bat
|
||||
* contrib/pgsql/common.mak
|
||||
- contrib/pgsql/makefile.bc
|
||||
* contrib/pgsql/make_b32.bat
|
||||
+ contrib/pgsql/make_vc.bat
|
||||
* Changed most libs to use the generic non-GNU makefiles.
|
||||
+ Added support for MSVC for all above libs.
|
||||
; directx won't build under MSVC with an error.
|
||||
+ Added "implib" for rdd_ads. TOFIX: Doesn't work for MSVC.
|
||||
; TOFIX: I couldn't compile pgsql using latest 8.2.5.
|
||||
|
||||
* contrib/samples/gauge.c
|
||||
! Fixed MSVC warning.
|
||||
|
||||
+ odbc/test
|
||||
+ odbc/test/bld_b32.bat
|
||||
+ odbc/test/harbour.mdb
|
||||
+ odbc/test/odbcdemo.prg
|
||||
+ odbc/test/browodbc.prg
|
||||
+ odbc/test/odbccall.prg
|
||||
+ odbc/test/testodbc.prg
|
||||
- odbc/bld_b32.bat
|
||||
- odbc/harbour.mdb
|
||||
- odbc/odbcdemo.prg
|
||||
- odbc/browodbc.prg
|
||||
- odbc/odbccall.prg
|
||||
- odbc/testodbc.prg
|
||||
- odbc/bldodbc.bat
|
||||
+ odbc/make_b32.bat
|
||||
+ odbc/make_vc.bat
|
||||
- odbc/hbodbc.b32
|
||||
+ odbc/common.mak
|
||||
* Moved test functions to test fir.
|
||||
! Fixed bld_b32.bat
|
||||
! Renamed non-GNU BC make files to be in sync with the rest of contribs.
|
||||
; TOFIX: There are some warnings under MSVC.
|
||||
; TOFIX: .def -> .lib conversions fails under MSVC.
|
||||
|
||||
- contrib/ole
|
||||
- contrib/delphi
|
||||
- contrib/hb_struc
|
||||
- contrib/dot
|
||||
- contrib/tprepro
|
||||
- Removed obsolete, incomplete or non-working contribs.
|
||||
|
||||
2007-11-09 15:20 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
|
||||
* source/compiler/hbcomp.c
|
||||
! Changed error messaged to go to stderr on non-Unix
|
||||
|
||||
@@ -46,12 +46,12 @@ LIBEXT=.lib
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
BIN_DIR = bin\$(CC_DIRNAME)
|
||||
OBJ_DIR = obj\$(CC_DIRNAME)
|
||||
LIB_DIR = lib\$(CC_DIRNAME)
|
||||
BIN_DIR = bin\$(HB_CC_NAME)
|
||||
OBJ_DIR = obj\$(HB_CC_NAME)
|
||||
LIB_DIR = lib\$(HB_CC_NAME)
|
||||
|
||||
DLL_ROOTDIR = obj\dll
|
||||
DLL_OBJ_DIR = $(DLL_ROOTDIR)\$(CC_DIRNAME)
|
||||
DLL_OBJ_DIR = $(DLL_ROOTDIR)\$(HB_CC_NAME)
|
||||
|
||||
# Targets Destination Directories
|
||||
HB_DEST_DIRS = \
|
||||
@@ -217,7 +217,7 @@ HBDOC_EXE = $(BIN_DIR)\hbdoc$(EXEEXT)
|
||||
HBMAKE_EXE = $(BIN_DIR)\hbmake$(EXEEXT)
|
||||
HBVER_EXE = $(BIN_DIR)\hbverfix$(EXEEXT)
|
||||
|
||||
HARBOUR_DLL = $(BIN_DIR)\harbour-$(CC_DIRNAME)$(DLLEXT)
|
||||
HARBOUR_DLL = $(BIN_DIR)\harbour-$(HB_CC_NAME)$(DLLEXT)
|
||||
HBTESTDLL_EXE= $(BIN_DIR)\hbtest-dll$(EXEEXT)
|
||||
|
||||
#**********************************************************
|
||||
|
||||
17
harbour/contrib/adordd/common.mak
Normal file
17
harbour/contrib/adordd/common.mak
Normal file
@@ -0,0 +1,17 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = adordd
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\adordd.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,29 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\adordd.lib ..\..\lib\*.* > nul
|
||||
if exist ..\..\lib\b32\adordd.bak del ..\..\lib\b32\adordd.bak
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\adordd.lib del ..\..\lib\b32\adordd.lib
|
||||
if exist ..\..\lib\b32\adordd.bak del ..\..\lib\b32\adordd.bak
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
54
harbour/contrib/adordd/make_vc.bat
Normal file
54
harbour/contrib/adordd/make_vc.bat
Normal file
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,25 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of AdoRdd.lib - RDD for Microsoft ADO
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\adordd.lib : \
|
||||
$(OBJ_DIR)\adordd.obj
|
||||
|
||||
$(OBJ_DIR)\adordd.obj : adordd.c
|
||||
adordd.c : adordd.prg
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) $(C_USR) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $<
|
||||
tlib $(LIB_DIR)\adordd.lib -+$@,,
|
||||
|
||||
.prg.c:
|
||||
$(BIN_DIR)\harbour.exe $< -q0 -w2 -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@
|
||||
18
harbour/contrib/apollo/common.mak
Normal file
18
harbour/contrib/apollo/common.mak
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = apollo
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\apollo.obj \
|
||||
$(OBJ_DIR)\apollo1.obj \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,33 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\apollo.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\apollo.lib del ..\..\lib\b32\apollo.lib
|
||||
if exist ..\..\lib\b32\apollo.bak del ..\..\lib\b32\apollo.bak
|
||||
if exist ..\..\obj\b32\apollo.obj del ..\..\obj\b32\apollo.obj
|
||||
if exist ..\..\obj\b32\apollo1.c del ..\..\obj\b32\apollo1.c
|
||||
if exist ..\..\obj\b32\apollo1.bak del ..\..\obj\b32\apollo1.bak
|
||||
if exist ..\..\obj\b32\apollo1.obj del ..\..\obj\b32\apollo1.obj
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
54
harbour/contrib/apollo/make_vc.bat
Normal file
54
harbour/contrib/apollo/make_vc.bat
Normal file
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,28 +0,0 @@
|
||||
#
|
||||
# $Id$#
|
||||
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of apollo.lib - VistaSoftware's Apollo database driver
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\apollo.lib : \
|
||||
$(OBJ_DIR)\apollo.obj \
|
||||
$(OBJ_DIR)\apollo1.obj
|
||||
|
||||
$(OBJ_DIR)\apollo1.c : apollo1.prg
|
||||
$(OBJ_DIR)\apollo1.obj : $(OBJ_DIR)\apollo1.c
|
||||
$(OBJ_DIR)\apollo.obj : apollo.c
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -o$@ $<
|
||||
tlib $(LIB_DIR)\apollo.lib -+$@,,
|
||||
|
||||
.prg.c:
|
||||
$(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@
|
||||
|
||||
18
harbour/contrib/bmdbfcdx/common.mak
Normal file
18
harbour/contrib/bmdbfcdx/common.mak
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = bmdbfcdx
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\bmdbfcdx1.obj \
|
||||
$(OBJ_DIR)\bmsixcdx1.obj \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,33 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\bmdbfcdx.lib ..\..\lib\*.* > nul
|
||||
if exist ..\..\lib\b32\bmdbfcdx.bak del ..\..\lib\b32\bmdbfcdx.bak
|
||||
copy ..\..\lib\b32\bmsixcdx.lib ..\..\lib\*.* > nul
|
||||
if exist ..\..\lib\b32\bmsixcdx.bak del ..\..\lib\b32\bmsixcdx.bak
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\bmdbfcdx.lib del ..\..\lib\b32\bmdbfcdx.lib
|
||||
if exist ..\..\lib\b32\bmdbfcdx.bak del ..\..\lib\b32\bmdbfcdx.bak
|
||||
if exist ..\..\lib\b32\bmsixcdx.lib del ..\..\lib\b32\bmsixcdx.lib
|
||||
if exist ..\..\lib\b32\bmsixcdx.bak del ..\..\lib\b32\bmsixcdx.bak
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
54
harbour/contrib/bmdbfcdx/make_vc.bat
Normal file
54
harbour/contrib/bmdbfcdx/make_vc.bat
Normal file
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,26 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of bmdbfcdx.lib
|
||||
# Clipper 5.3 DBFCDX compatible on SET OPTIMiZE ON
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\bmdbfcdx.lib : \
|
||||
$(OBJ_DIR)\bmdbfcdx1.obj \
|
||||
$(OBJ_DIR)\bmsixcdx1.obj
|
||||
|
||||
$(OBJ_DIR)\bmdbfcdx1.obj : bmdbfcdx1.c
|
||||
$(OBJ_DIR)\bmsixcdx1.obj : bmsixcdx1.c
|
||||
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) $(C_USR) -c -O2 -DWIN32 -I$(INCLUDE_DIR) -o$@ $<
|
||||
tlib $(LIB_DIR)\bmdbfcdx.lib -+$@,,
|
||||
|
||||
18
harbour/contrib/btree/common.mak
Normal file
18
harbour/contrib/btree/common.mak
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = hb_btree
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\hb_btree.obj \
|
||||
$(OBJ_DIR)\tbtree.obj \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,32 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\hb_btree.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\hb_btree.lib del ..\..\lib\b32\hb_btree.lib
|
||||
if exist ..\..\lib\b32\hb_btree.bak del ..\..\lib\b32\hb_btree.bak
|
||||
if exist ..\..\obj\b32\hb_btree.obj del ..\..\obj\b32\hb_btree.obj
|
||||
if exist ..\..\obj\b32\tbtree.obj del ..\..\obj\b32\tbtree.obj
|
||||
if exist ..\..\obj\b32\tbtree.c del ..\..\obj\b32\tbtree.c
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
54
harbour/contrib/btree/make_vc.bat
Normal file
54
harbour/contrib/btree/make_vc.bat
Normal file
@@ -0,0 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,28 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of hb_btree.lib
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\hb_btree.lib : \
|
||||
$(OBJ_DIR)\hb_btree.obj \
|
||||
$(OBJ_DIR)\tbtree.obj
|
||||
|
||||
$(OBJ_DIR)\tbtree.c : tbtree.prg
|
||||
$(OBJ_DIR)\tbtree.obj : $(OBJ_DIR)\tbtree.c
|
||||
$(OBJ_DIR)\hb_btree.obj : hb_btree.c
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -o$@ $<
|
||||
tlib $(LIB_DIR)\hb_btree.lib -+$@,,
|
||||
|
||||
.prg.c:
|
||||
$(BIN_DIR)\harbour.exe $< -q0 -w2 -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
rem Self contained Harbour DLL, original idea and research Antonio Linares
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
@ECHO OFF
|
||||
CLS
|
||||
|
||||
if A%1 == A GOTO :SINTAX
|
||||
if NOT EXIST %1.prg GOTO :NOEXIST
|
||||
|
||||
ECHO Compiling...
|
||||
|
||||
set hdir=c:\hb-dev\harbour
|
||||
set bcdir=c:\borland\bcc55\bin
|
||||
|
||||
%bcdir%\bcc32 -c -D__EXPORT__ -I%hdir%\include -L%bcdir%\..\lib %hdir%\source\vm\maindll.c
|
||||
|
||||
rem Files to integrate harbour DLL to Delphi
|
||||
%bcdir%\bcc32 -c -D__EXPORT__ -I%hdir%\include -L%bcdir%\..\lib macrcall.c
|
||||
%hdir%\bin\harbour -n -w errorsys
|
||||
%bcdir%\bcc32 -c -D__EXPORT__ -I%hdir%\include errorsys.c
|
||||
|
||||
%hdir%\bin\harbour %1 /n /i%hdir%\include /w /p %2 %3 > clip.log
|
||||
@type clip.log
|
||||
IF ERRORLEVEL 1 PAUSE
|
||||
IF ERRORLEVEL 1 GOTO EXIT
|
||||
|
||||
echo -O2 -I%hdir%\include %1.c > b32.bc
|
||||
%bcdir%\bcc32 -M -c @b32.bc
|
||||
:ENDCOMPILE
|
||||
|
||||
IF EXIST %1.rc %bcdir%\brc32 -r %1
|
||||
|
||||
echo c0d32.obj + > b32.bc
|
||||
echo %1.obj+errorsys.obj+maindll.obj+macrcall.obj, + >> b32.bc
|
||||
echo %1.dll, + >> b32.bc
|
||||
echo %1.map, + >> b32.bc
|
||||
rem echo ..\lib\FiveH.lib ..\lib\FiveHC.lib + >> b32.bc
|
||||
echo %hdir%\lib\rtl.lib + >> b32.bc
|
||||
echo %hdir%\lib\vm.lib + >> b32.bc
|
||||
echo %hdir%\lib\gtwin.lib + >> b32.bc
|
||||
echo %hdir%\lib\lang.lib + >> b32.bc
|
||||
echo %hdir%\lib\macro.lib + >> b32.bc
|
||||
echo %hdir%\lib\rdd.lib + >> b32.bc
|
||||
echo %hdir%\lib\dbfntx.lib + >> b32.bc
|
||||
echo %hdir%\lib\dbfcdx.lib + >> b32.bc
|
||||
echo %hdir%\lib\debug.lib + >> b32.bc
|
||||
echo %hdir%\lib\common.lib + >> b32.bc
|
||||
echo %hdir%\lib\pp.lib + >> b32.bc
|
||||
|
||||
rem Uncomment these two lines to use Advantage RDD
|
||||
rem echo %hdir%\lib\rddads.lib + >> b32.bc
|
||||
rem echo ..\lib\Ace32.lib + >> b32.bc
|
||||
|
||||
echo %bcdir%\lib\import32.lib + >> b32.bc
|
||||
echo %bcdir%\lib\cw32.lib + >> b32.bc
|
||||
echo %bcdir%\lib\psdk\odbc32.lib, >> b32.bc
|
||||
IF EXIST %1.res echo %1.res >> b32.bc
|
||||
%bcdir%\ilink32 -Tpd -aa -L%bcdir%\..\lib -L%bcdir%\..\lib\PSDK @b32.bc
|
||||
|
||||
rem delete temporary files
|
||||
@del %1.c
|
||||
@del %1.il?
|
||||
|
||||
IF ERRORLEVEL 1 GOTO LINKERROR
|
||||
ECHO * self contained DLL successfully built
|
||||
GOTO EXIT
|
||||
ECHO
|
||||
|
||||
:LINKERROR
|
||||
rem if exist meminfo.txt notepad meminfo.txt
|
||||
rem PAUSE * Linking errors *
|
||||
GOTO EXIT
|
||||
|
||||
:SINTAX
|
||||
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi½n PRG
|
||||
ECHO {-- Don't specify .PRG extension
|
||||
GOTO EXIT
|
||||
|
||||
:NOEXIST
|
||||
ECHO The specified PRG %1 does not exist
|
||||
|
||||
:EXIT
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{*
|
||||
* $Id$
|
||||
*}
|
||||
|
||||
program EasyPath;
|
||||
|
||||
uses
|
||||
Forms,
|
||||
Main in 'Main.pas' {Main_FRM};
|
||||
|
||||
{$R *.RES}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TMain_FRM, Main_FRM);
|
||||
Application.Run;
|
||||
end.
|
||||
@@ -1,206 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* The default error handler
|
||||
*
|
||||
* Copyright 1999 Antonio Linares <alinares@fivetech.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.ch"
|
||||
#include "error.ch"
|
||||
|
||||
PROCEDURE ErrorSys
|
||||
|
||||
ErrorBlock( { | oError | DefError( oError ) } )
|
||||
|
||||
RETURN
|
||||
|
||||
STATIC FUNCTION DefError( oError )
|
||||
LOCAL cMessage
|
||||
LOCAL cDOSError
|
||||
|
||||
LOCAL aOptions
|
||||
LOCAL nChoice
|
||||
|
||||
LOCAL n
|
||||
|
||||
// By default, division by zero results in zero
|
||||
IF oError:genCode == EG_ZERODIV
|
||||
RETURN 0
|
||||
ENDIF
|
||||
|
||||
// Set NetErr() of there was a database open error
|
||||
IF oError:genCode == EG_OPEN .AND. ;
|
||||
oError:osCode == 32 .AND. ;
|
||||
oError:canDefault
|
||||
NetErr( .T. )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
// Set NetErr() if there was a lock error on dbAppend()
|
||||
IF oError:genCode == EG_APPENDLOCK .AND. ;
|
||||
oError:canDefault
|
||||
NetErr( .T. )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
cMessage := ErrorMessage( oError )+Chr(13)
|
||||
IF ! Empty( oError:osCode )
|
||||
cDOSError := "(DOS Error " + LTrim( Str( oError:osCode ) ) + ")"
|
||||
ENDIF
|
||||
|
||||
/* RETRY OPTIONS NOT AVAILABLE RIGHT NOW
|
||||
COMMENTED OUT ONLY FOR DELPHI INTEGRATION
|
||||
|
||||
// Build buttons
|
||||
|
||||
aOptions := {}
|
||||
|
||||
// AAdd( aOptions, "Break" )
|
||||
AAdd( aOptions, "Quit" )
|
||||
|
||||
IF oError:canRetry
|
||||
AAdd( aOptions, "Retry" )
|
||||
ENDIF
|
||||
|
||||
IF oError:canDefault
|
||||
AAdd( aOptions, "Default" )
|
||||
ENDIF
|
||||
|
||||
// Show alert box
|
||||
|
||||
nChoice := 0
|
||||
WHILE nChoice == 0
|
||||
|
||||
IF Empty( oError:osCode )
|
||||
|
||||
nChoice := Alert( cMessage, aOptions )
|
||||
ELSE
|
||||
nChoice := Alert( cMessage + ";" + cDOSError, aOptions)
|
||||
ENDIF
|
||||
|
||||
ENDDO
|
||||
|
||||
IF ! Empty( nChoice )
|
||||
DO CASE
|
||||
CASE aOptions[ nChoice ] == "Break"
|
||||
Break( oError )
|
||||
CASE aOptions[ nChoice ] == "Retry"
|
||||
RETURN .T.
|
||||
CASE aOptions[ nChoice ] == "Default"
|
||||
RETURN .F.
|
||||
ENDCASE
|
||||
ENDIF
|
||||
|
||||
*/
|
||||
|
||||
// "Quit" selected
|
||||
|
||||
IF ! Empty( oError:osCode )
|
||||
cMessage += " " + cDOSError+Chr(13)
|
||||
ENDIF
|
||||
|
||||
n := 2
|
||||
WHILE ! Empty( ProcName( n ) )
|
||||
/* CHANGED */
|
||||
cMessage += "Called from " + ProcName( n ) + ;
|
||||
"(" + AllTrim( Str( ProcLine( n ) ) ) + ")"+Chr(13)
|
||||
|
||||
// QUESTION: from a DLL point of view, there is not main procedure,
|
||||
// instead of that, something that is not a valid string is
|
||||
// given, causing this errorsys routine to be re-entrant.
|
||||
// This next line is a temporal workaround to this problem,
|
||||
// and a specific code to this Harbour to Delphi integration.
|
||||
If Upper(ProcName(n)) = 'MACROCALL'
|
||||
Exit
|
||||
EndIf
|
||||
n++
|
||||
ENDDO
|
||||
|
||||
MSGBOX( cMessage ) // Windows MessageBox
|
||||
|
||||
D('QUIT') // NOTE: A QUIT in a DLL is something not very smart, better to
|
||||
// QUIT // let Delphi to end properly.
|
||||
|
||||
RETURN .F.
|
||||
|
||||
// [vszakats]
|
||||
|
||||
STATIC FUNCTION ErrorMessage( oError )
|
||||
LOCAL cMessage
|
||||
|
||||
// start error message
|
||||
cMessage := iif( oError:severity > ES_WARNING, "Error", "Warning" ) + " "
|
||||
|
||||
// add subsystem name if available
|
||||
IF ISCHARACTER( oError:subsystem )
|
||||
cMessage += oError:subsystem()
|
||||
ELSE
|
||||
cMessage += "???"
|
||||
ENDIF
|
||||
|
||||
// add subsystem's error code if available
|
||||
IF ISNUMBER( oError:subCode )
|
||||
cMessage += "/" + LTrim( Str( oError:subCode ) )
|
||||
ELSE
|
||||
cMessage += "/???"
|
||||
ENDIF
|
||||
|
||||
// add error description if available
|
||||
IF ISCHARACTER( oError:description )
|
||||
cMessage += " " + oError:description
|
||||
ENDIF
|
||||
|
||||
// add either filename or operation
|
||||
DO CASE
|
||||
CASE !Empty( oError:filename )
|
||||
cMessage += ": " + oError:filename
|
||||
CASE !Empty( oError:operation )
|
||||
cMessage += ": " + oError:operation
|
||||
ENDCASE
|
||||
|
||||
RETURN cMessage
|
||||
@@ -1,128 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
*
|
||||
* Macro processing requested from Delphi and setting callbacks
|
||||
* to interact with Delphi
|
||||
*
|
||||
* Copyright 2002 Jorge A. Giraldo S. <jgiraldo@col2.telecom.com.co>
|
||||
* <jorgeagiraldo@hotmail.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#define HB_OS_WIN_32_USED
|
||||
|
||||
#include "hbvm.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbstack.h"
|
||||
|
||||
#if defined(HB_OS_WIN_32)
|
||||
|
||||
// Function pointer type
|
||||
typedef long (__stdcall *CallBackFuncType)(const char* message);
|
||||
|
||||
// Setter function
|
||||
HB_EXPORT __stdcall void SetCallBack(CallBackFuncType fun);
|
||||
|
||||
char * HB_EXPORT __stdcall MacroCall( char * sParam )
|
||||
{
|
||||
char *szFunc = "MacroCall";
|
||||
|
||||
PHB_DYNS pDynSym = hb_dynsymFindName( szFunc ); /* The PRG function to use */
|
||||
|
||||
if( pDynSym )
|
||||
{
|
||||
|
||||
hb_vmPushSymbol( pDynSym->pSymbol );
|
||||
hb_vmPushNil();
|
||||
hb_vmPushString( sParam, strlen( sParam ) );
|
||||
|
||||
hb_vmFunction( 1 ); /* as we receive one parameter */
|
||||
|
||||
return hb_stack.Return.item.asString.value;
|
||||
|
||||
}
|
||||
else
|
||||
return "error ...";
|
||||
|
||||
}
|
||||
|
||||
static CallBackFuncType cbfun = 0;
|
||||
void __stdcall SetCallBack(CallBackFuncType fun)
|
||||
{
|
||||
CallBackFuncType oldfun = cbfun;
|
||||
cbfun = fun;
|
||||
return oldfun;
|
||||
}
|
||||
|
||||
HB_FUNC( CALLBACK )
|
||||
{
|
||||
long result = 0;
|
||||
|
||||
if (cbfun != 0)
|
||||
{
|
||||
|
||||
result = cbfun( hb_parc( 1 ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox( NULL, //HWINDOW of the window that owns the message box
|
||||
"CallBack failed under MacrCall.c" , //Text
|
||||
"Warning" ,//Title
|
||||
MB_OK | MB_ICONINFORMATION );//Bit mask flags
|
||||
}
|
||||
|
||||
hb_retl( result ); // QUESTION: If you can make this to return a char pointer
|
||||
// being interpreted correctly by Delphi,
|
||||
// please inform me, I'm all ears, thank you.
|
||||
}
|
||||
|
||||
HB_FUNC( MSGBOX )
|
||||
{
|
||||
MessageBox( 0, hb_parc( 1 ), "Warning", 0 );
|
||||
}
|
||||
|
||||
#endif
|
||||
Binary file not shown.
@@ -1,221 +0,0 @@
|
||||
{*
|
||||
* $Id$
|
||||
*}
|
||||
|
||||
{*
|
||||
* Harbour Project source code:
|
||||
*
|
||||
* Copyright 2002 Jorge A. Giraldo S. <jgiraldo@col2.telecom.com.co>
|
||||
* <jorgeagiraldo@hotmail.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*}
|
||||
|
||||
unit Main;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||||
StdCtrls, Buttons, ComCtrls;
|
||||
|
||||
type
|
||||
TMain_FRM = class(TForm)
|
||||
BitBtn1: TBitBtn;
|
||||
ProgressBar1: TProgressBar;
|
||||
procedure BitBtn1Click(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
|
||||
var
|
||||
Main_FRM: TMain_FRM;
|
||||
oApplication : TApplication;
|
||||
|
||||
type
|
||||
CallBackFuncType = function (mesg: PChar): integer; stdcall;
|
||||
|
||||
procedure SetCallBack(cbfunc: CallBackFuncType); stdcall;
|
||||
external 'MyProg' name 'SetCallBack';
|
||||
|
||||
function MacroCall( pParam : pchar ) : pchar; stdcall;
|
||||
external 'MyProg' name 'MacroCall';
|
||||
|
||||
function h( sParam : String ) : variant;
|
||||
function ExtParam( sString : String; iPos : Integer; sSepar : String ) : String;
|
||||
function AllTrim(sString: string): string;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.DFM}
|
||||
|
||||
procedure TMain_FRM.BitBtn1Click(Sender: TObject);
|
||||
begin
|
||||
ProgressBar1.Position := 0;
|
||||
ShowMessage( h(' MakeIndex("..\..\..\TESTS\TEST", "ZIP") ') );
|
||||
|
||||
end;
|
||||
|
||||
function h( sParam : String ) : variant;
|
||||
Var
|
||||
sRtnVal,
|
||||
sType,
|
||||
sResult : String;
|
||||
begin
|
||||
sRtnVal := MacroCall( PChar(sParam) );
|
||||
sType := Copy(sRtnVal,1,1);
|
||||
sResult := Copy(sRtnVal,2,Length(sRtnVal)-1);
|
||||
|
||||
// Changes string result to the expected type
|
||||
if sType = 'C' then // is character
|
||||
result := sResult
|
||||
else
|
||||
if sType = 'I' then // integer
|
||||
result := StrToInt(sResult)
|
||||
else
|
||||
if sType = 'F' then // float
|
||||
result := StrToFloat(sResult)
|
||||
else
|
||||
if sType = 'D' then // date
|
||||
result := StrToDate(sResult)
|
||||
else
|
||||
if sType = 'L' then // boolean
|
||||
if sResult = 'True' then
|
||||
result := true
|
||||
else
|
||||
result := false
|
||||
else
|
||||
result := unassigned;
|
||||
|
||||
end;
|
||||
|
||||
function ReceiveCallBack(mesg: PChar): integer; stdcall;
|
||||
var
|
||||
s, sCommand : String;
|
||||
begin
|
||||
s := String(mesg);
|
||||
sCommand := ExtParam(s,1,',');
|
||||
|
||||
if sCommand = 'QUIT' then
|
||||
begin
|
||||
ShowMessage(ExtParam(s,2,','));
|
||||
oApplication.Terminate;
|
||||
Halt(0);
|
||||
end
|
||||
else
|
||||
if sCommand = 'ProgressBar1' then
|
||||
Main_FRM.ProgressBar1.Position := StrToInt(ExtParam(s, 2, ','));
|
||||
|
||||
oApplication.ProcessMessages;
|
||||
|
||||
// The answer our Harbour program expects.
|
||||
// Callbackresult is a Harbour Public variable
|
||||
// that is requested when expecting some answer.
|
||||
// h(' CallBackResult := "NOANSWER" ');
|
||||
|
||||
result := 0;
|
||||
end;
|
||||
|
||||
function ExtParam( sString : String; iPos : Integer; sSepar : String ) : String;
|
||||
var
|
||||
sStrT, sPara : String;
|
||||
iX, iPosiT : Integer;
|
||||
|
||||
begin
|
||||
sStrT := AllTrim(sString)+sSepar;
|
||||
iX := 0;
|
||||
sPara := ''; // tiene que haber al menos un parametro
|
||||
While true do
|
||||
begin
|
||||
Inc(iX);
|
||||
iPosiT := Pos(sSepar, sStrT);
|
||||
if iPosiT = 0 then
|
||||
Break;
|
||||
sPara := Copy(sStrT, 1, iPosiT-1);
|
||||
if iX = iPos then
|
||||
break;
|
||||
sStrT := Copy(sStrT, iPosiT+1, Length(sStrT)-iPosiT+1);
|
||||
sPara := '';
|
||||
end;
|
||||
result := AllTrim(sPara);
|
||||
end;
|
||||
|
||||
function AllTrim(sString: string): string;
|
||||
var
|
||||
n,
|
||||
nBeginPos,
|
||||
nEndPos : Integer;
|
||||
begin
|
||||
nBeginPos := 0;
|
||||
for n := 1 to Length(sString) do
|
||||
if sString[n] <> ' ' then
|
||||
begin
|
||||
nBeginPos := n;
|
||||
break;
|
||||
end;
|
||||
|
||||
|
||||
nEndPos := Length(sString);
|
||||
If nBeginPos <> 0 then
|
||||
begin
|
||||
for n := Length(sString) downto 1 do
|
||||
if sString[n] <> ' ' then
|
||||
begin
|
||||
nEndPos := n;
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
|
||||
Result := Copy(sString, nBeginPos, nEndPos-nBeginPos+1);
|
||||
|
||||
end;
|
||||
|
||||
Initialization
|
||||
begin
|
||||
SetCallBack(ReceiveCallBack);
|
||||
oApplication := Application;
|
||||
end;
|
||||
|
||||
end.
|
||||
@@ -1,116 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
*
|
||||
* Macro processing requested from Delphi and setting callbacks
|
||||
* to interact with Delphi
|
||||
*
|
||||
* Copyright 2002 Jorge A. Giraldo S. <jgiraldo@col2.telecom.com.co>
|
||||
* <jorgeagiraldo@hotmail.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#Include 'HbClass.ch'
|
||||
|
||||
MEMVAR CallBackResult
|
||||
|
||||
FUNCTION MakeIndex( cFileName, cField )
|
||||
PUBLIC CallBackResult := ''
|
||||
|
||||
?
|
||||
? 'Please click the Delphi App to see the status'
|
||||
?
|
||||
Use (cFileName) Alias FIL
|
||||
Index on &(cField) to (cFileName) EVAL IndexStatus() EVERY LastRec()/10
|
||||
Close FIL
|
||||
RETURN 'The file '+cFileName+' has been indexed'
|
||||
|
||||
FUNCTION IndexStatus
|
||||
LOCAL cCompleted := LTrim( Str(Int((RecNo()/LastRec()) * 100)) ), nSeconds
|
||||
D('ProgressBar1'+','+cCompleted)
|
||||
|
||||
nSeconds := Seconds() // Let's make this thing to go slowly
|
||||
WHILE nSeconds+1 >= Seconds()
|
||||
END
|
||||
|
||||
RETURN .T.
|
||||
|
||||
//---------------------------------------//
|
||||
// Library functions //
|
||||
//---------------------------------------//
|
||||
|
||||
FUNCTION D( cString )
|
||||
CallBack( cString )
|
||||
RETURN CallBackResult
|
||||
|
||||
FUNCTION MacroCall( cString )
|
||||
LOCAL xMacroResult, cRtnType, cRtnVal
|
||||
|
||||
cRtnType := ValType( xMacroResult := &(cString) )
|
||||
|
||||
// Well, if memory is like a string, why not to use strings
|
||||
// for any type of vars?... ok, ok, I know. :-)
|
||||
|
||||
Do Case
|
||||
Case cRtnType = 'C'
|
||||
cRtnVal := 'C'+xMacroResult
|
||||
Case cRtnType = 'N'
|
||||
If Int(xMacroResult) = xMacroResult
|
||||
cRtnVal := 'I'+AllTrim(Str(xMacroResult,,0))
|
||||
Else
|
||||
cRtnVal := 'F'+AllTrim(Str(xMacroResult))
|
||||
EndIf
|
||||
Case cRtnType = 'L'
|
||||
cRtnVal := 'L'+If(xMacroResult,'True','False')
|
||||
Case cRtnType = 'D'
|
||||
cRtnVal := 'D'+DtoC(xMacroResult)
|
||||
OtherWise
|
||||
cRtnVal := NIL // NOTE: If Delphi doesn't expect a result, returning any result
|
||||
// will corrupt Delphi's memory. So this is set to NIL.
|
||||
EndCase
|
||||
|
||||
RETURN cRtnVal
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
rem Makes our PRG to be a DLL, from an Antonio's idea and research
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
Call bld_sdll myprog
|
||||
17
harbour/contrib/directx/common.mak
Normal file
17
harbour/contrib/directx/common.mak
Normal file
@@ -0,0 +1,17 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = hbwin32ddrw
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\w32_ddrw.obj \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,30 +3,58 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need MS SDK installed and this envvar to be
|
||||
rem set, to build this library:
|
||||
rem set INCLUDE="C:\Program Files\Microsoft SDKs\Windows\v6.0\include"
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\hbwin32ddrw.lib ..\..\lib\*.* > nul
|
||||
if exist ..\..\lib\b32\hbwin32ddrw.bak del ..\..\lib\b32\hbwin32ddrw.bak
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\hbwin32ddrw.lib del ..\..\lib\b32\hbwin32ddrw.lib
|
||||
if exist ..\..\lib\b32\hbwin32ddrw.bak del ..\..\lib\b32\hbwin32ddrw.bak
|
||||
if exist ..\..\obj\b32\w32_ddrw.obj del ..\..\obj\b32\w32_ddrw.obj
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
@@ -3,19 +3,58 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need MS SDK installed and this envvar to be
|
||||
rem set, to build this library:
|
||||
rem set INCLUDE="C:\Program Files\Microsoft SDKs\Windows\v6.0\include"
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
nmake /f makefile.vc %1 %2 %3 > make_vc.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\vc\hbwin32ddrw.lib ..\..\lib\*.* >nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
:CLEAN
|
||||
|
||||
notepad make_vc.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,98 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts
|
||||
# with external commands named echo.
|
||||
#
|
||||
|
||||
CC = bcc32
|
||||
AS = tasm32
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
# This is needed, otherwise the libs may overflow when
|
||||
# debug info is requested with -v -y
|
||||
ARFLAGS = /P32
|
||||
|
||||
!if !$d(BCC_NOOPTIM)
|
||||
CFLAGS = -O2 $(CFLAGS)
|
||||
!endif
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -v $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\hbwin32ddrw.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\w32_ddrw.obj \
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB) \
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
|
||||
#
|
||||
# TOOLS.LIB dependencies
|
||||
#
|
||||
|
||||
$(OBJ_DIR)\w32_ddrw.obj : $(TOOLS_DIR)\w32_ddrw.cpp
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
@@ -1,136 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Microsoft Visual C (32 bits)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# Notes about this makefile:
|
||||
#
|
||||
# 1. To add new files to a dependancy list, add an obj name to one of the
|
||||
# OBJ lists for the appropriate library.
|
||||
# NOTE: put .prg related obj's last in the lib list.
|
||||
#
|
||||
# 2. This is a recursive script. If you change the name of this file,
|
||||
# be sure to change MK_FILE (a few lines down) to the new name as well.
|
||||
#
|
||||
# 3. Recurrsion rules are quite simple:
|
||||
# If you specifiy /a on the command line, files in the obj\vc dir
|
||||
# will be deleted, and when nmake recurses, it's without the /a flag
|
||||
#
|
||||
# If a .prg.obj rule is fired, nmake will execute this script with
|
||||
# a specific target as a parameter immediatley after compiling a given
|
||||
# set of prg files.
|
||||
# ie: Harbour $<
|
||||
# nmake /fmakefile.vc obj\vc\rtl.lib2
|
||||
# which will simply get make to re-evaluate the dependancy list for the
|
||||
# lib, and as a result, it will execute the C compiler using the .c.obj
|
||||
# rule below to create the obj's for the prg's that were created just
|
||||
# prior to the recurrsive call. Once the obj's are created, the
|
||||
# recurrsion is complete.
|
||||
# See additional notes under RTL.LIB below.
|
||||
#
|
||||
|
||||
MK_FILE = makefile.vc
|
||||
MK_FLAGS = $(MAKEFLAGS: =)
|
||||
|
||||
OBJ_DIR = ..\..\obj\vc
|
||||
LIB_DIR = ..\..\lib\vc
|
||||
BIN_DIR = ..\..\bin
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
AS = masm
|
||||
CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\hbwin32ddrw.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
.SUFFIXES: .prg .lib .c .cpp .obj .asm
|
||||
|
||||
# override builtin
|
||||
|
||||
.c.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
LIBLIST = \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj::
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
|
||||
$(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\w32_ddrw.obj \
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
CLEAN:
|
||||
-@if exist $(OBJ_DIR)\w32_ddrw.* del $(OBJ_DIR)\w32_ddrw.*
|
||||
-@if exist $(TOOLS_LIB) del $(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
lib /out:$@ $**
|
||||
|
||||
# dummy targets used for prg to c creation
|
||||
|
||||
$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS)
|
||||
@@ -1,36 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
ifeq ($(HB_MAIN),)
|
||||
HB_MAIN = std
|
||||
endif
|
||||
|
||||
ROOT = ../../
|
||||
|
||||
PRG_SOURCES=\
|
||||
pp.prg \
|
||||
|
||||
PRG_MAIN=pp.prg
|
||||
|
||||
PRG_HEADERS = \
|
||||
rp_dot.src \
|
||||
rp_run.src \
|
||||
|
||||
LIBS=\
|
||||
debug \
|
||||
vm \
|
||||
rtl \
|
||||
lang \
|
||||
rdd \
|
||||
macro \
|
||||
pp \
|
||||
common \
|
||||
|
||||
include $(TOP)$(ROOT)config/header.cf
|
||||
INSTALL_RULE_HEADERS := $(INSTALL_RULE)
|
||||
|
||||
include $(TOP)$(ROOT)config/bin.cf
|
||||
|
||||
install::
|
||||
$(INSTALL_RULE_HEADERS)
|
||||
@@ -1,29 +0,0 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
..\..\bin\harbour /l /gc0 /n pp /i..\..\include\
|
||||
|
||||
echo -O2 -I..\..\include -L..\..\lib > build.tmp
|
||||
echo -edot.exe >> build.tmp
|
||||
echo pp.c >> build.tmp
|
||||
echo debug.lib >> build.tmp
|
||||
echo vm.lib >> build.tmp
|
||||
echo rtl.lib >> build.tmp
|
||||
echo gtwin.lib >> build.tmp
|
||||
echo lang.lib >> build.tmp
|
||||
echo rdd.lib >> build.tmp
|
||||
echo macro.lib >> build.tmp
|
||||
echo pp.lib >> build.tmp
|
||||
echo dbfntx.lib >> build.tmp
|
||||
echo dbfcdx.lib >> build.tmp
|
||||
echo dbffpt.lib >> build.tmp
|
||||
echo hbsix.lib >> build.tmp
|
||||
echo common.lib >> build.tmp
|
||||
echo codepage.lib >> build.tmp
|
||||
echo hbpcre.lib >> build.tmp
|
||||
echo hsx.lib >> build.tmp
|
||||
bcc32 @build.tmp
|
||||
del build.tmp
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,123 +0,0 @@
|
||||
Command line switches and syntax.
|
||||
|
||||
|
||||
PP filename[.ext] [-CCH] [-D<id>] [-D:E] [-D:M] [-D:P] [-H] [--help][-I<path>]
|
||||
[-P] [-R] [-STRICT] [-U[<ch-file>]]
|
||||
|
||||
-CCH = Generate a .cch file (compiled command header).
|
||||
-D<id> = #define <id>.
|
||||
-D:E = Show tracing information into the Expression Scanner.
|
||||
-D:M = Show tracing information into the Match Engine.
|
||||
-D:P = Show tracing information into the Output Generator.
|
||||
-H = Syntax and command line switches description.
|
||||
--help = Syntax and command line switches description.
|
||||
-I<path> = #include file search path(s) (';' seperated).
|
||||
-P = Generate .pp$ pre-processed output file.
|
||||
-R = Run filename as a script.
|
||||
-STRICT = Strict Clipper compatability (clone Clipper PreProcessor bugs).
|
||||
-U = Use command definitions set in <ch-file> (or none).
|
||||
|
||||
PP has 3 personalities which are tied tightly together.
|
||||
|
||||
1. What is supposed to be 100% Clipper compatible Pre-Processor
|
||||
(with some extensions).
|
||||
|
||||
Executing PP followed by a source file name and the -P switch, will
|
||||
create <filename.pp$> which is the equivalent of the Clipper
|
||||
<filename.ppo> file.
|
||||
|
||||
This syntax is:
|
||||
|
||||
PP filename[.ext] -P
|
||||
|
||||
In this mode these are the optional command line switches.
|
||||
|
||||
-CCH = Generate a .cch file (compiled command header).
|
||||
-D<id> = #define <id>.
|
||||
-D:E = Show tracing information into the Expression Scanner.
|
||||
-D:M = Show tracing information into the Match Engine.
|
||||
-D:P = Show tracing information into the Output Generator.
|
||||
-I<path> = #include file search path(s) (';' separated).
|
||||
-STRICT = Strict Clipper compatability (clone Clipper PreProcessor bugs).
|
||||
-U = Use command definitions set in <ch-file> (or none).
|
||||
|
||||
2. DOT prompt, which allows most of the Clipper syntax. Please
|
||||
report any syntax you expect to work, but is not supported.
|
||||
|
||||
It does support IF [ELSE] [ELSEIF] ENDIF in DOT environment.
|
||||
|
||||
Executing PP with no source filename will start the DOT prompt mode.
|
||||
|
||||
In this mode you can execute a single line at a time by typing the line
|
||||
and pressing the [Enter] key.
|
||||
|
||||
Additionally you may type:
|
||||
|
||||
DO filename.prg [Enter]
|
||||
|
||||
So that DOT will "run" the specified source file. This interpreter
|
||||
mode is subject to few limitations:
|
||||
|
||||
a. It does support LOCAL/STATIC/PRIVATE/PUBLIC, but:
|
||||
|
||||
- STATICs are actually implemented as publics.
|
||||
|
||||
- LOCALS have scoping of locals but are implemented as privates
|
||||
so you can't have a LOCAL and a PRIVATE with the same name.
|
||||
|
||||
b. Non-declared variables are auto-created on assignment in Harbour
|
||||
but NOT in Clipper (yet).
|
||||
|
||||
c. It does support definition and execution of prg-defined
|
||||
FUNCTIONs/PROCEDUREs.
|
||||
|
||||
d. It does support ALL control flow structures *except* BEGIN
|
||||
SEQUENCE [BREAK] [RECOVER] END SEQUENCE.
|
||||
|
||||
e. The executed module is compiled with -n option (for now).
|
||||
|
||||
This will create rp_dot.pp$ compilation trace file.
|
||||
|
||||
3. Finally, PP is a limited Clipper/Harbour/xBase Interpreter. Subject
|
||||
to those same few limitations it can execute most of Harbour syntax.
|
||||
Executing PP followed by a source file name and the -R switch will
|
||||
"RUN" that source (it will also create the rp_run.pp$ compilation
|
||||
trace file).
|
||||
|
||||
This syntax is:
|
||||
|
||||
PP filename[.ext] -R
|
||||
|
||||
In this mode these are the optional command line switches.
|
||||
|
||||
-CCH = Generate a .cch file (compiled command header).
|
||||
-D<id> = #define <id>.
|
||||
-D:E = Show tracing information into the Expression Scanner.
|
||||
-D:M = Show tracing information into the Match Engine.
|
||||
-D:P = Show tracing information into the Output Generator.
|
||||
-I<path> = #include file search path(s) (';' separated).
|
||||
-P = Generate .pp$ pre-processed output file.
|
||||
-STRICT = Strict Clipper compatability (clone Clipper PreProcessor bugs).
|
||||
-U = Use command definitions set in <ch-file> (or none).
|
||||
|
||||
a. It does support LOCAL/STATIC/PRIVATE/PUBLIC, but:
|
||||
|
||||
- STATICs are actually implemented as publics.
|
||||
|
||||
- LOCALS have scoping of locals but are implemented as privates
|
||||
so you can't have a LOCAL and a PRIVATE with the same name.
|
||||
|
||||
b. Non-declared variables are auto-created on assignment in Harbour
|
||||
but NOT in Clipper (yet).
|
||||
|
||||
c. It does support definition and execution of prg-defined
|
||||
FUNCTIONs/PROCEDUREs as well as parameter passing and return values.
|
||||
|
||||
d. It does support ALL control flow structures *except* BEGIN
|
||||
SEQUENCE [BREAK] [RECOVER] END SEQUENCE.
|
||||
|
||||
e. The compiled module is automatically using -n (No implicit startup
|
||||
procedure) if the script starts with a Procedure/Function definition.
|
||||
|
||||
f. Built-in OLE COM Client gateway is included when PP is compiled with
|
||||
Harbour and using -dWIN (harbour pp -dWIN -w ... )
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,63 +0,0 @@
|
||||
Procedure Main( sMsg )
|
||||
|
||||
LOCAL sText, sPPed, asPPed, oInterpreter := TInterpreter():New()
|
||||
|
||||
oInterpreter:AddLine( "/* Sample Script for embedded PP " )
|
||||
oInterpreter:AddLine( "/* Sample Script for embedded PP " )
|
||||
oInterpreter:AddLine( " have fun... */" )
|
||||
oInterpreter:AddLine( "" )
|
||||
oInterpreter:AddLine( "Procedure Test( cMacroVar, xValue )" )
|
||||
oInterpreter:AddLine( "" )
|
||||
oInterpreter:AddLine( " Local cVar := 'Hi There'" )
|
||||
oInterpreter:AddLine( "" )
|
||||
oInterpreter:AddLine( " &cMacroVar := xValue" )
|
||||
oInterpreter:AddLine( "" )
|
||||
oInterpreter:AddLine( " ? cVar, &cMacroVar, ;" )
|
||||
oInterpreter:AddLine( " xValue" )
|
||||
oInterpreter:AddLine( "" )
|
||||
oInterpreter:AddLine( " WHILE Inkey() == 0 // WAIT" )
|
||||
oInterpreter:AddLine( " ENDDO" )
|
||||
oInterpreter:AddLine( "" )
|
||||
oInterpreter:AddLine( "RETURN LastKey()" )
|
||||
|
||||
Alert( oInterpreter:Run( "Param1", "Param2" ) ) // Will automatically perform a ::Compile() first.
|
||||
|
||||
sText := "/* Sample Script for embedded PP " + Chr(10)
|
||||
sText += " have fun... */ " + Chr(10)
|
||||
sText += " " + Chr(10)
|
||||
sText += "Procedure Test( cMacroVar, xValue ) " + Chr(10)
|
||||
sText += " " + Chr(10)
|
||||
sText += " Local cVar := 'Hi There' " + Chr(10)
|
||||
sText += " " + Chr(10)
|
||||
sText += " &cMacroVar := xValue " + Chr(10)
|
||||
sText += " " + Chr(10)
|
||||
sText += " ? cVar, &cMacroVar, ; " + Chr(10)
|
||||
sText += " xValue " + Chr(10)
|
||||
sText += " " + Chr(10)
|
||||
sText += " WHILE Inkey() == 0 // WAIT " + Chr(10)
|
||||
sText += " ENDDO " + Chr(10)
|
||||
sText += " " + Chr(10)
|
||||
sText += "RETURN LastKey() "
|
||||
|
||||
Alert( PP_RunText( sText, .T., { "Private_1", 1000 } ) )
|
||||
|
||||
//OR ...
|
||||
|
||||
sPPed := PP_PreProText( sText )
|
||||
Alert( PP_RunText( sPPed, .F., { "Private_2", 2000 } ) )
|
||||
|
||||
//OR ...
|
||||
asPPed := {}
|
||||
PP_PreProText( sText, asPPed )
|
||||
Alert( PP_RunArray( asPPed, { "Private_3", 3000 } ) )
|
||||
|
||||
// Now let's have some real fun...
|
||||
IF sMsg == "Recursively running self"
|
||||
Alert( "Let's STOP this madness..." )
|
||||
RETURN
|
||||
ELSE
|
||||
//PP_Run( "prgscrpt.prg", { "Recursively running self" } )
|
||||
oInterpreter:RunFile( "prgscrpt.prg", { "Recursively running self" }, ".pp", .F. ) // Output PreProcessed extension .pp wirhout blanks.
|
||||
ENDIF
|
||||
|
||||
return
|
||||
@@ -1,27 +0,0 @@
|
||||
#command CLS ;
|
||||
=> Scroll( 2, 0, MaxRow() - 1, MaxCol() ) ;
|
||||
; SetPos( 2, 0 )
|
||||
|
||||
#COMMAND BROWSE => Browse( 1, 0, MaxRow() - 1, MaxCol() )
|
||||
#COMMAND EXIT => __QUIT()
|
||||
|
||||
#TRANSLATE _GET_( <var>, <varname>, [<pic>], [<valid>], [<when>] ) => __GET( MEMVARBLOCK(<varname>), <varname>, <pic>, <valid>, <when> )
|
||||
#ifndef __HARBOUR__
|
||||
#TRANSLATE __GET( <parlist,...>):Display() => __GET(<parlist>)
|
||||
#TRANSLATE aAdd( GetList, __GET(<parlist,...>) ) => __oGet := __GET(<parlist>) ; aAdd( GetList, __oGet ) ; __oGet:Display()
|
||||
#endif
|
||||
|
||||
#COMMAND IF <ifExp> => __SetIf( <ifExp> )
|
||||
#COMMAND ELSEIF <elseifExp> => __SetElseIf( <elseifExp> )
|
||||
#COMMAND ELSE => __SetElse()
|
||||
#COMMAND ENDIF [<*x*>] => __SetEnd()
|
||||
#COMMAND END [<*x*>] => __SetEnd()
|
||||
|
||||
#COMMAND DO CASE => __SetDoCase()
|
||||
#COMMAND CASE <caseExp> => __SetCase( <caseExp> )
|
||||
#COMMAND OTHERWISE => __SetOtherwise()
|
||||
#COMMAND ENDCASE [<*x*>] => __SetEndCase()
|
||||
|
||||
#COMMAND DO <file>.prg => PP_Run( #<file> + ".prg" )
|
||||
|
||||
#command CD <(dir)> => DirChange( <(dir)> )
|
||||
@@ -1,105 +0,0 @@
|
||||
/*
|
||||
* xBaseScript Project source code:
|
||||
* Pre-Processor / Dot prompt environment / Script Interpreter
|
||||
*
|
||||
* Copyright 2000-2001 Ron Pinkas <ronpinkas@profit-master.com>
|
||||
* www - http://www.xBaseScript.com
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
|
||||
* their web site at http://www.gnu.org/).
|
||||
*/
|
||||
|
||||
#ifdef __HARBOUR__
|
||||
#ifdef WIN
|
||||
#COMMAND Alert( <x> ) => MessageBox( 0, xToStr( <x> ), "xBaseScript for Windows", 0 )
|
||||
#endif
|
||||
#else
|
||||
//#define __CLIPPER__
|
||||
#endif
|
||||
|
||||
#TRANSLATE AS <type: ANYTYPE, ARRAY, CHARACTER, CODEBLOCK, DATE, LOGICAL, NUMERIC, OBJECT, STRING, USUAL> =>
|
||||
#TRANSLATE AS ARRAY OF <x> =>
|
||||
#TRANSLATE AS CLASS <!x!> =>
|
||||
#TRANSLATE AS CLASS <!x!> := => :=
|
||||
#COMMAND _HB_CLASS <*x*> =>
|
||||
#COMMAND _HB_MEMBER <*x*> =>
|
||||
|
||||
#XTRANSLATE QSelf() => PP_Qself()
|
||||
#XTRANSLATE AddMethod( <MethodName>, @<!FunName!>(), <n>, <l> ) => AddInLine( <MethodName>, {|Self,p1,p2,p3,p4,p5,p6,p7,p8,p9| PP_QSelf(Self), PP_ExecMethod( <"FunName">, p1,p2,p3,p4,p5,p6,p7,p8,p9 ) }, <n>, <l> )
|
||||
#TRANSLATE :: => Self:
|
||||
|
||||
#COMMAND MEMVAR <*x*> =>
|
||||
|
||||
//#COMMAND BROWSE => Browse( 1, 0, MaxRow() - 1, MaxCol() )
|
||||
|
||||
#TRANSLATE _GET_( <var>, <varname>, [<pic>], [<valid>], [<when>] ) => __GET( MEMVARBLOCK(<varname>), <varname>, <pic>, <valid>, <when> )
|
||||
#TRANSLATE __GET( <parlist,...>):Display() => __GET(<parlist>)
|
||||
|
||||
//#COMMAND EXTERNAL <!file1!> [, <!fileN!> ] => PP_ProcessFile( <file1> ) [; PP_ProcessFile( <fileN> ) ]
|
||||
#COMMAND EXTERNAL <!file1!> [, <fileN> ] =>
|
||||
|
||||
#COMMAND DECLARE <!class!> <declaraion> <*x*> =>
|
||||
|
||||
// Must precede rule for DO CASE.
|
||||
#COMMAND DO <!proc!> => <proc>()
|
||||
#COMMAND DO <!proc!> WITH <arg1> [, <argN>] => <proc>( <arg1>[, <argN>] )
|
||||
|
||||
#COMMAND IF <ifExp> => PP__IF <ifExp>
|
||||
#COMMAND ELSEIF <elseifExp> => PP__ELSEIF <elseifExp>
|
||||
#COMMAND ELSE => PP__ELSE
|
||||
#COMMAND ENDIF [<*x*>] => PP__ENDIF
|
||||
#COMMAND END [<*x*>] => PP__END
|
||||
|
||||
#COMMAND DO CASE => PP__DOCASE
|
||||
#COMMAND CASE <caseExp> => PP__CASE <caseExp>
|
||||
#COMMAND OTHERWISE => PP__OTHERWISE
|
||||
#COMMAND ENDCASE [<*x*>] => PP__ENDCASE
|
||||
|
||||
#COMMAND FOR <counter> := <start> TO <end> [STEP <step>] => PP__FOR <counter>:=<start>~TO~<end>~STEP~<step>
|
||||
#COMMAND FOR <counter> = <start> TO <end> [STEP <step>] => PP__FOR <counter>:=<start>~TO~<end>~STEP~<step>
|
||||
#COMMAND LOOP [<*x*>] => PP__LOOP
|
||||
#COMMAND EXIT [<*x*>] => PP__EXIT
|
||||
#COMMAND NEXT [<*x*>] => PP__NEXT
|
||||
|
||||
#COMMAND DO WHILE <cond> => PP__WHILE <cond>
|
||||
#COMMAND WHILE <cond> => PP__WHILE <cond>
|
||||
#COMMAND ENDDO [<*x*>] => PP__ENDDO
|
||||
|
||||
#COMMAND DO <(file)>.prg => PP_Run( #<file> + ".prg" )
|
||||
|
||||
#COMMAND INIT PROCEDURE <!name!>[()] => PP_PROC_INIT <name>
|
||||
#COMMAND EXIT PROCEDURE <!name!>[()] => PP_PROC_EXIT <name>
|
||||
|
||||
#COMMAND STATIC PROCEDURE <!name!>( <par,...> ) => PP_PROC_PRG <name> ; PP_LocalParams( { <"par"> } )
|
||||
#COMMAND STATIC PROCEDURE <!name!>[()] => PP_PROC_PRG <name>
|
||||
#COMMAND STATIC FUNCTION <!name!>( <par,...> ) => PP_PROC_PRG <name> ; PP_LocalParams( { <"par"> } )
|
||||
#COMMAND STATIC FUNCTION <!name!>[()] => PP_PROC_PRG <name>
|
||||
|
||||
#COMMAND PROCEDURE <!name!>( <par,...> ) => PP_PROC <name> ; PP_LocalParams( { <"par"> } )
|
||||
#COMMAND PROCEDURE <!name!>[()] => PP_PROC <name>
|
||||
#COMMAND FUNCTION <!name!>( <par,...> ) => PP_PROC <name> ; PP_LocalParams( { <"par"> } )
|
||||
#COMMAND FUNCTION <!name!>[()] => PP_PROC <name>
|
||||
|
||||
#COMMAND RETURN [<retExp>] => PP_SetReturn( <retExp> )
|
||||
|
||||
#COMMAND PARAMETERS <par,...> => PP_Params( { <"par"> } )
|
||||
#COMMAND PRIVATE <var,...> => PP_Privates( { <"var"> } )
|
||||
#COMMAND DECLARE <var,...> => PP_Privates( { <"var"> } )
|
||||
#COMMAND PUBLIC <var,...> => PP_Publics( { <"var"> } )
|
||||
#COMMAND LOCAL <var,...> => PP_Locals( { <"var"> } )
|
||||
#COMMAND STATIC <var,...> => PP_Statics( { <"var"> } )
|
||||
|
||||
#TRANSLATE ProcName( [<n>] ) => PP_ProcName( <n> )
|
||||
#TRANSLATE ProcLine( [<n>] ) => PP_ProcLine( <n> )
|
||||
@@ -1,69 +0,0 @@
|
||||
PROCEDURE Main
|
||||
|
||||
LOCAL cLocal
|
||||
PRIVATE cName
|
||||
|
||||
CLEAR SCREEN
|
||||
|
||||
Alert( "Testinf PP as Interpreter... " )
|
||||
|
||||
USE test
|
||||
IF ! File( "test" + IndexExt() )
|
||||
INDEX on FIELD->First TO First
|
||||
ELSE
|
||||
SET INDEX TO First
|
||||
ENDIF
|
||||
|
||||
GO TOP
|
||||
|
||||
cName := FIELD->First + FIELD->Last
|
||||
|
||||
IF cName == FIELD->First + FIELD->Last
|
||||
? "Ok"
|
||||
ELSE
|
||||
? "Err"
|
||||
ENDIF
|
||||
|
||||
DO CASE
|
||||
CASE cName == First // Not exact!
|
||||
? "Err"
|
||||
|
||||
CASE cName = First // But still equal
|
||||
? "Ok"
|
||||
|
||||
OTHERWISE
|
||||
? "Err"
|
||||
ENDCASE
|
||||
|
||||
REPLACE First WITH "From PP"
|
||||
|
||||
? FIELD->First
|
||||
|
||||
cLocal := "in main"
|
||||
? Test()
|
||||
? cLocal
|
||||
? cName
|
||||
|
||||
? cFromTest
|
||||
? TestPrv
|
||||
|
||||
RETURN
|
||||
|
||||
FUNCTION Test
|
||||
|
||||
PRIVATE TestPrv
|
||||
PUBLIC cFromTest
|
||||
|
||||
? cName
|
||||
? cLocal
|
||||
|
||||
M->TestPrv := "Private of Test"
|
||||
Test2()
|
||||
|
||||
RETURN ProcName()
|
||||
|
||||
PROCEDURE Test2
|
||||
|
||||
? ProcName(), ProcLine(), M->testPrv
|
||||
|
||||
RETURN
|
||||
22
harbour/contrib/gd/common.mak
Normal file
22
harbour/contrib/gd/common.mak
Normal file
@@ -0,0 +1,22 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = hbgd
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\gdwrp.obj \
|
||||
$(OBJ_DIR)\gd.obj \
|
||||
$(OBJ_DIR)\gdimage.obj \
|
||||
$(OBJ_DIR)\gdchart.obj \
|
||||
$(OBJ_DIR)\gdbar.obj \
|
||||
$(OBJ_DIR)\gdbarcod.obj \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -1,60 +1,60 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need GD lib sources from www.libgd.org and this envvar
|
||||
rem to be set to successfully build this library:
|
||||
rem set C_USR=-IC:\gd-2.0.35
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
if not exist bgd.dll goto NODLL
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
impdef -a ..\..\lib\b32\libbgd.def bgd.dll > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
implib -a ..\..\lib\b32\libbgd.lib ..\..\lib\b32\libbgd.def > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\libbgd.lib ..\..\lib > nul
|
||||
copy ..\..\lib\b32\hbgd.lib ..\..\lib > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
if exist ..\..\lib\b32\hbgd.lib del ..\..\lib\b32\hbgd.lib
|
||||
if exist ..\..\lib\b32\hbgd.bak del ..\..\lib\b32\hbgd.bak
|
||||
|
||||
if exist ..\..\obj\b32\gdwrp.obj del ..\..\obj\b32\gdwrp.obj
|
||||
|
||||
if exist ..\..\obj\b32\gd.c del ..\..\obj\b32\gd.c
|
||||
if exist ..\..\obj\b32\gdimage.c del ..\..\obj\b32\gdimage.c
|
||||
if exist ..\..\obj\b32\gdchart.c del ..\..\obj\b32\gdchart.c
|
||||
if exist ..\..\obj\b32\gdbar.c del ..\..\obj\b32\gdbar.c
|
||||
if exist ..\..\obj\b32\gdbarcod.c del ..\..\obj\b32\gdbarcod.c
|
||||
|
||||
if exist ..\..\obj\b32\gd.obj del ..\..\obj\b32\gd.obj
|
||||
if exist ..\..\obj\b32\gdimage.obj del ..\..\obj\b32\gdimage.obj
|
||||
if exist ..\..\obj\b32\gdchart.obj del ..\..\obj\b32\gdchart.obj
|
||||
if exist ..\..\obj\b32\gdbar.obj del ..\..\obj\b32\gdbar.obj
|
||||
if exist ..\..\obj\b32\gdbarcod.obj del ..\..\obj\b32\gdbarcod.obj
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
:NODLL
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
echo.
|
||||
echo.Missing bgd.dll, please download it from:
|
||||
echo.http://www.libgd.org/Downloads (Windows.DLL)
|
||||
echo.
|
||||
echo.Make aborted.
|
||||
echo.
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
60
harbour/contrib/gd/make_vc.bat
Normal file
60
harbour/contrib/gd/make_vc.bat
Normal file
@@ -0,0 +1,60 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need GD lib sources from www.libgd.org and this envvar
|
||||
rem to be set to successfully build this library:
|
||||
rem set C_USR=-IC:\gd-2.0.35
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,45 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of mysql.lib - Harbour API to mySQL
|
||||
|
||||
INCLUDE_DIR = include;..\..\include
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\hbgd.lib : \
|
||||
$(OBJ_DIR)\gdwrp.obj \
|
||||
$(OBJ_DIR)\gd.obj \
|
||||
$(OBJ_DIR)\gdimage.obj \
|
||||
$(OBJ_DIR)\gdchart.obj \
|
||||
$(OBJ_DIR)\gdbar.obj \
|
||||
$(OBJ_DIR)\gdbarcod.obj
|
||||
|
||||
$(OBJ_DIR)\gd.c : gd.prg
|
||||
$(OBJ_DIR)\gd.obj : $(OBJ_DIR)\gd.c
|
||||
|
||||
$(OBJ_DIR)\gdimage.c : gdimage.prg
|
||||
$(OBJ_DIR)\gdimage.obj : $(OBJ_DIR)\gdimage.c
|
||||
|
||||
$(OBJ_DIR)\gdchart.c : gdchart.prg
|
||||
$(OBJ_DIR)\gdchart.obj : $(OBJ_DIR)\gdchart.c
|
||||
|
||||
$(OBJ_DIR)\gdbar.c : gdbar.prg
|
||||
$(OBJ_DIR)\gdbar.obj : $(OBJ_DIR)\gdbar.c
|
||||
|
||||
$(OBJ_DIR)\gdbarcod.c : gdbarcod.prg
|
||||
$(OBJ_DIR)\gdbarcod.obj : $(OBJ_DIR)\gdbarcod.c
|
||||
|
||||
$(OBJ_DIR)\gdwrp.obj : gdwrp.c
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -DHB_OS_WIN_32_USED -o$@ $<
|
||||
tlib $(LIB_DIR)\hbgd.lib -+$@,,
|
||||
|
||||
.prg.c:
|
||||
$(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#ifndef HB_STRUCTURE
|
||||
|
||||
#define HB_STRUCTURE
|
||||
|
||||
#COMMAND STRUCTURE <StruName> <Var1> <x1:AS CLASS,AS STRUCTURE,AS STRU,AS ARRAY OF,AS> <Type1> [, <VarN> <xN:AS CLASS,AS STRUCTURE,AS STRU,AS ARRAY OF,AS> <TypeN> ] => ;
|
||||
STATIC __<StruName> := {|| IF( __<StruName> == NIL, , ) , HB_Structure( <"StruName">, { <"Var1"> [, <"VarN">] } )} ;;
|
||||
DECLARE <StruName> <Var1> <x1> <Type1> [ <VarN> <xN> <TypeN> ] ;;
|
||||
#TRANSLATE AS NEW <StruName> => AS STRUCTURE <StruName> := ( Eval( __<StruName> ), HB_Structure( <"StruName"> ) )
|
||||
|
||||
#endif
|
||||
@@ -1,117 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Base Class for internal handling of class creation
|
||||
*
|
||||
* Copyright 2000 Ron Pinkas <Ron@Profit-Master.com>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbstruc.ch"
|
||||
|
||||
//----------------------------------------------------------------------------//
|
||||
|
||||
Function HB_Structure( cStructureName AS Char, aMembers AS Array OF Char )
|
||||
|
||||
STRUCTURE HB_Structure cName AS Char, hId As Num
|
||||
|
||||
DECLARE __ClsNew( ClassName AS Char, N As Num ) AS Num
|
||||
DECLARE __ClsAddMsg( H AS Num, Data AS Char, ID As Num, Type As Num ) AS Num
|
||||
DECLARE __ClsInst( H AS Num ) AS Structure HB_Structure
|
||||
|
||||
LOCAL hStructure AS Num, nCounter AS Num, nMembers AS Num
|
||||
|
||||
STATIC asStructures AS Array OF Structure HB_Structure := {}
|
||||
|
||||
STATIC sStructure AS Stru HB_Structure
|
||||
|
||||
LOCAL hSelf As Num
|
||||
|
||||
cStructureName := Upper( cStructureName )
|
||||
|
||||
hStructure := aScan( asStructures, { |aStructure| aStructure:cName == cStructureName } )
|
||||
|
||||
IF aMembers == NIL
|
||||
IF hStructure == 0
|
||||
//hb_Structure( cStructureName, {} )
|
||||
RETURN NIL //hb_Structure( cStructureName )
|
||||
ELSE
|
||||
RETURN __ClsInst( asStructures[ hStructure ]:hId )
|
||||
ENDIF
|
||||
ELSE
|
||||
IF hStructure > 0
|
||||
// Duplicate declaration
|
||||
RETURN NIL
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
nMembers := Len( aMembers )
|
||||
|
||||
hStructure := __ClsNew( cStructureName, nMembers )
|
||||
|
||||
FOR nCounter := 1 TO nMembers
|
||||
__clsAddMsg( hStructure, aMembers[nCounter], nCounter, 1 )
|
||||
__clsAddMsg( hStructure, '_' + aMembers[nCounter], nCounter, 1 )
|
||||
NEXT
|
||||
|
||||
IF sStructure == NIL
|
||||
hSelf := __ClsNew( "HB_Structure", 2 )
|
||||
|
||||
__clsAddMsg( hSelf, "cName", 1, 1 )
|
||||
__clsAddMsg( hSelf, "_cName", 1, 1 )
|
||||
__clsAddMsg( hSelf, "hID", 2, 1 )
|
||||
__clsAddMsg( hSelf, "_hID", 2, 1 )
|
||||
|
||||
sStructure := __ClsInst( hSelf )
|
||||
ENDIF
|
||||
|
||||
sStructure:cName := cStructureName
|
||||
sStructure:hId := hStructure
|
||||
|
||||
aAdd( asStructures, sStructure )
|
||||
|
||||
RETURN NIL //__clsInst( hStructure )
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
REQUEST HBSTRUC
|
||||
#INCLUDE "HBSTRUC.CH"
|
||||
|
||||
STRUCTURE MyStruct Var1 As Char, Var2 As Num, sNext AS Stru MyStruct
|
||||
|
||||
STRUCTURE OtherStruct sNested As Stru MyStruct, sNext AS Structure OtherStruct
|
||||
|
||||
PROCEDURE MAIN()
|
||||
|
||||
LOCAL sTest AS New MyStruct, sTest2 As New OtherStruct
|
||||
|
||||
sTest:Var1 := 'Working' // No problem here. (Var1 of myStruct is Char)
|
||||
|
||||
? sTest:Var1 // No Problem here.
|
||||
|
||||
sTest:Var1 := 8 // Warning Here as Expected. -> Var1 of MyStruct is Char not Num
|
||||
|
||||
sTest2:sNested:Var1 := 8 // Warning Here Expected -> Var1 of MyStruct is Char not Num
|
||||
|
||||
sTest2:sNested:sNext := 8 // Warning Here Expected -> sNext of MyStruct is MyStruct not Num
|
||||
|
||||
|
||||
/* Run TIME ERROR Here */
|
||||
sTest2:sNested:sNested := 8 // Warning Here Expected -> MyStruct has no sNested Var
|
||||
|
||||
/* Run TIME ERROR Here */
|
||||
sTest:NoSuchVar := "Error" // Warning here as expected. -> MyStruct has no NoSuchVar Var.
|
||||
|
||||
RETURN
|
||||
@@ -1,203 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts
|
||||
# with external commands named echo.
|
||||
#
|
||||
|
||||
!if $d(B16)
|
||||
|
||||
CC = bcc
|
||||
AS = tasm
|
||||
|
||||
# Borland C/C++ (DOS 16 bits)
|
||||
CFLAGS = -mh $(CFLAGS)
|
||||
|
||||
BIN_DIR = bin\b16
|
||||
OBJ_DIR = obj\b16
|
||||
LIB_DIR = lib\b16
|
||||
|
||||
!else
|
||||
|
||||
CC = bcc32
|
||||
AS = tasm32
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
# This is needed, otherwise the libs may overflow when
|
||||
# debug info is requested with -v -y
|
||||
ARFLAGS = /P32
|
||||
|
||||
!endif
|
||||
|
||||
!if !$d(BCC_NOOPTIM)
|
||||
CFLAGS = -O2 $(CFLAGS)
|
||||
!endif
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include;include
|
||||
TOOLS_DIR =
|
||||
TOOLS1_DIR = examples
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -v $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -w2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\html.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\ohtm.obj \
|
||||
$(OBJ_DIR)\htmbrows.obj \
|
||||
$(OBJ_DIR)\oedit.obj \
|
||||
$(OBJ_DIR)\ofile.obj \
|
||||
$(OBJ_DIR)\jlist.obj \
|
||||
$(OBJ_DIR)\oini.obj \
|
||||
$(OBJ_DIR)\jwindow.obj \
|
||||
$(OBJ_DIR)\ocgi.obj \
|
||||
$(OBJ_DIR)\oframe.obj \
|
||||
$(OBJ_DIR)\counter.obj \
|
||||
$(OBJ_DIR)\errorsys.obj \
|
||||
$(OBJ_DIR)\htmutil.obj
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB) \
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
|
||||
|
||||
$(OBJ_DIR)\ohtm.c : ohtm.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\ohtm.obj : $(OBJ_DIR)\ohtm.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\htmbrows.c : htmbrows.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\htmbrows.obj : $(OBJ_DIR)\htmbrows.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\oedit.c : oedit.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\oedit.obj : $(OBJ_DIR)\oedit.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ofile.c : ofile.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\ofile.obj : $(OBJ_DIR)\ofile.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\jlist.c : jlist.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\jlist.obj : $(OBJ_DIR)\jlist.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\oini.c : oini.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\oini.obj : $(OBJ_DIR)\oini.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\jwindow.c : jwindow.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\jwindow.obj : $(OBJ_DIR)\jwindow.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ocgi.c : ocgi.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\ocgi.obj : $(OBJ_DIR)\ocgi.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\oframe.c : oframe.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\oframe.obj : $(OBJ_DIR)\oframe.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\counter.c : counter.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\counter.obj : $(OBJ_DIR)\counter.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\errorsys.c : errorsys.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\errorsys.obj : $(OBJ_DIR)\errorsys.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\htmutil.c : htmutil.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\htmutil.obj : $(OBJ_DIR)\htmutil.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
28
harbour/contrib/htmllib/common.mak
Normal file
28
harbour/contrib/htmllib/common.mak
Normal file
@@ -0,0 +1,28 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = html
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\ohtm.obj \
|
||||
$(OBJ_DIR)\htmbrows.obj \
|
||||
$(OBJ_DIR)\oedit.obj \
|
||||
$(OBJ_DIR)\ofile.obj \
|
||||
$(OBJ_DIR)\jlist.obj \
|
||||
$(OBJ_DIR)\oini.obj \
|
||||
$(OBJ_DIR)\jwindow.obj \
|
||||
$(OBJ_DIR)\ocgi.obj \
|
||||
$(OBJ_DIR)\oframe.obj \
|
||||
$(OBJ_DIR)\counter.obj \
|
||||
$(OBJ_DIR)\errorsys.obj \
|
||||
$(OBJ_DIR)\htmutil.obj \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,42 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "Clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\html.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\html.lib del ..\..\lib\b32\html.lib
|
||||
if exist ..\..\lib\b32\html.bak del ..\..\lib\b32\html.bak
|
||||
if exist ..\..\obj\b32\ohtm.obj del ..\..\obj\b32\ads1.obj
|
||||
if exist ..\..\obj\b32\htmbrows.obj del ..\..\obj\b32\adsfunc.obj
|
||||
if exist ..\..\obj\b32\oedit.obj del ..\..\obj\b32\adsmgmnt.obj
|
||||
if exist ..\..\obj\b32\ofile.obj del ..\..\obj\b32\ofile.obj
|
||||
if exist ..\..\obj\b32\jlist.obj del ..\..\obj\b32\jlist.obj
|
||||
if exist ..\..\obj\b32\oini.obj del ..\..\obj\b32\oini.obj
|
||||
if exist ..\..\obj\b32\jwindow.obj del ..\..\obj\b32\jwindow.obj
|
||||
if exist ..\..\obj\b32\ocgi.obj del ..\..\obj\b32\ocgi.obj
|
||||
if exist ..\..\obj\b32\oframe.obj del ..\..\obj\b32\oframe.obj
|
||||
if exist ..\..\obj\b32\counter.obj del ..\..\obj\b32\counter.obj
|
||||
if exist ..\..\obj\b32\errorsys.obj del ..\..\obj\b32\errorsys.obj
|
||||
if exist ..\..\obj\b32\htmutil.obj del ..\..\obj\b32\htmutil.obj
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -3,41 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "Clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
nmake /f makefile.vc %1 %2 %3 > make_vc.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\vc\html.lib ..\..\lib\*.* >nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_vc.log
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\vc\html.lib del ..\..\lib\vc\html.lib
|
||||
if exist ..\..\lib\vc\html.bak del ..\..\lib\vc\html.bak
|
||||
if exist ..\..\obj\vc\ohtm.obj del ..\..\obj\vc\ads1.obj
|
||||
if exist ..\..\obj\vc\htmbrows.obj del ..\..\obj\vc\adsfunc.obj
|
||||
if exist ..\..\obj\vc\oedit.obj del ..\..\obj\vc\adsmgmnt.obj
|
||||
if exist ..\..\obj\vc\ofile.obj del ..\..\obj\vc\ofile.obj
|
||||
if exist ..\..\obj\vc\jlist.obj del ..\..\obj\vc\jlist.obj
|
||||
if exist ..\..\obj\vc\oini.obj del ..\..\obj\vc\oini.obj
|
||||
if exist ..\..\obj\vc\jwindow.obj del ..\..\obj\vc\jwindow.obj
|
||||
if exist ..\..\obj\vc\ocgi.obj del ..\..\obj\vc\ocgi.obj
|
||||
if exist ..\..\obj\vc\oframe.obj del ..\..\obj\vc\oframe.obj
|
||||
if exist ..\..\obj\vc\counter.obj del ..\..\obj\vc\counter.obj
|
||||
if exist ..\..\obj\vc\errorsys.obj del ..\..\obj\vc\errorsys.obj
|
||||
if exist ..\..\obj\vc\htmutil.obj del ..\..\obj\vc\htmutil.obj
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,114 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
OBJ_DIR = ..\..\obj\vc
|
||||
LIB_DIR = ..\..\lib\vc
|
||||
BIN_DIR = ..\..\bin\vc
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
CC = cl
|
||||
CFLAGS = -W3 -nologo -I$(INCLUDE_DIR)
|
||||
CLIBFLAGS = $(CFLAGS) -c
|
||||
CLIBFLAGSDEBUG = $(CLIBFLAGS) -Zi
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -w2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\html.lib
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\ohtm.obj \
|
||||
$(OBJ_DIR)\htmbrows.obj \
|
||||
$(OBJ_DIR)\oedit.obj \
|
||||
$(OBJ_DIR)\ofile.obj \
|
||||
$(OBJ_DIR)\jlist.obj \
|
||||
$(OBJ_DIR)\oini.obj \
|
||||
$(OBJ_DIR)\jwindow.obj \
|
||||
$(OBJ_DIR)\ocgi.obj \
|
||||
$(OBJ_DIR)\oframe.obj \
|
||||
$(OBJ_DIR)\counter.obj \
|
||||
$(OBJ_DIR)\errorsys.obj \
|
||||
$(OBJ_DIR)\htmutil.obj
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB) \
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
lib /OUT:$(TOOLS_LIB) $(TOOLS_LIB_OBJS)
|
||||
|
||||
$(OBJ_DIR)\ohtm.obj : ohtm.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\htmbrows.obj : htmbrows.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\oedit.obj : oedit.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\ofile.obj : ofile.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\jlist.obj : jlist.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\oini.obj : oini.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\jwindow.obj : jwindow.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\ocgi.obj : ocgi.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\oframe.obj : oframe.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\counter.obj : counter.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\errorsys.obj : errorsys.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
$(OBJ_DIR)\htmutil.obj : htmutil.prg
|
||||
$(HARBOUR_EXE) $** $(HARBOURFLAGS) -o$*.c
|
||||
$(CC) $(CLIBFLAGS) -Fo$@ $*.c
|
||||
|
||||
@@ -3,8 +3,23 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
if "%CC_NAME%" == "" set CC_NAME=b32
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
@@ -14,13 +29,15 @@ if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% -f ..\maketpl.%CC_NAME% %1 %2 %3 > make_%CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%CC_NAME%.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% CLEAN > make_%CC_NAME%.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
@@ -31,7 +48,7 @@ if "%1" == "INSTALL" goto INSTALL
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% INSTALL > nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
@@ -3,8 +3,23 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
if "%CC_NAME%" == "" set CC_NAME=vc
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
@@ -14,13 +29,15 @@ if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% -f ..\maketpl.%CC_NAME% %1 %2 %3 > make_%CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%CC_NAME%.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% CLEAN > make_%CC_NAME%.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
@@ -31,7 +48,7 @@ if "%1" == "INSTALL" goto INSTALL
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f ..\maketpl.%CC_NAME% INSTALL > nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
33
harbour/contrib/libgt/common.mak
Normal file
33
harbour/contrib/libgt/common.mak
Normal file
@@ -0,0 +1,33 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = gt
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\asciisum.obj \
|
||||
$(OBJ_DIR)\ascpos.obj \
|
||||
$(OBJ_DIR)\atdiff.obj \
|
||||
$(OBJ_DIR)\chareven.obj \
|
||||
$(OBJ_DIR)\charmix.obj \
|
||||
$(OBJ_DIR)\charodd.obj \
|
||||
$(OBJ_DIR)\chrcount.obj \
|
||||
$(OBJ_DIR)\chrfirst.obj \
|
||||
$(OBJ_DIR)\chrtotal.obj \
|
||||
$(OBJ_DIR)\strasint.obj \
|
||||
$(OBJ_DIR)\strcount.obj \
|
||||
$(OBJ_DIR)\strcspn.obj \
|
||||
$(OBJ_DIR)\strdiff.obj \
|
||||
$(OBJ_DIR)\strexpan.obj \
|
||||
$(OBJ_DIR)\strleft.obj \
|
||||
$(OBJ_DIR)\strpbrk.obj \
|
||||
$(OBJ_DIR)\strright.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -1,29 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\gt.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,21 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
nmake /f makefile.vc %1 %2 %3 > make_vc.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\vc\gt.lib ..\..\lib\*.* >nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
:CLEAN
|
||||
|
||||
notepad make_vc.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,195 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts
|
||||
# with external commands named echo.
|
||||
#
|
||||
|
||||
!if $d(B16)
|
||||
|
||||
CC = bcc
|
||||
AS = tasm
|
||||
|
||||
# Borland C/C++ (DOS 16 bits)
|
||||
CFLAGS = -mh $(CFLAGS)
|
||||
|
||||
BIN_DIR = bin\b16
|
||||
OBJ_DIR = obj\b16
|
||||
LIB_DIR = lib\b16
|
||||
|
||||
!else
|
||||
|
||||
CC = bcc32
|
||||
AS = tasm32
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
# This is needed, otherwise the libs may overflow when
|
||||
# debug info is requested with -v -y
|
||||
ARFLAGS = /P32
|
||||
|
||||
!endif
|
||||
|
||||
!if !$d(BCC_NOOPTIM)
|
||||
CFLAGS = -O2 $(CFLAGS)
|
||||
!endif
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -v $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\gt.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\asciisum.obj \
|
||||
$(OBJ_DIR)\ascpos.obj \
|
||||
$(OBJ_DIR)\atdiff.obj \
|
||||
$(OBJ_DIR)\chareven.obj \
|
||||
$(OBJ_DIR)\charmix.obj \
|
||||
$(OBJ_DIR)\charodd.obj \
|
||||
$(OBJ_DIR)\chrcount.obj \
|
||||
$(OBJ_DIR)\chrfirst.obj \
|
||||
$(OBJ_DIR)\chrtotal.obj \
|
||||
$(OBJ_DIR)\strasint.obj \
|
||||
$(OBJ_DIR)\strcount.obj \
|
||||
$(OBJ_DIR)\strcspn.obj \
|
||||
$(OBJ_DIR)\strdiff.obj \
|
||||
$(OBJ_DIR)\strexpan.obj \
|
||||
$(OBJ_DIR)\strleft.obj \
|
||||
$(OBJ_DIR)\strpbrk.obj \
|
||||
$(OBJ_DIR)\strright.obj \
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB) \
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
|
||||
#
|
||||
# TOOLS.LIB dependencies
|
||||
#
|
||||
|
||||
$(OBJ_DIR)\asciisum.obj : $(TOOLS_DIR)\asciisum.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ascpos.obj : $(TOOLS_DIR)\ascpos.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\atdiff.obj : $(TOOLS_DIR)\atdiff.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\chareven.obj : $(TOOLS_DIR)\chareven.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\charmix.obj : $(TOOLS_DIR)\charmix.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\charodd.obj : $(TOOLS_DIR)\charodd.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\chrcount.obj : $(TOOLS_DIR)\chrcount.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\chrfirst.obj : $(TOOLS_DIR)\chrfirst.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\chrtotal.obj : $(TOOLS_DIR)\chrtotal.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strasint.obj : $(TOOLS_DIR)\strasint.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strcount.obj : $(TOOLS_DIR)\strcount.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strcspn.obj : $(TOOLS_DIR)\strcspn.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strdiff.obj : $(TOOLS_DIR)\strdiff.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strexpan.obj : $(TOOLS_DIR)\strexpan.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strleft.obj : $(TOOLS_DIR)\strleft.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strpbrk.obj : $(TOOLS_DIR)\strpbrk.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strright.obj : $(TOOLS_DIR)\strright.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
@@ -1,170 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Microsoft Visual C (32 bits)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# Notes about this makefile:
|
||||
#
|
||||
# 1. To add new files to a dependancy list, add an obj name to one of the
|
||||
# OBJ lists for the appropriate library.
|
||||
# NOTE: put .prg related obj's last in the lib list.
|
||||
#
|
||||
# 2. This is a recursive script. If you change the name of this file,
|
||||
# be sure to change MK_FILE (a few lines down) to the new name as well.
|
||||
#
|
||||
# 3. Recurrsion rules are quite simple:
|
||||
# If you specifiy /a on the command line, files in the obj\vc dir
|
||||
# will be deleted, and when nmake recurses, it's without the /a flag
|
||||
#
|
||||
# If a .prg.obj rule is fired, nmake will execute this script with
|
||||
# a specific target as a parameter immediatley after compiling a given
|
||||
# set of prg files.
|
||||
# ie: Harbour $<
|
||||
# nmake /fmakefile.vc obj\vc\rtl.lib2
|
||||
# which will simply get make to re-evaluate the dependancy list for the
|
||||
# lib, and as a result, it will execute the C compiler using the .c.obj
|
||||
# rule below to create the obj's for the prg's that were created just
|
||||
# prior to the recurrsive call. Once the obj's are created, the
|
||||
# recurrsion is complete.
|
||||
# See additional notes under RTL.LIB below.
|
||||
#
|
||||
|
||||
MK_FILE = makefile.vc
|
||||
MK_FLAGS = $(MAKEFLAGS: =)
|
||||
|
||||
OBJ_DIR = ..\..\obj\vc
|
||||
LIB_DIR = ..\..\lib\vc
|
||||
BIN_DIR = ..\..\bin
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
AS = masm
|
||||
CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\gt.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
.SUFFIXES: .prg .lib .c .obj .asm
|
||||
|
||||
# override builtin
|
||||
|
||||
.c.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
LIBLIST = \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj::
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
|
||||
$(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\asciisum.obj \
|
||||
$(OBJ_DIR)\ascpos.obj \
|
||||
$(OBJ_DIR)\atdiff.obj \
|
||||
$(OBJ_DIR)\chareven.obj \
|
||||
$(OBJ_DIR)\charmix.obj \
|
||||
$(OBJ_DIR)\charodd.obj \
|
||||
$(OBJ_DIR)\chrcount.obj \
|
||||
$(OBJ_DIR)\chrfirst.obj \
|
||||
$(OBJ_DIR)\chrtotal.obj \
|
||||
$(OBJ_DIR)\strasint.obj \
|
||||
$(OBJ_DIR)\strcount.obj \
|
||||
$(OBJ_DIR)\strcspn.obj \
|
||||
$(OBJ_DIR)\strdiff.obj \
|
||||
$(OBJ_DIR)\strexpan.obj \
|
||||
$(OBJ_DIR)\strleft.obj \
|
||||
$(OBJ_DIR)\strpbrk.obj \
|
||||
$(OBJ_DIR)\strright.obj
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
CLEAN:
|
||||
-@if exist $(TOOLS_LIB) del $(TOOLS_LIB)
|
||||
-@if exist $(OBJ_DIR)\asciisum.obj del $(OBJ_DIR)\asciisum.obj
|
||||
-@if exist $(OBJ_DIR)\ascpos.obj del $(OBJ_DIR)\ascpos.obj
|
||||
-@if exist $(OBJ_DIR)\atdiff.obj del $(OBJ_DIR)\atdiff.obj
|
||||
-@if exist $(OBJ_DIR)\chareven.obj del $(OBJ_DIR)\chareven.obj
|
||||
-@if exist $(OBJ_DIR)\charmix.obj del $(OBJ_DIR)\charmix.obj
|
||||
-@if exist $(OBJ_DIR)\charodd.obj del $(OBJ_DIR)\charodd.obj
|
||||
-@if exist $(OBJ_DIR)\chrcount.obj del $(OBJ_DIR)\chrcount.obj
|
||||
-@if exist $(OBJ_DIR)\chrfirst.obj del $(OBJ_DIR)\chrfirst.obj
|
||||
-@if exist $(OBJ_DIR)\chrtotal.obj del $(OBJ_DIR)\chrtotal.obj
|
||||
-@if exist $(OBJ_DIR)\strasint.obj del $(OBJ_DIR)\strasint.obj
|
||||
-@if exist $(OBJ_DIR)\strcount.obj del $(OBJ_DIR)\strcount.obj
|
||||
-@if exist $(OBJ_DIR)\strcspn.obj del $(OBJ_DIR)\strcspn.obj
|
||||
-@if exist $(OBJ_DIR)\strdiff.obj del $(OBJ_DIR)\strdiff.obj
|
||||
-@if exist $(OBJ_DIR)\strexpan.obj del $(OBJ_DIR)\strexpan.obj
|
||||
-@if exist $(OBJ_DIR)\strleft.obj del $(OBJ_DIR)\strleft.obj
|
||||
-@if exist $(OBJ_DIR)\strpbrk.obj del $(OBJ_DIR)\strpbrk.obj
|
||||
-@if exist $(OBJ_DIR)\strright.obj del $(OBJ_DIR)\strright.obj
|
||||
-@if exist $(TOOLS_LIB) del $(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
lib /out:$@ $**
|
||||
|
||||
# dummy targets used for prg to c creation
|
||||
|
||||
$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS)
|
||||
|
||||
29
harbour/contrib/libmisc/common.mak
Normal file
29
harbour/contrib/libmisc/common.mak
Normal file
@@ -0,0 +1,29 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = libmisc
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\dates2.obj \
|
||||
$(OBJ_DIR)\dbftools.obj \
|
||||
$(OBJ_DIR)\hb_f.obj \
|
||||
$(OBJ_DIR)\mathx.obj \
|
||||
$(OBJ_DIR)\strfmt.obj \
|
||||
$(OBJ_DIR)\stringsx.obj \
|
||||
\
|
||||
$(OBJ_DIR)\fileread.obj \
|
||||
$(OBJ_DIR)\nconvert.obj \
|
||||
$(OBJ_DIR)\numtxten.obj \
|
||||
$(OBJ_DIR)\numtxthu.obj \
|
||||
$(OBJ_DIR)\stringp.obj \
|
||||
$(OBJ_DIR)\twirler.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -1,29 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\libmisc.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,21 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
nmake /f makefile.vc %1 %2 %3 > make_vc.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\vc\libmisc.lib ..\..\lib\*.* >nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
:CLEAN
|
||||
|
||||
notepad make_vc.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,188 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Borland C/C++ 3.x, 4.x, 5.x compilers
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts
|
||||
# with external commands named echo.
|
||||
#
|
||||
|
||||
!if $d(B16)
|
||||
|
||||
CC = bcc
|
||||
AS = tasm
|
||||
|
||||
# Borland C/C++ (DOS 16 bits)
|
||||
CFLAGS = -mh $(CFLAGS)
|
||||
|
||||
BIN_DIR = bin\b16
|
||||
OBJ_DIR = obj\b16
|
||||
LIB_DIR = lib\b16
|
||||
|
||||
!else
|
||||
|
||||
CC = bcc32
|
||||
AS = tasm32
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
# This is needed, otherwise the libs may overflow when
|
||||
# debug info is requested with -v -y
|
||||
ARFLAGS = /P32
|
||||
|
||||
!endif
|
||||
|
||||
!if !$d(BCC_NOOPTIM)
|
||||
CFLAGS = -O2 $(CFLAGS)
|
||||
!endif
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -v $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\libmisc.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\dates2.obj \
|
||||
$(OBJ_DIR)\dbftools.obj \
|
||||
$(OBJ_DIR)\hb_f.obj \
|
||||
$(OBJ_DIR)\mathx.obj \
|
||||
$(OBJ_DIR)\strfmt.obj \
|
||||
$(OBJ_DIR)\stringsx.obj \
|
||||
\
|
||||
$(OBJ_DIR)\fileread.obj \
|
||||
$(OBJ_DIR)\nconvert.obj \
|
||||
$(OBJ_DIR)\numtxten.obj \
|
||||
$(OBJ_DIR)\numtxthu.obj \
|
||||
$(OBJ_DIR)\stringp.obj \
|
||||
$(OBJ_DIR)\twirler.obj
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB) \
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
|
||||
#
|
||||
# TOOLS.LIB dependencies
|
||||
#
|
||||
|
||||
$(OBJ_DIR)\dates2.obj : $(TOOLS_DIR)\dates2.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dbftools.obj : $(TOOLS_DIR)\dbftools.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\fileread.c : $(TOOLS_DIR)\fileread.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\fileread.obj : $(OBJ_DIR)\fileread.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\hb_f.obj : $(TOOLS_DIR)\hb_f.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\mathx.obj : $(TOOLS_DIR)\mathx.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\nconvert.c : $(TOOLS_DIR)\nconvert.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\nconvert.obj : $(OBJ_DIR)\nconvert.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\numtxten.c : $(TOOLS_DIR)\numtxten.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\numtxten.obj : $(OBJ_DIR)\numtxten.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\numtxthu.c : $(TOOLS_DIR)\numtxthu.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\numtxthu.obj : $(OBJ_DIR)\numtxthu.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\strfmt.obj : $(TOOLS_DIR)\strfmt.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\stringp.c : $(TOOLS_DIR)\stringp.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\stringp.obj : $(OBJ_DIR)\stringp.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\stringsx.obj : $(TOOLS_DIR)\stringsx.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\twirler.c : $(TOOLS_DIR)\twirler.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\twirler.obj : $(OBJ_DIR)\twirler.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(TOOLS_LIB) $(ARFLAGS) -+$@,,
|
||||
@@ -1,159 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Microsoft Visual C (32 bits)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# Notes about this makefile:
|
||||
#
|
||||
# 1. To add new files to a dependancy list, add an obj name to one of the
|
||||
# OBJ lists for the appropriate library.
|
||||
# NOTE: put .prg related obj's last in the lib list.
|
||||
#
|
||||
# 2. This is a recursive script. If you change the name of this file,
|
||||
# be sure to change MK_FILE (a few lines down) to the new name as well.
|
||||
#
|
||||
# 3. Recurrsion rules are quite simple:
|
||||
# If you specifiy /a on the command line, files in the obj\vc dir
|
||||
# will be deleted, and when nmake recurses, it's without the /a flag
|
||||
#
|
||||
# If a .prg.obj rule is fired, nmake will execute this script with
|
||||
# a specific target as a parameter immediatley after compiling a given
|
||||
# set of prg files.
|
||||
# ie: Harbour $<
|
||||
# nmake /fmakefile.vc obj\vc\rtl.lib2
|
||||
# which will simply get make to re-evaluate the dependancy list for the
|
||||
# lib, and as a result, it will execute the C compiler using the .c.obj
|
||||
# rule below to create the obj's for the prg's that were created just
|
||||
# prior to the recurrsive call. Once the obj's are created, the
|
||||
# recurrsion is complete.
|
||||
# See additional notes under RTL.LIB below.
|
||||
#
|
||||
|
||||
MK_FILE = makefile.vc
|
||||
MK_FLAGS = $(MAKEFLAGS: =)
|
||||
|
||||
OBJ_DIR = ..\..\obj\vc
|
||||
LIB_DIR = ..\..\lib\vc
|
||||
BIN_DIR = ..\..\bin\vc
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
AS = masm
|
||||
CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\libmisc.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
.SUFFIXES: .prg .lib .c .obj .asm
|
||||
|
||||
# override builtin
|
||||
|
||||
.c.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
LIBLIST = \
|
||||
$(TOOLS_LIB) \
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj::
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
|
||||
$(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\dates2.obj \
|
||||
$(OBJ_DIR)\dbftools.obj \
|
||||
$(OBJ_DIR)\hb_f.obj \
|
||||
$(OBJ_DIR)\mathx.obj \
|
||||
$(OBJ_DIR)\strfmt.obj \
|
||||
$(OBJ_DIR)\stringsx.obj \
|
||||
\
|
||||
$(OBJ_DIR)\fileread.obj \
|
||||
$(OBJ_DIR)\nconvert.obj \
|
||||
$(OBJ_DIR)\numtxten.obj \
|
||||
$(OBJ_DIR)\numtxthu.obj \
|
||||
$(OBJ_DIR)\stringp.obj \
|
||||
$(OBJ_DIR)\twirler.obj
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
CLEAN:
|
||||
-@if exist $(OBJ_DIR)\dates2.obj del $(OBJ_DIR)\dates2.obj
|
||||
-@if exist $(OBJ_DIR)\dbftools.obj del $(OBJ_DIR)\dbftools.obj
|
||||
-@if exist $(OBJ_DIR)\hb_f.obj del $(OBJ_DIR)\hb_f.obj
|
||||
-@if exist $(OBJ_DIR)\mathx.obj del $(OBJ_DIR)\mathx.obj
|
||||
-@if exist $(OBJ_DIR)\strfmt.obj del $(OBJ_DIR)\strfmt.obj
|
||||
-@if exist $(OBJ_DIR)\stringsx.obj del $(OBJ_DIR)\stringsx.obj
|
||||
-@if exist $(OBJ_DIR)\fileread.* del $(OBJ_DIR)\fileread.*
|
||||
-@if exist $(OBJ_DIR)\nconvert.* del $(OBJ_DIR)\nconvert.*
|
||||
-@if exist $(OBJ_DIR)\numtxten.* del $(OBJ_DIR)\numtxten.*
|
||||
-@if exist $(OBJ_DIR)\numtxthu.* del $(OBJ_DIR)\numtxthu.*
|
||||
-@if exist $(OBJ_DIR)\stringp.* del $(OBJ_DIR)\stringp.*
|
||||
-@if exist $(OBJ_DIR)\twirler.* del $(OBJ_DIR)\twirler.*
|
||||
-@if exist $(TOOLS_LIB) del $(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
lib /out:$@ $**
|
||||
|
||||
# dummy targets used for prg to c creation
|
||||
|
||||
$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS)
|
||||
150
harbour/contrib/libnf/common.mak
Normal file
150
harbour/contrib/libnf/common.mak
Normal file
@@ -0,0 +1,150 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = nf
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\caplock.obj \
|
||||
$(OBJ_DIR)\color2n.obj \
|
||||
$(OBJ_DIR)\descend.obj \
|
||||
$(OBJ_DIR)\numlock.obj \
|
||||
$(OBJ_DIR)\proper.obj \
|
||||
$(OBJ_DIR)\shift.obj \
|
||||
$(OBJ_DIR)\mouse.obj \
|
||||
$(OBJ_DIR)\getvid.obj \
|
||||
$(OBJ_DIR)\setkeys.obj \
|
||||
$(OBJ_DIR)\setlastk.obj \
|
||||
$(OBJ_DIR)\ftisprn.obj \
|
||||
$(OBJ_DIR)\ftidle.obj \
|
||||
$(OBJ_DIR)\iamidle.obj \
|
||||
$(OBJ_DIR)\chdir.obj \
|
||||
$(OBJ_DIR)\rmdir.obj \
|
||||
$(OBJ_DIR)\alt.obj \
|
||||
$(OBJ_DIR)\ctrl.obj \
|
||||
$(OBJ_DIR)\getenvrn.obj \
|
||||
$(OBJ_DIR)\n2color.obj \
|
||||
$(OBJ_DIR)\origin.obj \
|
||||
$(OBJ_DIR)\prtscr.obj \
|
||||
$(OBJ_DIR)\stod.obj \
|
||||
$(OBJ_DIR)\kspeed.obj \
|
||||
$(OBJ_DIR)\mkdir.obj \
|
||||
$(OBJ_DIR)\getver.obj \
|
||||
$(OBJ_DIR)\ftattr.obj \
|
||||
$(OBJ_DIR)\dispc.obj \
|
||||
$(OBJ_DIR)\fttext.obj \
|
||||
$(OBJ_DIR)\ftshadow.obj \
|
||||
$(OBJ_DIR)\putkey.obj \
|
||||
\
|
||||
$(OBJ_DIR)\aading.obj \
|
||||
$(OBJ_DIR)\aavg.obj \
|
||||
$(OBJ_DIR)\acctadj.obj \
|
||||
$(OBJ_DIR)\acctmnth.obj \
|
||||
$(OBJ_DIR)\acctqtr.obj \
|
||||
$(OBJ_DIR)\acctweek.obj \
|
||||
$(OBJ_DIR)\acctyear.obj \
|
||||
$(OBJ_DIR)\adessort.obj \
|
||||
$(OBJ_DIR)\aemaxlen.obj \
|
||||
$(OBJ_DIR)\aeminlen.obj \
|
||||
$(OBJ_DIR)\amedian.obj \
|
||||
$(OBJ_DIR)\anomatch.obj \
|
||||
$(OBJ_DIR)\any2any.obj \
|
||||
$(OBJ_DIR)\aredit.obj \
|
||||
$(OBJ_DIR)\asum.obj \
|
||||
$(OBJ_DIR)\at2.obj \
|
||||
$(OBJ_DIR)\bitclr.obj \
|
||||
$(OBJ_DIR)\bitset.obj \
|
||||
$(OBJ_DIR)\blink.obj \
|
||||
$(OBJ_DIR)\byt2bit.obj \
|
||||
$(OBJ_DIR)\byt2hex.obj \
|
||||
$(OBJ_DIR)\byteand.obj \
|
||||
$(OBJ_DIR)\byteneg.obj \
|
||||
$(OBJ_DIR)\bytenot.obj \
|
||||
$(OBJ_DIR)\byteor.obj \
|
||||
$(OBJ_DIR)\bytexor.obj \
|
||||
$(OBJ_DIR)\calendar.obj \
|
||||
$(OBJ_DIR)\clrsel.obj \
|
||||
$(OBJ_DIR)\cntryset.obj \
|
||||
$(OBJ_DIR)\d2e.obj \
|
||||
$(OBJ_DIR)\datecnfg.obj \
|
||||
$(OBJ_DIR)\dayofyr.obj \
|
||||
$(OBJ_DIR)\daytobow.obj \
|
||||
$(OBJ_DIR)\dectobin.obj \
|
||||
$(OBJ_DIR)\diskfunc.obj \
|
||||
$(OBJ_DIR)\dispmsg.obj \
|
||||
$(OBJ_DIR)\dosver.obj \
|
||||
$(OBJ_DIR)\e2d.obj \
|
||||
$(OBJ_DIR)\easter.obj \
|
||||
$(OBJ_DIR)\elapmil.obj \
|
||||
$(OBJ_DIR)\elapsed.obj \
|
||||
$(OBJ_DIR)\eltime.obj \
|
||||
$(OBJ_DIR)\findith.obj \
|
||||
$(OBJ_DIR)\firstday.obj \
|
||||
$(OBJ_DIR)\gcd.obj \
|
||||
$(OBJ_DIR)\hex2dec.obj \
|
||||
$(OBJ_DIR)\invclr.obj \
|
||||
$(OBJ_DIR)\isbit.obj \
|
||||
$(OBJ_DIR)\isbiton.obj \
|
||||
$(OBJ_DIR)\isshare.obj \
|
||||
$(OBJ_DIR)\lastday.obj \
|
||||
$(OBJ_DIR)\linked.obj \
|
||||
$(OBJ_DIR)\madd.obj \
|
||||
$(OBJ_DIR)\menu1.obj \
|
||||
$(OBJ_DIR)\menuto.obj \
|
||||
$(OBJ_DIR)\metaph.obj \
|
||||
$(OBJ_DIR)\miltime.obj \
|
||||
$(OBJ_DIR)\min2dhm.obj \
|
||||
$(OBJ_DIR)\month.obj \
|
||||
$(OBJ_DIR)\mouse1.obj \
|
||||
$(OBJ_DIR)\netpv.obj \
|
||||
$(OBJ_DIR)\nooccur.obj \
|
||||
$(OBJ_DIR)\ntow.obj \
|
||||
$(OBJ_DIR)\nwlstat.obj \
|
||||
$(OBJ_DIR)\page.obj \
|
||||
$(OBJ_DIR)\pchr.obj \
|
||||
$(OBJ_DIR)\pegs.obj \
|
||||
$(OBJ_DIR)\pending.obj \
|
||||
$(OBJ_DIR)\pickday.obj \
|
||||
$(OBJ_DIR)\popadder.obj \
|
||||
$(OBJ_DIR)\prtesc.obj \
|
||||
$(OBJ_DIR)\pvid.obj \
|
||||
$(OBJ_DIR)\qtr.obj \
|
||||
$(OBJ_DIR)\rand1.obj \
|
||||
$(OBJ_DIR)\restsets.obj \
|
||||
$(OBJ_DIR)\ftround.obj \
|
||||
$(OBJ_DIR)\savearr.obj \
|
||||
$(OBJ_DIR)\savesets.obj \
|
||||
$(OBJ_DIR)\scregion.obj \
|
||||
$(OBJ_DIR)\sinkey.obj \
|
||||
$(OBJ_DIR)\sleep.obj \
|
||||
$(OBJ_DIR)\sqzn.obj \
|
||||
$(OBJ_DIR)\tbwhile.obj \
|
||||
$(OBJ_DIR)\tempfile.obj \
|
||||
$(OBJ_DIR)\vertmenu.obj \
|
||||
$(OBJ_DIR)\vidmode.obj \
|
||||
$(OBJ_DIR)\wda.obj \
|
||||
$(OBJ_DIR)\week.obj \
|
||||
$(OBJ_DIR)\workdays.obj \
|
||||
$(OBJ_DIR)\woy.obj \
|
||||
$(OBJ_DIR)\xbox.obj \
|
||||
$(OBJ_DIR)\year.obj
|
||||
|
||||
# $(OBJ_DIR)\sysmem.obj \
|
||||
# $(OBJ_DIR)\dfile.obj \
|
||||
# $(OBJ_DIR)\vidcur.obj \
|
||||
# $(OBJ_DIR)\scancode.obj \
|
||||
# $(OBJ_DIR)\setdate.obj \
|
||||
# $(OBJ_DIR)\settime.obj \
|
||||
# $(OBJ_DIR)\nwsem.obj \
|
||||
# $(OBJ_DIR)\nwuid.obj \
|
||||
|
||||
# $(OBJ_DIR)\floptst.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,27 +3,52 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\nf.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,21 +1,54 @@
|
||||
@echo off
|
||||
rem
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
nmake /f makefile.vc %1 %2 %3 > make_vc.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\vc\nf.lib ..\..\lib\*.* >nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
:CLEAN
|
||||
|
||||
notepad make_vc.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,970 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Nanfor Library for Borland C/C++ 3.x, 4.x, 5.x compilers
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
# HB_GT_LIB - To override the default GT driver
|
||||
# (search for HB_GT_LIBS for a list of values)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: "echo." intentionally used instead of "echo", to avoid conflicts
|
||||
# with external commands named echo.
|
||||
#
|
||||
|
||||
!if $d(B16)
|
||||
|
||||
CC = bcc
|
||||
AS = tasm /ml
|
||||
|
||||
# Borland C/C++ (DOS 16 bits)
|
||||
CFLAGS = -mh $(CFLAGS)
|
||||
|
||||
BIN_DIR = ..\..\bin\b16
|
||||
OBJ_DIR = ..\..\obj\b16
|
||||
LIB_DIR = ..\..\lib\b16
|
||||
|
||||
!else
|
||||
|
||||
CC = bcc32
|
||||
AS = tasm32
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
# This is needed, otherwise the libs may overflow when
|
||||
# debug info is requested with -v -y
|
||||
ARFLAGS = /P32
|
||||
|
||||
!endif
|
||||
|
||||
!if !$d(BCC_NOOPTIM)
|
||||
CFLAGS = -O2 $(CFLAGS)
|
||||
!endif
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
!if $d(B16)
|
||||
HARBOUR_EXE = ..\..\bin\b16\harbour.exe
|
||||
!else
|
||||
HARBOUR_EXE = ..\..\bin\b32\harbour.exe
|
||||
!endif
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
CFLAGS = -I$(INCLUDE_DIR) -d $(C_USR) $(CFLAGS) -DHB_LANG_DEFAULT=$(HB_LANG_DEFAULT)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -v $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
|
||||
NANFOR_LIB = $(LIB_DIR)\nf.lib
|
||||
NANFOR_LIB_OBJ = \
|
||||
$(OBJ_DIR)\aading.obj \
|
||||
$(OBJ_DIR)\aavg.obj \
|
||||
$(OBJ_DIR)\acctadj.obj \
|
||||
$(OBJ_DIR)\acctmnth.obj \
|
||||
$(OBJ_DIR)\acctqtr.obj \
|
||||
$(OBJ_DIR)\acctweek.obj \
|
||||
$(OBJ_DIR)\acctyear.obj \
|
||||
$(OBJ_DIR)\adessort.obj \
|
||||
$(OBJ_DIR)\aemaxlen.obj \
|
||||
$(OBJ_DIR)\aeminlen.obj \
|
||||
$(OBJ_DIR)\amedian.obj \
|
||||
$(OBJ_DIR)\anomatch.obj \
|
||||
$(OBJ_DIR)\any2any.obj \
|
||||
$(OBJ_DIR)\aredit.obj \
|
||||
$(OBJ_DIR)\asum.obj \
|
||||
$(OBJ_DIR)\at2.obj \
|
||||
$(OBJ_DIR)\bitclr.obj \
|
||||
$(OBJ_DIR)\bitset.obj \
|
||||
$(OBJ_DIR)\blink.obj \
|
||||
$(OBJ_DIR)\byt2bit.obj \
|
||||
$(OBJ_DIR)\byt2hex.obj \
|
||||
$(OBJ_DIR)\byteand.obj \
|
||||
$(OBJ_DIR)\byteneg.obj \
|
||||
$(OBJ_DIR)\bytenot.obj \
|
||||
$(OBJ_DIR)\byteor.obj \
|
||||
$(OBJ_DIR)\bytexor.obj \
|
||||
$(OBJ_DIR)\calendar.obj \
|
||||
$(OBJ_DIR)\clrsel.obj \
|
||||
$(OBJ_DIR)\cntryset.obj \
|
||||
$(OBJ_DIR)\d2e.obj \
|
||||
$(OBJ_DIR)\datecnfg.obj \
|
||||
$(OBJ_DIR)\dayofyr.obj \
|
||||
$(OBJ_DIR)\daytobow.obj \
|
||||
$(OBJ_DIR)\dectobin.obj \
|
||||
$(OBJ_DIR)\dfile.obj \
|
||||
$(OBJ_DIR)\diskfunc.obj \
|
||||
$(OBJ_DIR)\dispmsg.obj \
|
||||
$(OBJ_DIR)\dosver.obj \
|
||||
$(OBJ_DIR)\e2d.obj \
|
||||
$(OBJ_DIR)\easter.obj \
|
||||
$(OBJ_DIR)\elapmil.obj \
|
||||
$(OBJ_DIR)\elapsed.obj \
|
||||
$(OBJ_DIR)\eltime.obj \
|
||||
$(OBJ_DIR)\findith.obj \
|
||||
$(OBJ_DIR)\firstday.obj \
|
||||
$(OBJ_DIR)\gcd.obj \
|
||||
$(OBJ_DIR)\hex2dec.obj \
|
||||
$(OBJ_DIR)\invclr.obj \
|
||||
$(OBJ_DIR)\isbit.obj \
|
||||
$(OBJ_DIR)\isbiton.obj \
|
||||
$(OBJ_DIR)\isshare.obj \
|
||||
$(OBJ_DIR)\lastday.obj \
|
||||
$(OBJ_DIR)\linked.obj \
|
||||
$(OBJ_DIR)\madd.obj \
|
||||
$(OBJ_DIR)\menu1.obj \
|
||||
$(OBJ_DIR)\menuto.obj \
|
||||
$(OBJ_DIR)\metaph.obj \
|
||||
$(OBJ_DIR)\miltime.obj \
|
||||
$(OBJ_DIR)\min2dhm.obj \
|
||||
$(OBJ_DIR)\month.obj \
|
||||
$(OBJ_DIR)\mouse1.obj \
|
||||
$(OBJ_DIR)\netpv.obj \
|
||||
$(OBJ_DIR)\nooccur.obj \
|
||||
$(OBJ_DIR)\ntow.obj \
|
||||
$(OBJ_DIR)\nwlstat.obj \
|
||||
$(OBJ_DIR)\pchr.obj \
|
||||
$(OBJ_DIR)\pegs.obj \
|
||||
$(OBJ_DIR)\pending.obj \
|
||||
$(OBJ_DIR)\pickday.obj \
|
||||
$(OBJ_DIR)\popadder.obj \
|
||||
$(OBJ_DIR)\prtesc.obj \
|
||||
$(OBJ_DIR)\pvid.obj \
|
||||
$(OBJ_DIR)\qtr.obj \
|
||||
$(OBJ_DIR)\rand1.obj \
|
||||
$(OBJ_DIR)\restsets.obj \
|
||||
$(OBJ_DIR)\ftround.obj \
|
||||
$(OBJ_DIR)\savearr.obj \
|
||||
$(OBJ_DIR)\savesets.obj \
|
||||
$(OBJ_DIR)\scregion.obj \
|
||||
$(OBJ_DIR)\sinkey.obj \
|
||||
$(OBJ_DIR)\sleep.obj \
|
||||
$(OBJ_DIR)\sqzn.obj \
|
||||
$(OBJ_DIR)\tbwhile.obj \
|
||||
$(OBJ_DIR)\vertmenu.obj \
|
||||
$(OBJ_DIR)\wda.obj \
|
||||
$(OBJ_DIR)\week.obj \
|
||||
$(OBJ_DIR)\workdays.obj \
|
||||
$(OBJ_DIR)\woy.obj \
|
||||
$(OBJ_DIR)\xbox.obj \
|
||||
$(OBJ_DIR)\year.obj \
|
||||
$(OBJ_DIR)\vidmode.obj \
|
||||
$(OBJ_DIR)\page.obj \
|
||||
$(OBJ_DIR)\tempfile.obj \
|
||||
\
|
||||
$(OBJ_DIR)\caplock.obj \
|
||||
$(OBJ_DIR)\color2n.obj \
|
||||
$(OBJ_DIR)\descend.obj \
|
||||
$(OBJ_DIR)\numlock.obj \
|
||||
$(OBJ_DIR)\proper.obj \
|
||||
$(OBJ_DIR)\shift.obj \
|
||||
$(OBJ_DIR)\mouse.obj \
|
||||
$(OBJ_DIR)\getvid.obj \
|
||||
$(OBJ_DIR)\chdir.obj \
|
||||
$(OBJ_DIR)\rmdir.obj \
|
||||
$(OBJ_DIR)\alt.obj \
|
||||
$(OBJ_DIR)\ctrl.obj \
|
||||
$(OBJ_DIR)\getenvrn.obj \
|
||||
$(OBJ_DIR)\n2color.obj \
|
||||
$(OBJ_DIR)\origin.obj \
|
||||
$(OBJ_DIR)\prtscr.obj \
|
||||
$(OBJ_DIR)\stod.obj \
|
||||
$(OBJ_DIR)\kspeed.obj \
|
||||
$(OBJ_DIR)\mkdir.obj \
|
||||
$(OBJ_DIR)\getver.obj \
|
||||
$(OBJ_DIR)\ftattr.obj \
|
||||
$(OBJ_DIR)\dispc.obj \
|
||||
$(OBJ_DIR)\setkeys.obj \
|
||||
$(OBJ_DIR)\setlastk.obj \
|
||||
$(OBJ_DIR)\iamidle.obj \
|
||||
$(OBJ_DIR)\ftidle.obj \
|
||||
$(OBJ_DIR)\ftisprn.obj \
|
||||
$(OBJ_DIR)\fttext.obj \
|
||||
$(OBJ_DIR)\ftshadow.obj \
|
||||
$(OBJ_DIR)\putkey.obj
|
||||
|
||||
|
||||
# $(OBJ_DIR)\sysmem.obj \
|
||||
# $(OBJ_DIR)\vidcur.obj \
|
||||
# $(OBJ_DIR)\scancode.obj \
|
||||
# $(OBJ_DIR)\setdate.obj \
|
||||
# $(OBJ_DIR)\settime.obj \
|
||||
# $(OBJ_DIR)\nwsem.obj \
|
||||
# $(OBJ_DIR)\nwuid.obj \
|
||||
|
||||
# $(OBJ_DIR)\floptst.obj \
|
||||
|
||||
|
||||
all: \
|
||||
$(NANFOR_LIB)
|
||||
|
||||
$(NANFOR_LIB) : $(NANFOR_LIB_OBJ)
|
||||
|
||||
$(OBJ_DIR)\isbiton.c : isbiton.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\isbiton.obj : $(OBJ_DIR)\isbiton.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\mouse1.c : mouse1.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\acctadj.c : acctadj.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\aeminlen.c : aeminlen.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\lastday.c : lastday.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\restsets.c : restsets.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\acctyear.c : acctyear.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\datecnfg.c : datecnfg.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\adessort.c : adessort.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\anomatch.c : anomatch.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\any2any.c : any2any.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\asum.c : asum.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\bitclr.c : bitclr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\bitset.c : bitset.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\tbwhile.c : tbwhile.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\blink.c : blink.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\byt2bit.c : byt2bit.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\byt2hex.c : byt2hex.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\byteand.c : byteand.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\byteneg.c : byteneg.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\byteor.c : byteor.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\daytobow.c : daytobow.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\clrsel.c : clrsel.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\cntryset.c : cntryset.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\elapsed.c : elapsed.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\woy.c : woy.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\dectobin.c : dectobin.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\hex2dec.c : hex2dec.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\e2d.c : e2d.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\vidcur.c : vidcur.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\elapmil.c : elapmil.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\dosver.c : dosver.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\findith.c : findith.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\firstday.c : firstday.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\gcd.c : gcd.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\min2dhm.c : min2dhm.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\invclr.c : invclr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\isbit.c : isbit.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\isshare.c : isshare.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\popadder.c : popadder.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\menuto.c : menuto.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\month.c : month.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\metaph.c : metaph.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\miltime.c : miltime.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\netpv.c : netpv.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\nooccur.c : nooccur.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\nwuid.c : nwuid.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\sysmem.c : sysmem.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\pickday.c : pickday.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\prtesc.c : prtesc.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\week.c : week.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\rand1.c : rand1.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\scancode.c : scancode.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\wda.c : wda.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\setdate.c : setdate.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\sqzn.c : sqzn.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\menu1.c : menu1.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\vertmenu.c : vertmenu.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\aavg.c : aavg.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\acctweek.c : acctweek.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\bytenot.c : bytenot.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\pchr.c : pchr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\d2e.c : d2e.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\xbox.c : xbox.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\acctqtr.c : acctqtr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\savesets.c : savesets.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\dayofyr.c : dayofyr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\dispmsg.c : dispmsg.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\page.c : page.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\pending.c : pending.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\amedian.c : amedian.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\calendar.c : calendar.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\year.c : year.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\easter.c : easter.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\ftround.c : ftround.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\aemaxlen.c : aemaxlen.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\aading.c : aading.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\qtr.c : qtr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\madd.c : madd.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\scregion.c : scregion.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\linked.c : linked.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\sleep.c : sleep.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\ntow.c : ntow.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\aredit.c : aredit.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\at2.c : at2.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\nwlstat.c : nwlstat.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\tempfile.c : tempfile.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\settime.c : settime.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\sinkey.c : sinkey.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\vidmode.c : vidmode.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\eltime.c : eltime.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\nwsem.c : nwsem.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\diskfunc.c : diskfunc.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\pvid.c : pvid.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\bytexor.c : bytexor.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\dfile.c : dfile.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
$(OBJ_DIR)\acctmnth.c : acctmnth.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\pegs.c : pegs.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\workdays.c : workdays.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
$(OBJ_DIR)\savearr.c : savearr.prg
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
#$(OBJ_DIR)\floptst.c : floptst.prg
|
||||
# $(HARBOUR_EXE) $(HARBOURFLAGS) $** -o$@
|
||||
|
||||
|
||||
|
||||
$(OBJ_DIR)\mouse1.obj : $(OBJ_DIR)\mouse1.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\acctadj.obj : $(OBJ_DIR)\acctadj.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\aeminlen.obj : $(OBJ_DIR)\aeminlen.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\lastday.obj : $(OBJ_DIR)\lastday.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\restsets.obj : $(OBJ_DIR)\restsets.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\acctyear.obj : $(OBJ_DIR)\acctyear.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\datecnfg.obj : $(OBJ_DIR)\datecnfg.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\adessort.obj : $(OBJ_DIR)\adessort.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\anomatch.obj : $(OBJ_DIR)\anomatch.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\any2any.obj : $(OBJ_DIR)\any2any.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\asum.obj : $(OBJ_DIR)\asum.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\bitclr.obj : $(OBJ_DIR)\bitclr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\bitset.obj : $(OBJ_DIR)\bitset.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\tbwhile.obj : $(OBJ_DIR)\tbwhile.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\blink.obj : $(OBJ_DIR)\blink.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\byt2bit.obj : $(OBJ_DIR)\byt2bit.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\byt2hex.obj : $(OBJ_DIR)\byt2hex.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\byteand.obj : $(OBJ_DIR)\byteand.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\byteneg.obj : $(OBJ_DIR)\byteneg.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\byteor.obj : $(OBJ_DIR)\byteor.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\daytobow.obj : $(OBJ_DIR)\daytobow.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\clrsel.obj : $(OBJ_DIR)\clrsel.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
|
||||
$(OBJ_DIR)\cntryset.obj : $(OBJ_DIR)\cntryset.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\elapsed.obj : $(OBJ_DIR)\elapsed.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\woy.obj : $(OBJ_DIR)\woy.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dectobin.obj : $(OBJ_DIR)\dectobin.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\hex2dec.obj : $(OBJ_DIR)\hex2dec.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\e2d.obj : $(OBJ_DIR)\e2d.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\vidcur.obj : $(OBJ_DIR)\vidcur.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\elapmil.obj : $(OBJ_DIR)\elapmil.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dosver.obj : $(OBJ_DIR)\dosver.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\findith.obj : $(OBJ_DIR)\findith.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\firstday.obj : $(OBJ_DIR)\firstday.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\gcd.obj : $(OBJ_DIR)\gcd.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\min2dhm.obj : $(OBJ_DIR)\min2dhm.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\invclr.obj : $(OBJ_DIR)\invclr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\isbit.obj : $(OBJ_DIR)\isbit.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\isshare.obj : $(OBJ_DIR)\isshare.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\popadder.obj : $(OBJ_DIR)\popadder.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\menuto.obj : $(OBJ_DIR)\menuto.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\month.obj : $(OBJ_DIR)\month.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\metaph.obj : $(OBJ_DIR)\metaph.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\miltime.obj : $(OBJ_DIR)\miltime.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\netpv.obj : $(OBJ_DIR)\netpv.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\nooccur.obj : $(OBJ_DIR)\nooccur.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\nwuid.obj : $(OBJ_DIR)\nwuid.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\sysmem.obj : $(OBJ_DIR)\sysmem.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pickday.obj : $(OBJ_DIR)\pickday.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\prtesc.obj : $(OBJ_DIR)\prtesc.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\week.obj : $(OBJ_DIR)\week.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\rand1.obj : $(OBJ_DIR)\rand1.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\scancode.obj : $(OBJ_DIR)\scancode.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\wda.obj : $(OBJ_DIR)\wda.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\setdate.obj : $(OBJ_DIR)\setdate.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\sqzn.obj : $(OBJ_DIR)\sqzn.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\menu1.obj : $(OBJ_DIR)\menu1.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\vertmenu.obj : $(OBJ_DIR)\vertmenu.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\aavg.obj : $(OBJ_DIR)\aavg.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\acctweek.obj : $(OBJ_DIR)\acctweek.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\bytenot.obj : $(OBJ_DIR)\bytenot.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pchr.obj : $(OBJ_DIR)\pchr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\d2e.obj : $(OBJ_DIR)\d2e.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\xbox.obj : $(OBJ_DIR)\xbox.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\acctqtr.obj : $(OBJ_DIR)\acctqtr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\savesets.obj : $(OBJ_DIR)\savesets.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dayofyr.obj : $(OBJ_DIR)\dayofyr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dispmsg.obj : $(OBJ_DIR)\dispmsg.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\page.obj : $(OBJ_DIR)\page.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pending.obj : $(OBJ_DIR)\pending.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\amedian.obj : $(OBJ_DIR)\amedian.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\calendar.obj : $(OBJ_DIR)\calendar.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\year.obj : $(OBJ_DIR)\year.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\easter.obj : $(OBJ_DIR)\easter.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ftround.obj : $(OBJ_DIR)\ftround.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\aemaxlen.obj : $(OBJ_DIR)\aemaxlen.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\aading.obj : $(OBJ_DIR)\aading.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\qtr.obj : $(OBJ_DIR)\qtr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\madd.obj : $(OBJ_DIR)\madd.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\scregion.obj : $(OBJ_DIR)\scregion.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\linked.obj : $(OBJ_DIR)\linked.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\sleep.obj : $(OBJ_DIR)\sleep.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ntow.obj : $(OBJ_DIR)\ntow.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\aredit.obj : $(OBJ_DIR)\aredit.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\at2.obj : $(OBJ_DIR)\at2.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\nwlstat.obj : $(OBJ_DIR)\nwlstat.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\tempfile.obj : $(OBJ_DIR)\tempfile.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\settime.obj : $(OBJ_DIR)\settime.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\sinkey.obj : $(OBJ_DIR)\sinkey.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\vidmode.obj : $(OBJ_DIR)\vidmode.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\eltime.obj : $(OBJ_DIR)\eltime.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\nwsem.obj : $(OBJ_DIR)\nwsem.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\diskfunc.obj : $(OBJ_DIR)\diskfunc.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pvid.obj : $(OBJ_DIR)\pvid.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\bytexor.obj : $(OBJ_DIR)\bytexor.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dfile.obj : $(OBJ_DIR)\dfile.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\acctmnth.obj : $(OBJ_DIR)\acctmnth.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\pegs.obj : $(OBJ_DIR)\pegs.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\workdays.obj : $(OBJ_DIR)\workdays.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\savearr.obj : $(OBJ_DIR)\savearr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
#$(OBJ_DIR)\floptst.obj : $(OBJ_DIR)\floptst.c
|
||||
# $(CC) $(CLIBFLAGS) -o$@ $**
|
||||
# tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\caplock.obj : caplock.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\shift.obj : shift.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\color2n.obj : color2n.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\descend.obj : descend.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
$(OBJ_DIR)\numlock.obj : numlock.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
$(OBJ_DIR)\proper.obj : proper.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\mouse.obj : mouse.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\getvid.obj : getvid.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\chdir.obj : chdir.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\rmdir.obj : rmdir.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\alt.obj : alt.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ctrl.obj : ctrl.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\getenvrn.obj : getenvrn.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\n2color.obj : n2color.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\origin.obj : origin.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\prtscr.obj : prtscr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\stod.obj : stod.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\kspeed.obj : kspeed.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\mkdir.obj : mkdir.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\getver.obj : getver.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\setkeys.obj : setkeys.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\setlastk.obj : setlastk.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ftisprn.obj : ftisprn.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ftidle.obj : ftidle.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\iamidle.obj : iamidle.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\dispc.obj : dispc.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ftattr.obj : ftattr.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\fttext.obj : fttext.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\ftshadow.obj : ftshadow.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
|
||||
$(OBJ_DIR)\putkey.obj : putkey.c
|
||||
$(CC) $(CLIBFLAGS) -o$@ $**
|
||||
tlib $(NANFOR_LIB) $(ARFLAGS) -+$@,,
|
||||
@@ -1,391 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
#
|
||||
# Makefile for Harbour Project for Microsoft Visual C (32 bits)
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: You can use these envvars to configure the make process:
|
||||
# (note that these are all optional)
|
||||
#
|
||||
# CFLAGS - Extra C compiler options for libraries and for
|
||||
# executables
|
||||
# C_USR - Extra C compiler options for libraries and for
|
||||
# executables (GNU make compatible envvar)
|
||||
# CLIBFLAGS - Extra C compiler options for the libraries
|
||||
# HARBOURFLAGS - Extra Harbour compiler options
|
||||
# PRG_USR - Extra Harbour compiler options
|
||||
# (GNU make compatible envvar)
|
||||
#
|
||||
|
||||
#
|
||||
# Notes about this makefile:
|
||||
#
|
||||
# 1. To add new files to a dependancy list, add an obj name to one of the
|
||||
# OBJ lists for the appropriate library.
|
||||
# NOTE: put .prg related obj's last in the lib list.
|
||||
#
|
||||
# 2. This is a recursive script. If you change the name of this file,
|
||||
# be sure to change MK_FILE (a few lines down) to the new name as well.
|
||||
#
|
||||
# 3. Recurrsion rules are quite simple:
|
||||
# If you specifiy /a on the command line, files in the obj\vc dir
|
||||
# will be deleted, and when nmake recurses, it's without the /a flag
|
||||
#
|
||||
# If a .prg.obj rule is fired, nmake will execute this script with
|
||||
# a specific target as a parameter immediatley after compiling a given
|
||||
# set of prg files.
|
||||
# ie: Harbour $<
|
||||
# nmake /fmakefile.vc obj\vc\rtl.lib2
|
||||
# which will simply get make to re-evaluate the dependancy list for the
|
||||
# lib, and as a result, it will execute the C compiler using the .c.obj
|
||||
# rule below to create the obj's for the prg's that were created just
|
||||
# prior to the recurrsive call. Once the obj's are created, the
|
||||
# recurrsion is complete.
|
||||
# See additional notes under RTL.LIB below.
|
||||
#
|
||||
|
||||
MK_FILE = makefile.vc
|
||||
MK_FLAGS = $(MAKEFLAGS: =)
|
||||
|
||||
OBJ_DIR = ..\..\obj\vc
|
||||
LIB_DIR = ..\..\lib\vc
|
||||
BIN_DIR = ..\..\bin
|
||||
|
||||
#
|
||||
# Directory macros. These should never have to change.
|
||||
#
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
TOOLS_DIR = .
|
||||
|
||||
#
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
#
|
||||
|
||||
AS = masm
|
||||
CFLAGS = -I$(INCLUDE_DIR) -W3 -nologo $(C_USR) $(CFLAGS)
|
||||
CLIBFLAGS = -c $(CFLAGS) $(CLIBFLAGS)
|
||||
CLIBFLAGSDEBUG = -Zi $(CLIBFLAGS)
|
||||
HARBOURFLAGS = -i$(INCLUDE_DIR) -n -q0 -w2 -es2 -gc0 $(PRG_USR) $(HARBOURFLAGS)
|
||||
LDFLAGS = $(LDFLAGS)
|
||||
|
||||
#
|
||||
# Macros to access our library names
|
||||
#
|
||||
|
||||
TOOLS_LIB = $(LIB_DIR)\nf.lib
|
||||
|
||||
HARBOUR_EXE = $(BIN_DIR)\harbour.exe
|
||||
|
||||
#
|
||||
# Rules
|
||||
#
|
||||
|
||||
.SUFFIXES: .prg .lib .c .obj .asm
|
||||
|
||||
# override builtin
|
||||
|
||||
.c.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
#
|
||||
#
|
||||
#
|
||||
|
||||
LIBLIST = \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# TOOLS.LIB rules
|
||||
#
|
||||
|
||||
{$(TOOLS_DIR)}.c{$(OBJ_DIR)}.obj::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
|
||||
{$(TOOLS_DIR)}.prg{$(OBJ_DIR)}.obj::
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
|
||||
$(MAKE) -nologo /$(MK_FLAGS) /f$(MK_FILE) $(TOOLS_LIB)2
|
||||
|
||||
TOOLS_LIB_OBJS = \
|
||||
$(OBJ_DIR)\caplock.obj \
|
||||
$(OBJ_DIR)\color2n.obj \
|
||||
$(OBJ_DIR)\descend.obj \
|
||||
$(OBJ_DIR)\numlock.obj \
|
||||
$(OBJ_DIR)\proper.obj \
|
||||
$(OBJ_DIR)\shift.obj \
|
||||
$(OBJ_DIR)\mouse.obj \
|
||||
$(OBJ_DIR)\getvid.obj \
|
||||
$(OBJ_DIR)\setkeys.obj \
|
||||
$(OBJ_DIR)\setlastk.obj \
|
||||
$(OBJ_DIR)\ftisprn.obj \
|
||||
$(OBJ_DIR)\ftidle.obj \
|
||||
$(OBJ_DIR)\iamidle.obj \
|
||||
$(OBJ_DIR)\chdir.obj \
|
||||
$(OBJ_DIR)\rmdir.obj \
|
||||
$(OBJ_DIR)\alt.obj \
|
||||
$(OBJ_DIR)\ctrl.obj \
|
||||
$(OBJ_DIR)\getenvrn.obj \
|
||||
$(OBJ_DIR)\n2color.obj \
|
||||
$(OBJ_DIR)\origin.obj \
|
||||
$(OBJ_DIR)\prtscr.obj \
|
||||
$(OBJ_DIR)\stod.obj \
|
||||
$(OBJ_DIR)\kspeed.obj \
|
||||
$(OBJ_DIR)\mkdir.obj \
|
||||
$(OBJ_DIR)\getver.obj \
|
||||
$(OBJ_DIR)\ftattr.obj \
|
||||
$(OBJ_DIR)\dispc.obj \
|
||||
$(OBJ_DIR)\fttext.obj \
|
||||
$(OBJ_DIR)\ftshadow.obj \
|
||||
$(OBJ_DIR)\putkey.obj \
|
||||
\
|
||||
$(OBJ_DIR)\aading.obj \
|
||||
$(OBJ_DIR)\aavg.obj \
|
||||
$(OBJ_DIR)\acctadj.obj \
|
||||
$(OBJ_DIR)\acctmnth.obj \
|
||||
$(OBJ_DIR)\acctqtr.obj \
|
||||
$(OBJ_DIR)\acctweek.obj \
|
||||
$(OBJ_DIR)\acctyear.obj \
|
||||
$(OBJ_DIR)\adessort.obj \
|
||||
$(OBJ_DIR)\aemaxlen.obj \
|
||||
$(OBJ_DIR)\aeminlen.obj \
|
||||
$(OBJ_DIR)\amedian.obj \
|
||||
$(OBJ_DIR)\anomatch.obj \
|
||||
$(OBJ_DIR)\any2any.obj \
|
||||
$(OBJ_DIR)\aredit.obj \
|
||||
$(OBJ_DIR)\asum.obj \
|
||||
$(OBJ_DIR)\at2.obj \
|
||||
$(OBJ_DIR)\bitclr.obj \
|
||||
$(OBJ_DIR)\bitset.obj \
|
||||
$(OBJ_DIR)\blink.obj \
|
||||
$(OBJ_DIR)\byt2bit.obj \
|
||||
$(OBJ_DIR)\byt2hex.obj \
|
||||
$(OBJ_DIR)\byteand.obj \
|
||||
$(OBJ_DIR)\byteneg.obj \
|
||||
$(OBJ_DIR)\bytenot.obj \
|
||||
$(OBJ_DIR)\byteor.obj \
|
||||
$(OBJ_DIR)\bytexor.obj \
|
||||
$(OBJ_DIR)\calendar.obj \
|
||||
$(OBJ_DIR)\clrsel.obj \
|
||||
$(OBJ_DIR)\cntryset.obj \
|
||||
$(OBJ_DIR)\d2e.obj \
|
||||
$(OBJ_DIR)\datecnfg.obj \
|
||||
$(OBJ_DIR)\dayofyr.obj \
|
||||
$(OBJ_DIR)\daytobow.obj \
|
||||
$(OBJ_DIR)\dectobin.obj \
|
||||
$(OBJ_DIR)\diskfunc.obj \
|
||||
$(OBJ_DIR)\dispmsg.obj \
|
||||
$(OBJ_DIR)\dosver.obj \
|
||||
$(OBJ_DIR)\e2d.obj \
|
||||
$(OBJ_DIR)\easter.obj \
|
||||
$(OBJ_DIR)\elapmil.obj \
|
||||
$(OBJ_DIR)\elapsed.obj \
|
||||
$(OBJ_DIR)\eltime.obj \
|
||||
$(OBJ_DIR)\findith.obj \
|
||||
$(OBJ_DIR)\firstday.obj \
|
||||
$(OBJ_DIR)\gcd.obj \
|
||||
$(OBJ_DIR)\hex2dec.obj \
|
||||
$(OBJ_DIR)\invclr.obj \
|
||||
$(OBJ_DIR)\isbit.obj \
|
||||
$(OBJ_DIR)\isbiton.obj \
|
||||
$(OBJ_DIR)\isshare.obj \
|
||||
$(OBJ_DIR)\lastday.obj \
|
||||
$(OBJ_DIR)\linked.obj \
|
||||
$(OBJ_DIR)\madd.obj \
|
||||
$(OBJ_DIR)\menu1.obj \
|
||||
$(OBJ_DIR)\menuto.obj \
|
||||
$(OBJ_DIR)\metaph.obj \
|
||||
$(OBJ_DIR)\miltime.obj \
|
||||
$(OBJ_DIR)\min2dhm.obj \
|
||||
$(OBJ_DIR)\month.obj \
|
||||
$(OBJ_DIR)\mouse1.obj \
|
||||
$(OBJ_DIR)\netpv.obj \
|
||||
$(OBJ_DIR)\nooccur.obj \
|
||||
$(OBJ_DIR)\ntow.obj \
|
||||
$(OBJ_DIR)\nwlstat.obj \
|
||||
$(OBJ_DIR)\page.obj \
|
||||
$(OBJ_DIR)\pchr.obj \
|
||||
$(OBJ_DIR)\pegs.obj \
|
||||
$(OBJ_DIR)\pending.obj \
|
||||
$(OBJ_DIR)\pickday.obj \
|
||||
$(OBJ_DIR)\popadder.obj \
|
||||
$(OBJ_DIR)\prtesc.obj \
|
||||
$(OBJ_DIR)\pvid.obj \
|
||||
$(OBJ_DIR)\qtr.obj \
|
||||
$(OBJ_DIR)\rand1.obj \
|
||||
$(OBJ_DIR)\restsets.obj \
|
||||
$(OBJ_DIR)\ftround.obj \
|
||||
$(OBJ_DIR)\savearr.obj \
|
||||
$(OBJ_DIR)\savesets.obj \
|
||||
$(OBJ_DIR)\scregion.obj \
|
||||
$(OBJ_DIR)\sinkey.obj \
|
||||
$(OBJ_DIR)\sleep.obj \
|
||||
$(OBJ_DIR)\sqzn.obj \
|
||||
$(OBJ_DIR)\tbwhile.obj \
|
||||
$(OBJ_DIR)\tempfile.obj \
|
||||
$(OBJ_DIR)\vertmenu.obj \
|
||||
$(OBJ_DIR)\vidmode.obj \
|
||||
$(OBJ_DIR)\wda.obj \
|
||||
$(OBJ_DIR)\week.obj \
|
||||
$(OBJ_DIR)\workdays.obj \
|
||||
$(OBJ_DIR)\woy.obj \
|
||||
$(OBJ_DIR)\xbox.obj \
|
||||
$(OBJ_DIR)\year.obj
|
||||
|
||||
|
||||
# $(OBJ_DIR)\sysmem.obj \
|
||||
# $(OBJ_DIR)\dfile.obj \
|
||||
# $(OBJ_DIR)\vidcur.obj \
|
||||
# $(OBJ_DIR)\scancode.obj \
|
||||
# $(OBJ_DIR)\setdate.obj \
|
||||
# $(OBJ_DIR)\settime.obj \
|
||||
# $(OBJ_DIR)\nwsem.obj \
|
||||
# $(OBJ_DIR)\nwuid.obj \
|
||||
|
||||
# $(OBJ_DIR)\floptst.obj
|
||||
|
||||
#
|
||||
# Our default target
|
||||
#
|
||||
|
||||
|
||||
all: \
|
||||
$(TOOLS_LIB)
|
||||
|
||||
CLEAN:
|
||||
-@if exist $(OBJ_DIR)\caplock.obj del $(OBJ_DIR)\caplock.obj
|
||||
-@if exist $(OBJ_DIR)\color2n.obj del $(OBJ_DIR)\color2n.obj
|
||||
-@if exist $(OBJ_DIR)\descend.obj del $(OBJ_DIR)\descend.obj
|
||||
-@if exist $(OBJ_DIR)\numlock.obj del $(OBJ_DIR)\numlock.obj
|
||||
-@if exist $(OBJ_DIR)\proper.obj del $(OBJ_DIR)\proper.obj
|
||||
-@if exist $(OBJ_DIR)\shift.obj del $(OBJ_DIR)\shift.obj
|
||||
-@if exist $(OBJ_DIR)\mouse.obj del $(OBJ_DIR)\mouse.obj
|
||||
-@if exist $(OBJ_DIR)\getvid.obj del $(OBJ_DIR)\getvid.obj
|
||||
-@if exist $(OBJ_DIR)\setkeys.obj del $(OBJ_DIR)\setkeys.obj
|
||||
-@if exist $(OBJ_DIR)\setlastk.obj del $(OBJ_DIR)\setlastk.obj
|
||||
-@if exist $(OBJ_DIR)\ftisprn.obj del $(OBJ_DIR)\ftisprn.obj
|
||||
-@if exist $(OBJ_DIR)\ftidle.obj del $(OBJ_DIR)\ftidle.obj
|
||||
-@if exist $(OBJ_DIR)\iamidle.obj del $(OBJ_DIR)\iamidle.obj
|
||||
-@if exist $(OBJ_DIR)\chdir.obj del $(OBJ_DIR)\chdir.obj
|
||||
-@if exist $(OBJ_DIR)\rmdir.obj del $(OBJ_DIR)\rmdir.obj
|
||||
-@if exist $(OBJ_DIR)\alt.obj del $(OBJ_DIR)\alt.obj
|
||||
-@if exist $(OBJ_DIR)\ctrl.obj del $(OBJ_DIR)\ctrl.obj
|
||||
-@if exist $(OBJ_DIR)\getenvrn.obj del $(OBJ_DIR)\getenvrn.obj
|
||||
-@if exist $(OBJ_DIR)\n2color.obj del $(OBJ_DIR)\n2color.obj
|
||||
-@if exist $(OBJ_DIR)\origin.obj del $(OBJ_DIR)\origin.obj
|
||||
-@if exist $(OBJ_DIR)\prtscr.obj del $(OBJ_DIR)\prtscr.obj
|
||||
-@if exist $(OBJ_DIR)\stod.obj del $(OBJ_DIR)\stod.obj
|
||||
-@if exist $(OBJ_DIR)\kspeed.obj del $(OBJ_DIR)\kspeed.obj
|
||||
-@if exist $(OBJ_DIR)\mkdir.obj del $(OBJ_DIR)\mkdir.obj
|
||||
-@if exist $(OBJ_DIR)\getver.obj del $(OBJ_DIR)\getver.obj
|
||||
-@if exist $(OBJ_DIR)\ftattr.obj del $(OBJ_DIR)\ftattr.obj
|
||||
-@if exist $(OBJ_DIR)\dispc.obj del $(OBJ_DIR)\dispc.obj
|
||||
-@if exist $(OBJ_DIR)\fttext.obj del $(OBJ_DIR)\fttext.obj
|
||||
-@if exist $(OBJ_DIR)\ftshadow.obj del $(OBJ_DIR)\ftshadow.obj
|
||||
-@if exist $(OBJ_DIR)\putkey.obj del $(OBJ_DIR)\putkey.obj
|
||||
-@if exist $(OBJ_DIR)\aading.* del $(OBJ_DIR)\aading.*
|
||||
-@if exist $(OBJ_DIR)\aavg.* del $(OBJ_DIR)\aavg.*
|
||||
-@if exist $(OBJ_DIR)\acctadj.* del $(OBJ_DIR)\acctadj.*
|
||||
-@if exist $(OBJ_DIR)\acctmnth.* del $(OBJ_DIR)\acctmnth.*
|
||||
-@if exist $(OBJ_DIR)\acctqtr.* del $(OBJ_DIR)\acctqtr.*
|
||||
-@if exist $(OBJ_DIR)\acctweek.* del $(OBJ_DIR)\acctweek.*
|
||||
-@if exist $(OBJ_DIR)\acctyear.* del $(OBJ_DIR)\acctyear.*
|
||||
-@if exist $(OBJ_DIR)\adessort.* del $(OBJ_DIR)\adessort.*
|
||||
-@if exist $(OBJ_DIR)\aemaxlen.* del $(OBJ_DIR)\aemaxlen.*
|
||||
-@if exist $(OBJ_DIR)\aeminlen.* del $(OBJ_DIR)\aeminlen.*
|
||||
-@if exist $(OBJ_DIR)\amedian.* del $(OBJ_DIR)\amedian.*
|
||||
-@if exist $(OBJ_DIR)\anomatch.* del $(OBJ_DIR)\anomatch.*
|
||||
-@if exist $(OBJ_DIR)\any2any.* del $(OBJ_DIR)\any2any.*
|
||||
-@if exist $(OBJ_DIR)\aredit.* del $(OBJ_DIR)\aredit.*
|
||||
-@if exist $(OBJ_DIR)\asum.* del $(OBJ_DIR)\asum.*
|
||||
-@if exist $(OBJ_DIR)\at2.* del $(OBJ_DIR)\at2.*
|
||||
-@if exist $(OBJ_DIR)\bitclr.* del $(OBJ_DIR)\bitclr.*
|
||||
-@if exist $(OBJ_DIR)\bitset.* del $(OBJ_DIR)\bitset.*
|
||||
-@if exist $(OBJ_DIR)\blink.* del $(OBJ_DIR)\blink.*
|
||||
-@if exist $(OBJ_DIR)\byt2bit.* del $(OBJ_DIR)\byt2bit.*
|
||||
-@if exist $(OBJ_DIR)\byt2hex.* del $(OBJ_DIR)\byt2hex.*
|
||||
-@if exist $(OBJ_DIR)\byteand.* del $(OBJ_DIR)\byteand.*
|
||||
-@if exist $(OBJ_DIR)\byteneg.* del $(OBJ_DIR)\byteneg.*
|
||||
-@if exist $(OBJ_DIR)\bytenot.* del $(OBJ_DIR)\bytenot.*
|
||||
-@if exist $(OBJ_DIR)\byteor.* del $(OBJ_DIR)\byteor.*
|
||||
-@if exist $(OBJ_DIR)\bytexor.* del $(OBJ_DIR)\bytexor.*
|
||||
-@if exist $(OBJ_DIR)\calendar.* del $(OBJ_DIR)\calendar.*
|
||||
-@if exist $(OBJ_DIR)\clrsel.* del $(OBJ_DIR)\clrsel.*
|
||||
-@if exist $(OBJ_DIR)\cntryset.* del $(OBJ_DIR)\cntryset.*
|
||||
-@if exist $(OBJ_DIR)\d2e.* del $(OBJ_DIR)\d2e.*
|
||||
-@if exist $(OBJ_DIR)\datecnfg.* del $(OBJ_DIR)\datecnfg.*
|
||||
-@if exist $(OBJ_DIR)\dayofyr.* del $(OBJ_DIR)\dayofyr.*
|
||||
-@if exist $(OBJ_DIR)\daytobow.* del $(OBJ_DIR)\daytobow.*
|
||||
-@if exist $(OBJ_DIR)\dectobin.* del $(OBJ_DIR)\dectobin.*
|
||||
-@if exist $(OBJ_DIR)\diskfunc.* del $(OBJ_DIR)\diskfunc.*
|
||||
-@if exist $(OBJ_DIR)\dispmsg.* del $(OBJ_DIR)\dispmsg.*
|
||||
-@if exist $(OBJ_DIR)\dosver.* del $(OBJ_DIR)\dosver.*
|
||||
-@if exist $(OBJ_DIR)\e2d.* del $(OBJ_DIR)\e2d.*
|
||||
-@if exist $(OBJ_DIR)\easter.* del $(OBJ_DIR)\easter.*
|
||||
-@if exist $(OBJ_DIR)\elapmil.* del $(OBJ_DIR)\elapmil.*
|
||||
-@if exist $(OBJ_DIR)\elapsed.* del $(OBJ_DIR)\elapsed.*
|
||||
-@if exist $(OBJ_DIR)\eltime.* del $(OBJ_DIR)\eltime.*
|
||||
-@if exist $(OBJ_DIR)\findith.* del $(OBJ_DIR)\findith.*
|
||||
-@if exist $(OBJ_DIR)\firstday.* del $(OBJ_DIR)\firstday.*
|
||||
-@if exist $(OBJ_DIR)\gcd.* del $(OBJ_DIR)\gcd.*
|
||||
-@if exist $(OBJ_DIR)\hex2dec.* del $(OBJ_DIR)\hex2dec.*
|
||||
-@if exist $(OBJ_DIR)\invclr.* del $(OBJ_DIR)\invclr.*
|
||||
-@if exist $(OBJ_DIR)\isbit.* del $(OBJ_DIR)\isbit.*
|
||||
-@if exist $(OBJ_DIR)\isbiton.* del $(OBJ_DIR)\isbiton.*
|
||||
-@if exist $(OBJ_DIR)\isshare.* del $(OBJ_DIR)\isshare.*
|
||||
-@if exist $(OBJ_DIR)\lastday.* del $(OBJ_DIR)\lastday.*
|
||||
-@if exist $(OBJ_DIR)\linked.* del $(OBJ_DIR)\linked.*
|
||||
-@if exist $(OBJ_DIR)\madd.* del $(OBJ_DIR)\madd.*
|
||||
-@if exist $(OBJ_DIR)\menu1.* del $(OBJ_DIR)\menu1.*
|
||||
-@if exist $(OBJ_DIR)\menuto.* del $(OBJ_DIR)\menuto.*
|
||||
-@if exist $(OBJ_DIR)\metaph.* del $(OBJ_DIR)\metaph.*
|
||||
-@if exist $(OBJ_DIR)\miltime.* del $(OBJ_DIR)\miltime.*
|
||||
-@if exist $(OBJ_DIR)\min2dhm.* del $(OBJ_DIR)\min2dhm.*
|
||||
-@if exist $(OBJ_DIR)\month.* del $(OBJ_DIR)\month.*
|
||||
-@if exist $(OBJ_DIR)\mouse1.* del $(OBJ_DIR)\mouse1.*
|
||||
-@if exist $(OBJ_DIR)\netpv.* del $(OBJ_DIR)\netpv.*
|
||||
-@if exist $(OBJ_DIR)\nooccur.* del $(OBJ_DIR)\nooccur.*
|
||||
-@if exist $(OBJ_DIR)\ntow.* del $(OBJ_DIR)\ntow.*
|
||||
-@if exist $(OBJ_DIR)\nwlstat.* del $(OBJ_DIR)\nwlstat.*
|
||||
-@if exist $(OBJ_DIR)\page.* del $(OBJ_DIR)\page.*
|
||||
-@if exist $(OBJ_DIR)\pchr.* del $(OBJ_DIR)\pchr.*
|
||||
-@if exist $(OBJ_DIR)\pegs.* del $(OBJ_DIR)\pegs.*
|
||||
-@if exist $(OBJ_DIR)\pending.* del $(OBJ_DIR)\pending.*
|
||||
-@if exist $(OBJ_DIR)\pickday.* del $(OBJ_DIR)\pickday.*
|
||||
-@if exist $(OBJ_DIR)\popadder.* del $(OBJ_DIR)\popadder.*
|
||||
-@if exist $(OBJ_DIR)\prtesc.* del $(OBJ_DIR)\prtesc.*
|
||||
-@if exist $(OBJ_DIR)\pvid.* del $(OBJ_DIR)\pvid.*
|
||||
-@if exist $(OBJ_DIR)\qtr.* del $(OBJ_DIR)\qtr.*
|
||||
-@if exist $(OBJ_DIR)\rand1.* del $(OBJ_DIR)\rand1.*
|
||||
-@if exist $(OBJ_DIR)\restsets.* del $(OBJ_DIR)\restsets.*
|
||||
-@if exist $(OBJ_DIR)\ftround.* del $(OBJ_DIR)\ftround.*
|
||||
-@if exist $(OBJ_DIR)\savearr.* del $(OBJ_DIR)\savearr.*
|
||||
-@if exist $(OBJ_DIR)\savesets.* del $(OBJ_DIR)\savesets.*
|
||||
-@if exist $(OBJ_DIR)\scregion.* del $(OBJ_DIR)\scregion.*
|
||||
-@if exist $(OBJ_DIR)\sinkey.* del $(OBJ_DIR)\sinkey.*
|
||||
-@if exist $(OBJ_DIR)\sleep.* del $(OBJ_DIR)\sleep.*
|
||||
-@if exist $(OBJ_DIR)\sqzn.* del $(OBJ_DIR)\sqzn.*
|
||||
-@if exist $(OBJ_DIR)\tbwhile.* del $(OBJ_DIR)\tbwhile.*
|
||||
-@if exist $(OBJ_DIR)\tempfile.* del $(OBJ_DIR)\tempfile.*
|
||||
-@if exist $(OBJ_DIR)\vertmenu.* del $(OBJ_DIR)\vertmenu.*
|
||||
-@if exist $(OBJ_DIR)\vidmode.* del $(OBJ_DIR)\vidmode.*
|
||||
-@if exist $(OBJ_DIR)\wda.* del $(OBJ_DIR)\wda.*
|
||||
-@if exist $(OBJ_DIR)\week.* del $(OBJ_DIR)\week.*
|
||||
-@if exist $(OBJ_DIR)\workdays.* del $(OBJ_DIR)\workdays.*
|
||||
-@if exist $(OBJ_DIR)\woy.* del $(OBJ_DIR)\woy.*
|
||||
-@if exist $(OBJ_DIR)\xbox.* del $(OBJ_DIR)\xbox.*
|
||||
-@if exist $(OBJ_DIR)\year.* del $(OBJ_DIR)\year.*
|
||||
-@if exist $(TOOLS_LIB) del $(TOOLS_LIB)
|
||||
|
||||
#
|
||||
# Library dependencies and build rules
|
||||
#
|
||||
|
||||
$(TOOLS_LIB) : $(TOOLS_LIB_OBJS)
|
||||
lib /out:$@ $**
|
||||
|
||||
# dummy targets used for prg to c creation
|
||||
|
||||
$(TOOLS_LIB)2 : $(TOOLS_LIB_OBJS)
|
||||
@@ -29,15 +29,15 @@ OBJEXT = .obj
|
||||
LIBEXT = .lib
|
||||
!endif
|
||||
|
||||
.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .asm
|
||||
.SUFFIXES: $(LIBEXT) $(OBJEXT) .prg .c .cpp .asm
|
||||
|
||||
#**********************************************************
|
||||
# Directory macros. These should never have to change.
|
||||
#**********************************************************
|
||||
|
||||
OBJ_DIR = ..\..\obj\$(CC_NAME)
|
||||
LIB_DIR = ..\..\lib\$(CC_NAME)
|
||||
BIN_DIR = ..\..\bin\$(CC_NAME)
|
||||
OBJ_DIR = ..\..\obj\$(HB_CC_NAME)
|
||||
LIB_DIR = ..\..\lib\$(HB_CC_NAME)
|
||||
BIN_DIR = ..\..\bin\$(HB_CC_NAME)
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
#**********************************************************
|
||||
|
||||
!include ..\maketpl.mak
|
||||
!include ..\mtpl.mak
|
||||
|
||||
#**********************************************************
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
@@ -63,6 +63,10 @@ $(OBJ_DIR);\
|
||||
{$(ALL_LIB_SRC_DIRS)}.c{$(OBJ_DIR)}$(OBJEXT):
|
||||
$(CC) $(CLIBFLAGS) -o$@ $<
|
||||
#**********************************************************
|
||||
# General *.cpp --> *.obj COMPILE rule for STATIC Libraries
|
||||
{$(ALL_LIB_SRC_DIRS)}.cpp{$(OBJ_DIR)}$(OBJEXT):
|
||||
$(CC) $(CLIBFLAGS) -o$@ $<
|
||||
#**********************************************************
|
||||
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
|
||||
{$(ALL_LIB_SRC_DIRS)}.prg{$(DLL_OBJ_DIR)}$(OBJEXT):
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $**
|
||||
@@ -123,5 +127,6 @@ install: doInstall
|
||||
INSTALL: doInstall
|
||||
|
||||
doInstall:
|
||||
copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul
|
||||
copy *.ch $(HB_INC_INSTALL) > nul
|
||||
if exist $(LIB_DIR)\$(LIBNAME)$(LIBEXT) copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul
|
||||
if exist *.api copy *.api $(HB_INC_INSTALL) > nul
|
||||
if exist *.ch copy *.ch $(HB_INC_INSTALL) > nul
|
||||
@@ -25,7 +25,7 @@ HB_VISUALC_VER = 60
|
||||
|
||||
#**********************************************************
|
||||
|
||||
!include ..\maketpl.mak
|
||||
!include ..\mtpl.mak
|
||||
|
||||
#**********************************************************
|
||||
# C compiler definition and C flags. These should never have to change.
|
||||
@@ -52,6 +52,10 @@ LDFLAGS = $(LDFLAGS)
|
||||
{.}.c{$(OBJ_DIR)}$(OBJEXT)::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
#**********************************************************
|
||||
# General *.cpp --> *.obj COMPILE rule for STATIC Libraries
|
||||
{.}.cpp{$(OBJ_DIR)}$(OBJEXT)::
|
||||
$(CC) $(CLIBFLAGS) -Fo$(OBJ_DIR)\ $<
|
||||
#**********************************************************
|
||||
# General *.prg --> *.obj COMPILE rule for STATIC Libraries
|
||||
{.}.prg{$(OBJ_DIR)}$(OBJEXT):
|
||||
$(HARBOUR_EXE) $(HARBOURFLAGS) -o$(OBJ_DIR)\ $<
|
||||
@@ -110,5 +114,6 @@ install: doInstall
|
||||
INSTALL: doInstall
|
||||
|
||||
doInstall:
|
||||
copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul
|
||||
copy *.ch $(HB_INC_INSTALL) > nul
|
||||
if exist $(LIB_DIR)\$(LIBNAME)$(LIBEXT) copy $(LIB_DIR)\$(LIBNAME)$(LIBEXT) $(HB_LIB_INSTALL) > nul
|
||||
if exist *.api copy *.api $(HB_INC_INSTALL) > nul
|
||||
if exist *.ch copy *.ch $(HB_INC_INSTALL) > nul
|
||||
19
harbour/contrib/mysql/common.mak
Normal file
19
harbour/contrib/mysql/common.mak
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = mysql
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\tmysql.obj \
|
||||
$(OBJ_DIR)\tsqlbrw.obj \
|
||||
$(OBJ_DIR)\mysql.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -1,33 +1,62 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need MySQL sources and this envvar
|
||||
rem to be set to successfully build this library:
|
||||
rem set C_USR=-IC:\mysql-5.0.45\include
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
set C_USR=%C_USR% -DHB_OS_WIN_32_USED
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\mysql.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
if exist ..\..\lib\b32\mysql.lib del ..\..\lib\b32\mysql.lib
|
||||
if exist ..\..\lib\b32\mysql.bak del ..\..\lib\b32\mysql.bak
|
||||
if exist ..\..\obj\b32\mysql.obj del ..\..\obj\b32\mysql.obj
|
||||
if exist ..\..\obj\b32\tsqlbrw.c del ..\..\obj\b32\tsqlbrw.c
|
||||
if exist ..\..\obj\b32\tmysql.c del ..\..\obj\b32\tmysql.c
|
||||
if exist ..\..\obj\b32\tsqlbrw.obj del ..\..\obj\b32\tsqlbrw.obj
|
||||
if exist ..\..\obj\b32\tmysql.obj del ..\..\obj\b32\tmysql.obj
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
62
harbour/contrib/mysql/make_vc.bat
Normal file
62
harbour/contrib/mysql/make_vc.bat
Normal file
@@ -0,0 +1,62 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need MySQL sources and this envvar
|
||||
rem to be set to successfully build this library:
|
||||
rem set C_USR=-IC:\mysql-5.0.45\include
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
set C_USR=%C_USR% -DHB_OS_WIN_32_USED
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,31 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of mysql.lib - Harbour API to mySQL
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
|
||||
BIN_DIR = ..\..\bin\b32
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\mysql.lib : \
|
||||
$(OBJ_DIR)\tmysql.obj \
|
||||
$(OBJ_DIR)\tsqlbrw.obj \
|
||||
$(OBJ_DIR)\mysql.obj
|
||||
|
||||
$(OBJ_DIR)\tmysql.c : tmysql.prg
|
||||
$(OBJ_DIR)\tmysql.obj : $(OBJ_DIR)\tmysql.c
|
||||
$(OBJ_DIR)\tsqlbrw.c : tsqlbrw.prg
|
||||
$(OBJ_DIR)\tsqlbrw.obj : $(OBJ_DIR)\tsqlbrw.c
|
||||
$(OBJ_DIR)\mysql.obj : mysql.c
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -DHB_OS_WIN_32_USED -o$@ $<
|
||||
tlib $(LIB_DIR)\mysql.lib -+$@,,
|
||||
|
||||
.prg.c:
|
||||
$(BIN_DIR)\harbour.exe $< -q0 -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
..\..\bin\harbour %1 /n /i..\include %2
|
||||
bcc32 -e%1.exe -O2 -d -I..\..\include -L..\..\lib\b32 %1.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib common.lib hbodbc.lib odbc32.lib
|
||||
|
||||
rem del %1.c
|
||||
@@ -1,3 +0,0 @@
|
||||
@echo off
|
||||
make -fhbodbc.b32
|
||||
implib ..\..\lib\b32\odbc32.lib odbc32.def
|
||||
18
harbour/contrib/odbc/common.mak
Normal file
18
harbour/contrib/odbc/common.mak
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = hbodbc
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\odbc$(OBJEXT) \
|
||||
$(OBJ_DIR)\todbc$(OBJEXT) \
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -1,20 +0,0 @@
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# ODBC Harbour Library and Import Library makefile
|
||||
|
||||
.path.c = .
|
||||
.path.h = .\;..\..\include;..\..\source\pp
|
||||
.path.lib = ..\..\lib\b32
|
||||
.path.obj = ..\..\obj
|
||||
|
||||
lib\b32\hbodbc.lib : odbc.obj todbc.obj
|
||||
odbc.obj : odbc.c
|
||||
todbc.obj : todbc.c
|
||||
todbc.c : todbc.prg
|
||||
|
||||
.c.obj :
|
||||
bcc32 -c -O2 -I.\;..\..\include;..\..\source\pp -o$@ $<
|
||||
tlib ..\..\lib\b32\hbodbc.lib -+$@,,
|
||||
implib ..\..\lib\b32\odbc32.lib odbc32.def
|
||||
|
||||
.prg.c :
|
||||
..\..\bin\harbour $< /n /p /i..\..\include
|
||||
58
harbour/contrib/odbc/make_b32.bat
Normal file
58
harbour/contrib/odbc/make_b32.bat
Normal file
@@ -0,0 +1,58 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
implib ..\..\lib\%HB_CC_NAME%\odbc32.lib odbc32.def
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
copy ..\..\lib\%HB_CC_NAME%\odbc32.lib ..\..\lib\
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
9
harbour/contrib/odbc/test/bld_b32.bat
Normal file
9
harbour/contrib/odbc/test/bld_b32.bat
Normal file
@@ -0,0 +1,9 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
..\..\..\bin\harbour %1 /n /i..\..\include /i..\ %2
|
||||
bcc32 -e%1.exe -O2 -d -I..\..\..\include -L..\..\..\lib\b32 %1.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib hbsix.lib hbodbc.lib odbc32.lib
|
||||
|
||||
rem del %1.c
|
||||
@@ -1,15 +0,0 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
ROOT = ../../
|
||||
|
||||
C_SOURCES=\
|
||||
ole2.c \
|
||||
|
||||
PRG_SOURCES=\
|
||||
oleauto.prg \
|
||||
|
||||
LIBNAME=hbole
|
||||
|
||||
include $(TOP)$(ROOT)config/lib.cf
|
||||
@@ -1,9 +0,0 @@
|
||||
@set HB_BIN_INSTALL=..\..\bin
|
||||
@set HB_LIB_INSTALL=..\..\lib\
|
||||
@set HB_INC_INSTALL=..\..\include\
|
||||
|
||||
%HB_BIN_INSTALL%\harbour %1.prg -n -i%HB_INC_INSTALL% %2
|
||||
bcc32 -O2 -d -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %1.c debug.lib vm.lib rtl.lib gtwin.lib lang.lib rdd.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib hbsix.lib common.lib codepage.lib hbole.lib
|
||||
del %1.c
|
||||
del %1.obj
|
||||
del %1.tds
|
||||
@@ -1,24 +0,0 @@
|
||||
@echo off
|
||||
|
||||
SET HB_INCLUDE=..\..\include
|
||||
|
||||
bcc32 -c -I.;%HB_INCLUDE% ole2.c
|
||||
if errorlevel 1 goto end
|
||||
|
||||
harbour oleauto /n /i%HB_INCLUDE%
|
||||
if errorlevel 1 goto end
|
||||
|
||||
bcc32 -M -c -O2 -I%HB_INCLUDE% -tW oleauto.c
|
||||
if errorlevel 1 goto end
|
||||
|
||||
if exist hbole.lib del hbole.lib
|
||||
tlib hbole +ole2 +oleauto
|
||||
if errorlevel 1 goto end
|
||||
|
||||
copy hbole.lib ..\..\lib\*.* > nul
|
||||
|
||||
:END
|
||||
del oleauto.c
|
||||
del ole2.obj
|
||||
del oleauto.obj
|
||||
del hbole.lib
|
||||
@@ -1,171 +0,0 @@
|
||||
*
|
||||
* HBTEST.PRG
|
||||
*
|
||||
* Este ejemplo es para probar con Harbour en modo consola, sin FiveWin
|
||||
* para Harbour.
|
||||
*
|
||||
* This example is done for testing with Harbour in console mode, without
|
||||
* FiveWin for Harbour.
|
||||
*
|
||||
|
||||
|
||||
#define CRLF Chr( 13 ) + Chr( 10 )
|
||||
|
||||
|
||||
PROCEDURE MAIN()
|
||||
|
||||
LOCAL nOption
|
||||
|
||||
CLS
|
||||
SetColor("W+/R")
|
||||
@ 6, 25 TO 16, 55 DOUBLE
|
||||
@ 8, 28 SAY "Test hbole.lib with ..."
|
||||
|
||||
While .t.
|
||||
@ 10, 32 PROMPT "Excel"
|
||||
@ 11, 32 PROMPT "Word"
|
||||
@ 12, 32 PROMPT "Internet Explorer"
|
||||
@ 13, 32 PROMPT "Outlook"
|
||||
@ 14, 32 PROMPT "Quit"
|
||||
|
||||
MENU TO nOption
|
||||
|
||||
IF nOption == 0
|
||||
nOption := 5
|
||||
ELSEIF nOption == 1
|
||||
EXCEL97()
|
||||
ELSEIF nOption == 2
|
||||
WORD97()
|
||||
ELSEIF nOption == 3
|
||||
IEXPLORER()
|
||||
ELSEIF nOption == 4
|
||||
OUTLOOK()
|
||||
ELSEIF nOption == 5
|
||||
EXIT
|
||||
ENDIF
|
||||
End
|
||||
|
||||
SetColor("W/N")
|
||||
CLS
|
||||
|
||||
RETURN
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
STATIC PROCEDURE EXCEL97()
|
||||
|
||||
LOCAL oExcel, oHoja
|
||||
|
||||
oExcel := TOleAuto():New( "Excel.Application" )
|
||||
|
||||
oExcel:WorkBooks:Add()
|
||||
|
||||
oHoja := oExcel:ActiveSheet()
|
||||
|
||||
oHoja:Cells:Font:Name := "Arial"
|
||||
oHoja:Cells:Font:Size := 12
|
||||
|
||||
oHoja:Cells( 3, 1 ):Value := "Text:"
|
||||
oHoja:Cells( 3, 2 ):Value := "This is sample text"
|
||||
oHoja:Cells( 4, 1 ):Value := "Numeric:"
|
||||
oHoja:Cells( 4, 2 ):NumberFormat := "#.##0,00"
|
||||
oHoja:Cells( 4, 2 ):Value := 1234.50
|
||||
oHoja:Cells( 5, 1 ):Value := "Logical:"
|
||||
oHoja:Cells( 5, 2 ):Value := .T.
|
||||
oHoja:Cells( 6, 1 ):Value := "Date:"
|
||||
oHoja:Cells( 6, 2 ):Value := DATE()
|
||||
|
||||
oHoja:Columns( 1 ):Font:Bold := .T.
|
||||
oHoja:Columns( 2 ):HorizontalAlignment := -4152 // xlRight
|
||||
|
||||
oHoja:Columns( 1 ):AutoFit()
|
||||
oHoja:Columns( 2 ):AutoFit()
|
||||
|
||||
oHoja:Cells( 1, 1 ):Value := "OLE in Harbour"
|
||||
oHoja:Cells( 1, 1 ):Font:Size := 16
|
||||
oHoja:Range( "A1:B1" ):HorizontalAlignment := 7
|
||||
|
||||
oHoja:Cells( 1, 1 ):Select()
|
||||
oExcel:Visible := .T.
|
||||
|
||||
oHoja:End()
|
||||
oExcel:End()
|
||||
|
||||
RETURN
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
STATIC PROCEDURE WORD97()
|
||||
|
||||
LOCAL oWord, oTexto
|
||||
|
||||
oWord:=TOleAuto():New( "Word.Application" )
|
||||
|
||||
oWord:Documents:Add()
|
||||
|
||||
oTexto := oWord:Selection()
|
||||
|
||||
oTexto:Text := "Harbour hbOLE.lib"+CRLF+"Word Sample"+CRLF
|
||||
oTexto:Font:Name := "Arial"
|
||||
oTexto:Font:Size := 48
|
||||
oTexto:Font:Bold := .T.
|
||||
|
||||
oWord:Visible := .T.
|
||||
oWord:WindowState := 1 // Maximize
|
||||
|
||||
oTexto:End()
|
||||
oWord:End()
|
||||
|
||||
RETURN
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
STATIC PROCEDURE IEXPLORER()
|
||||
|
||||
LOCAL oIE
|
||||
|
||||
oIE:=TOleAuto():New( "InternetExplorer.Application" )
|
||||
|
||||
oIE:Visible := .T.
|
||||
|
||||
oIE:Navigate( "http://www.harbour-project.org" )
|
||||
|
||||
oIE:End()
|
||||
|
||||
RETURN
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
STATIC PROCEDURE OUTLOOK()
|
||||
|
||||
LOCAL oOL, oLista, oMail, i
|
||||
|
||||
oOL := TOleAuto():New( "Outlook.Application.9" )
|
||||
|
||||
IF Ole2TxtError() != "S_OK"
|
||||
|
||||
Alert("Outlook is not available", "Error")
|
||||
|
||||
ELSE
|
||||
|
||||
oMail := oOL:CreateItem( 0 ) // olMailItem
|
||||
|
||||
FOR i := 1 TO 10
|
||||
oMail:Recipients:Add( "Contact" + LTRIM( STR( i, 2 ) ) + ;
|
||||
"<contact" + LTRIM( STR( i, 2 ) ) + "@server.com>" )
|
||||
NEXT
|
||||
|
||||
oLista := oOL:CreateItem( 7 ) // olDistributionListItem
|
||||
oLista:DLName := "Test with distribution list"
|
||||
oLista:Display( .F. )
|
||||
oLista:AddMembers( oMail:Recipients )
|
||||
oLista:Save()
|
||||
oLista:Close( 0 )
|
||||
|
||||
oMail:End()
|
||||
oLista:End()
|
||||
oOL:End()
|
||||
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
@@ -1,714 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* OLE library
|
||||
*
|
||||
* Copyright 2000,2003 José F. Giménez (JFG) <jfgimenez@wanadoo.es>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
/*************************************************************************
|
||||
* *
|
||||
* CreateOleObject( cOleName | cCLSID [, cIID ] ) -> hOleObject *
|
||||
* *
|
||||
* OleInvoke( hOleObject, cMethodName, uParam1, ..., uParamN ) *
|
||||
* -> uResult *
|
||||
* *
|
||||
* OleSetProperty( hOleObject, cPropertyName, uParam1, ..., uParamN ) *
|
||||
* -> lOk *
|
||||
* *
|
||||
* OleGetProperty( hOleObject, cPropertyName, uParam1, ..., uParamN ) *
|
||||
* -> uResult *
|
||||
* *
|
||||
* OleIsObject() -> lIsObject *
|
||||
* *
|
||||
* OleError() -> nError *
|
||||
* *
|
||||
* Ole2TxtError() -> cError *
|
||||
* *
|
||||
* OleUninitialize() -> Nil *
|
||||
* *
|
||||
\************************************************************************/
|
||||
|
||||
#define HB_OS_WIN_32_USED
|
||||
|
||||
#include <windows.h>
|
||||
#include <ole2.h>
|
||||
|
||||
#include "hbvm.h"
|
||||
#include "hbapiitm.h"
|
||||
#include "hbapicls.h"
|
||||
#include "hbdate.h"
|
||||
|
||||
static far VARIANTARG RetVal;
|
||||
static EXCEPINFO excep;
|
||||
static HRESULT nOleError = 0;
|
||||
static int lInitialized = 0;
|
||||
|
||||
static double DateToDbl( LPSTR cDate )
|
||||
{
|
||||
double nDate;
|
||||
|
||||
nDate = hb_dateEncStr( cDate ) - 0x0024d9abL;
|
||||
|
||||
return ( nDate );
|
||||
}
|
||||
|
||||
static LPSTR DblToDate( double nDate )
|
||||
{
|
||||
static char *cDate = "00000000";
|
||||
|
||||
hb_dateDecStr( cDate, nDate + 0x0024d9abL );
|
||||
|
||||
return ( cDate );
|
||||
}
|
||||
|
||||
static LPSTR AnsiToWide( LPSTR cAnsi )
|
||||
{
|
||||
unsigned short wLen;
|
||||
LPSTR cString;
|
||||
|
||||
wLen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, cAnsi, -1, 0, 0 );
|
||||
cString = ( char * ) hb_xgrab( wLen * 2 );
|
||||
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, cAnsi, -1,
|
||||
( LPWSTR ) cString, wLen );
|
||||
return ( cString );
|
||||
}
|
||||
|
||||
static LPSTR WideToAnsi( LPSTR cWide )
|
||||
{
|
||||
unsigned short wLen;
|
||||
LPSTR cString;
|
||||
|
||||
wLen = WideCharToMultiByte( CP_ACP, 0, ( LPWSTR ) cWide, -1,
|
||||
NULL, 0, NULL, NULL );
|
||||
cString = hb_xgrab( (!wLen) ? 2 : wLen );
|
||||
WideCharToMultiByte( CP_ACP, 0, ( LPWSTR ) cWide, -1,
|
||||
cString, wLen, NULL, NULL );
|
||||
return ( cString );
|
||||
}
|
||||
|
||||
static void GetParams(DISPPARAMS * dParams)
|
||||
{
|
||||
VARIANTARG * pArgs = NULL;
|
||||
PHB_ITEM uParam;
|
||||
int n, nArgs, nArg;
|
||||
LPSTR cString;
|
||||
|
||||
nArgs = hb_pcount() - 2;
|
||||
|
||||
if( nArgs > 0 )
|
||||
{
|
||||
pArgs = ( VARIANTARG * ) hb_xgrab( sizeof( VARIANTARG ) * nArgs );
|
||||
|
||||
for( n = 0; n < nArgs; n++ )
|
||||
{
|
||||
// Los parametros en VARIANTARG[] hay que ponerlos en orden inverso
|
||||
nArg = nArgs + 2 - n;
|
||||
|
||||
VariantInit( &( pArgs[ n ] ) );
|
||||
|
||||
uParam = hb_param( nArg, 0xFFFF );
|
||||
|
||||
switch( hb_itemType( uParam ) )
|
||||
{
|
||||
case '\0':
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_EMPTY;
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_EMPTY;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case HB_IT_STRING:
|
||||
case HB_IT_MEMO:
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_BSTR;
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_BSTR;
|
||||
#endif
|
||||
cString = AnsiToWide( hb_parc( nArg ) );
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].bstrVal = SysAllocString( (LPVOID) cString );
|
||||
#else
|
||||
pArgs[ n ].n1.n2.n3.bstrVal = SysAllocString( (LPVOID) cString );
|
||||
#endif
|
||||
hb_xfree( cString );
|
||||
break;
|
||||
|
||||
case HB_IT_LOGICAL:
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_BOOL;
|
||||
pArgs[ n ].boolVal = hb_parl( nArg );
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_BOOL;
|
||||
pArgs[ n ].n1.n2.n3.boolVal = hb_parl( nArg );
|
||||
#endif
|
||||
break;
|
||||
|
||||
case HB_IT_INTEGER:
|
||||
case HB_IT_LONG:
|
||||
case HB_IT_NUMERIC:
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_I4;
|
||||
pArgs[ n ].lVal = hb_parnl( nArg );
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_I4;
|
||||
pArgs[ n ].n1.n2.n3.lVal = hb_parnl( nArg );
|
||||
#endif
|
||||
break;
|
||||
|
||||
case HB_IT_DOUBLE:
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_R8;
|
||||
pArgs[ n ].dblVal = hb_parnd( nArg );
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_R8;
|
||||
pArgs[ n ].n1.n2.n3.dblVal = hb_parnd( nArg );
|
||||
#endif
|
||||
break;
|
||||
case HB_IT_DATE:
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_DATE;
|
||||
pArgs[ n ].dblVal = DateToDbl( hb_pards( nArg ) );
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_DATE;
|
||||
pArgs[ n ].n1.n2.n3.dblVal = DateToDbl( hb_pards( nArg ) );
|
||||
#endif
|
||||
break;
|
||||
|
||||
case HB_IT_OBJECT:
|
||||
{
|
||||
PHB_DYNS pData;
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_EMPTY;
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_EMPTY;
|
||||
#endif
|
||||
if ( hb_stricmp( hb_objGetClsName( uParam ), "TOleAuto" ) == 0 )
|
||||
{
|
||||
pData = hb_dynsymFindName( "hObj" );
|
||||
if( pData )
|
||||
{
|
||||
hb_vmPushSymbol( hb_dynsymSymbol( pData ) );
|
||||
hb_vmPush( uParam );
|
||||
hb_vmDo( 0 );
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
pArgs[ n ].vt = VT_DISPATCH;
|
||||
pArgs[ n ].pdispVal = ( IDispatch * ) hb_parnl( -1 );
|
||||
#else
|
||||
pArgs[ n ].n1.n2.vt = VT_DISPATCH;
|
||||
pArgs[ n ].n1.n2.n3.pdispVal = ( IDispatch * ) hb_parnl( -1 );
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dParams->rgvarg = pArgs;
|
||||
dParams->cArgs = nArgs;
|
||||
dParams->rgdispidNamedArgs = 0;
|
||||
dParams->cNamedArgs = 0;
|
||||
|
||||
}
|
||||
|
||||
static void FreeParams(DISPPARAMS * dParams)
|
||||
{
|
||||
int n;
|
||||
|
||||
if( dParams->cArgs > 0 )
|
||||
{
|
||||
for( n = 0; n < ( int ) dParams->cArgs; n++ )
|
||||
VariantClear( &(dParams->rgvarg[ n ]) );
|
||||
|
||||
hb_xfree( ( LPVOID ) dParams->rgvarg );
|
||||
}
|
||||
}
|
||||
|
||||
static void RetValue( void )
|
||||
{
|
||||
LPSTR cString;
|
||||
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
switch( RetVal.vt )
|
||||
{
|
||||
case VT_BSTR:
|
||||
cString = WideToAnsi( ( LPSTR ) RetVal.bstrVal );
|
||||
hb_retc( cString );
|
||||
hb_xfree( cString );
|
||||
break;
|
||||
|
||||
case VT_BOOL:
|
||||
hb_retl( RetVal.boolVal );
|
||||
break;
|
||||
|
||||
case VT_DISPATCH:
|
||||
hb_retnl( ( LONG ) RetVal.pdispVal );
|
||||
break;
|
||||
|
||||
case VT_I4:
|
||||
hb_retnl( ( LONG ) RetVal.iVal );
|
||||
break;
|
||||
|
||||
case VT_R8:
|
||||
hb_retnd( RetVal.dblVal );
|
||||
break;
|
||||
|
||||
case VT_DATE:
|
||||
hb_retds( DblToDate( RetVal.dblVal ) );
|
||||
break;
|
||||
|
||||
case VT_EMPTY:
|
||||
hb_ret();
|
||||
break;
|
||||
|
||||
default:
|
||||
if ( nOleError == S_OK )
|
||||
nOleError = (HRESULT) -1;
|
||||
hb_ret();
|
||||
break;
|
||||
}
|
||||
|
||||
if( RetVal.vt != VT_DISPATCH )
|
||||
VariantClear( &RetVal );
|
||||
#else
|
||||
switch( RetVal.n1.n2.vt )
|
||||
{
|
||||
case VT_BSTR:
|
||||
cString = WideToAnsi( ( LPSTR ) RetVal.n1.n2.n3.bstrVal );
|
||||
hb_retc( cString );
|
||||
hb_xfree( cString );
|
||||
break;
|
||||
|
||||
case VT_BOOL:
|
||||
hb_retl( RetVal.n1.n2.n3.boolVal );
|
||||
break;
|
||||
|
||||
case VT_DISPATCH:
|
||||
hb_retnl( ( LONG ) RetVal.n1.n2.n3.pdispVal );
|
||||
break;
|
||||
|
||||
case VT_I4:
|
||||
hb_retnl( ( LONG ) RetVal.n1.n2.n3.iVal );
|
||||
break;
|
||||
|
||||
case VT_R8:
|
||||
hb_retnd( RetVal.n1.n2.n3.dblVal );
|
||||
break;
|
||||
|
||||
case VT_DATE:
|
||||
hb_retds( DblToDate( RetVal.n1.n2.n3.dblVal ) );
|
||||
break;
|
||||
|
||||
case VT_EMPTY:
|
||||
hb_ret();
|
||||
break;
|
||||
|
||||
default:
|
||||
if ( nOleError == S_OK )
|
||||
nOleError = (HRESULT) -1;
|
||||
hb_ret();
|
||||
break;
|
||||
}
|
||||
|
||||
if( RetVal.n1.n2.vt != VT_DISPATCH )
|
||||
VariantClear( &RetVal );
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
HB_FUNC( CREATEOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] )
|
||||
{
|
||||
LPSTR cCLSID;
|
||||
GUID ClassID, iid;
|
||||
LPIID riid = (LPIID) &IID_IDispatch;
|
||||
void *pDisp = NULL; /* IDispatch */
|
||||
/* void *
|
||||
* used intentionally to inform compiler that there is no
|
||||
* strict-aliasing
|
||||
*/
|
||||
|
||||
nOleError = S_OK;
|
||||
|
||||
if ( !lInitialized )
|
||||
nOleError = OleInitialize( NULL );
|
||||
lInitialized = 1;
|
||||
|
||||
if ( (nOleError == S_OK) || (nOleError == (HRESULT) S_FALSE) )
|
||||
{
|
||||
|
||||
cCLSID = AnsiToWide( hb_parc( 1 ) );
|
||||
if ( hb_parc( 1 )[ 0 ] == '{' )
|
||||
nOleError = CLSIDFromString( ( LPOLESTR ) cCLSID, (LPCLSID) &ClassID );
|
||||
else
|
||||
nOleError = CLSIDFromProgID( ( LPCOLESTR ) cCLSID, (LPCLSID) &ClassID );
|
||||
hb_xfree( cCLSID );
|
||||
|
||||
if ( hb_pcount() == 2 )
|
||||
{
|
||||
if ( hb_parc( 2 )[ 0 ] == '{' )
|
||||
{
|
||||
cCLSID = AnsiToWide( hb_parc( 2 ) );
|
||||
nOleError = CLSIDFromString( ( LPOLESTR ) cCLSID, &iid );
|
||||
hb_xfree( cCLSID );
|
||||
}
|
||||
else
|
||||
memcpy( ( LPVOID ) &iid, hb_parc( 2 ), sizeof( iid ) );
|
||||
|
||||
riid = &iid;
|
||||
}
|
||||
|
||||
if ( nOleError == S_OK )
|
||||
nOleError = CoCreateInstance( &ClassID, NULL, CLSCTX_SERVER,
|
||||
(REFIID) riid, &pDisp );
|
||||
}
|
||||
|
||||
hb_retnl( ( LONG ) pDisp );
|
||||
|
||||
}
|
||||
|
||||
HB_FUNC( OLESHOWEXCEPTION )
|
||||
{
|
||||
if ( (LONG) nOleError == DISP_E_EXCEPTION )
|
||||
{
|
||||
LPSTR source, description;
|
||||
|
||||
source = WideToAnsi( (LPVOID) excep.bstrSource );
|
||||
description = WideToAnsi( (LPVOID) excep.bstrDescription );
|
||||
MessageBox( NULL, description, source, MB_ICONHAND );
|
||||
hb_xfree( source );
|
||||
hb_xfree( description );
|
||||
}
|
||||
}
|
||||
|
||||
HB_FUNC( OLEINVOKE ) // (hOleObject, szMethodName, uParams...)
|
||||
{
|
||||
IDispatch * pDisp = ( IDispatch * ) hb_parnl( 1 );
|
||||
LPSTR cMember;
|
||||
DISPID lDispID;
|
||||
DISPPARAMS dParams;
|
||||
UINT uArgErr;
|
||||
|
||||
VariantInit( &RetVal );
|
||||
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
|
||||
|
||||
cMember = AnsiToWide( hb_parc( 2 ) );
|
||||
nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, &IID_NULL,
|
||||
( LPVOID ) &cMember, 1,
|
||||
LOCALE_USER_DEFAULT, &lDispID );
|
||||
hb_xfree( cMember );
|
||||
|
||||
if ( nOleError == S_OK )
|
||||
{
|
||||
GetParams( &dParams );
|
||||
nOleError = pDisp->lpVtbl->Invoke( pDisp,
|
||||
lDispID,
|
||||
&IID_NULL,
|
||||
LOCALE_USER_DEFAULT,
|
||||
DISPATCH_METHOD,
|
||||
&dParams,
|
||||
&RetVal,
|
||||
&excep,
|
||||
&uArgErr ) ;
|
||||
FreeParams( &dParams );
|
||||
}
|
||||
|
||||
RetValue();
|
||||
}
|
||||
|
||||
HB_FUNC( OLESETPROPERTY ) // (hOleObject, cPropName, uValue, uParams...)
|
||||
{
|
||||
IDispatch * pDisp = ( IDispatch * ) hb_parnl( 1 );
|
||||
LPSTR cMember;
|
||||
DISPID lDispID, lPropPut = DISPID_PROPERTYPUT;
|
||||
DISPPARAMS dParams;
|
||||
UINT uArgErr;
|
||||
|
||||
VariantInit( &RetVal );
|
||||
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
|
||||
|
||||
cMember = AnsiToWide( hb_parc( 2 ) );
|
||||
nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, &IID_NULL,
|
||||
( LPVOID ) &cMember, 1,
|
||||
LOCALE_USER_DEFAULT, &lDispID );
|
||||
hb_xfree( cMember );
|
||||
|
||||
if ( nOleError == S_OK )
|
||||
{
|
||||
GetParams( &dParams );
|
||||
dParams.rgdispidNamedArgs = &lPropPut;
|
||||
dParams.cNamedArgs = 1;
|
||||
|
||||
nOleError = pDisp->lpVtbl->Invoke( pDisp,
|
||||
lDispID,
|
||||
&IID_NULL,
|
||||
LOCALE_USER_DEFAULT,
|
||||
DISPATCH_PROPERTYPUT,
|
||||
&dParams,
|
||||
NULL, // No return value
|
||||
&excep,
|
||||
&uArgErr );
|
||||
|
||||
FreeParams( &dParams );
|
||||
}
|
||||
|
||||
hb_ret();
|
||||
}
|
||||
|
||||
HB_FUNC( OLEGETPROPERTY ) // (hOleObject, cPropName, uParams...)
|
||||
{
|
||||
IDispatch * pDisp = ( IDispatch * ) hb_parnl( 1 );
|
||||
LPSTR cMember;
|
||||
DISPID lDispID;
|
||||
DISPPARAMS dParams;
|
||||
UINT uArgErr;
|
||||
|
||||
VariantInit( &RetVal );
|
||||
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
|
||||
|
||||
cMember = AnsiToWide( hb_parc( 2 ) );
|
||||
nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, &IID_NULL,
|
||||
( LPVOID ) &cMember, 1,
|
||||
LOCALE_USER_DEFAULT, &lDispID );
|
||||
hb_xfree( cMember );
|
||||
|
||||
if ( nOleError == S_OK )
|
||||
{
|
||||
GetParams( &dParams );
|
||||
nOleError = pDisp->lpVtbl->Invoke( pDisp,
|
||||
lDispID,
|
||||
&IID_NULL,
|
||||
LOCALE_USER_DEFAULT,
|
||||
DISPATCH_PROPERTYGET,
|
||||
&dParams,
|
||||
&RetVal,
|
||||
&excep,
|
||||
&uArgErr );
|
||||
|
||||
FreeParams( &dParams );
|
||||
}
|
||||
|
||||
RetValue();
|
||||
|
||||
}
|
||||
|
||||
HB_FUNC( OLEERROR )
|
||||
{
|
||||
hb_retnl( (LONG) nOleError );
|
||||
}
|
||||
|
||||
HB_FUNC( OLEISOBJECT )
|
||||
{
|
||||
#if !defined(__BORLANDC__) && !defined(__XCC__)
|
||||
hb_retl( RetVal.vt == VT_DISPATCH );
|
||||
#else
|
||||
hb_retl( RetVal.n1.n2.vt == VT_DISPATCH );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( OLEUNINITIALIZE )
|
||||
{
|
||||
if( lInitialized )
|
||||
OleUninitialize();
|
||||
lInitialized = 0;
|
||||
}
|
||||
|
||||
HB_FUNC( OLE2TXTERROR )
|
||||
{
|
||||
switch ( (LONG) nOleError)
|
||||
{
|
||||
case S_OK:
|
||||
hb_retc( "S_OK" );
|
||||
break;
|
||||
|
||||
case CO_E_CLASSSTRING:
|
||||
hb_retc( "CO_E_CLASSSTRING" );
|
||||
break;
|
||||
|
||||
case OLE_E_WRONGCOMPOBJ:
|
||||
hb_retc( "OLE_E_WRONGCOMPOBJ" );
|
||||
break;
|
||||
|
||||
case REGDB_E_CLASSNOTREG:
|
||||
hb_retc( "REGDB_E_CLASSNOTREG" );
|
||||
break;
|
||||
|
||||
case REGDB_E_WRITEREGDB:
|
||||
hb_retc( "REGDB_E_WRITEREGDB" );
|
||||
break;
|
||||
|
||||
case E_OUTOFMEMORY:
|
||||
hb_retc( "E_OUTOFMEMORY" );
|
||||
break;
|
||||
|
||||
case E_INVALIDARG:
|
||||
hb_retc( "E_INVALIDARG" );
|
||||
break;
|
||||
|
||||
case E_UNEXPECTED:
|
||||
hb_retc( "E_UNEXPECTED" );
|
||||
break;
|
||||
|
||||
case DISP_E_UNKNOWNNAME:
|
||||
hb_retc( "DISP_E_UNKNOWNNAME" );
|
||||
break;
|
||||
|
||||
case DISP_E_UNKNOWNLCID:
|
||||
hb_retc( "DISP_E_UNKNOWNLCID" );
|
||||
break;
|
||||
|
||||
case DISP_E_BADPARAMCOUNT:
|
||||
hb_retc( "DISP_E_BADPARAMCOUNT" );
|
||||
break;
|
||||
|
||||
case DISP_E_BADVARTYPE:
|
||||
hb_retc( "DISP_E_BADVARTYPE" );
|
||||
break;
|
||||
|
||||
case DISP_E_EXCEPTION:
|
||||
hb_retc( "DISP_E_EXCEPTION" );
|
||||
break;
|
||||
|
||||
case DISP_E_MEMBERNOTFOUND:
|
||||
hb_retc( "DISP_E_MEMBERNOTFOUND" );
|
||||
break;
|
||||
|
||||
case DISP_E_NONAMEDARGS:
|
||||
hb_retc( "DISP_E_NONAMEDARGS" );
|
||||
break;
|
||||
|
||||
case DISP_E_OVERFLOW:
|
||||
hb_retc( "DISP_E_OVERFLOW" );
|
||||
break;
|
||||
|
||||
case DISP_E_PARAMNOTFOUND:
|
||||
hb_retc( "DISP_E_PARAMNOTFOUND" );
|
||||
break;
|
||||
|
||||
case DISP_E_TYPEMISMATCH:
|
||||
hb_retc( "DISP_E_TYPEMISMATCH" );
|
||||
break;
|
||||
|
||||
case DISP_E_UNKNOWNINTERFACE:
|
||||
hb_retc( "DISP_E_UNKNOWNINTERFACE" );
|
||||
break;
|
||||
|
||||
case DISP_E_PARAMNOTOPTIONAL:
|
||||
hb_retc( "DISP_E_PARAMNOTOPTIONAL" );
|
||||
break;
|
||||
|
||||
default:
|
||||
hb_retc( "Unknown error" );
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
HB_FUNC( GETOLEOBJECT )
|
||||
{
|
||||
BSTR wCLSID;
|
||||
IID ClassID, iid;
|
||||
LPIID riid = (LPIID) &IID_IDispatch;
|
||||
IUnknown *pUnk = NULL;
|
||||
char *cOleName = hb_parc( 1 );
|
||||
void *pDisp = NULL; /* IDispatch */
|
||||
/* void *
|
||||
* used intentionally to inform compiler that there is no
|
||||
* strict-aliasing
|
||||
*/
|
||||
|
||||
nOleError = S_OK;
|
||||
|
||||
wCLSID = (BSTR) AnsiToWide( (LPSTR)cOleName );
|
||||
|
||||
if ( cOleName[ 0 ] == '{' )
|
||||
{
|
||||
nOleError = CLSIDFromString( wCLSID, (LPCLSID) &ClassID );
|
||||
}
|
||||
else
|
||||
{
|
||||
nOleError = CLSIDFromProgID( wCLSID, (LPCLSID) &ClassID );
|
||||
}
|
||||
|
||||
hb_xfree( wCLSID );
|
||||
|
||||
if ( hb_pcount() == 2 )
|
||||
{
|
||||
char * cID = hb_parc( 2 );
|
||||
if ( cID[ 0 ] == '{' )
|
||||
{
|
||||
wCLSID = (BSTR)AnsiToWide( (LPSTR)cID );
|
||||
nOleError = CLSIDFromString( wCLSID, &iid );
|
||||
hb_xfree( wCLSID );
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy( ( LPVOID ) &iid, cID, sizeof( iid ) );
|
||||
}
|
||||
|
||||
riid = &iid;
|
||||
}
|
||||
|
||||
if ( nOleError == S_OK )
|
||||
{
|
||||
nOleError = GetActiveObject( &ClassID, NULL, &pUnk );
|
||||
|
||||
if ( nOleError == S_OK )
|
||||
{
|
||||
nOleError = pUnk->lpVtbl->QueryInterface( pUnk, riid, &pDisp );
|
||||
}
|
||||
}
|
||||
|
||||
hb_retnl( ( LONG ) pDisp );
|
||||
}
|
||||
|
||||
HB_FUNC( MESSAGEBOX )
|
||||
{
|
||||
hb_retni( MessageBox( ( HWND ) hb_parnl( 1 ), hb_parc( 2 ), hb_parc( 3 ), hb_parni( 4 ) ) );
|
||||
}
|
||||
@@ -1,219 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* OLE library
|
||||
*
|
||||
* Copyright 2000,2003 José F. Giménez (JFG) <jfgimenez@wanadoo.es>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include "hbclass.ch"
|
||||
|
||||
|
||||
CLASS TOleAuto
|
||||
|
||||
DATA hObj
|
||||
|
||||
METHOD New( cAutoObj ) CONSTRUCTOR
|
||||
METHOD GetActiveObject( cClass )
|
||||
METHOD End()
|
||||
|
||||
METHOD Invoke( cMember, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
METHOD Set( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
METHOD Get( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
|
||||
ERROR HANDLER OnError( cMsg, nError )
|
||||
|
||||
ENDCLASS
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
METHOD New( uObj ) CLASS TOleAuto
|
||||
|
||||
IF ValType( uObj )="C"
|
||||
::hObj := CreateOleObject( uObj )
|
||||
ELSE
|
||||
::hObj := uObj
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
METHOD GetActiveObject( cClass ) CLASS TOleAuto
|
||||
|
||||
IF ValType( cClass ) = 'C'
|
||||
::hObj := GetOleObject( cClass )
|
||||
// ::cClassName := cClass
|
||||
ELSE
|
||||
MessageBox( 0,"Invalid parameter type to constructor TOleAuto():GetActiveObject()!", "OLE Interface",0 )
|
||||
::hObj := 0
|
||||
ENDIF
|
||||
|
||||
RETURN Self
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
METHOD End() CLASS TOleAuto
|
||||
|
||||
::hObj := NIL
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
METHOD Invoke( cMethod, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto
|
||||
|
||||
LOCAL uObj
|
||||
|
||||
IF uParam6 != NIL
|
||||
uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
ELSEIF uParam5 != NIL
|
||||
uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3, uParam4, uParam5 )
|
||||
ELSEIF uParam4 != NIL
|
||||
uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3, uParam4 )
|
||||
ELSEIF uParam3 != NIL
|
||||
uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2, uParam3 )
|
||||
ELSEIF uParam2 != NIL
|
||||
uObj := OLEInvoke( ::hObj, cMethod, uParam1, uParam2 )
|
||||
ELSEIF uParam1 != NIL
|
||||
uObj := OLEInvoke( ::hObj, cMethod, uParam1 )
|
||||
ELSE
|
||||
uObj := OLEInvoke( ::hObj, cMethod )
|
||||
ENDIF
|
||||
|
||||
IF OleIsObject()
|
||||
RETURN TOleAuto():New( uObj )
|
||||
ELSEIF Ole2TxtError() == "DISP_E_EXCEPTION"
|
||||
OLEShowException()
|
||||
RETURN Self
|
||||
ELSEIF OleError() != 0
|
||||
MessageBox( 0,cMethod + ": " + Ole2TxtError(), "OLE Error",0 )
|
||||
ENDIF
|
||||
|
||||
RETURN uObj
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
METHOD Set( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto
|
||||
|
||||
IF uParam6 != NIL
|
||||
OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
ELSEIF uParam5 != NIL
|
||||
OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5 )
|
||||
ELSEIF uParam4 != NIL
|
||||
OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4 )
|
||||
ELSEIF uParam3 != NIL
|
||||
OLESetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3 )
|
||||
ELSEIF uParam2 != NIL
|
||||
OLESetProperty( ::hObj, cProperty, uParam1, uParam2 )
|
||||
ELSEIF uParam1 != NIL
|
||||
OLESetProperty( ::hObj, cProperty, uParam1 )
|
||||
ENDIF
|
||||
|
||||
IF Ole2TxtError() == "DISP_E_EXCEPTION"
|
||||
OLEShowException()
|
||||
ELSEIF OleError() != 0
|
||||
MessageBox( 0,cProperty + ": " + Ole2TxtError(), "OLE Error",0 )
|
||||
ENDIF
|
||||
|
||||
RETURN nil
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
METHOD Get( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto
|
||||
|
||||
LOCAL uObj
|
||||
|
||||
IF uParam6 != NIL
|
||||
uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
ELSEIF uParam5 != NIL
|
||||
uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4, uParam5 )
|
||||
ELSEIF uParam4 != NIL
|
||||
uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3, uParam4 )
|
||||
ELSEIF uParam3 != NIL
|
||||
uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2, uParam3 )
|
||||
ELSEIF uParam2 != NIL
|
||||
uObj := OLEGetProperty( ::hObj, cProperty, uParam1, uParam2 )
|
||||
ELSEIF uParam1 != NIL
|
||||
uObj := OLEGetProperty( ::hObj, cProperty, uParam1 )
|
||||
ELSE
|
||||
uObj := OLEGetProperty( ::hObj, cProperty )
|
||||
ENDIF
|
||||
|
||||
IF Ole2TxtError() $ "DISP_E_MEMBERNOTFOUND | DISP_E_BADPARAMCOUNT | " + ;
|
||||
"DISP_E_EXCEPTION"
|
||||
uObj := ::Invoke( cProperty, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
ELSE
|
||||
IF OleIsObject()
|
||||
RETURN TOleAuto():New( uObj )
|
||||
ELSEIF OleError() != 0
|
||||
MessageBox( 0,cProperty + ": " + Ole2TxtError(), "OLE Error",0 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN uObj
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
METHOD OnError( uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 ) CLASS TOleAuto
|
||||
|
||||
LOCAL cMsg := __GetMessage()
|
||||
|
||||
LOCAL uObj
|
||||
|
||||
IF LEFT( cMsg, 1 ) == '_'
|
||||
::Set( SUBS( cMsg, 2 ), uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
ELSE
|
||||
uObj := ::Get( cMsg, uParam1, uParam2, uParam3, uParam4, uParam5, uParam6 )
|
||||
ENDIF
|
||||
|
||||
RETURN uObj
|
||||
|
||||
EXIT PROCEDURE OLEEXIT
|
||||
|
||||
OLEUninitialize()
|
||||
|
||||
RETURN
|
||||
18
harbour/contrib/pgsql/common.mak
Normal file
18
harbour/contrib/pgsql/common.mak
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = libhbpg
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\tpostgre.obj \
|
||||
$(OBJ_DIR)\postgres.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -1,30 +1,62 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need MySQL sources and this envvar
|
||||
rem to be set to successfully build this library:
|
||||
rem set C_USR=-IC:\postgresql-8.2.5\src\include
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
set C_USR=%C_USR% -DHB_OS_WIN_32_USED -DPG_DIAG_INTERNAL_POSITION
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\libhbpg.lib ..\..\lib\*.* > nul
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
if exist ..\..\lib\b32\libhbpg.lib del ..\..\lib\b32\libhbpg.lib
|
||||
if exist ..\..\lib\b32\libhbpg.bak del ..\..\lib\b32\libhbpg.bak
|
||||
if exist ..\..\obj\b32\postgres.obj del ..\..\obj\b32\postgres.obj
|
||||
if exist ..\..\obj\b32\TPostgres.c del ..\..\obj\b32\TPostgres.c
|
||||
if exist ..\..\obj\b32\TPostgres.obj del ..\..\obj\b32\TPostgres.obj
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
62
harbour/contrib/pgsql/make_vc.bat
Normal file
62
harbour/contrib/pgsql/make_vc.bat
Normal file
@@ -0,0 +1,62 @@
|
||||
@echo off
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem IMPORTANT: You'll need MySQL sources and this envvar
|
||||
rem to be set to successfully build this library:
|
||||
rem set C_USR=-IC:\postgresql-8.2.5\src\include
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
set C_USR=%C_USR% -DHB_OS_WIN_32_USED -DPG_DIAG_INTERNAL_POSITION
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
@@ -1,31 +0,0 @@
|
||||
|
||||
# makefile for Borland C/C++ 32 bits
|
||||
# Building of libhbpg.lib - Harbour API to postgres
|
||||
|
||||
# Postgresql running under Cygwin/Windows, unmark the line bellow to compile.
|
||||
# PG_DIR = ..\..\..\cygwin\usr\src\postgresql-7.4.5
|
||||
|
||||
PG_DIR = C:\PostgreSQL
|
||||
|
||||
INCLUDE_DIR = ..\..\include
|
||||
INCLUDE_PQ = $(PG_DIR)\include
|
||||
|
||||
BIN_DIR = c:\xharbour\bin
|
||||
OBJ_DIR = ..\..\obj\b32
|
||||
LIB_DIR = ..\..\lib\b32
|
||||
|
||||
$(LIB_DIR)\libhbpg.lib : \
|
||||
$(OBJ_DIR)\TPostgres.obj \
|
||||
$(OBJ_DIR)\postgres.obj
|
||||
|
||||
$(OBJ_DIR)\TPostgres.c : TPostgres.prg
|
||||
$(OBJ_DIR)\TPostgres.obj : $(OBJ_DIR)\TPostgres.c
|
||||
$(OBJ_DIR)\postgres.obj : postgres.c
|
||||
|
||||
.c.obj:
|
||||
bcc32 $(CLIBFLAGS) -c -O2 -I$(INCLUDE_DIR) -I$(INCLUDE_PQ) -DHB_OS_WIN_32_USED -DPG_DIAG_INTERNAL_POSITION -o$@ $<
|
||||
tlib $(LIB_DIR)\libhbpg.lib -+$@,,
|
||||
|
||||
.prg.c:
|
||||
$(BIN_DIR)\harbour.exe $< -q0 -a -w -es2 -gc0 -n -i$(INCLUDE_DIR) -o$@
|
||||
|
||||
19
harbour/contrib/rdd_ads/common.mak
Normal file
19
harbour/contrib/rdd_ads/common.mak
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
|
||||
LIBNAME = rddads
|
||||
|
||||
LIB_PATH = $(LIB_DIR)\$(LIBNAME)$(LIBEXT)
|
||||
|
||||
#
|
||||
# LIB rules
|
||||
#
|
||||
|
||||
LIB_OBJS = \
|
||||
$(OBJ_DIR)\ads1.obj \
|
||||
$(OBJ_DIR)\adsfunc.obj \
|
||||
$(OBJ_DIR)\adsmgmnt.obj
|
||||
|
||||
all: \
|
||||
$(LIB_PATH) \
|
||||
@@ -3,33 +3,56 @@ rem
|
||||
rem $Id$
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=b32
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=make.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
make -fmakefile.bc %1 %2 %3 > make_b32.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
implib ..\..\lib\%HB_CC_NAME%\ace32.lib ace32.dll
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\b32\rddads.lib ..\..\lib\*.* > nul
|
||||
if exist ..\..\lib\b32\rddads.bak del ..\..\lib\b32\rddads.bak
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
|
||||
notepad make_b32.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:CLEAN
|
||||
if exist ..\..\lib\b32\rddads.lib del ..\..\lib\b32\rddads.lib
|
||||
if exist ..\..\lib\b32\rddads.bak del ..\..\lib\b32\rddads.bak
|
||||
if exist ..\..\obj\b32\ads1.obj del ..\..\obj\b32\ads1.obj
|
||||
if exist ..\..\obj\b32\adsfunc.obj del ..\..\obj\b32\adsfunc.obj
|
||||
if exist ..\..\obj\b32\adsmgmnt.obj del ..\..\obj\b32\adsmgmnt.obj
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
copy ..\..\lib\%HB_CC_NAME%\ace32.lib ..\..\lib\
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
@@ -1,21 +1,66 @@
|
||||
@echo off
|
||||
rem
|
||||
rem
|
||||
rem $Id$
|
||||
rem
|
||||
rem
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
rem This is a generic template file, if it doesn't fit your own needs
|
||||
rem please DON'T MODIFY IT.
|
||||
rem
|
||||
rem Instead, make a local copy and modify that one, or make a call to
|
||||
rem this batch file from your customized one. [vszakats]
|
||||
rem
|
||||
rem Set any of the below settings to customize your build process:
|
||||
rem set HB_MAKE_PROGRAM=
|
||||
rem set HB_MAKE_FLAGS=
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%HB_CC_NAME%" == "" set HB_CC_NAME=vc
|
||||
if "%HB_MAKE_PROGRAM%" == "" set HB_MAKE_PROGRAM=nmake.exe
|
||||
set HB_MAKEFILE=..\mtpl_%HB_CC_NAME%.mak
|
||||
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
if "%1" == "clean" goto CLEAN
|
||||
if "%1" == "CLEAN" goto CLEAN
|
||||
|
||||
if "%1" == "install" goto INSTALL
|
||||
if "%1" == "INSTALL" goto INSTALL
|
||||
|
||||
:BUILD
|
||||
|
||||
nmake /f makefile.vc %1 %2 %3 > make_vc.log
|
||||
if errorlevel 1 goto BUILD_ERR
|
||||
rem ---------------------------------------------------------------
|
||||
DUMPBIN /EXPORTS ace32.dll > _dump.tmp
|
||||
echo LIBRARY ace32.dll > _temp.def
|
||||
echo EXPORTS >> _temp.def
|
||||
sed -nf exports.sed < _dump.tmp >> _temp.def
|
||||
LIB /MACHINE:X86 /DEF:_temp.def /OUT:..\..\lib\%HB_CC_NAME%\ace32.lib
|
||||
del _dump.tmp
|
||||
del _temp.def
|
||||
rem ---------------------------------------------------------------
|
||||
|
||||
:BUILD_OK
|
||||
|
||||
copy ..\..\lib\vc\rddads.lib ..\..\lib\*.* >nul
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% %1 %2 %3 > make_%HB_CC_NAME%.log
|
||||
if errorlevel 1 notepad make_%HB_CC_NAME%.log
|
||||
goto EXIT
|
||||
|
||||
:BUILD_ERR
|
||||
:CLEAN
|
||||
|
||||
notepad make_vc.log
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% CLEAN > make_%HB_CC_NAME%.log
|
||||
if exist make_%HB_CC_NAME%.log del make_%HB_CC_NAME%.log > nul
|
||||
if exist inst_%HB_CC_NAME%.log del inst_%HB_CC_NAME%.log > nul
|
||||
goto EXIT
|
||||
|
||||
:INSTALL
|
||||
|
||||
if "%HB_INSTALL_PREFIX%" == "" set HB_INSTALL_PREFIX=..\..
|
||||
|
||||
if "%HB_BIN_INSTALL%" == "" set HB_BIN_INSTALL=%HB_INSTALL_PREFIX%\bin
|
||||
if "%HB_INC_INSTALL%" == "" set HB_INC_INSTALL=%HB_INSTALL_PREFIX%\include
|
||||
if "%HB_LIB_INSTALL%" == "" set HB_LIB_INSTALL=%HB_INSTALL_PREFIX%\lib
|
||||
|
||||
copy ..\..\lib\%HB_CC_NAME%\ace32.lib ..\..\lib\
|
||||
|
||||
%HB_MAKE_PROGRAM% %HB_MAKE_FLAGS% -f %HB_MAKEFILE% INSTALL > nul
|
||||
goto EXIT
|
||||
|
||||
:EXIT
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user