4 ms·
Not exactly true. I tend to start with a new makefile for a good amount of projects. Know your tools, know your code.
by vhost- 12y ago
Not exactly true. I tend to start with a new makefile for a good amount of projects. Know your tools, know your code.
- wspeirs 12y agoI wrote a god-awful Perl script to gen (and update) Makefiles for me: https://github.com/wspeirs/makemake https://github.com/wspeirs/makemake
- deleted 12y ago[deleted]
- AceJohnny2 12y agoIt seems every competent programmer makes that mistake at least once in their carreer :)
- blueblob 12y agoThe mistake of writing your own makefile generator or using perl? My first experience with perl read in all of the files in its directory and output to another file also in the directory, it managed to read in both itself and the output. I accidentally implemented `rm *`.
- AceJohnny2 12y agoHeh, I'm currently in the positive phase of my oscillating love-hate relationship with Perl, and acknowledge its right to exist. No, I was referring to implementing a replacement/frontend to Make.
- jacalata 12y agoIn my case it wasn't a mistake, it was a university assignment. That was the assignment where I learned (by omission) how important it is to have source control...
- david-given 12y agoHey, I wrote my own build system, and then used it to build a 300kloc compiler. (It's at http://primemover.sourceforge.net/ http://primemover.sourceforge.net/ should anyone care.) It was an astonishingly good learning experience and I'm never doing it again because it sucked. The main thing I learn was that build systems are really, really hard. Simply coming up with an intuitive way of letting the user write down what problem they're trying to solve is painfully hard, let alone actually solving the problem. I have yet to see a build system that wasn't horrible. GNU make is a hideous pile of recursive terribleness, but it is at least a ubiquitous hideous pile of recursive terribleness. That doesn't make it any less pleasant to use but it does at least make it more likely that people will be able to use the result. But for any non-trivial project make requires you to implement a build system in make, and as there are no debugging tools and the language is cryptic and inconsistent beyond words, the results are always buggy and hard to understand. I dunno. I think what I'd really like is a reinvented GNU make that doesn't have all the many, many bad design decisions from the past in it. ninja, maybe? I've yet to actually try to use that...