[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New Feature Submission for GNU Make
Re: New Feature Submission for GNU Make
Mon, 13 Jun 2011 17:36:30 +0100
I would rather see a heck of a lot of new functions actually. I am
really fed up with some of the limitations of gnu make as it is that might be solved very easily with even 1 or two well chosen new ones.
Perhaps a warning when one redefines an internal function might be the way to avoid throttling this project any more than it already is?
A couple of examples that would make my work *much* easier:
$(equal X,Y) # for use inside $(if) and must work when X and Y can be blank
$(range 1,10) # 1 2 3 4 5 6 7 8 9 10
$(tolower ABCDE) # very hard and unpleasant and slow to implement
$(info >>filename) # appending info statements to a file without invoking $(shell) (also need > to create)
$(cdr LIST) # perhaps can be done with $(words) - not so sure on this.
I can't see the point of developing new versions if they can't have new features.
On 13 June 2011 17:01, Rob Walker <address@hidden>
Have you considered the backwards compatibility issues this patch might
The functions you've implemented for inclusion are implementable
directly in the make language. Therefore, there are very likely
implementations floating around in existing makefiles, very likely with
the names you've chosen, but possibly with slightly different semantics.
When both make and a makefile define a function $(call fn) always
resolves to the built-in.
Until make gives make programmers more control over their environment, I
think a moratorium on new built-in functions might be a good idea. Any
On 6/12/11 2:42 PM, Ben Robinson wrote:
> I thank the community for their feedback regarding my submission of
> $(trimpath ...) and $(relpath ...). Many other benefits to the
> submission have been identified which would improve GNU Make if
> incorporated. However, I see two outstanding issues which remain:
> 1) The submission needs to be refactored to incorporate the coding style
> and macros of 3.82 (it is currently based on 3.81). I will proceed with
> this effort as soon as I hear word that the submission is approved.
> 2) Handling of symbolic links. The current implementation only analyzes
> the string representation of the path, and does not touch the file
> system. This has the advantage of performance, and the fact that
> expanding and resolving symbolic links can lead to longer resultant
> paths, when the purpose of the symbolic link was to skip over numerous
> long directory names. I would recommend the submission remain in its
> current form, and if symbolic link expansion is needed, it be added to
> another new function, such as $(resolve-symlinks...), as was previously
> suggested. In this way, the expansion of symbolic links can be
> controlled by the user, when the user desires that functionality.
> I appreciate the community's feedback, and I look forward to hearing
> approval for submission if appropriate.
> Thank you,
> Ben Robinson
> On Tue, May 31, 2011 at 9:37 AM, Howard Chu <address@hidden
> <mailto:address@hidden>> wrote:
> Edward Welbourne wrote:
> Pretty weak. If a few more include paths were added to the
> project it would
> still break, regardless of your patch.
> When you have thousands of object files, shortening the name of each
> by several bytes when invoking ar can make room for really quite
> a lot
> more files before you run up against the command-line length limit.
> Never understimate the value of a modest shortening of file names -
> when our ar command-line got to about 230 kibibytes, we had to
> the way we invoked ar !
> Whatever you're doing, you're doing it wrong. ;)
> If you're tossing a bunch of object files into an ar library simply
> for grouping purposes, and all of the object files will eventually
> be used in the final executable, it's faster to use ld -r and
> combine groups of them all into a single object file. If you
> profiled your build I'm sure you would find that a large percentage
> of time is being wasted in ar itself.
> And if you're really running a build with thousands of object files,
> on a frequent basis, you're foolish not to profile it and figure out
> what else you're doing wrong. Giant monolithic command lines also
> prevent you from leveraging parallel make, so that's another reason
> not to do things that way...
> -- Howard Chu
> CTO, Symas Corp. http://www.symas.com
> Director, Highland Sun http://highlandsun.com/hyc/
> Chief Architect, OpenLDAP http://www.openldap.org/project/
> Bug-make mailing list
Bug-make mailing list
You could help some brave and decent people to have access to uncensored news by making a donation at: