Vart hamnar kompilerade program?

Permalänk
Medlem

Vart hamnar kompilerade program?

Jag lånar en textdel från en annan tråd:
"To time your source compile, simply enter the kernel source directory (i.e. /usr/src/linux/) and type:
Code:
# time make
when it is done, it will display the overall time it took to complete, which you can then throw in to a text document or spreadsheet to graph, if you'd like."

Vart hamnar dessa kompilerade delar? I en mapp? Eller utblandat i den mappen man står i?

Ibland laddar man ner ett program, ska kompilera det och (vad jag förstått) kunna kopiera den kompilerade mappen till ens egen home-mapp, och kunna köra det därifrån, utan att kopiera in det i nån systemmapp?
skapas det då en mapp som man kan kopiera, eller blandas alla filerna bland alla källfiler?

Jag har inte gjort detta alls mycket, och känner mig inte alls hemma i området, så.. help me out!

Permalänk
Avstängd

Det hamnar utblandat i den mapp man gjort "make" i. Antag att det finns massa directories, då kommer Make hoppa ned i varje directory och kompilera varje fil däri, och på slutet bygga en binär med alla objektfiler. Gör du "make install" så kopieras binärerna till rätt målkatalog.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av saddam
Det hamnar utblandat i den mapp man gjort "make" i. Antag att det finns massa directories, då kommer Make hoppa ned i varje directory och kompilera varje fil däri, och på slutet bygga en binär med alla objektfiler. Gör du "make install" så kopieras binärerna till rätt målkatalog.

kom ihåg att "rätt målkatalog" inte måste vara tex /usr/bin/ för ett program utan är tex /usr/local/bin/ för mig om jag kompilerar från min hemkatalog.

Permalänk
Medlem

Önskad målmap ställer du in när du du kör ./configure. Lägg till parametern prefix="sökväg till katalogen". Standard är /usr/local/. I målkatalogen skall du ha underkatalogerna som finns i /usr/local. Alla program använder inte alla underkataloger, men saknas någon så får du fel när du kör make install. Mest använda är: bin, etc, lib, lib64, man och share.

Permalänk
Medlem

Ah, prima exempel på varför make är så värdelöst.
Rent allmänt så kan make göra precis vad den vill, precis som vilket script som helst.

Ett byggsystem skall inte vara turingkomplett. Död åt autotools!

Permalänk
Medlem

make är helt ok! Läs bara i make-filen (kolla efter typ install) så ser du var filen/filerna hamnar)

Permalänk
Medlem

Vad jag menar är att jag .. om vi tar t.ex wine. Jag har en wine installerad, från Ubuntus repo.
Sen skulle jag vilja ladda ner wine och kompilera/patcha det. Men samtidigt inte förstöra min installerade version..

Skulle jag kunna ha min installerade, sen få till en mapp som jag kan lägga på valfri plats, som är fullt fungerande så att jag kan starta olika versioner av wine, i detta fallet? Som en standalone-installation.

Eller är det detta jag åstadkommer om jag utelämnar "make install" ?

./configure
make
och alltså inte göra "make install" efteråt?

Permalänk
Medlem

Du väljer vart du vill installera när du kör ./configure. Det går att ha två versioner av samma program om du installerar den version,som du kompilerar själv, i /usr/local. För de flesta källkodsprogram är standardkatalogen /usr/local/bin för körbara filen, /usr/lib (32b) eller /usr/lib64 (64b) för biblioteksfilerna, /usr/local/man för manualfilen och /usr/local/share för övriga hjälpfiler.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av fagerja
.... /usr/lib (32b) eller /usr/lib64 (64b) för biblioteksfilerna...

nästan rätt.. på ett 64bit system så är lib64 katalogen en symlänk till lib som innehåller 64bit libbar och lib32 katalogen finns 32bit libbar...