Przemyslaw Czerpak wrote: > Interesting. Now it looks like GNU make problem. > Maybe some trick with eval function can help, f.e. something like: > > define lib_object > echo ADDMOD $(1) >> __lib__.tmp > endef > > define create_library > IF EXIST $(OS2_LIB_ARCH) $(RM) $(OS2_LIB_ARCH) > echo CREATE $(LIB_DIR)/$@ > __lib__.tmp > $(foreach file, $(^F), $(eval $(call lib_object,$(file)))) > echo SAVE >> __lib__.tmp > echo END >> __lib__.tmp > $(AR) -M < __lib__.tmp > endef >
With this I get an error: c ../../hbarch.c -ohbarch.o gcc -I. -I../../../../include -Wall -W -O3 -DTCPV40HDRS -DHB_FM_STATISTICS_OFF - c ../../reserved.c -oreserved.o ../../../../config/lib.cf:30: *** missing separator. Stop. make[3]: Leaving directory `E:/repository/harbour-svn/source/common/os2/gcc' make[2]: *** [descend] Error 2 make[2]: Leaving directory `E:/repository/harbour-svn/source/common' make[1]: *** [common] Error 2 make[1]: Leaving directory `E:/repository/harbour-svn/source' make: *** [source] Error 2 >> Of course it works on the assumption that the library is made up of .o files. > > You can use $(OBJ_EXT) instead of .o > $(COMSPEC) /C "for %i in ( *$(OBJ_EXT) ) do echo ADDMOD %i >> _l_.tmp" Yes, I can even remove the $(COMSPEC) /C there is no need to spawn another shell. > I do not know OS2 command line size limit but if it's big enough then > you can also use: 1024 chars > $(COMSPEC) /C "for %i in ($(^F)) do echo ADDMOD %i >> _l_.tmp" > Though in such case it should be possible to directly call ar without > the above trick by simple: > AR_RULE = $(AR) $(ARFLAGS) cr $(LIB_DIR)/$@ $(^F) > so I guess it's smaller then necessary. > Yes, this limit was reached long ago and the script was created to bypass it. Thanks a lot. Maurilio. PS. I'll do some timing to see how much it takes to build with various -j ASAP :) > best regards, > Przemek > _______________________________________________ > Harbour mailing list > Harbour@harbour-project.org > http://lists.harbour-project.org/mailman/listinfo/harbour > -- __________ | | | |__| Maurilio Longo |_|_|_|____| farmaconsult s.r.l. _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour