Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8048571
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 5, 20262026-06-05T06:29:16+00:00 2026-06-05T06:29:16+00:00

Every time you compile something from source, you go through the same 3 steps:

  • 0

Every time you compile something from source, you go through the same 3 steps:

$ ./configure
$ make
$ make install

I understand, that it makes sense to divide the installing process into different steps, but I don’t get it, why each and every coder on this planet has to write the same three commands again and again just to get one single job done. From my point of view it would make totally sense to have a ./install.sh script automatically delivered with the source code which contains the following text:

#!/bin/sh
./configure
make
make install

why would people do the 3 steps separately?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-05T06:29:18+00:00Added an answer on June 5, 2026 at 6:29 am

    Because each step does different things

    Prepare(setup) environment for building

    ./configure
    

    This script has lots of options that you should change. Like --prefix or --with-dir=/foo. That means every system has a different configuration. Also ./configure checks for missing libraries that should be installed. Anything wrong here causes not to build your application. That’s why distros have packages that are installed on different places, because every distro thinks it’s better to install certain libraries and files to certain directories. It is said to run ./configure, but in fact you should change it always.

    For example have a look at the Arch Linux packages site. Here you’ll see that any package uses a different configure parameter (assume they are using autotools for the build system).

    Building the system

    make
    

    This is actually make all by default. And every make has different actions to do. Some do building, some do tests after building, some do checkout from external SCM repositories. Usually you don’t have to give any parameters, but again some packages execute them differently.

    Install to the system

    make install
    

    This installs the package in the place specified with configure. If you want you can specify ./configure to point to your home directory. However, lots of configure options are pointing to /usr or /usr/local. That means then you have to use actually sudo make install because only root can copy files to /usr and /usr/local.


    Now you see that each step is a pre-requirement for next step. Each step is a preparation to make things work in a problemless flow. Distros use this metaphor to build packages (like RPM, deb, etc.).

    Here you’ll see that each step is actually a different state. That’s why package managers have different wrappers. Below is an example of a wrapper that lets you build the whole package in one step. But remember that each application has a different wrapper (actually these wrappers have a name like spec, PKGBUILD, etc.):

    def setup:
    ... #use ./configure if autotools is used
    
    def build:
    ... #use make if autotools is used
    
    def install:
    ... #use make all if autotools is used
    

    Here one can use autotools, that means ./configure, make and make install. But another one can use SCons, Python related setup or something different.

    As you see splitting each state makes things much easier for maintaining and deployment, especially for package maintainers and distros.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have one particular FLA that is crashing every time I try to compile
Every time I try to compile and run a tutorial that I have found,
I use an admin account for the development. But every time I compile to
Every time I try to compile my code, I get a huge amount of
Julia language compiles the script every time, can't we compile binaries with julia instead?
Right now, every time I am changing something in the assets, I have to
Having an issue with printing a pointer out. Every time I try and compile
Every time I try to compile my code I get error: cannot convert parameter
Apart from Dll concept that provides ability of loading/unloading methods or functions at run-time,
I observed SBT compiles all source files everytime when I issue the compile task,

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.