[linux-baslangic] Re: ./configure make install; [FAQ]

---------

New Message Reply About this list Date view Thread view Subject view Author view

From: Enver ALTIN (ealtin@casdb.com)
Date: Fri 24 Jan 2003 - 14:14:18 EET


Merhaba,

On Thu, 2003-01-23 at 11:42, Bora Eresici (TC-CC-HAL) wrote:
> /doruk/ kusura bakmayin is yogunlugundan oyle bir mail yazmisim ki bende =
> tekrar okudugumda hicbirsey anlamadim .)=20
> make komutu ya da make install komutunu verdigimde bu sekilde bir komut =
> olmadigina dagir bir hata veriyor ve durduruyor. zannedersem folder =
> icinde dosyalar eksik. dokumanini okudugumda da ./configure make make =
> install seklinde islemi yapabilecegimi aktarmakta (ki bende oyle =
> biliyordum /tek bildigim de bu gerci :)) ) farkli bir yolu varsa ... =
> bekliyorum .=20

"tar.gz dosyasini al, ./configure, make sonra da make install et
calisir."

Her kimden ogrendiyseniz, cok guzel ezberletmis; hic configure ne is
yapar, yada o dosyanin icinde ne vardir acaba diye baktiniz mi? :) Yani
yerinizde olsam biraz merak ederdim ;)

configure script, GNU autoconf tarafindan, autogen.sh kullanilarak,
configure.in icerisindeki tanimlar yoluyla olusturulan, programcilarin
kendi islerini kolaylastirmak icin kullandiklari araclardandir. Tam
anlamiyla ifade etmek gerekirse, derlenmesi arzu edilen programin bu
sistem uzerinde calisip calisamayacagi, calismasi mumkun ise hangi
derleyici (compiler) ve parametrelerle derlenecegi, baglayici (linker)
parametrelerinin kullanilacagi, ve bunlarin hepsinden once, derlenmesi
istenen programin ihtiyac duymasi muhtemel diger programlarin ve
kutuphanelerin denetlenmesi gibi isler configure tarafindan yapilir.

configure basariyla sonuclandiysa, tum (alt) klasorlerin ve programin
kaynak kodunun bulundugu dizinin icerisine Makefile adinda dosyalar
olusturulur. Bu dosyalar icerisinde, make programinin o klasor icin ne
yapmasi gerektigi tanimlidir. make komutu verdiginizde, aslinda
/usr/bin/make once icerisinde bulunulan klasor icerisindeki "Makefile"
dosyasini inceler. Bu dosya icerisinde de alt klasorler icerisindeki
Makefile dosyalarina baglantilar vardir ve bu dosyalardaki tanimlara
gore yine belirli bir sira icerisinde bazi islemler yapilir
(derleyicinin calistirilmasi, her .c dosyasinin derlenmesi, baglayicinin
[/usr/bin/ld] calistirilmasi gibi).

Makefile dosyalari hakkinda bir not daha: Makefile dosyalari icerisinde
kurallar tanimlidir ve make icin vereceginiz parametre, make'in bu
kurallardan hangisini isletecegini belirtir ve eger belirtilmezse "all"
olarak varsayilir. Dolayisiyla "make" ve "make all" aynidir ve GNU
autoconf/automake tarafindan olusturulan standart kurallardan "install"
ve "clean" disindaki tum kural gruplarinin isletilmesi anlamina gelir
(tabii bu da Makefile icerisinde tanimli ve degistirilebilir).

make install ile, Makefile icerisindeki install adli kurali isletmis
oluyoruz. Bu da, derlenmesi tamamlanmis ve baglama (linking) islemi
yapilmis programin ve bu program tarafindan ihtiyac duyulan dosyalarin
sistemde istenen yerlere kurulmasi anlamina gelir. Eger "make install"
dan once, "all" kurali uygulanmadiysa, make programi bu isi
kendiliginden halledecektir.

Ornegin:

$ configure --prefix=/usr --disable-debug

ile, derlenecek programin, make install ile kurulacagi dizin /usr ile
baslayacak. Dolayisiyla programin calistirilabilir dosyasi /usr/bin
altinda, dokumanlari /usr/doc altinda, diger programlarla ortak
kullanilan dosyalar /usr/share altinda, kutuphaneler /usr/lib altinda..
vs. olacak. Ayrica hata ayiklama islemini kolaylastirmak icin program
icerisine eklenen bazi yardimci fonksiyonlar da kapatiliyor bu sekilde.

$ make install

ile de once "all" kurali uygulanacak, daha sonra install kurali
uygulanacak ve program ilgili klasorlere yerlestirilecek.

Bir ipucu daha: configure tarafindan derleyiciye verilecek olan
parametreleri CFLAGS ve CXXFLAGS (g++/C++ icin) ortam degiskenleri ile
oynayarak degistirmek mumkun, ancak configure 'den once yapilmali.
Ornek:

$ CFLAGS="-O4 -march=i686 -fomit-frame-pointer -pipe -ffast-math"
configure --prefix=/usr

gibi.

Iyi calismalar,

--
Enver ALTIN (a.k.a. skyblue)      - Software developer, generic solvent
http://enver.casdb.com            - mailto: ealtin at casdb dot com
http://enver.casdb.com/CV.html    - Just me, myself and I.

The human race has one really effective weapon, and that is laughter. -- Mark Twain

-- Attached file included as plaintext by Ecartis -- -- File: signature.asc -- Desc: This is a digitally signed message part

-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (GNU/Linux)

iD8DBQA+MS4YpnqewlhW/m4RArLEAJ9BSCfohN7AOKiQe9zDvvOIRYGKDgCgnGvn vGq3ypAQvBab87qaVBTC5Vs= =XPAv -----END PGP SIGNATURE-----

----------------------------------------------------------------------- Liste üyeliğiniz ile ilgili her türlü işlem için http://liste.linux.org.tr adresindeki web arayüzünü kullanabilirsiniz. http://www.linux.org.tr/listeler.php sayfasina bakiniz.

Listeden çıkmak için: 'linux-baslangic-request@linux.org.tr' adresine, "Konu" kısmında "unsubscribe" yazan bir e-posta gönderiniz. -----------------------------------------------------------------------


New Message Reply About this list Date view Thread view Subject view Author view

---------

Bu arsiv hypermail 2b29 tarafindan uretilmistir.