| 
| Kirjoittaja | Viesti |  |       
 TK
 
 | Tuommoisen huomasin www.amiga-news.de:ssä eli| Keskiviikkona,  29. tammikuuta, 2003 - klo 20.13: |  | 
 StormC4.0 49.95euroa, tuohon hintaan jo kannattaa
 laittaa vaikkei koodailisikaan
   
 
 |  |       
 JPQ
 
 | TK: No kannataisi varmasti jos just olisi rahaa. Ja onko tuo uuden hinta jos on mitähän se kohta Boogiella maksaa?| Keskiviikkona,  29. tammikuuta, 2003 - klo 21.50: |  | 
 
 
 |  |       
 Jupp3
 
 | No, itse koodaan GCC:llä kun moisen onnistuin asentamaan| Torstaina,  30. tammikuuta, 2003 - klo 11.26: |  | 
   
 Grafiikkaakin saan ruudulle, niin miksi nyt vaihtamaan... Periaatteessahan kääntäjä on sama, mutta StormC:ssä on vain graafinen käyttöliittymä...
 
 Mut ei se nyt vaikeaa ole kirjoittaa gcc hello.c
   
 Btw, oliko muuten joku opiskelijatarjous tms.? Eivätkös joskus semmoista kaupanneet...
 
 
 |  |       
 miksuh
 
 | Jupp3: No ei ole joo| Torstaina,  30. tammikuuta, 2003 - klo 14.04: |  | 
  Ja makefilet auttaa sit isommissa, useista tiedostoista koostuvissa, projekteissa. 
 
 |  |       
 Jani Kuituniemi
 
 | GCC:tä itsekin käytän.. onko jossain jotain ohjeita siihen miten tommosia Makefilejä tehdään?| Torstaina,  30. tammikuuta, 2003 - klo 15.52: |  | 
 
 
 |  |       
 Jon
 
 | Maken mukana| Torstaina,  30. tammikuuta, 2003 - klo 16.20: |  | 
  Tietenkin kannata katsoa mallia open-source projekteista (esim. AmiBlocks, heh heh) 
 
 |  |       
 JPQ
 
 | Jupp3: ei ole vaikeaa kirjoittaa gcc hello.c olet oikeassa mutta muuten tuota GCC:tä en saanut tapeltua aikoinani vaikka sain sairaan hyvät neuvot käyttökuntoon.| Torstaina,  30. tammikuuta, 2003 - klo 17.45: |  | 
 
 
 |  |       
 miksuh
 
 | No okei makefileen kirjotuksen lyhyt oppimäärä, 1ov| Torstaina,  30. tammikuuta, 2003 - klo 20.08: |  | 
  Makefile tiedostot vaihtelee melkosesti hyvin yksinkertasesta hyvin monimutkaseen. Ihan aluksi, jos ei ole ennen noita kirjottanu, ei kannata edes yrittää muutakun ymmärtää makefileen perusrakenne. Muutamalla perusasailla pääsee oikein hyvin alkuun. Sitten kokemuksen lisääntyessä voi mennä pidemmälle ja viilata makefilejä hienommiksi.
 
 Tässä on nyt ykssinkertanen esimerkki makefileestä, joka kääntää ja linkkaa kolmen tiedoston projektin
 . Projektissa on siis tiedostot:
 
 make.c file1.c file2.c
 
 Lisäksi on headerifileet:
 
 file1.h file2.h
 
 Makefileen alussa määritellään käytetyt muuttujat.
 
 CPU = CPU jolle koodi käännetään
 CC = käytettävä kääntäjä
 LD = käytettävä linkkeri
 RM = fileiden delotointikomento
 PROG = luotavan lopullisen exen tiedostonimi
 OBJS = lista projektin objekti-tiedostoista
 OPTFLAGS = optimointiflagit
 CFLAGS = kääntäjälle annettavat optiot
 LDFLAGS = linkkerille annettavat optiot
 
 Muuttujien määrittelyjen jälkeen seuraa joukko sääntöjä (rules) joiden perusteella tiedostot käännetään ensin objekti-tiedostoiksi. Lisäksi on
 yksi sääntö joka kuvaa miten objektitiedostot linkataan exeksi. Ja sääntö, joka kuvaa miten objektitiedostot poistetaan hakemistosta. Viimeisin sääntö ei ole välttämätön.
 
 Jokainen sääntö koostuu kohteesta, siitä mitkä tiedostot vaikuttaa siihen esim käännetäänkö kohde ja säännön toiminnan kuvauksesta. Eli
 
 main.o:  on säännön nimi(kohde) joka kuvaa miten
 main.o-objektifile luodaan.
 
 Samalla rivillä olevat .c ja .h fileet kertoo make:lle mitkä tiedostot vaikuttaa siihen luodaanko uusi main.o. Eli mikäli jokin tuossa listattu .c tai .h file on uudempia kuin main.o niin sääntö suoritetaan ja main.o luodaan uudestaan. Eli nuo määritellyt fileet määritelee ehdon sille suoritetaanko sääntö vai ei.
 
 Rivi $(CC) $(CFLAGS) -c main.c kuvaa miten main.o luodaan. Eli tuo rivi suoritetaan kun sääntösuoritetaan.
 
 Kun tuo makefile on talletettu riittää että annetaan komento:
 
 make   tai  make all
 
 
 Mulla loppuu kohta aika kesken, kun koulu menee kii joten toi on kirjotettu ulkomuistista ja suht kiireessä, eli siinä voi olla puutteita ja virheitä. Mut katotaan vaikka huomena sit enempi tota.
 
 
 ---
 
 CPU = -m68020
 OPTFLAGS= -O2
 CFLAGS =-I. -I./includes $(CPU) $(OPTFLAGS)
 LDFLAGS = -noixemul
 
 CC = gcc
 LD = gcc
 RM = /bin/rm -f
 PROG = MyApp
 OBJS = main.o file1.o file2.o
 
 all: $(PROG)
 
 $(PROG): $(OBJS)
 $(LD) $(LDFLAGS) $(OBJS) -o $(PROG)
 
 main.o: main.c file1.h file2.h
 $(CC) $(CFLAGS) -c main.c
 
 file1.o: file1.c file1.h
 $(CC) $(CFLAGS) -c file1.c
 
 file2.o: file2.c file2.h
 $(CC) $(CFLAGS) -c file2.c
 
 clean:
 $(RM) $(PROG) $(OBJS)
 
 ---
 
 
 |  |       
 miksuh
 
 | Äh tossa piti toki olla välilyöntejä/tabulaattoreita sisennyksenä.. Ne ei nyt tietty sit näkyny.| Torstaina,  30. tammikuuta, 2003 - klo 20.09: |  | 
 
 
 |  |       
 miksuh
 
 | make.c == main.c  tottakai| Torstaina,  30. tammikuuta, 2003 - klo 20.11: |  | 
   
 
 |  |       
 miksuh
 
 | GNU make osaa kaikkea kivaa, kuten automaattisen riippuvuksien (dependency) generointi jne, mutta niihin ei kannata puuttua ennenkun makefileen perusidea on hanskassa.| Torstaina,  30. tammikuuta, 2003 - klo 20.19: |  | 
 
 
 |  |       
 Jani Kuituniemi
 
 | miksuh: kiitos.. tuo selvensi| Torstaina,  30. tammikuuta, 2003 - klo 20.26: |  | 
   
 
 |  |