How do I create a configure script?

LinuxBashMakefileConfigure

Linux Problem Overview


This may sound like a very generic question but here it goes.

I have a requirement to create a configure script for my application, the result of this configure would be a generated makefile (basic configure, make, make install). My question is, where do I start in building this? Is there an example I can follow?

Linux Solutions


Solution 1 - Linux

To create the standard "configure" script you need GNU autoconf. You may need GNU automake and libtool too.

There are tons of documentation and howtos. Google for something like "autoconf automake howto". The good documentation is in the official manual pages:

Autoconf will create your configure script starting from the "configure.ac" file. The "Makefile.am" file will instruct automake on how to create your makefile by the configure string. Libtool is needed to simplify libraries handling around your code.

You can start creating a configure.ac file by hand or you may use the "autoscan" helper that may help you to create something semi-automatic for you.

Then, when you are ready, this one will do the magic:

autoreconf -i

Solution 2 - Linux

there is build flow in linux
enter image description here and there is a very good tutorial
https://thoughtbot.com/blog/the-magic-behind-configure-make-make-install

Solution 3 - Linux

Sometimes a software product will ship with no configure script. Look for an autogen.sh script. it will probably run:

aclocal || die "aclocal failed"
automake --add-missing --force-missing --copy --foreign || die "automake failed"
autoreconf || die "autoreconf failed"

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestiongodzillaView Question on Stackoverflow
Solution 1 - LinuxdAm2KView Answer on Stackoverflow
Solution 2 - LinuxhamShView Answer on Stackoverflow
Solution 3 - LinuxAlan JurgensenView Answer on Stackoverflow