Email or username:

Password:

Forgot your password?
unnick

autotools be like

checking for number system base ... base 2
checking for signed integer system ... twos complement
checking for galaxy ... milky way
checking for laws of the universe ... standard model
126 comments
Wyatt (🏳️‍⚧️♀?)

@unnick checking for FORTRAN77 compiler

I'm just building a GTK color picker in C, why do you need this?!?

Rich Felker

@wyatt8740 @unnick Because someone c&p'd a bunch of garbage rather than writing their own .ac file... 🤦

✧✦✶✷Catherine✷✶✦✧

@dalias @wyatt8740 @unnick and why is it that people c&p a bunch of garbage rather than writing their own .ac file, Rich?

Rich Felker

@whitequark @wyatt8740 @unnick Because the whole thing is fairly opaque, uses an obscure language, and the docs on how to make decent use of it are unofficial and hard to find especially after the burning of search...

No intent to blame anyone just theorize on how things got this way.

✧✦✶✷Catherine✷✶✦✧

@dalias @wyatt8740 @unnick honestly even ten years ago I found it rather difficult to figure out how to write .ac files

Dan Cassidy 🦌

@dalias @whitequark @wyatt8740 @unnick no it uses three different opaque languages at the same time, in the same source file

Janne Moren

@whitequark @dalias @wyatt8740 @unnick
Good question. Writing one for yourself really isn't difficult. Yes, you do need to take a look through the documentation, but apparently cut and paste is less effort.

✧✦✶✷Catherine✷✶✦✧

@jannem @dalias @wyatt8740 @unnick it's one of the most obscure and user-hostile pieces of software in the world; of course it _is_ difficult, especially if you don't already have the skills for it

ParzivalWolfram

@whitequark @jannem @dalias @wyatt8740 @unnick can confirm, i still can't figure out why it sometimes decides it's cross compiling even when the host and target are both explicitly defined as the same thing, and just... refuses to consider otherwise. it's also a pain in the ass when you have to go hunting through a ./configure script to see why something failed, because not all of them drop a log, and the env vars needed to declare stuff explicitly aren't universal outside of some parts of GCC.

i still prefer it over cmake, because cmake is fucking huge and doesn't like to find libs on non-linux hosts (or linux hosts mid-buildroot-make) and doesn't like non-linux targets very much, etc etc

@whitequark @jannem @dalias @wyatt8740 @unnick can confirm, i still can't figure out why it sometimes decides it's cross compiling even when the host and target are both explicitly defined as the same thing, and just... refuses to consider otherwise. it's also a pain in the ass when you have to go hunting through a ./configure script to see why something failed, because not all of them drop a log, and the env vars needed to declare stuff explicitly aren't universal outside of some parts of GCC.

✧✦✶✷Catherine✷✶✦✧

@parzivalwolfram @jannem @dalias @wyatt8740 @unnick i use cmake because i support windows as a first-class system, mainly

if your software requires cygwin or mingw to build on windows i will fucking build it for webassembly instead and ship like that

Wyatt (🏳️‍⚧️♀?)

@whitequark @parzivalwolfram @jannem @dalias @unnick
If your windows program requires visual studio I will fucking build it for webassembly instead and ship it like that

I genuinely prefer MSYS/mingw

ParzivalWolfram

@wyatt8740 @whitequark @jannem @dalias @unnick yeah i've never had a good experience with VS, even VSC, or even VC/VC++ lol, though i also have constant issues with C#/.NET programs and anything adjacent to it but people online tend to tell me it's somehow user error if a .NET program spits out nonsensical, never-before-seen error messages then just die. i only write in python on windows just to avoid all of those headaches.

✧✦✶✷Catherine✷✶✦✧

@parzivalwolfram @wyatt8740 @jannem @dalias @unnick I shipped software that built on both MinGW and VS; I don't mind the compilers (either), I mind the garbage around them built by people who think fork() is peak API design

Wyatt (🏳️‍⚧️♀?) replied to ✧✦✶✷Catherine✷✶✦✧

