Piotr Siupa said on Sat, 16 Dec 2023 02:47:52 +0100 >Hi Steve, > >Sorry if I'm reading too far into it but from the fact you're using a >shell script for building this, I'm assuming that you're pretty new to >work with bigger programming projects. >Because of that, I'm going to give you some homework. Specifically, I >think you should research two things: >- Build automation tools - They (similarly to your script) build the
I use make on big projects that take more than 30 seconds to compile via a "compile and link everything" script, but at compile times below that, I just use "compile and link everything". I make lots of mistakes, and find "compile and link everything" makes me less mistake prone than make. I've never authored anything requiring autoconf, and hope I never have to. One of my fundamental beliefs is that I should use as few dependancies (especially Other People's Code) as possible, because every layer of abstraction complexifies the code and makes troubleshooting more difficult. My low use of dependencies lessens the need for autoconf. As far as portability, I'd rather #ifdef that into my code than use autoconf. Another thing about me: I try very hard to write my C code such that gcc -Wall is silent. Even "harmless" warnings are harmful because they disguise the genuinely harmful ones. I also make sure my HTML5 is well formed XML and passes an XML parser, and validates via the W3C validator. The Troubleshooters.Com web pages I've written in the past 3 years look identical on all reasonably standards compliant browsers that allow Javascript. >- Version control - It tracks all changes you do to your project, I don't know how you found out I don't use version control, but your right, I'm lousy at git and that has to change. I'm OK with git until I have to deal with branches, and then I go to pieces. This, and the fact that the only human language I speak is English are two of my worst flaws. I'll re-remind myself to try learning more about git. Thanks for your reminder. SteveT Steve Litt Autumn 2023 featured book: Rapid Learning for the 21st Century http://www.troubleshooters.com/rl21