2008-11-11 05:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* make_b32.mak
  * make_vc.mak
  * common.mak
  * bin/hbmk.bat
    + Added generation of MT harbour .dlls for BCC and MSVC.
    ; TOFIX: 'hbmk -shared -mt' doesn't seem to work, resulting 
             app simply exists for both BCC and MSVC.
    ; TODO: Please update make_gcc.mak.
This commit is contained in:
Viktor Szakats
2008-11-11 04:35:28 +00:00
parent ff29cb14e2
commit 1eba9cf55f
5 changed files with 73 additions and 17 deletions

View File

@@ -8,6 +8,16 @@
2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2008-11-11 05:34 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* make_b32.mak
* make_vc.mak
* common.mak
* bin/hbmk.bat
+ Added generation of MT harbour .dlls for BCC and MSVC.
; TOFIX: 'hbmk -shared -mt' doesn't seem to work, resulting
app simply exists for both BCC and MSVC.
; TODO: Please update make_gcc.mak.
2008-11-11 04:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* make_b32.mak
* make_vc.mak

View File

@@ -55,9 +55,9 @@ if not "%1" == "-shared" goto NO_SHARED
goto REPEAT
:NO_SHARED
set _HBVM_LIB=hbvm
if "%_HB_MT%" == "yes" set _HBVM_LIB=hbvmmt
if "%_HB_MT%" == "MT" set _HBVM_LIB=hbvmmt
if not "%_HB_MT%" == "yes" set _HB_MT=
if "%_HB_MT%" == "MT" set _HB_MT=mt
if "%_HB_MT%" == "yes" set _HB_MT=mt
:START
@@ -142,7 +142,7 @@ if "%_HB_MT%" == "MT" set _HBVM_LIB=hbvmmt
echo -lhblang >> _hb_mk.tmp
echo -lhbrdd >> _hb_mk.tmp
echo -lhbrtl >> _hb_mk.tmp
echo -l%_HBVM_LIB% >> _hb_mk.tmp
echo -lhbvm%_HB_MT% >> _hb_mk.tmp
echo -lhbmacro >> _hb_mk.tmp
echo -lhbpp >> _hb_mk.tmp
echo -lrddfpt >> _hb_mk.tmp
@@ -202,8 +202,8 @@ if "%_HB_MT%" == "MT" set _HBVM_LIB=hbvmmt
if "%_HB_GUI%" == "yes" set _HB_USR_C=-tW
if not "%_HB_SHARED%" == "yes" bcc32 -q -tWM -O2 -OS -Ov -Oi -Oc -d %C_USR% %_HB_USR_C% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %_HB_PRG_NAME%.c %HB_USER_LIBS% hbcpage.lib hbdebug.lib %_HBVM_LIB%.lib hbrtl.lib gtcgi.lib gtgui.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddfpt.lib rddntx.lib rddcdx.lib hbhsx.lib hbsix.lib hbcommon.lib hbpcre.lib hbzlib.lib
if "%_HB_SHARED%" == "yes" bcc32 -q -tWM -O2 -OS -Ov -Oi -Oc -d %C_USR% %_HB_USR_C% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %_HB_PRG_NAME%.c %HB_USER_LIBS% harbour-11-b32.lib hbmainstd.lib hbmainwin.lib hbcommon.lib
if not "%_HB_SHARED%" == "yes" bcc32 -q -tWM -O2 -OS -Ov -Oi -Oc -d %C_USR% %_HB_USR_C% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %_HB_PRG_NAME%.c %HB_USER_LIBS% hbcpage.lib hbdebug.lib hbvm%_HB_MT%.lib hbrtl.lib gtcgi.lib gtgui.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddfpt.lib rddntx.lib rddcdx.lib hbhsx.lib hbsix.lib hbcommon.lib hbpcre.lib hbzlib.lib
if "%_HB_SHARED%" == "yes" bcc32 -q -tWM -O2 -OS -Ov -Oi -Oc -d %C_USR% %_HB_USR_C% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% %_HB_PRG_NAME%.c %HB_USER_LIBS% harbour%_HB_MT%-11-b32.lib hbmainstd.lib hbmainwin.lib hbcommon.lib
goto CLEANUP
@@ -214,8 +214,8 @@ if "%_HB_MT%" == "MT" set _HBVM_LIB=hbvmmt
if not "%_HB_GUI%" == "yes" set _HB_USR_L=/subsystem:console
if "%_HB_GUI%" == "yes" set _HB_USR_L=/subsystem:windows
if not "%_HB_SHARED%" == "yes" cl -nologo -W3 %C_USR% -I%HB_INC_INSTALL% %_HB_PRG_NAME%.c /link /libpath:%HB_LIB_INSTALL% %L_USR% %_HB_USR_L% %HB_USER_LIBS% hbcpage.lib hbdebug.lib %_HBVM_LIB%.lib hbrtl.lib gtcgi.lib gtgui.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddntx.lib rddcdx.lib rddfpt.lib hbhsx.lib hbsix.lib hbcommon.lib hbpcre.lib hbzlib.lib user32.lib wsock32.lib advapi32.lib gdi32.lib
if "%_HB_SHARED%" == "yes" cl -nologo -W3 %C_USR% -I%HB_INC_INSTALL% %_HB_PRG_NAME%.c /link /libpath:%HB_LIB_INSTALL% %L_USR% %_HB_USR_L% %HB_USER_LIBS% harbour-11-vc.lib hbmainstd.lib hbmainwin.lib hbcommon.lib user32.lib wsock32.lib advapi32.lib gdi32.lib
if not "%_HB_SHARED%" == "yes" cl -nologo -W3 %C_USR% -I%HB_INC_INSTALL% %_HB_PRG_NAME%.c /link /libpath:%HB_LIB_INSTALL% %L_USR% %_HB_USR_L% %HB_USER_LIBS% hbcpage.lib hbdebug.lib hbvm%_HB_MT%.lib hbrtl.lib gtcgi.lib gtgui.lib gtpca.lib gtstd.lib gtwin.lib gtwvt.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib rddntx.lib rddcdx.lib rddfpt.lib hbhsx.lib hbsix.lib hbcommon.lib hbpcre.lib hbzlib.lib user32.lib wsock32.lib advapi32.lib gdi32.lib
if "%_HB_SHARED%" == "yes" cl -nologo -W3 %C_USR% -I%HB_INC_INSTALL% %_HB_PRG_NAME%.c /link /libpath:%HB_LIB_INSTALL% %L_USR% %_HB_USR_L% %HB_USER_LIBS% harbour%_HB_MT%-11-vc.lib hbmainstd.lib hbmainwin.lib hbcommon.lib user32.lib wsock32.lib advapi32.lib gdi32.lib
goto CLEANUP
:A_WIN_MSVC_NOT
@@ -223,14 +223,14 @@ if "%_HB_MT%" == "MT" set _HBVM_LIB=hbvmmt
if "%HB_COMPILER%" == "gcc" set HB_COMPILER=mingw
if not "%HB_COMPILER%" == "mingw" goto A_WIN_MINGW_NOT
gcc %_HB_PRG_NAME%.c -O3 -o%_HB_PRG_NAME%.exe %C_USR% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% -lhbcpage -lhbdebug -l%_HBVM_LIB% -lhbrtl -lgtcgi -lgtgui -lgtpca -lgtstd -lgtwin -lgtwvt -lhblang -lhbrdd -lhbrtl -l%_HBVM_LIB% -lhbmacro -lhbpp -lrddfpt -lrddntx -lrddcdx -lhbhsx -lhbsix -lhbcommon -lhbpcre -lhbzlib
gcc %_HB_PRG_NAME%.c -O3 -o%_HB_PRG_NAME%.exe %C_USR% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% -lhbcpage -lhbdebug -lhbvm%_HB_MT% -lhbrtl -lgtcgi -lgtgui -lgtpca -lgtstd -lgtwin -lgtwvt -lhblang -lhbrdd -lhbrtl -lhbvm%_HB_MT% -lhbmacro -lhbpp -lrddfpt -lrddntx -lrddcdx -lhbhsx -lhbsix -lhbcommon -lhbpcre -lhbzlib
goto CLEANUP
:A_WIN_MINGW_NOT
if not "%HB_COMPILER%" == "rsxnt" goto A_WIN_RSXNT_NOT
gcc %_HB_PRG_NAME%.c -O3 -Zwin32 %C_USR% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% -lhbcpage -lhbdebug -l%_HBVM_LIB% -lhbrtl -lgtcgi -lgtgui -lgtpca -lgtstd -lgtwin -lgtwvt -lhblang -lhbrdd -lhbrtl -l%_HBVM_LIB% -lhbmacro -lhbpp -lrddfpt -lrddntx -lrddcdx -lhbhsx -lhbsix -lhbcommon -lhbpcre -lhbzlib
gcc %_HB_PRG_NAME%.c -O3 -Zwin32 %C_USR% -I%HB_INC_INSTALL% -L%HB_LIB_INSTALL% -lhbcpage -lhbdebug -lhbvm%_HB_MT% -lhbrtl -lgtcgi -lgtgui -lgtpca -lgtstd -lgtwin -lgtwvt -lhblang -lhbrdd -lhbrtl -lhbvm%_HB_MT% -lhbmacro -lhbpp -lrddfpt -lrddntx -lrddcdx -lhbhsx -lhbsix -lhbcommon -lhbpcre -lhbzlib
goto CLEANUP
:A_WIN_RSXNT_NOT
@@ -242,7 +242,7 @@ if "%_HB_MT%" == "MT" set _HBVM_LIB=hbvmmt
echo FILE %_HB_PRG_NAME%.obj >> _hb_mk.tmp
echo LIB hbcpage.lib >> _hb_mk.tmp
echo LIB hbdebug.lib >> _hb_mk.tmp
echo LIB %_HBVM_LIB%.lib >> _hb_mk.tmp
echo LIB hbvm%_HB_MT%.lib >> _hb_mk.tmp
echo LIB hbrtl.lib >> _hb_mk.tmp
echo LIB gtcgi.lib >> _hb_mk.tmp
echo LIB gtgui.lib >> _hb_mk.tmp

