Open In App

autoreconf command in Linux with examples

Last Updated : 03 Jun, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

autoreconf is a Autotool which is used to create automatically buildable source code for Unix-like systems. Autotool is a common name for autoconf, automake, etc. These all together are termed as Autotools

Important Points: 

 

  • Provides Portability of source code packages by automatic buildable capability.
  • Provides common build facilities like make install.
  • Automatic dependency generation for C/C++.

Syntax: 

 

autoreconf [OPTION]... [DIRECTORY]...

Options: 

 

  • -h, –help : Print the help message and exit.
  • -V, –version : Used to show the version number, and then exit.
  • -v, –verbose : Verbosely report processing.
  • -d, –debug : Don’t remove temporary files.
  • -f, –force : This option is used to consider all files obsolete.
  • -i, –install : Copy missing auxiliary files.
  • –no-recursive : Don’t rebuild sub-packages.
  • -s, –symlink : With -i option it is used to install symbolic links instead of copies.
  • -m, –make : When applicable, re-run ./configure && make.

Note: Autotools are used to make automatically buildable source code for distribution purpose. 

Important Configuration Files: 

 

  • configure.ac : Describes configuration for autoreconf.
  • Makefile.am : Describes sources of program files and compiler flags for automake.
    • Step 1: Make a directory and a C program file. 

       

  • Hello, World Program 

     

#include
void main()
{
   printf("Hello, World");
}
  •  

  • Step 2: Make a configure.ac file for autoreconf

     

# initialize the process
AC_INIT([hello], [0.01])
# make config headers
AC_CONFIG_HEADERS([config.h])
#Auxiliary files go here
AC_CONFIG_AUX_DIR([build-aux])
# init automake
AM_INIT_AUTOMAKE([1.11])
#configure and create "Makefile"
AC_CONFIG_FILES([Makefile])
#find and probe C compiler
AC_PROG_CC
#End
AC_OUTPUT
  •  

  • Step 3: Make a Makefile.am for automake

     

#list of programs to be installed in bin directory
bin_PROGRAMS = hello
#sources for targets
hello_SOURCES = hello.c
  •  

  • Step 4: Run the following commands on terminal. It will give an error because it is for distribution purpose and VCS(Version Control System) should have some standard license files. 

     

  •  

  • Step 5: Lets make license files. 

     

  • Step 6: Retry 

     

  •  

  • Step 6: Now, Let’s run the program. See, now Hello, World is printed on the screen 

     


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads