The magic behind configure, make, make install - How it works in Unix

learnbyexample@programming.dev to Linux@lemmy.ml – 58 points –
The magic behind configure, make, make install - How it works in Unix
thoughtbot.com
12

Make is simple, easy, and effective. It's just "configure" that's full of black magic.

Autocrap is a bloated obsolete stuff that is mostly replaced with other tools like cmake or meson. There's no need to learn it today.

Hell maybe I do need to learn some shit, because I was under the impression that you cd into the folder after you untar it, then type ./configure make sudo make install, but the last two packages I attempted to install from source like this just did nothing.

The first step after you untar is always "open the README and look for build instructions."

Maybe. But maybe they did nothing because there was no ./configure script and you had to use another tool, e. g. one of that I mentioned, so you need to learn another shit.

BTW installing anything from source like this is the right way only in (B)LFS.

But you definitely don't need to learn this if you are a developer and starting a new project in 2024. You can use cmake or write plain makefiles, even shell scripts if you want, but as you value life or your reason keep away from the autotools. It is a nightmare to debug thousands lines of scripts they generate and put into your source tree.

You assume everyone has root.

On a system I don't administer, I can compile and install software in my home directory (or shared directories that I have write access) by using:

./configure --PREFIX=/home/myuser/software/

make # to compile

make install #without sudo, to install to ~/software/bin

So when you say "only in (B)LFS", you're overlooking a VERY common use case - especially in HPC and other systems NOT running on my desk/lap.

This. If you're starting a new project, and are not GNU, just use Meson. It's the best widely-used build system.

Indeed - the general configure, build install steps are fairly universal and the configure script doesn't have to cover from autoconf. We still have that and Makefiles as a wrapper around a meson based setup to keep the process familiar.

Eww. Just teach meson setup builddir && cd builddir && meson compile

There are still some things meson can't do which we need the configure script for. The meson upstream are slowly working through our feature requests 😉

Really? I supposed that I'm too conservative for still using cmake. But seems there's a reason for that. ☺

Well, seriously, I don't like meson because it does some things another way than more traditional tools for no reason. Sometimes this is painful, especially when cross compiling. Seems that it was originally designed without cross compilation in mind unlike cmake.