Satish Balay <[email protected]> writes: > As I understand it - 32k limit is for windows apps [using windows > compiler dlls?]. Cygwin binaries appear to handle long args properly.
Cool, that explains why your fix works. > The following updated thingy also works - but with a [false] warning > from win32fe. I must have seen this before and assumed '@file' didn't > work from win32fe > > I guess I should look at fixing win32fe to handle '@file' properly I.e., just suppress the warning for arguments starting with '@'? That sounds good. > $ git diff gmakefile > diff --git a/gmakefile b/gmakefile > index bf9ce21..83a1a54 100644 > --- a/gmakefile > +++ b/gmakefile > @@ -68,9 +68,11 @@ $(libpetsc_shared) : $(srcs.o) | $$(@D)/.DIR > $(libpetsc_static) : obj := $(srcs.o) > > %.$(AR_LIB_SUFFIX) : $$(obj) | $$(@D)/.DIR > - @$(RM) $@ > - $(call quiet,AR) $(AR_FLAGS) $@ $^ > + @$(RM) $@ [email protected] > + @cygpath -w $^ > [email protected] > + $(call quiet,AR) $(AR_FLAGS) $@ @`cygpath -w [email protected]` > $(call quiet,RANLIB) $@ > + @$(RM) [email protected] You should be able to do a multi-line definition, something like this: define ARCHIVE_RECIPE_CYGWIN @$(RM) $@ [email protected] @cygpath -w $^ > [email protected] $(call quiet,AR) $(AR_FLAGS) $@ @`cygpath -w [email protected]` $(call quiet,RANLIB) $@ @$(RM) [email protected] endef define ARCHIVE_RECIPE_DEFAULT @$(RM) $@ $(call quiet,AR) $(AR_FLAGS) $@ $^ $(call quiet,RANLIB) $@ endef %.$(AR_LIB_SUFFIX) : $$(obj) | $$(@D)/.DIR $(if $(PETSC_HAVE_CYGWIN),$(ARCHIVE_RECIPE_CYGWIN),$(ARCHIVE_RECIPE_DEFAULT))
