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