View File

@@ -122,6 +122,7 @@ HB_DEST_DIRS = \
$(LIB_DIR) \
\
$(MT_OBJ_DIR) \
$(MTDLL_OBJ_DIR) \
$(DLL_OBJ_DIR)
MAIN_DIR = source\main
@@ -274,6 +275,7 @@ HBMAKE_EXE = $(BIN_DIR)\hbmake$(EXEEXT)
HB_DLLVER = 11
HARBOUR_DLL = $(BIN_DIR)\$(LIBPREF)harbour-$(HB_DLLVER)-$(HB_CC_NAME)$(DLLEXT)
HARBOURMT_DLL= $(BIN_DIR)\$(LIBPREF)harbourmt-$(HB_DLLVER)-$(HB_CC_NAME)$(DLLEXT)
HBTESTDLL_EXE= $(BIN_DIR)\hbtest-dll$(EXEEXT)
HBRUNDLL_EXE = $(BIN_DIR)\hbrun-dll$(EXEEXT)
@@ -1192,7 +1194,6 @@ DLL_GT_OBJS = \
TMP_DLL_OBJS = \
$(COMMON_LIB_OBJS) \
$(PP_LIB_OBJS) \
$(VM_DLL_OBJS) \
$(RTL_LIB_OBJS) \
$(MACRO_LIB_OBJS) \
$(LANG_LIB_OBJS) \
@@ -1267,7 +1268,7 @@ HB_BUILD_TARGETS = \
# variable HB_BUILD_DLL to yes
!if "$(HB_BUILD_DLL)" != "no"
HB_BUILD_TARGETS = $(HB_BUILD_TARGETS) $(HARBOUR_DLL) $(HBTESTDLL_EXE) $(HBRUNDLL_EXE)
HB_BUILD_TARGETS = $(HB_BUILD_TARGETS) $(HARBOUR_DLL) $(HARBOURMT_DLL) $(HBTESTDLL_EXE) $(HBRUNDLL_EXE)
!endif
#**********************************************************