@whitequark @parzivalwolfram @jannem @dalias @unnick fork is quite annoying, i agree
But bash isn't the POSIX C API. You don't have to write fork()'s to use a shell script

✧✦✶✷Catherine✷✶✦✧ replied to Wyatt

@wyatt8740 @parzivalwolfram @jannem @dalias @unnick shell scripts are for automating admin tasks. write your build system in a real language, such as CMakeLists.txt (still more real than bash)

Amber replied to ✧✦✶✷Catherine✷✶✦✧

@whitequark@mastodon.social @wyatt8740@tech.lgbt @parzivalwolfram@infosec.exchange @jannem@fosstodon.org @dalias@hachyderm.io @unnick@wetdry.world real language and seeing CMakeLists.txt threw me for a spin. I fucking hate writing cmake but I hate using anything that's not cmake 😭

ParzivalWolfram replied to ✧✦✶✷Catherine✷✶✦✧

@whitequark @wyatt8740 @jannem @dalias @unnick question: what if csh from 1989 is the only scripting language available to you, and there's no compilers available on a target system except K&R as? i'm working on a project where this is the entire issue, and it's... not fun. this is the precise case where that "consider using bash to build GCC because some cases in other shells make the ./configure script take literal days" warning actually happens lol

Wyatt (🏳️‍⚧️♀?) replied to ParzivalWolfram

@parzivalwolfram @whitequark @jannem @dalias @unnick i was about to mention csh, actually. Lol.

There are so many things worse than a bourne shell
Bourne shell is the only way i can comfortably survive in a windows environment

✧✦✶✷Catherine✷✶✦✧

@wyatt8740 @parzivalwolfram @jannem @dalias @unnick I don't care about Visual Studio but if your software requires bash I will rm the entire build system and redo it using something made by competent people

Wyatt (🏳️‍⚧️♀?)

