Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Apr 2004 20:26:00 +0200
From:      Jens Schweikhardt <schweikh@schweikhardt.net>
To:        hackers@FreeBSD.org
Subject:   make(1) guru question
Message-ID:  <20040406182600.GA3907@schweikhardt.net>

next in thread | raw e-mail | index | archive | help
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
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)



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