Hi Bill,

I looked at hbmake.prg after your last cleanup. Your change at the aLibsDesc, reminded me of when I thought hbmake included some libraries twice. It turns out that I was wrong about this but it does produce a makefile that can be confusing. Consider the following excerpts from hbmake:

USERLIBS = c:\harbour\lib\whrlib.lib
...
LIBFILES = hblang.lib hbvm.lib hbrtl.lib hbrdd.lib hbmacro.lib hbpp.lib rddntx.lib rddcdx.lib rddfpt.lib hbcommon.lib gtwin.lib hbcpage.lib hbpcre.lib hbzlib.lib hbhsx.lib hbsix.lib hbdebug.lib hbmisc.lib hbnf.lib hbgt.lib
EXTLIBFILES = hbmisc.lib hbnf.lib hbgt.lib
...
ALLLIB = $(USERLIBS) $(LIBFILES) import32.lib cw32.lib
...
#BUILD

$(PROJECT): $(CFILES) $(OBJFILES) $(RESDEPEN) $(DEFFILE)
  $(CC_DIR)\bin\$(LINKER) @&&!
  $(LFLAGS) +
  $(ALLOBJ), +
  $(PROJECT),, +
  $(ALLLIB), +
  $(DEFFILE), +
  $(ALLRES)
!

On the LIBFILES line at the end are the EXTLIBFILES appended with 3- spaces between harbour's default library files and the other (contrib/user) lib files. Thus they are included in the makefile twice but are only used once since the libs on the EXTLIBFILES line is ignored.

Looks like it was fixed in the past, but the fix
wasn't exactly the right one.

It might be less confusing if the External Library Files were called Contrib Lib files since that's what they are and the libfiles called HBLIBS. For example, the make file could be something like:

...
HBLIBS = hblang.lib ...
CONTRIBLIBS = hbmisc.lib ...
USERLIBS = c:\harbour\lib\whrlib.lib
ALLLIB = $(USERLIBS) $(CONTRIBLIBS) $(HBLIBS) import32.lib cw32.lib
...

where nothing is used twice and nothing is ignored.

I agree. This would be the way it should work.

Could you create a patch for this?

Brgds,
Viktor

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to