On Wed, 25 Feb 2009, Szak�ts Viktor wrote:

Hi,

> To continue:
> I like this dir to look like this (on all platforms ideally, of course with
> applying extensions):
> ---
> hbmk.cfg
> harbour.dll
> harbourmt.dll
> harbour.exe
> hbdoc.exe
> hbi18n.exe
> hbmk.exe
> hbpp.exe
> hbrun.exe
> hbtest.exe
> ---

With the exception to hbmk.cfg which cannot be stored in binary
directory in system wide installation due to distribution policy
in most of *nixes so in *nix builds hbmk should look for this file
in:
   <hbmkdir>
   <hbmkdir>/../etc/harbour   
   <hbmkdir>/../etc           // "/harbour/" is part of hbmkdir
   /etc/harbour
   /etc                       // "/harbour/" is part of hbmkdir

In *nixes it's also good pratcie to look for users customized
settings, f.e.:
   ${HOME}/.harbour/

> I'd like to get agreement on this from the list, because I'm
> willing to do it but unless the group can agree to do it I wouldn't
> want to force this. Anyhow it would be great to Harbour itself,
> it's maintainability and accessibility for users (= there is no point
> in having all these features if only Harbour experts are able to
> create a build or compile a test app). It would certainly help if
> we could all somehow look past our _strict personal insistence_
> on keeping compatibility with every small detail (with regards
> to build environment), we're skilled enough to make some
> modifications on the local systems I guess (I had done quite
> many recently on mine).

The basic functionality for native compilation seems to work but I haven't
made deeper tests so maybe I missed sth. I'll try to make such test in the
weekend. So far I noticed that -static is default mode in *nix builds
and -fullstatic does not work at all so always dynamic applications are
created and only harbour static libraries are used.
Harbour does not have any chance to be ever part of default Windows
installation but it has big chance to be part of different open source
based systems but we have to respect the official distribution rules
so in *nixes shared linking should be default.
The second problem is support for cross compilation. Here I haven't
even try to make any tests. In the last days hbmk2 was changed too
often to even start them. Just simply I do not know how will look
the final base code. I still think that auto detection should be based
on compiler used to compile hbmk2.prg and other configurations should
be done on user requests. Any automatic compiler detection by PATH
search for me can be only source of problems because Harbour libraries
are not binary compatible when compiled by different compilers. In few
cases they are (f.e. POCC/XCC) but probably no one of us knows if CRTLs
are fully compatible and it's safe to mix libraries compiled by different
C compilers. Unfortunately simple test and answer "is running for me"
is not enough because problems can be hidden very deeply, f.e. some
memory corruptions which can be exploited only in some seldom cases.
So such autodetection can cause really unpredictible results.
It will be good if linker refuse creating final binaries so user will
notice it and fix the environment settings but in the worst case the
application can be linked and executed but will not work correctly.
I'm finding it as very danger situation especially in Windows where
user can have many C compilers and small modifications in environment
settings f.e. after installing new C compiler may cause that wrong
binaries which cannot be easy tested will be delivered to customers.
For me the Harbour/hbmk2 build time C compiler should have the highest
priority.

> Don't be mistaken this isn't some kind of personal need
> for me, since I can build Harbour and use Harbour in all
> environments, but all feedbacks (not only from the list, but
> from potential users), tells me that we could do a lot to make
> Harbour better in these areas. And I've dedicated my last 2-3
> weeks of my free time to address these things.
> Some things I'd like to clean:
> - non-GNU make files. [.dll creation works for the most part in GNU-make
> now.]

I do not know what you are asking for.

> - harbour.cfg + Harbour -go option: hbmk2 is here as a better solution.

I do not have clear opinion about it. I do not use it so for me it can
be dropped though if Harbour will be default part of some OS distributions
then such mechanism can be easy used for binding with default C compiler,
f.e. also with -pipe option to eliminate temporary files.
BTW I haven't asked about it before but it will be good if hbmk2 can
create intermediate .c file in some temporary location and not use
<baseprgdir>/<baseprgname>.c files. In the past I lost few times some
files when by mistake I used the same name for .prg and .c files.

> - hb* helper scripts, batches: confuse users, and doesn't add functionality.

We can remove them in some longer terms, f.e. after few weeks of hbmk2
testing. But please do not remove the internal logic from hbmk2 code
which recognize them so anyone who will want to use it can create own
links.

> - hb-mkslib compatibility name: not widely used, easy to add locally for
> those who depend on it, otherwise it
>      just creates ambiguity.

The above is IMHO only your personal feeling. hb-mkslib exists for nearly
6 years in [x]Harbour world and AFAIK is quite often used. Anyhow we can
remove it in the future probably together with linkes to hbmk2.

> - gcc specific hbmk script: hbmk2 is meant to replace it.

yes, when it will be tested and will support existing functionality.
F.e. RPMs with WIN32 and WINCE cross builds will work with hbmk2 just
like know works with hbmk.
I do not like this idea but for my own use I will create my own Harbour
builds so it's not a problem for me.

> - rename hbmk2 to hbmk.

AFAIK it's the goal :-)
But non of the above is development stopper so this are minor thinks
which can be made by any of us in less then 15 minutes. The important
is existing hbmk2 functionality.

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

Reply via email to