On Wednesday, 8 January 2014 at 23:17:48 UTC, H. S. Teoh wrote:
On Wed, Jan 08, 2014 at 10:29:03PM +0000, Tofu Ninja wrote:
On Wednesday, 8 January 2014 at 22:01:56 UTC, Brian Schott wrote: >Just make your makefile run the script, pipe its output to a >file,
>and do a string import of the generated file.

The kind of stuff I want to use it for would make that tactic
tedious and error prone. I would use it like how ctfe is used now.

Having multiple points in the source(maybe hundreds) that would call out to a external program at compile time but pass out different args. Relying on a makefile to do something like this would require me to keep the makefile and the source code constantly in sync and
would become a problem before long.

Huh? Your last sentence made no sense to me. Doesn't the makefile have to be kept in sync anyway? In my experience, when makefile and source go out of sync, that's when you start getting untraceable heisenbugs that defy all analysis, and disappear after you do a `make clean; make`. The most usual cause of this is the makefile picking up stray, stale object files that should no longer exist 'cos they don't reflect the source
anymore.

<offtopic rant>
This is one of the many things I really hate about makefiles. I'd recommend *anything* over makefiles. Like SCons. Or tup. Even Ant, that insists on the human-unreadable and human-unwriteable XML as an input format. A *shell script* could do better than make, by actually making sure that everything is recompiled and up-to-date, without magic global variables that alter behaviour in strange ways (*cough*VPATH*cough*), or
unreliable timestamp-dependence that breaks when you cross NFS
boundaries, or sometimes just breaks for no discernible reason
whatsoever. The fact that `make clean` exists at all, is a testament to just how broken the whole thing is (and the saddest thing is that `make clean` has come to be accepted as a part of life, when it shouldn't even exist in the first place, had build systems been designed correctly to
begin with).
</offtopic rant>


T

I didn't just mean keeping it in sync with the source files, but in sync with every instance of the external exe call that might happen, and since I would want to use it like how ctfe is used that basically means any time I happen to want to "call" this outside program(which might be a lot of times per source file) I have to update the makefile. And beyond that the args being passed per call might be different each time... alot to keep track of.. beyond the normal stuff that has to be kept track of in a makefile....

But yea make sucks... I dont use it but it seems to be a theme in this thread so I just used that as an example...

Reply via email to