5 ms·
"notabug.org"... interesting. Anyway, how does this compare, features-wise, with GNU Make? For example with make you have `./configure` files, do I also have t
by lauretas 9y ago
"notabug.org"... interesting.
Anyway, how does this compare, features-wise, with GNU Make? For example with make you have `./configure` files, do I also have them here?
- beojan 9y agoConfigure scripts are part of autotools, not make.
- gardnr 9y agoLooking as the sh code, it appears that it will work without tab characters. https://stackoverflow.com/a/2131227/1144060 https://stackoverflow.com/a/2131227/1144060 So there's that.
- akkartik 9y agoAs it happens, I was moved to create this standalone repo showing off my current build setup after writing this comment: https://www.reddit.com/r/vim/comments/6l8z34/vim_betrayed_me/djsaxwr/?context=3 https://www.reddit.com/r/vim/comments/6l8z34/vim_betrayed_me... So yes, eliminating tabs (or rather the execrable requirement of using tabs) was absolutely a prime goal.
- Symbiote 9y agoPut this in ~/.editorconfig [Makefile] indent_style = tab And install the plugin, which is available for most editors and IDEs. http://editorconfig.org/ http://editorconfig.org/
- falcolas 9y agoIt's not a requirement - I give you: .RECIPEPREFIX > If you prefer to prefix your recipes with a character other than tab, you can set the .RECIPEPREFIX variable to an alternate character That said, how hard is it really to disable tab expansion in your editor? I have a block of configuration dedicated to the different indentation requirements of different programming and configuration languages. In more modern editors, I don't even have to do anything at all to edit Makefiles with tabs - they come pre-configured to do the right thing.
- akkartik 9y agoThe whole goal of this approach is to get out of the vicious cycle of build files generating other build files, so no `configure`. `configure` is not in itself a feature. What purpose does it fulfill for you? Then we can discuss how we may serve that purpose in some more lightweight manner.
- blux 9y agoI have the feeling your way of thinking is 'remove every abstraction so that we end up with a simpler system'. This works in some cases, but certainly not all of them. configure is one of them. Why? Try removing a configure script for even a simple autotools project, and ensure that it still builds fine on all previously supported platforms by writing a cross platform Makefile. Good luck with that.
- akkartik 9y ago"I have the feeling your way of thinking is 'remove every abstraction so that we end up with a simpler system'." You're certainly right about that: http://akkartik.name/about http://akkartik.name/about http://akkartik.name/post/libraries2 http://akkartik.name/post/libraries2 https://lobste.rs/s/to8wpr/configuration_files_are_canary_warning https://lobste.rs/s/to8wpr/configuration_files_are_canary_wa... :) "This works in some cases, but certainly not all of them." This too I'm totally willing to accept. I believe most abstractions are prematurely frozen and so poorly designed. But this makes me liable to err too far in the other direction. "configure is one of them. Why? Try removing a configure script for even a simple autotools project, and ensure that it still builds fine on all previously supported platforms by writing a cross platform Makefile. Good luck with that." Here we part ways. I think `configure` is one of the easiest cases for me to be sure of, and it's because I don't care about "all previously supported platforms". Many if not all of them are obsolete. Also, as rossy pointed out elsewhere in this thread (https://news.ycombinator.com/item?id=15045076 https://news.ycombinator.com/item?id=15045076), it's impossible to know today if there's a bug in autotools for some rare platform. We live in a world very different from the one autotools were built for, and it's almost a monoculture at this point. All that crap is utterly unnecessary today. I don't care about building software on all possible platforms, all I care about is building it on this one platform in front of me right now. The most frustrating thing about autotools is that it's unclear which platform each individual check is concerned with. I have a whole mess of rules from 20 years ago -- and zero rationale for any of the rules. That makes even the few rules that are worth having a net liability because I can't separate them from all the useless ones.
- majewsky 9y ago> For example with make you have `./configure` files, do I also have them here? The concept of `./configure` is 100% orthogonal to Makefiles. You can have Makefiles without `./configure`, and you can have `./configure` that outputs something other than a Makefile. For example, I could easily imagine a `./configure` that prints a shell script like the one in the submission.