On Sun, 09 Nov 2008, Szak�ts Viktor wrote:

Hi Viktor,

> I don't understand the other part of your answer, maybe
> my question wasn't very clear. This topic seems to only
> affect BCC / MSVC, GCC is much cleaner probably.
> So, currently BCC/MSVC does two passes, one for static
> libs and executables using these static libs, plus
> there is an additional pass, when certain object are
> recompiled with functions marked as exported to build
> harbour.dll. This second pass uses -DHB_DYNLIB and it
> only kicks in if 'HB_BUILD_DLL=yes' (default is 'no').

make_gcc.sh also compiles separately files for shared library.
It's necessary for some platforms because code for shared libraries
may need different switches so this functionality should not be
removed. If you want to eliminate separate compilation for shared
library in some builds then it will be enough to make DLL_OBJ_DIR
equal to OBJ_DIR, f.e.:
   DLL_OBJ_DIR=$(OBJ_DIR)
Of course if it's possible to use the same binaries.

> 'HB_BUILD_DLL=yes' makes whole process take almost
> twice as much time (and disk space). Also, building
> hbrun-dll won't work this way unless we create even more
> complications.

Sorry but I do not know what you think writing about problem
with hbrun-dll.

> So, it's time that we make HB_DYNLIB the default, which
> instantly makes the second pass unnecessary, it also
> fixes hbrun-dll build problem. This way building .dlls
> has no significant drawbacks, and could be enabled
> for default builds, making also HB_BUILD_DLL option
> unnecessary (and closing the gap between GNU and
> non-GNU makes somewhat).
> The only perceivable drawback is some executable size
> increase for BCC/MSVC (max 100K), plus the fact that
> all Harbour executables will export certain (used)
> Harbour functions.
> I was wondering if you have any concerns going to this
> direction?

For me it's not a problem but please remember that you should
not remove such functionality from make files because it may
be necessary in some situations. We should also remember about
builds for environments with restrictive memory amount, f.e.
for WinCE where probably also -gc3 should be replaced with -gc0
and in MinGWCE -O3 GCC switch replaced by -O2.

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to