LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel
User Name
Password
Linux - Kernel This forum is for all discussion relating to the Linux kernel.

Notices


Closed Thread
  Search this Thread
Old 02-03-2009, 10:28 AM   #1
rkarthi2k5
LQ Newbie
 
Registered: Dec 2008
Posts: 15

Rep: Reputation: 0
What is the objective of Configure, Make, Make Install?


Hi Sir/Mam,

I installed the gcc and other softwares wlth .tar extension. We have to do a step by step procedure while installing the sofware which have .tar extension.

1) First, we have to unzip the file and give ./configure
2) Second, we have to give make
3) Third, we logon to root and give make install.

My question is, why we are doing the above steps sequentially and what is actually happend at the each and every steps(configure,make,make install). What is the objective of Configure, Make, Make Install? I request u to give elloborate explanation, because i m new to Linux. Waiting for ur valuable reply.


Thanks and Regards,
Karthikeyan.R
 
Old 02-03-2009, 11:01 AM   #2
theNbomr
LQ 5k Club
 
Registered: Aug 2005
Distribution: OpenSuse, Fedora, Redhat, Debian
Posts: 5,399
Blog Entries: 2

Rep: Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908Reputation: 908
You have discovered the usual process to convert a source code tarball distribution of an application into the runnable binaries and related components. The source code is the human readable files that the programmer(s) wrote using the usual tools such as text editors. The collection of such files is packed up into one file, using tar and a compressor, for distribution. This is done to relieve you from having to download potentially thousands of files that make up a complete application package, and is compressed to conserve network bandwidth and your time.
Having unpacked the tarball, it must be made into the runtime binaries, and installed into your system in a way that everything runs properly. This is normally done by compiling the source code and linking the resulting object code to each other and to object code libraries. Before this can be done, the configure script is run, to snoop through you system and set up build-time variables that allow the compiler and related tools to create a runtime binary that is compatible with your system. This is also the step that allows you to apply customizations as desired by you. Since the Linux OS and distributions are not as standardized as, say, Windows (XP-SP2 is XP-SP2 is XP-SP2), the configure step is performed to make sure that those aspects that are likely to be inconsistent can be properly handled. It is also a good place to catch dependency issues. Part of the Unix/Linux culture is that small components that do a single thing very well are used together to create a greater whole. In order for this to work well, the configure script makes sure that the right collection of dependent components are in place.
Once the configuration phase has completed, the source components are built into the end-use form(make), and then said products are installed into the system (make install).
This is one way in which a single source tarball can be made to run on systems of significantly dissimilar architecture and vintage.
--- rod.
 
Old 02-06-2009, 09:30 PM   #3
sundialsvcs
LQ Guru
 
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 10,659
Blog Entries: 4

Rep: Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940Reputation: 3940
Echoing what the previous responder said...

(1) As you know, software systems consist of many dozens of individual source-modules. When you're compiling them and linking them together, there's "only one right way to do it." A Makefile is something that an application developer can set up so that all you have to do, "to do it just-right every time," is to type the command: make.

(1a) ... and to install what you've just made, you can just type make install. (Ain't life grand?)

(2) "Aaaahh... but Linux runs on more than 21 different types of machines!" So, how do we possibly build a Makefile that works on all of them? Obviously, we can't. We need "a system for making Makefiles!" And that is called configure.

When you type configure, a process runs that figures out the various particulars of the specific machine you are using, and it builds one-or-more Makefiles accordingly. Once it's finished, you can just "make" your software ... and "It Just Works(tm)."

"Every form of advanced magic is indistinguishable from technology."
 
Old 02-10-2009, 05:43 AM   #4
reddazz
LQ Guru
 
Registered: Nov 2003
Location: N. E. England
Distribution: Fedora, CentOS, Debian
Posts: 16,298

Rep: Reputation: 77
Please post your thread in only one forum. Posting a single thread in the most relevant forum will make it easier for members to help you and will keep the discussion in one place. This thread is being closed because it is a duplicate.

Discussion continues here.
 
  


Closed Thread



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
What is the objective of Configure, Make, Make Install? rkarthi2k5 Linux - Newbie 7 02-04-2009 07:30 AM
what actually happens under the hood when I type ./configure, make and make install? Unregistered Slackware 12 11-19-2007 04:50 PM
these commands are not working on my server (./configure, make, make install) Anil Kumar K Linux - Software 3 07-02-2007 07:23 AM
configure, make and make install commands don't work for me Fenster Fedora 8 08-18-2004 10:58 AM
Can I automate the tar, ./configure, make, and make install of about 50 packages? JoeLinux Linux - General 2 04-13-2002 03:35 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software > Linux - Kernel

All times are GMT -5. The time now is 04:49 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration