Sample Header Ad - 728x90

Argument list too long error with makefile

4 votes
5 answers
23285 views
In a makefile, I have @echo "$(IGNORE_DIRS) $(CLEAN_FILES) $(CLEAN_DIRS) $(REALCLEAN_FILES)" | tr ' ' '\n' >> $@ The problem is that $(CLEAN_FILES) is quite large, so when I run make, I get make: execvp: /bin/sh: Argument list too long I'm on Xubuntu 18.10. Edit: I should provide a little more context. What I am working on is a make rule (I'm using GNU make) to automatically generate the .hgignore file. Here is the make rule in its entirety: .hgignore : .hgignore_extra @echo "Making $@" @rm -f $@ @echo "# Automatically generated by Make. Edit .hgignore_extra instead." > $@ @tail -n +2 $> $@ @echo "" >> $@ @echo "# The following files come from the Makefile." >> $@ @echo "syntax: glob" >> $@ @echo "$(IGNORE_DIRS) $(CLEAN_FILES) $(CLEAN_DIRS) $(REALCLEAN_FILES)" | tr ' ' '\n' >> $@ @chmod a-w $@ .PHONY : .hgignore Edit 2: At @mosvy 's suggestion, I have also tried .hgignore : .hgignore_extra @echo "Making $@" @rm -f $@ @echo "# Automatically generated by Make. Edit .hgignore_extra instead." > $@ @tail -n +2 $> $@ @echo "" >> $@ @echo "# The following files come from the Makefile." >> $@ @echo "syntax: glob" >> $@ $(file >$@) $(foreach V,$(IGNORE_DIRS) $(CLEAN_FILES) $(CLEAN_DIRS) $(REALCLEAN_FILES),$(file >>$@,$V)) @true @chmod a-w $@ .PHONY : .hgignore Running make .hgignore with this, I no longer get the "Argument list too long" error, but the generated .hgignore file only contains output up to the syntax: glob line, and then nothing after that.
Asked by teerav42 (159 rep)
Nov 9, 2018, 01:51 AM
Last activity: Mar 20, 2025, 04:09 PM