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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
#**********************************************************
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user