Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2004 12:11:35 -0700
From:      Luigi Rizzo <rizzo@icir.org>
To:        Jens Schweikhardt <schweikh@schweikhardt.net>
Cc:        hackers@freebsd.org
Subject:   Re: make(1) guru question
Message-ID:  <20040406121135.A98012@xorpc.icir.org>
In-Reply-To: <20040406182600.GA3907@schweikhardt.net>; from schweikh@schweikhardt.net on Tue, Apr 06, 2004 at 08:26:00PM %2B0200
References:  <20040406182600.GA3907@schweikhardt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 06, 2004 at 08:26:00PM +0200, Jens Schweikhardt wrote:
> Fellow hackers,
> 
> suppose you have a long list of files in a make variable V, exceeding
> kern.argmax. This means there is no way you can write a rule where $(V)
> is a command argument in any way shape or form. There is also no way to
> pass the value of V to xargs that I know of. For example with this

depending on the use, you might use something like

	make -V variable_name | xargs ...

within the makefile. I got the suggestion from someone long ago
when I had this problem with src/sys/conf/Makefile.i386

cheers
luigi

> Makefile:
> 
> 	# Make V exceed kern.argmax (64K).
> 	V != jot 12440
> 	all:
> 		@ echo $(V)
> 
> This fails with
> 
> 	echo:Argument list too long
> 	*** Error code 1
> 
> Furthermore the workaround of creating a process for each file in V with
> 
> 	V != jot 12440
> 	all:
> 	.for v in $(V)
> 		@ echo $(v)
> 	.endfor
> 
> is not acceptable because it creates too much overhead for process
> creation (think of echo being an expensive command.) Question: is there
> any other way (short of increasing kern.argmax) to maybe divide and
> conquer the V contents by use of substitution magic? I'm thinking of
> something along repeatedly cramming N items in some variable and then
> calling echo less often.
> 
> The original problem can be found in
> http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/52765
> 
> Regards,
> 
> 	Jens
> -- 
> Jens Schweikhardt http://www.schweikhardt.net/
> SIGSIG -- signature too long (core dumped)
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040406121135.A98012>