View File

@@ -70,10 +70,12 @@ MKLIB = tlib.exe
# Some definitions cannot be kept in common.mak
# due to serious limitations of Microsoft Nmake
DLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
VMMTDLL_LIB_OBJS = $(VM_DLL_OBJS:$(OBJ_DIR)=$(MTDLL_OBJ_DIR))
VMMT_LIB_OBJS = $(VM_LIB_OBJS:$(OBJ_DIR)=$(MT_OBJ_DIR))
DLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR)) $(VM_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR))
MTDLL_OBJS = $(TMP_DLL_OBJS:$(OBJ_DIR)=$(DLL_OBJ_DIR)) $(VMMTDLL_LIB_OBJS)
#**********************************************************
# C compiler, Harbour compiler and Linker flags.
#**********************************************************
@@ -150,6 +152,17 @@ ARFLAGS = /P64 $(A_USR)
$(CC) $(CLIBFLAGS) $(CFLAGSMT) -o$@ $(MT_OBJ_DIR)\$&.c
#**********************************************************
#**********************************************************
# General *.c --> *.obj COMPILE rule for SHARED MT Libraries
{$(ALL_SRC_DIRS)}.c{$(MTDLL_OBJ_DIR)}$(OBJEXT):
$(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -o$@ $<
#**********************************************************
# General *.prg --> *.obj COMPILE rule for SHARED MT Libraries
{$(ALL_SRC_DIRS)}.prg{$(MTDLL_OBJ_DIR)}$(OBJEXT):
$(HB) $(HARBOURFLAGS) -o$(MTDLL_OBJ_DIR)\ $**
$(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -o$@ $(MTDLL_OBJ_DIR)\$&.c
#**********************************************************
#**********************************************************
# General *.c --> *.obj COMPILE rule for SHARED Libraries
{$(ALL_LIB_SRC_DIRS)}.c{$(DLL_OBJ_DIR)}$(OBJEXT):
@@ -528,6 +541,12 @@ $(HARBOUR_DLL) :: $(DLL_OBJS)
c0d32.obj $**, $@,, cw32mt$(RTLIBSUFFIX).lib import32.lib
!
#**********************************************************
$(HARBOURMT_DLL) :: BasicLibs BasicExes
$(HARBOURMT_DLL) :: $(MTDLL_OBJS)
$(LINKER) $(LDFLAGSDLL) @&&!
c0d32.obj $**, $@,, cw32mt$(RTLIBSUFFIX).lib import32.lib
!
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
$(HBTESTDLL_EXE) :: BasicLibs BasicExes

View File

@@ -87,10 +87,12 @@ MKLIB = lib.exe
# Nmake does not support macros in string
# substitution, so we have to hardcode it
DLL_OBJS = $(TMP_DLL_OBJS:obj\vc=obj\vc\dll)
VMMTDLL_LIB_OBJS = $(VM_DLL_OBJS:obj\vc=obj\vc\mt_dll)
VMMT_LIB_OBJS = $(VM_LIB_OBJS:obj\vc=obj\vc\mt)
DLL_OBJS = $(TMP_DLL_OBJS:obj\vc=obj\vc\dll) $(VM_DLL_OBJS:obj\vc=obj\vc\dll)
MTDLL_OBJS = $(TMP_DLL_OBJS:obj\vc=obj\vc\dll) $(VMMTDLL_LIB_OBJS)
!if "$(HB_BUILD_WINCE)" == "yes"
HARBOURFLAGS = $(HARBOURFLAGS) -gc0
HARBOURFLAGSDLL = $(HARBOURFLAGSDLL) -gc0
@@ -448,6 +450,21 @@ LDFLAGSDLL = /debug $(LDFLAGSDLL)
$(CC) $(CLIBFLAGS) $(CFLAGSMT) -Fo$(MT_OBJ_DIR)\ $(MT_OBJ_DIR)\$(*B).c
#*******************************************************
#*******************************************************
# General *.c --> *.obj COMPILE rules for SHARED MT Libraries
#*******************************************************
{$(VM_DIR)}.c{$(MTDLL_OBJ_DIR)}$(OBJEXT)::
$(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -Fo$(MTDLL_OBJ_DIR)\ $<
#*******************************************************
#*******************************************************
# General *.prg --> *.obj COMPILE rules for SHARED MT Libraries
#*******************************************************
{$(VM_DIR)}.prg{$(MTDLL_OBJ_DIR)}$(OBJEXT):
$(HB) $(HARBOURFLAGS) -o$(MTDLL_OBJ_DIR)\ $<
$(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -Fo$(MTDLL_OBJ_DIR)\ $(MTDLL_OBJ_DIR)\$(*B).c
#*******************************************************
#*******************************************************
# General *.c --> *.obj COMPILE rules for SHARED Libraries
#*******************************************************
@@ -901,6 +918,15 @@ $(DLL_OBJS: = ^
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
$(HARBOURMT_DLL) : $(HB) $(MTDLL_OBJS)
$(LINKER) @<<
$(LDFLAGSDLL) /out:$(@)
/implib:$(@:.dll=.lib)
$(MTDLL_OBJS: = ^
)
$(STANDARD_SYSLIBS)
<<$(HB_KEEPSTATE)
#**********************************************************
# DLL EXECUTABLE Targets
#**********************************************************
HBTESTDLL_OBJS = $(DLL_OBJ_DIR)\mainstd$(OBJEXT) $(HBTEST_EXE_OBJS:obj\vc=obj\vc\dll)