5 ms·
Simple makefiles couldn't be more simple. task: dependency list of commands That's about as easy as it gets.
by bpicolo 9y ago
Simple makefiles couldn't be more simple.
task: dependency
list of
commands
That's about as easy as it gets.
- bitwize 9y agoUntil a stray space finds its way into your command list indentation...
- bpicolo 9y agoEvery popular text editor handles this already. People manage make, python and other whitespace-specified languages just fine.
- emmelaich 9y agoThey don't though. Vanilla Vim/Vi doesn't for instance. Regardless of whether the editor can or not, I just don't see how insisting on tab and not space is remotely defensible.
- bpicolo 9y agohttps://stackoverflow.com/a/29787362 https://stackoverflow.com/a/29787362 > remotely defensible Feel free to write your own make superset that supports spaces. It's an irrelevant factor to the usability of make as a whole.
- deathanatos 9y ago> Vanilla Vim/Vi doesn't for instance. Vim does handle this. Here is Vim (and I've removed my .vimrc file, so this is not a setting I have set personally), on a Makefile where the third line erroneously uses spaces: https://i.imgur.com/xMHXeL4.png https://i.imgur.com/xMHXeL4.png > I just don't see how insisting on tab and not space is remotely defensible. This is like insisting that people haven't been having religious wars over this sort topic for years. You can see the Wiki[1] page on it (which starts "This is one of the eternal Holy Wars") for arguments as to why someone might prefer tabs. I personally like them because they allow the reader of the code to choose the visual layout of the indentation. Now, while I love tabs, I work in Python all day. But good editors, like Vim, allow you to customize the indentation settings sufficiently to handle both cases like Python (spaces for indent) and Makefile (tabs) gracefully. So "Indent" and "Dedent" just do The Right Thing™ and it mostly never matters. [1]: http://wiki.c2.com/?TabsVersusSpaces http://wiki.c2.com/?TabsVersusSpaces
- travmatt 9y agoIf someone is really paranoid about white space issues in a file you’re editing on vim, you can can always use `:set list` to display those characters.
- enriquto 9y agoor, you can write your recipes as target : requisites ; recipe with a semicolon instead of a tab. However, tabs are beautiful, and every occasion to use them should be cherised as precious.
- emmelaich 9y agoI'm glad it works for you. It didn't work for me.
- swsieber 9y agoFWIW, the more experienced a programmer is, the more likely they are to prefer spaces over tabs. My pet theory is that the more experience you have, the more likely you are to have worked with Python, which is a lot easier to work with if you just always s/\t/ / (replace tabs with spaces).
- deleted 9y ago[deleted]
- matheusmoreira 9y agoReal world makefiles are not simple like this. The simplest makefile I can think of is still hundreds of lines long: https://git.musl-libc.org/cgit/musl/tree/Makefile https://git.musl-libc.org/cgit/musl/tree/Makefile
- creatornator 9y agoMaybe this isn't "real-world" but I've made this cookiecutter template which generates projects with Makefiles less than 100 lines. It works decently well for my personal projects and for playing around. https://github.com/MatanSilver/cookiecutter-cproj https://github.com/MatanSilver/cookiecutter-cproj