@whitequark @parzivalwolfram @jannem @dalias @unnick Your opinions are frankly wrong.
Windows is not for competent people which is why they treat it as second class
(sorry i'm done now)

ParzivalWolfram

@whitequark @wyatt8740 @jannem @dalias @unnick Bash extensions can be very helpful, but it is big and sometimes critically buggy, I do agree on those common points.

ParzivalWolfram

@whitequark @jannem @dalias @wyatt8740 @unnick cmake is good in theory, but in practice it needs an infinite number of beatings over the head to make it work in any slightly non-standard configuration, and it's so big that it's almost worthless if you need backwards-compatibility (or if you're stupid like me and need it to run on Solaris 7 or a 3DS or some shit like that...) Most people won't use it in these configurations, because... why would they? but it's an issue for me, and i reserve the right to not like a tool that can't be bent to fit a weird situation even a little bit lol

@whitequark @jannem @dalias @wyatt8740 @unnick cmake is good in theory, but in practice it needs an infinite number of beatings over the head to make it work in any slightly non-standard configuration, and it's so big that it's almost worthless if you need backwards-compatibility (or if you're stupid like me and need it to run on Solaris 7 or a 3DS or some shit like that...) Most people won't use it in these configurations, because... why would they? but it's an issue for me, and i reserve the right...

m0xEE

@wyatt8740 @unnick
I've seen Fortran actually being used in a couple of projects where I didn't expect it to be, but those projects did use some advanced math — not advanced enough to truly justify it, but those pieces of software were relatively old, so it likely was there historically — maybe no one cared enough to reimplement those parts as you usually get a Fortran compiler with gcc anyway 🤷

Ryan Finnie

@unnick VAX/VMS 3.0 only had partial support for thermodynamic entropy. Best not to make assumptions and just keep the extra test around.

🇺🇦 haxadecimal

@foo @unnick
They're not so much laws as, um, ... guidelines.

aburka 🫣

@unnick hmm is there an @autotools@botsin.space? if not there should be

Loïc Denuzière

@joelvanderwerf
Does that mean that there's a way to cut a program into five pieces that's equivalent to fork()?
@unnick

greg

@tarmil @joelvanderwerf @unnick I think it means that Autotools is able to find a constructive proof of AC, which might indicate that Autotools is not consistent. But we already knew that ;)

Kiran 🏳️‍⚧️

@unnick
Would be a cool Sci Fi setting to consider an autotools or other build tools that have to check for the universe. Oh snap, this binary was compiled for the wrong universe

PeP

@Gopiandcode @unnick Yep. Douglas Adams did just that in one of his Hitch Hikers Guide To the Galaxy books — but damned if I can remember which one…

nytpu

@unnick jokes on you, software using autotools is the only kind that will keep working after false vacuum decay destroys the laws of physics

Charlotte 🦝 θΔ

@nytpu @unnick but only after manual patching of megabytes of autogenerated shell code

Jon A. Cruz

@unnick days since I last touched autotools scripts: 3

Jon A. Cruz

@unnick number of days since the last work day: 3

arcayr

@unnick "checking you didn't leave the stove on" OH N-

david_chisnall

@unnick Are you saying you don’t routinely test on a 36-bit middle-endian BCD architecture?

ParzivalWolfram

@unnick these tests are for me, the dude running Solaris 7 with a busted libm and broken includes because `fixinclude` in all compatible gcc versions just breaks everything. it's me, the dude who accidentally gave Jia Tan one (1) system from 1998.

on one hand, i've learned a lot about the stack below everything, since i've had to build it myself. on the other, i'm going to die of stress three years from now.

Trammell Hudson

@unnick "No 1 (one) key detected, using L (ell) instead"

curtmack

@th @unnick Computer manuals used to have a paragraph or two in the instructions reminding users to use the dedicated zero and one keys rather than O (OH) and l (ell).
I would look up an example, but the Internet Archive is down.

retroprom

@unnick checking first digits of pi ... 3.1415

Petr Tesarik

@unnick These jokes date back at least to the 1990s. I can recall a program which went like:

checking for bass ale in -lfridge ... no
checking for any ale in -lfridge ... no
Warning: No ale found! Please, rectify the situation before running 'make'.

mkj

@unnick

checking for nearest star... Sol
checking local gravitational acceleration... 9.82 m/s/s
checking for jerk... none detected

Ben

checking for gravity ... Err you have gravity and adhere to to standard model, but these are incompatible to one another. Please pick one or unify them to continue...

Khleedril

@unnick ... checking current value of pi... same as last time...

Hakan Bayındır

@unnick Mine also checks for the universe for consistency, and UID, and fails if it's not 0 (Universe MPI Master).

Григорий Клюшников

So much legacy that it still thinks you might be running it on an obscure mainframe from the 70s that uses an even more obscure C compiler ¯\_(ツ)_/¯

Joshua Small

@unnick I mean that's not actually much of an exaggeration

Arav K.

@unnick on my computer, 75% of the build time for GNU coreutils is spent in the (very single-threaded) `./configure`. it's bad enough that I might swallow my pride and try writing GNU C code to find a fix.

Zack Weinberg

@unnick I tried to make autoconf 2.70 stop checking for stdlib.h and was *immediately* confronted by bug reports from people using autoconf to build code for a C89 freestanding environment, in which stdlib.h is not guaranteed to exist.

The Penguin of Evil

@unnick Checking your email history for correct use of GNU/Linux .. failed

Eli the Bearded

@unnick The "feh" imageviewer build does a "checking for pr0n"

Sean Eric Fagan

@unnick I have used systems that were 1's complement...

Ahto!

@unnick hey look, maybe during compilation reality could fuck up and it's like 'well, look buddy, I know it's ridiculous but we've had some of these weird snags where we tried to add two numbers and things got weird, don't press me okay!'

PypeBros

@unnick
error: invalid HUBBLE value redefinition in jwst/observations.h
this value is already defined in planck/cosmology.h
Please check your energy configuration in /etc/dark

mxk

@unnick I tried to build some autotools software for Android a few weeks ago.
It ended with me writing config.h files from hand.

Windfisch

@unnick @raimue the second is actually relevant. C and iirc C++ do not specify the signed integer representation :D

Go Up