diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 52e9e599ff..a50700460b 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,11 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-08-10 23:16 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/pp/Makefile + * harbour/config/os2/watcom.cf + * added workarounds for problems with OS2 builds - please test + 2009-08-10 22:47 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/wce/mingwarm.cf * config/win/mingw.cf diff --git a/harbour/config/os2/watcom.cf b/harbour/config/os2/watcom.cf index eb58e02767..48b55473b2 100644 --- a/harbour/config/os2/watcom.cf +++ b/harbour/config/os2/watcom.cf @@ -87,21 +87,23 @@ LDFILES = $(subst $(space),$(comma) ,$(^F)) LDLIBS = $(subst $(space),$(comma) ,$(strip $(LINKLIBS) $(RDDLIBS) $(GTLIBS))) LD_RULE = $(LD) $(LDFLAGS) $(HB_USER_LDFLAGS) NAME $(BIN_DIR)/$@ FILE $(LDFILES) $(if $(LDLIBS), LIB $(LDLIBS),) +ifeq ($(HB_SHELL),sh) +create_library = $(AR) $(ARFLAGS) $(LIB_DIR)/$@ $(foreach file, $(^F), -+$(file)) +else # maximum size of command line in OS2 is limited to 1024 characters -# the trick below with 'wordlist' is workaround for it +# the trick with divided 'wordlist' is workaround for it: +# -$(if $(wordlist 1,100,$(^F)), echo $(wordlist 1,100,$(addprefix -+,$(^F))) >> __lib__.tmp,) +# -$(if $(wordlist 101,200,$(^F)), echo $(wordlist 101,200,$(addprefix -+,$(^F))) >> __lib__.tmp,) +# -$(if $(wordlist 201,300,$(^F)), echo $(wordlist 301,300,$(addprefix -+,$(^F))) >> __lib__.tmp,) +# anyhow OS2 port# of GNU make 3.81 seems to have bug and GPFs when total +# commands length is too big so for %i in ( *$(OBJ_EXT) ) do ... below is +# ugly workaround for both problems define create_library echo $(LIB_DIR)/$@ > __lib__.tmp -$(if $(wordlist 1, 50,$(^F)), echo $(wordlist 1, 50,$(addprefix -+,$(^F))) >> __lib__.tmp,) -$(if $(wordlist 51,100,$(^F)), echo $(wordlist 51,100,$(addprefix -+,$(^F))) >> __lib__.tmp,) -$(if $(wordlist 101,150,$(^F)), echo $(wordlist 101,150,$(addprefix -+,$(^F))) >> __lib__.tmp,) -$(if $(wordlist 151,200,$(^F)), echo $(wordlist 151,200,$(addprefix -+,$(^F))) >> __lib__.tmp,) -$(if $(wordlist 201,250,$(^F)), echo $(wordlist 201,250,$(addprefix -+,$(^F))) >> __lib__.tmp,) -$(if $(wordlist 250,300,$(^F)), echo $(wordlist 250,300,$(addprefix -+,$(^F))) >> __lib__.tmp,) -$(if $(wordlist 300,999,$(^F)), echo $(wordlist 300,999,$(addprefix -+,$(^F))) >> __lib__.tmp,) +for %i in ( *$(OBJ_EXT) ) do @echo -+%i >> __lib__.tmp $(AR) $(ARFLAGS) @__lib__.tmp endef - -ARFILES = $(addprefix -+,$(^F)) +endif AR := wlib ARFLAGS = -p=64 -c -n $(HB_USER_AFLAGS) diff --git a/harbour/source/pp/Makefile b/harbour/source/pp/Makefile index b5af537ad8..aa2d3e2e60 100644 --- a/harbour/source/pp/Makefile +++ b/harbour/source/pp/Makefile @@ -31,6 +31,7 @@ vpath hbpp$(BIN_EXT) $(BIN_DIR) pptable.c : hbpp$(BIN_EXT) $(HB_HOST_BIN_DIR)/hbpp$(HB_HOST_BIN_EXT) $(TOP)$(ROOT)include/hbstdgen.ch -opptable.c -q -c$(TOP)$(ROOT) -v$(HB_VERHEADER) + -@$(RM) hbpp$(OBJ_EXT) ifneq ($(HB_HOST_BUILD),lib)