diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 265510e699..61b53a8606 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,17 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-11-11 13:16 UTC+0100 Viktor Szakats (harbour.01 syenar hu) + * make_b32.mak + * make_vc.mak + * ChangeLog + ! Fixed MT mode .dll not starting up properly. IOW now + 'hbmk -shared -mt' works. Relevant entries marked as + [DONE] + + * bin/hbmk.bat + + Added '-debug' switch. Currently supported in BCC and MSVC. + 2008-11-11 12:08 UTC+0100 Viktor Szakats (harbour.01 syenar hu) * source/rtl/console.c ! Fixed __EJECT() writing an EJECT only if output device @@ -30,7 +41,7 @@ * 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. + app simply exists for both BCC and MSVC. [DONE] ; TODO: Please update make_gcc.mak. 2008-11-11 04:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu) @@ -120,7 +131,7 @@ * bin/hbmk.bat + Added '-shared' option. ; TOFIX: '-shared' won't work in binary installations. [DONE] - ; TOFIX: '-shared' cannot create MT apps. + ; TOFIX: '-shared' cannot create MT apps. [DONE] ; TOFIX: '-shared' only works for BCC32 yet. [DONE] - tests/hbmk_b32_dll.bat diff --git a/harbour/bin/hbmk.bat b/harbour/bin/hbmk.bat index 0a06bb6d18..a794b365e0 100644 --- a/harbour/bin/hbmk.bat +++ b/harbour/bin/hbmk.bat @@ -34,6 +34,7 @@ set _HB_USR_L= set _HB_MT=%HB_MT% set _HB_GUI=%HB_GUI% set _HB_SHARED=%HB_SHARED% +set _HB_DEBUG=%HB_DEBUG% :REPEAT @@ -55,6 +56,12 @@ if not "%1" == "-shared" goto NO_SHARED goto REPEAT :NO_SHARED +if not "%1" == "-debug" goto NO_DEBUG + set _HB_DEBUG=yes + shift + goto REPEAT +:NO_DEBUG + if not "%_HB_MT%" == "yes" set _HB_MT= if "%_HB_MT%" == "MT" set _HB_MT=mt if "%_HB_MT%" == "yes" set _HB_MT=mt @@ -69,7 +76,7 @@ if "%_HB_MT%" == "yes" set _HB_MT=mt :HELP echo. - echo Usage: hbmk [-mt] [-gui] [-shared] filename + echo Usage: hbmk [-mt] [-gui] [-shared] [-debug] filename echo. echo Notes: echo. @@ -200,7 +207,9 @@ if "%_HB_MT%" == "yes" set _HB_MT=mt if not "%HB_COMPILER%" == "bcc32" goto A_WIN_BCC_NOT - if "%_HB_GUI%" == "yes" set _HB_USR_C=-tW + if "%_HB_DEBUG%" == "yes" set _HB_USR_C=-y -v + + if "%_HB_GUI%" == "yes" set _HB_USR_C=%_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%_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 @@ -211,11 +220,13 @@ if "%_HB_MT%" == "yes" set _HB_MT=mt if not "%HB_COMPILER%" == "msvc" goto A_WIN_MSVC_NOT + if "%_HB_DEBUG%" == "yes" set _HB_USR_C=-MTd -Zi + 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%_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 + if not "%_HB_SHARED%" == "yes" cl -nologo -W3 %C_USR% %_HB_USR_C% -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% %_HB_USR_C% -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 @@ -275,13 +286,14 @@ if "%_HB_MT%" == "yes" set _HB_MT=mt if exist %_HB_PRG_NAME%.o del %_HB_PRG_NAME%.o if exist %_HB_PRG_NAME%.obj del %_HB_PRG_NAME%.obj rem Borland stuff - if exist %_HB_PRG_NAME%.tds del %_HB_PRG_NAME%.tds + if not "%_HB_DEBUG%" == "yes" if exist %_HB_PRG_NAME%.tds del %_HB_PRG_NAME%.tds :END set _HB_MT= set _HB_GUI= set _HB_SHARED= +set _HB_DEBUG= set _HBVM_LIB= set _HB_USR_C= set _HB_USR_L= diff --git a/harbour/make_b32.mak b/harbour/make_b32.mak index 902648b15f..87d36cca74 100644 --- a/harbour/make_b32.mak +++ b/harbour/make_b32.mak @@ -159,7 +159,7 @@ ARFLAGS = /P64 $(A_USR) #********************************************************** # General *.prg --> *.obj COMPILE rule for SHARED MT Libraries {$(ALL_SRC_DIRS)}.prg{$(MTDLL_OBJ_DIR)}$(OBJEXT): - $(HB) $(HARBOURFLAGS) -o$(MTDLL_OBJ_DIR)\ $** + $(HB) $(HARBOURFLAGSDLL) -o$(MTDLL_OBJ_DIR)\ $** $(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -o$@ $(MTDLL_OBJ_DIR)\$&.c #********************************************************** diff --git a/harbour/make_vc.mak b/harbour/make_vc.mak index 2c925b4195..9f4db39473 100644 --- a/harbour/make_vc.mak +++ b/harbour/make_vc.mak @@ -461,7 +461,7 @@ LDFLAGSDLL = /debug $(LDFLAGSDLL) # General *.prg --> *.obj COMPILE rules for SHARED MT Libraries #******************************************************* {$(VM_DIR)}.prg{$(MTDLL_OBJ_DIR)}$(OBJEXT): - $(HB) $(HARBOURFLAGS) -o$(MTDLL_OBJ_DIR)\ $< + $(HB) $(HARBOURFLAGSDLL) -o$(MTDLL_OBJ_DIR)\ $< $(CC) $(CLIBFLAGSDLL) $(CFLAGSMT) -Fo$(MTDLL_OBJ_DIR)\ $(MTDLL_OBJ_DIR)\$(*B).c #*******************************************************