2 <TITLE> Kompilering i store
</TITLE>
3 <!-- Changed by: Espen Skoglund, 23-Apr-1996 -->
6 <H1>Kompilering i store
</H1>
8 Hvordan man kompilerer selve applikasjonen i
<EM>store
</EM> kan man
9 ikke si noe særlig generelt om. Instruksjoner om hvordan dette skal
10 foregå vil man finne forklart i distribusjoenen til den enkelte
11 applikasjon (typisk i en fil med navn INSTALL eller README).
13 <P>Det man derimot må passe på når man kompilerer programmer, er at
14 filstier som blir hardkodet inn i programmene benytter prefiksen
15 <CODE>/store
</CODE> istedenfor den filstien som blir foreslått (typisk
16 <CODE>/usr/local
</CODE>).
18 <H3> Kommandoene unshadow og fix
</H3>
20 Ved kompileringen vil det ofte være nødvendig å forandre på en eller
21 flere filer for å tilpasse applikasjonen til de lokale omgivelsene.
22 Dette kan være f.eks. makefiler eller konfigurasjonsfiler. Vi ønsker
23 derimot ikke å forandre på de orginale filene som følger med
24 distribusjonen (konfigurasjoner som gjelder for
<EM>hpux
</EM> vil
25 sansynligvis ikke gjelde for
<EM>solaris
</EM>), og må derfor kopiere
26 filen over til skyggetreet slik at vi forandrer på kopien av filen
27 istedenfor orginalen. Til dette benytter vi kommandoen
28 <CODE>unshadow
</CODE>. Hvis vi f.eks. skal forandre på en fil
29 <CODE>src/config.h
</CODE>, kan vi skrive:
32 $
<I>unshadow src/config.h
</I>
35 Deretter kan vi editere filen etter behov. Som oftest ønsker vi å
36 kjøre
<CODE>unshadow
</CODE> på en fil fordi vi vil forandre den. Av
37 denne grunnen finnes også en kommando
<CODE>fix
</CODE> som kjører
38 <CODE>unshadow
</CODE> på den spesifiserte filen, og deretter starter
39 opp
<CODE>vi
</CODE> på den. Følgende to kommandosekvenser er derfor
43 $
<I>unshadow Makefile
</I>
50 <H3> Configure-skript
</H3>
52 For alle GNU pakker, og en stor del av andre programpakker, så følger
53 det et konfigurasjonsskript med i programpakke-distribusjonen. For
54 slike pakker er kompileringen i
<EM>store
</EM> særdeles enkel. Alt
55 man behøver å gjøre, er å spesifisere en prefiks,
<CODE>/store
</CODE>,
56 til konfigurasjonsskriptet. Dette er også tilfelle for pakken
57 <CODE>sharutils
</CODE>. Vi skriver derfor:
60 $
<I>./configure --prefix=/store
</I>
63 I noen tilfeller kan det også være nødvendig å spesifisere hvilken
64 c-kompilator man skal benytte. Dette skulle her på installasjonen
65 pr. default bli satt til
<CODE>cc
</CODE>, men man vet jo aldri hva som
66 kommer til å hende over natten. En enkel måte å spesifisere dette på,
67 er å kjøre
<CODE>configure
</CODE> på følgende måte:
70 $
<I>CC=cc ./configure --prefix=/store
</I>
73 Etter at
<CODE>configure
</CODE> har kjørt ferdig behøver man
74 forhåpentligvis bare å starte
<CODE>make
</CODE>. Programpakken burde
75 da kompilere seg ferdig uten problemer.
81 <H3> Spesifisering av bibliotek
</H3>
83 Dersom du spesifiserer søkestien for bibliotek som skal benyttes under
84 kompileringen (opsjonen
<CODE>-L
</CODE> til cc eller ld), så bør stier
85 som er mest mulig standard spesifiseres. Å spesifisere f.eks.
86 ``
<CODE>-L/usr/local1/lib
</CODE>'' er mao. en lite lur ting å gjøre --
87 dette for at programmet da sansynligvis bare vil fungere på tklaben.
88 Katalogen
<CODE>/usr/local1
</CODE> eksisterer nemlig ikke andre steder
91 <P>Å benytte
<CODE>/usr/local
</CODE> i
<EM>store
</EM> er generelt sett
92 lite ønskelig. Grunnen til at vi vil konvertere til
<EM>store
</EM> er
93 jo bl.a. fordi vi ønsker å gå bort ifra et uoversiktlig
94 <CODE>/usr/local
</CODE>-system. Å gjøre appliksjoner i
<EM>store
</EM>
95 avhengig av
<CODE>/usr/local
</CODE> gjør ikke denne konverteringen
100 <ADDRESS><A HREF=
"/~espensk/">eSk
</A></ADDRESS>