Przemek:
>Thank you very much. So the last version work.
>What will happen if we add more lines, i.e.:
>define create_library
>echo $(LIB_DIR)/$@ > __lib__.tmp
>$(if $(wordlist 1, 10,$(^F)), echo $(wordlist 1, 10,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 11, 20,$(^F)), echo $(wordlist 11, 20,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 21, 30,$(^F)), echo $(wordlist 21, 30,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 31, 40,$(^F)), echo $(wordlist 31, 40,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 41, 50,$(^F)), echo $(wordlist 41, 50,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 51, 60,$(^F)), echo $(wordlist 51, 60,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 61, 70,$(^F)), echo $(wordlist 61, 70,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 71, 80,$(^F)), echo $(wordlist 71, 80,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 81, 90,$(^F)), echo $(wordlist 81, 90,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 91,100,$(^F)), echo $(wordlist 91,100,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 101,110,$(^F)), echo $(wordlist 101,110,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 111,120,$(^F)), echo $(wordlist 111,120,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 121,130,$(^F)), echo $(wordlist 121,130,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 131,140,$(^F)), echo $(wordlist 131,140,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 141,150,$(^F)), echo $(wordlist 141,150,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 151,160,$(^F)), echo $(wordlist 151,160,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 161,170,$(^F)), echo $(wordlist 161,170,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 171,180,$(^F)), echo $(wordlist 171,180,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 181,190,$(^F)), echo $(wordlist 181,190,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 191,200,$(^F)), echo $(wordlist 191,200,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 201,210,$(^F)), echo $(wordlist 201,210,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 211,220,$(^F)), echo $(wordlist 211,220,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 221,230,$(^F)), echo $(wordlist 221,230,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 231,240,$(^F)), echo $(wordlist 231,240,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 241,250,$(^F)), echo $(wordlist 241,250,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 251,260,$(^F)), echo $(wordlist 251,260,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 261,270,$(^F)), echo $(wordlist 261,270,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 271,280,$(^F)), echo $(wordlist 271,280,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 281,290,$(^F)), echo $(wordlist 281,290,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(if $(wordlist 291,300,$(^F)), echo $(wordlist 291,300,$(addprefix
>-+,$(^F))) >> __lib__.tmp,)
>$(AR) $(ARFLAGS) @__lib__.tmp
>endef
>???
It fail:
----------------------------
[E:\harbour907e\harbour]make -r 1>make_ow.log
make[3]: *** [hbrtl.lib] Segmentation fault
make[2]: *** [descend] Error 2
make[1]: *** [rtl] Error 2
make: *** [source] Error 2
----------------------------
Start to fail with 7 lines, after
$(if $(wordlist 51, 60,$(^F)), echo $(wordlist 51, 60,$(addprefix
-+,$(^F))) >> __lib__.tmp,)
>Yes and it's a bug in OS2 GNU make port we are exploiting from time to
>time.
>If we find some acceptable solution the we will use it. If not we will
>have to return to the:
> for %i in ( *$(OBJ_EXT) ) do @echo ... >> __lib__.tmp
>trick and add some hack to protect against adding hbpp.obj to library.
>Though we can also try to disable rules for parallel processing.
>They will reduce total number of used rules so maybe it's good
>workaround for the memory overflow.
>If you add at config/dir.cf[19]:
> JOB_SRV := NO
>just before:
> ifeq ($(JOB_SRV),NO)
>then you disable parallel processing rules.
Setting JOB_SRV := NO in config\dir.cf lead to message on screen for
expected failure (same number of lines as before)
-----------------------------------------
[E:\harbour907e\harbour]make -r 1>make_ow.log
make[3]: *** [hbrtl.lib] Segmentation fault
make[2]: *** [descend] Error 2
-----------------------------------------
and CPU goes to 99.9, session hangs and can not be killed in any way,
except reboot
Tested three times
>BTW what happens when you tries to use older make (3.7x) with current
>SVN code?
Does not support inner dir separators in some cases
I posted this info some days ago:
-----------------------------------------
The two main differences observed between both make.exe are:
- make381 stop at first error, make376 continue building
- make376 have problems with dir separator at some points
Along years this has been a problem with Harbour build and fixed
setting \\ in place of \ in some parts using "test and error"
It does work using command line, but fail using make
As now we can see, is a problem of make376 and not of OS/2
-----------------------------------------
I am trying to forget make376 and use only make381
David Macias
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour