▲ 59 ▼ The magic behind configure, make, make install - How it works in Unix (thoughtbot.com) submitted 2 years ago by learnbyexample@programming.dev to c/linux@lemmy.ml 12 comments fedilink hide all child comments
[–] kbal@fedia.io 16 points 2 years ago Make is simple, easy, and effective. It's just "configure" that's full of black magic. permalink fedilink source
[–] bizdelnick@lemmy.ml 4 points 2 years ago (3 children) 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. permalink fedilink source hideshow 6 child comments replies: [–] ArcaneSlime@lemmy.dbzer0.com 6 points 2 years ago (2 children) 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. permalink fedilink source parent hideshow 4 child comments replies: [–] Snarwin@kbin.social 5 points 2 years ago (1 child) The first step after you untar is always "open the README and look for build instructions." permalink fedilink source parent hideshow 2 child comments replies: [–] ArcaneSlime@lemmy.dbzer0.com 2 points 2 years ago Thankfully, none were included lol. I think they assumed I already knew. permalink fedilink source parent [–] bizdelnick@lemmy.ml 4 points 2 years ago (1 child) 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. permalink fedilink source parent hideshow 2 child comments replies: [–] GnomeComedy@beehaw.org 1 point 2 years ago* 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. permalink fedilink source parent [–] Kangie@lemmy.srcfiles.zip 3 points 2 years ago This. If you're starting a new project, and are not GNU, just use Meson. It's the best widely-used build system. permalink fedilink source parent [–] stsquad@lemmy.ml 1 point 2 years ago (1 child) 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. permalink fedilink source parent hideshow 2 child comments replies: [–] Kangie@lemmy.srcfiles.zip 2 points 2 years ago (1 child) Eww. Just teach meson setup builddir && cd builddir && meson compile permalink fedilink source parent hideshow 2 child comments replies: [–] stsquad@lemmy.ml 2 points 2 years ago (1 child) 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 😉 permalink fedilink source parent hideshow 2 child comments replies: [–] bizdelnick@lemmy.ml 2 points 2 years ago* 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. permalink fedilink source parent
[–] ArcaneSlime@lemmy.dbzer0.com 6 points 2 years ago (2 children) 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. permalink fedilink source parent hideshow 4 child comments replies: [–] Snarwin@kbin.social 5 points 2 years ago (1 child) The first step after you untar is always "open the README and look for build instructions." permalink fedilink source parent hideshow 2 child comments replies: [–] ArcaneSlime@lemmy.dbzer0.com 2 points 2 years ago Thankfully, none were included lol. I think they assumed I already knew. permalink fedilink source parent [–] bizdelnick@lemmy.ml 4 points 2 years ago (1 child) 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. permalink fedilink source parent hideshow 2 child comments replies: [–] GnomeComedy@beehaw.org 1 point 2 years ago* 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. permalink fedilink source parent
[–] Snarwin@kbin.social 5 points 2 years ago (1 child) The first step after you untar is always "open the README and look for build instructions." permalink fedilink source parent hideshow 2 child comments replies: [–] ArcaneSlime@lemmy.dbzer0.com 2 points 2 years ago Thankfully, none were included lol. I think they assumed I already knew. permalink fedilink source parent
[–] ArcaneSlime@lemmy.dbzer0.com 2 points 2 years ago Thankfully, none were included lol. I think they assumed I already knew. permalink fedilink source parent
[–] bizdelnick@lemmy.ml 4 points 2 years ago (1 child) 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. permalink fedilink source parent hideshow 2 child comments replies: [–] GnomeComedy@beehaw.org 1 point 2 years ago* 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. permalink fedilink source parent
[–] GnomeComedy@beehaw.org 1 point 2 years ago* 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. permalink fedilink source parent
[–] Kangie@lemmy.srcfiles.zip 3 points 2 years ago This. If you're starting a new project, and are not GNU, just use Meson. It's the best widely-used build system. permalink fedilink source parent
[–] stsquad@lemmy.ml 1 point 2 years ago (1 child) 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. permalink fedilink source parent hideshow 2 child comments replies: [–] Kangie@lemmy.srcfiles.zip 2 points 2 years ago (1 child) Eww. Just teach meson setup builddir && cd builddir && meson compile permalink fedilink source parent hideshow 2 child comments replies: [–] stsquad@lemmy.ml 2 points 2 years ago (1 child) 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 😉 permalink fedilink source parent hideshow 2 child comments replies: [–] bizdelnick@lemmy.ml 2 points 2 years ago* 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. permalink fedilink source parent
[–] Kangie@lemmy.srcfiles.zip 2 points 2 years ago (1 child) Eww. Just teach meson setup builddir && cd builddir && meson compile permalink fedilink source parent hideshow 2 child comments replies: [–] stsquad@lemmy.ml 2 points 2 years ago (1 child) 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 😉 permalink fedilink source parent hideshow 2 child comments replies: [–] bizdelnick@lemmy.ml 2 points 2 years ago* 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. permalink fedilink source parent
[–] stsquad@lemmy.ml 2 points 2 years ago (1 child) 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 😉 permalink fedilink source parent hideshow 2 child comments replies: [–] bizdelnick@lemmy.ml 2 points 2 years ago* 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. permalink fedilink source parent
[–] bizdelnick@lemmy.ml 2 points 2 years ago* 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. permalink fedilink source parent
all 12 comments