82
submitted 1 year ago* (last edited 1 year ago) by 7heo@lemmy.ml to c/technology@lemmy.world

Crossposted from technology@lemmy.ml

top 15 comments
sorted by: hot top controversial new old
[-] umbraroze@lemmy.world 31 points 1 year ago

converting an autotools build recipe

Oh yes!

to a bare makefile

Oh no!

[-] 7heo@lemmy.ml 10 points 1 year ago* (last edited 1 year ago)

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 1 year ago

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 1 year ago

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

[-] 7heo@lemmy.ml 1 points 1 year ago* (last edited 1 year 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.
[-] flying_sheep@lemmy.ml 1 points 1 year ago

Why compile to a Makefile? You'd end up with automake gunk all over again. Just use cmake or so, where the declarative language replaces the Makefile entirely

[-] Corngood@lemmy.ml 8 points 1 year ago

cmake compiles to makefiles as well (it just also supports some other backends). I'm not sure why that matters though. In both cases the makefile is generated.

[-] addie@feddit.uk 5 points 1 year ago

Not that I'm the biggest fan of CMake's syntax, but they are fairly concise and standardised. The XZ backdoor hid in amongst thousands of lines of autotools jank that very few people would be able to audit. A short CMakeList that generates a Makefile is a much harder place to hide something nefarious.

[-] Corngood@lemmy.ml 2 points 1 year ago

There's actually not that much autotools jank, really. There's configure.ac and a few Makefile.am. The CMakeLists.txt in the root is bigger than any of those files.

There's also some stuff from autotools archive in m4/. IMO that's a bad practice and we should instead be referencing them as a build dependencies.

I'm not convinced this backdoor would have been significantly more difficult to hide in the cmake code.

[-] flying_sheep@lemmy.ml 3 points 1 year ago

My point was that packagers should use straight up VCS and run all build tools instead of relying on partially pre-built tarballs uploaded by the upstream maintainers.

[-] Corngood@lemmy.ml 1 points 1 year ago

Oh yeah, that was pretty much the point I was trying to make too.

[-] HelloHotel@lemmy.world 1 points 1 year ago

Its a good practice to make the auto generated code a part of the .gitignore list. Any language installable on peoples machines can be used to build these makefiles. Ya know a language is on that list? Makefile!

[-] flying_sheep@lemmy.ml 1 points 1 year ago

It does? I guess I never looked inside that build directory.

[-] richieadler@lemmy.myserv.one 2 points 1 year ago* (last edited 1 year ago)

I prefer justfiles these days.

[-] dhork@lemmy.world 5 points 1 year ago

Hey Torquemada, whaddya say?

I just got back from the auto-de-fe

Auto-de-fe? What's an auto-de-fe?

It's what you oughtn't to do but you do anyway....

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

Technology

69805 readers
2163 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 news or articles.
  3. Be excellent to each other!
  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, this includes using AI responses and summaries. To ask if your bot can be added please contact a mod.
  9. Check for duplicates before posting, duplicates may be removed
  10. Accounts 7 days and younger will have their posts automatically removed.

Approved Bots


founded 2 years ago
MODERATORS