CONFIGURE(1)

NAME
configure - Generates and maintain software build systems

SYNOPSIS

configure [-n] [-q] [-S] [-v] [-b bindir] [-d destdir] [-i includedir] [-l libdir] [-O system] [-p prefix] [-s sbindir] [directory...]

DESCRIPTION

configure generates and maintain software build systems, suitable for use with the most common implementations of the make command. It uses project description files to provide simple Makefiles. It is intended to keep the code generated as simple and portable as possible.

It processes the current directory, or the ones given at the command line, according to the project configuration files encountered.

OPTIONS

The following options are available:

-b
    Where to install regular executables (BINDIR)

-d
    Where to stage the installation (DESTDIR)

-i
    Where to install header files (INCLUDEDIR)

-l
    Where to install libraries (LIBDIR)

-n
    This option just parses the project definition files, without actually re-generating the Makefiles.

-O
    Force a specific platform, bypassing auto-detection.

-p
    Where to base the package installation (PREFIX)

-q
    This option runs configure in quiet mode.

-S
    This option warns about potential security risks.

-v
    This option gives information about the progress of the operation.

OVERVIEW

  What is DeforaOS configure

DeforaOS configure generates Makefiles needed in an entire project. Instead of trying every little trick to let it work in a number of potential uses, it sticks to the simplest possible code generation.

Although primarily dedicated to the generation of build systems through Makefiles, primarily to compile source code in the C/C++ and assembly languages, DeforaOS configure can be extended for integration with external software and processes such as translations, documentation generation, or dynamic bindings for instance.

Basic support for Java and Verilog is also available.

  Who should use DeforaOS configure

Some software developers could gain using DeforaOS configure. However, due to its intentional simplicity, it may also be limiting in some cases; this can be expected when building large projects in particular.

Advanced users willing to modify the build process of projects using DeforaOS configure may have to learn about DeforaOS configure as well.

  Who should not use DeforaOS configure

DeforaOS configure was primarily designed for projects using the C or C++ languages. Although possibly extended through the help of shell scripts, DeforaOS configure may not be appropriate for other languages or complex build processes.

  Why use DeforaOS configure

DeforaOS configure was created to be efficient at writing simple and compliant Makefiles for software development projects of all sizes. It should be useful:

    • for people learning software development using Makefiles;

    • for developers of C/C++ software projects;

    • for developers concerned by the readability, efficiency, portability or maintenance of their Makefiles.

  Migrating to DeforaOS configure

You may first create all necessary "project.conf" files with the subdirectories definitions. Then for every binary or library built, specify the adequate target along with its section.

When migrating from automake/autoconf, the existing subdirectories are defined in the "Makefile.am" files, in the "SUBDIRS" variable. The binary targets are defined in the same file, as the "bin_PROGRAMS" variable, each declined to "program_SOURCES" for their respective source files.

FILES

project.conf
    Project definition files.

BUGS

Issues can be listed and reported at https://www.defora.org/os/project/bug_list/16/configure.

SEE ALSO

make(1), project.conf(5)

  Additional resources

More information can be found on the project page at https://www.defora.org/os/project/16/configure.

AUTHOR

Pierre Pronchery <khorben@defora.org>
    Code and documentation.

COPYRIGHT
Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Pierre Pronchery <khorben@defora.org>

This manual page was written for the DeforaOS project (and may be used by others).

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 3 as published by the Free Software Foundation.