Earlier quoted context omitted.
Right. Make already knows how to convert .c to .o, all you need to say is files.c: defs.h buffer.h command.h and there are tools such as makedepend (for C and OCaml, off the top of my head) that generate those listings automatically , so you just add this to the Makefile: include (autogenerated dependency listing file) While the mandatory tab in Make syntax is a genuine wart, make has been around long enough that the…
> make has been around long enough that there are several other tools that know how to work with it. I'd prefer an improved from-scratch 2nd-generation tool instead of using one that simply wraps around a complicated 1st-gen one that I'd rather not touch. Make has more warts than just the tab characters. Lots of obscurely-named variables, for starters.
fabricate: The better "make". Finds dependencies automatically for any language.
21–30 of 44 posts
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#22Do I miss something? That example is like three times longer than an equivalent Makefile would needed to be, and I need to know Python, obviously. For a trivial project, I guess that Make would be easier to use, and for something more complex, I think I would have to do quite a lot of programming, with Fabricate…
What misses in my opinion is 'build by convention'. Most things that you want to build have recipes that are mostly the same. You have some sources that you want to compile and then link against some libraries. Using some platform specific compiler and linker flags. So, instead of writing a program to do the build I would rather see a simple DSL that allows me to specify just the minimal amount of configuration to ge…
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#23Earlier quoted context omitted.
What misses in my opinion is 'build by convention'. Most things that you want to build have recipes that are mostly the same. You have some sources that you want to compile and then link against some libraries. Using some platform specific compiler and linker flags. So, instead of writing a program to do the build I would rather see a simple DSL that allows me to specify just the minimal amount of configuration to ge…
What's a-a-p?
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#24I haven't tried fabricate yet, but I think the number of build-tools out there is a sure sign that something fundamental is broken.
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#25I haven't tried fabricate yet, but I think the number of build-tools out there is a sure sign that something fundamental is broken.
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#26Re: fabricate: The better "make". Finds dependencies automatically for any language.
#27Earlier quoted context omitted.
I don't get it. Does it intercept file accesses to determine the dependencies? Looks like magic.
Yes, via access times and strace: "When this build stage ran, it checked these files, so remember them as dependencies." Not magic at all, and should automatically work for languages that haven't even been invented yet.
How does it know which drives and directories to scan for recently modified files? Scanning all of them would take a while.
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#28Earlier quoted context omitted.
Yes, via access times and strace: "When this build stage ran, it checked these files, so remember them as dependencies." Not magic at all, and should automatically work for languages that haven't even been invented yet.
Can it tell (using access times under windows) that the files were modified by that stage of the build command, and not by another unrelated process? How does it know which drives and directories to scan for recently modified files? Scanning all of them would take a while.
It looks like it checks for files modified specifically by its subprocesses.
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#29Earlier quoted context omitted.
Right. Make already knows how to convert .c to .o, all you need to say is files.c: defs.h buffer.h command.h and there are tools such as makedepend (for C and OCaml, off the top of my head) that generate those listings automatically , so you just add this to the Makefile: include (autogenerated dependency listing file) While the mandatory tab in Make syntax is a genuine wart, make has been around long enough that the…
> make has been around long enough that there are several other tools that know how to work with it. I'd prefer an improved from-scratch 2nd-generation tool instead of using one that simply wraps around a complicated 1st-gen one that I'd rather not touch. Make has more warts than just the tab characters. Lots of obscurely-named variables, for starters.
Are you talking about make or just GNU make? The $http://www.freebsd.org/doc/en/books/pmake/
Re: fabricate: The better "make". Finds dependencies automatically for any language.
#30Most of these make replacements start with design decisions (like using Python) that pretty much rule out ever reaching what make does best, and which is essential to get my build times improved by at least a factor of 6.
Using a tool (like CMake) to generate your Makefiles is an excellent solution, heck, even a Python script that generated a Makefile and then ran make would be to prefer over this tool.