this post was submitted on 07 Apr 2024
82 points (93.6% liked)

Technology

59436 readers
3020 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
 

Crossposted from technology@lemmy.ml

you are viewing a single comment's thread
view the rest of the comments
[–] umbraroze@lemmy.world 31 points 7 months ago (13 children)

converting an autotools build recipe

Oh yes!

to a bare makefile

Oh no!

[–] 7heo@lemmy.ml 10 points 7 months ago* (last edited 7 months ago) (11 children)

Honestly, if the makefile is well written, I will take that any day. Good makefiles are 😙👌.

They are extremely rare, tho...

I guess the solution would be a declarative language that compiles to makefiles. So that people don't have to know the nitty gritty of writing good makefiles, and can just maintain a file of their dependencies and settings...

[–] Bogasse@lemmy.ml 4 points 7 months ago (2 children)

I've always conjectured that good Makefiles existed but never seen one (or only for tiny projects). The core semantic of Makefiles is clear and straight to the point, I think the issue is in all the magic that was added to that to spare a few lines.

[–] PsychedSy@lemmy.dbzer0.com 2 points 7 months ago

Perl? I had fun compiling perl from source back in the day.

[–] 7heo@lemmy.ml 1 points 7 months ago* (last edited 7 months ago)

IMHO the issue is two folds:

  1. The makefile were never supposed to do more than determine which build tools to call (and how) for a given target. Meaning that in very many cases, makefile are abused to do way too much. I'd argue that you should try to keep your make targets only one line long. Anything bigger and you're likely doing it wrong (and ought to move it in a shell script, that gets called from the makefile).
  2. It is really challenging to write portable makefiles. There's BSD make and GNU make, and then there are different tools on different systems. Different dependencies. Different libs. Etc. Not easy.
load more comments (8 replies)
load more comments (9 replies)