<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=82.130.50.93</id>
	<title>Linux.fi - Käyttäjän muokkaukset [fi]</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=82.130.50.93"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/wiki/Toiminnot:Muokkaukset/82.130.50.93"/>
	<updated>2026-04-06T00:19:24Z</updated>
	<subtitle>Käyttäjän muokkaukset</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Make&amp;diff=16949</id>
		<title>Make</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Make&amp;diff=16949"/>
		<updated>2007-09-11T19:45:12Z</updated>

		<summary type="html">&lt;p&gt;82.130.50.93: /* Katso myös */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[GNU]] Make on työkalu, joka ohjaa [[Lähdekoodi|lähdekooditiedostojen]] kääntämistä esimerkiksi ajettaviksi tiedostoiksi. Lähdekoodipakettien mukana toimitetaan [[Makefile]], joka sisältää yksityiskohdat ohjelman kääntämisestä, ja niin käyttäjän ei tarvitse tuntea tätä prosessia kovin tarkoin. Useimmiten make-käsky lähdekoodihakemistossa kääntää ohjelman ja make install asentaa sen.&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Makefile]]&lt;br /&gt;
*[[Cmake]]&lt;br /&gt;
*[[Autotools]]&lt;br /&gt;
*[[jam]]&lt;br /&gt;
*[[scons]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;br /&gt;
[[Luokka:Komentorivi]]&lt;/div&gt;</summary>
		<author><name>82.130.50.93</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=CMake&amp;diff=16945</id>
		<title>CMake</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=CMake&amp;diff=16945"/>
		<updated>2007-09-11T19:11:29Z</updated>

		<summary type="html">&lt;p&gt;82.130.50.93: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ Ohjelma | nimi=cmake  | kuva= |  kuvateksti= | lisenssi=cmake | käyttöliittymä=teksti | kotisivu=[http://cmake.org cmake.org] }}&lt;br /&gt;
&lt;br /&gt;
Cmake on usealla alustalla toimiva käännösjärjestelmä. Se on käytössä muun muassa [[KDE|KDE-projektissa]].&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
Yleensä projekti käännetään ajamalla sen lähdekoodin hakemistossa komento&lt;br /&gt;
 cmake .&lt;br /&gt;
käännösprosessia voi ohjata määrittelemällä -D-valitsimella &lt;br /&gt;
 cmake -D&amp;lt;muuttuja&amp;gt;=arvo&lt;br /&gt;
esimerkiksi [[g++]]:n käännösvalitsimiin voi vaikuttaa&lt;br /&gt;
 cmake -DCMAKE_CXX_FLAGS=&amp;quot;-g -O2&amp;quot; .&lt;br /&gt;
&lt;br /&gt;
tämän jälkeen cmake tyypillisesti luo [[Makefile|Makefilen]], jolla ohjelma voidaan asentaa tyypillisesti:&lt;br /&gt;
 make all install&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[make]]&lt;br /&gt;
*[[autotools]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;/div&gt;</summary>
		<author><name>82.130.50.93</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=CMake&amp;diff=16944</id>
		<title>CMake</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=CMake&amp;diff=16944"/>
		<updated>2007-09-11T19:07:17Z</updated>

		<summary type="html">&lt;p&gt;82.130.50.93: /* Käyttö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ Ohjelma | nimi=cmake  | kuva= |  kuvateksti= | lisenssi=cmake | käyttöliittymä=teksti | kotisivu=[http://cmake.org cmake.org] }}&lt;br /&gt;
&lt;br /&gt;
Cmake on usealla alustalla toimiva [[make]]n kaltainen järjestelmä ohjelmien kääntämiseen lähdekoodista. Se on käytössä muun muassa [[KDE|KDE-projektissa]].&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
Yleensä projekti käännetään ajamalla sen lähdekoodin hakemistossa komento&lt;br /&gt;
 cmake .&lt;br /&gt;
käännösprosessia voi ohjata määrittelemällä -D-valitsimella &lt;br /&gt;
 cmake -D&amp;lt;muuttuja&amp;gt;=arvo&lt;br /&gt;
esimerkiksi [[g++]]:n käännösvalitsimiin voi vaikuttaa&lt;br /&gt;
 cmake -DCMAKE_CXX_FLAGS=&amp;quot;-g -O2&amp;quot; .&lt;br /&gt;
&lt;br /&gt;
tämän jälkeen cmake tyypillisesti luo [[Makefile|Makefilen]], jolla ohjelma voidaan asentaa tyypillisesti:&lt;br /&gt;
 make all install&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[make]]&lt;br /&gt;
*[[autotools]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;/div&gt;</summary>
		<author><name>82.130.50.93</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=CMake&amp;diff=16943</id>
		<title>CMake</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=CMake&amp;diff=16943"/>
		<updated>2007-09-11T19:05:32Z</updated>

		<summary type="html">&lt;p&gt;82.130.50.93: /* Käyttö */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ Ohjelma | nimi=cmake  | kuva= |  kuvateksti= | lisenssi=cmake | käyttöliittymä=teksti | kotisivu=[http://cmake.org cmake.org] }}&lt;br /&gt;
&lt;br /&gt;
Cmake on usealla alustalla toimiva [[make]]n kaltainen järjestelmä ohjelmien kääntämiseen lähdekoodista. Se on käytössä muun muassa [[KDE|KDE-projektissa]].&lt;br /&gt;
&lt;br /&gt;
==Käyttö==&lt;br /&gt;
Yleensä projekti käännetään ajamalla sen lähdekoodin hakemistossa komento&lt;br /&gt;
 cmake .&lt;br /&gt;
käännösprosessia voi ohjata määrittelemällä -D-valitsimella &lt;br /&gt;
 cmake -D&amp;lt;muuttuja&amp;gt;=arvo&lt;br /&gt;
esimerkiksi [[g++]]:n käännösvalitsimiin voi vaikuttaa&lt;br /&gt;
 cmake -DCMAKE_CXX_FLAGS=&amp;quot;-g -O2&amp;quot; .&lt;br /&gt;
&lt;br /&gt;
==Katso myös==&lt;br /&gt;
*[[make]]&lt;br /&gt;
*[[autotools]]&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;/div&gt;</summary>
		<author><name>82.130.50.93</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=CMake&amp;diff=16937</id>
		<title>CMake</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=CMake&amp;diff=16937"/>
		<updated>2007-09-11T18:33:29Z</updated>

		<summary type="html">&lt;p&gt;82.130.50.93: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ Ohjelma | nimi=cmake  | kuva= |  kuvateksti= | lisenssi=cmake | käyttöliittymä=teksti/graafinen | kotisivu=[http://cmake.org cmake.org] }}&lt;br /&gt;
&lt;br /&gt;
Cross platform make on build system, joka on käytössä muunmuassa [[KDE|KDE-projektissa]].&lt;br /&gt;
&lt;br /&gt;
==käyttö==&lt;br /&gt;
tyypillisimmin lähdekoodihakemistossa &#039;.&#039; komennetaan&lt;br /&gt;
 cmake .&lt;br /&gt;
käännösprosessia voi ohjata määrittelemällä -D-valitsimella muuttujan&lt;br /&gt;
 cmake -DCMAKE_CXX_FLAGS=&amp;quot;-g -O2&amp;quot; .&lt;br /&gt;
&lt;br /&gt;
==katso myös==&lt;br /&gt;
*[[make]]&lt;br /&gt;
*[[autotools]]&lt;/div&gt;</summary>
		<author><name>82.130.50.93</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Makefile&amp;diff=16936</id>
		<title>Makefile</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Makefile&amp;diff=16936"/>
		<updated>2007-09-11T18:25:18Z</updated>

		<summary type="html">&lt;p&gt;82.130.50.93: /* Katso myös */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Makefile on tiedosto, jonka perusteella [[make]] kääntää ohjelman lähdekoodin. Makefilet ovat käteviä etenkin ohjelmoijille, jotka voivat niiden avulla automatisoida ohjelman käännösprosessin.&lt;br /&gt;
&lt;br /&gt;
== Tiedoston rakenne ==&lt;br /&gt;
Makefilen rakenne on tarkasti määrätty seuraavanlaiseksi:&lt;br /&gt;
 kohdetiedosto&#039;&#039;&#039;:&#039;&#039;&#039; lähdetiedosto1 lähdetiedosto2 lähdetiedosto3&lt;br /&gt;
   &amp;lt;tabulaattori&amp;gt;kääntämiskomennot&lt;br /&gt;
&lt;br /&gt;
Esimerkiksi hello.c-nimiselle [[C]]-kieliselle ohjelmalle voitaisiin luoda seuraavanlainen Makefile:&lt;br /&gt;
 hello: hello.c&lt;br /&gt;
     gcc hello.c -o hello&lt;br /&gt;
&lt;br /&gt;
Jonka jälkeen samassa hakemistossa ajettu komento make kääntäisi ohjelman.&lt;br /&gt;
&lt;br /&gt;
== Useampia kohteita ==&lt;br /&gt;
Samassa Makefilessä voi olla useampia käännöskohteita, joita voidaan kutsua joko pelkästään tai niitä voidaan hyödyntää toisesta kohteesta käsin. Esimerkiksi jos edellä käyttämäämme hello-ohjelmaan lisätään toinen tiedosto world.c, voitaisiin Makefilestä tehdä seuraavanlainen:&lt;br /&gt;
 # Linkitys&lt;br /&gt;
 hello: hello.o world.o&lt;br /&gt;
      gcc hello.o world.o -o hello&lt;br /&gt;
 # Pelkkä käännös, ei linkitystä&lt;br /&gt;
 hello.o: hello.c&lt;br /&gt;
      gcc -c hello.c -o hello.o &lt;br /&gt;
 world.o: world.c&lt;br /&gt;
      gcc -c world.c -o world.o&lt;br /&gt;
Jolloin koko ohjelman kääntäminen sujuisi komennolla make. Jos makelle ei kerrota erikseen, mikä kohde halutaan käsitellä, make käsittelee ensimmäisen lohkon. Toisaalta pelkän world.c-tiedoston kääntäminen onnistuisi komennolla&lt;br /&gt;
 make world.o&lt;br /&gt;
Tätä ominaisuutta hyödynnetään usein Makefileissä olevilla clean- ja install-kohteilla. Esimerkiksi Makefilen lopussa voisi olla seuraavanlainen clean-kohde:&lt;br /&gt;
 clean:&lt;br /&gt;
       rm *.o hello&lt;br /&gt;
Joka poistaisi käännetyt objektitiedostot (hello.o ja world.o) ja käännetyn ohjelman (hello). Tätä kutsuttaisiin komentoriviltä komennolla&lt;br /&gt;
 make clean&lt;br /&gt;
&lt;br /&gt;
== Muuttujat ==&lt;br /&gt;
Make tukee erilaisten muuttujien käyttöä Makefileissä, jolloin saadaan tiedostosta helpommin ylläpidettävä ja siirrettävä kun komentoja ja niiden parametreja ei tarvitse &amp;quot;kovakoodata&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Muuttujat määritellään yksinkertaisesti syntaksilla&lt;br /&gt;
 muuttuja = arvo&lt;br /&gt;
Esimerkiksi C-kääntäjä on yleensä CC-nimisessä muuttujassa:&lt;br /&gt;
 CC = gcc&lt;br /&gt;
Muuttujiin voi viitata koodissa syntaksilla $(muuttuja), esimerkiksi hello.c-tiedoston kääntävä osa edellisestä Makefilestä muuttuisi seuraavanlaiseksi&lt;br /&gt;
 CC = gcc&lt;br /&gt;
 hello.o: hello.c&lt;br /&gt;
      $(CC) -c hello.c -o hello.o&lt;br /&gt;
Nyt kääntäjän vaihtaminen toiseksi onnistuu pelkkää muuttujaa muuttamalla, mistä on hyötyä Makefilen kasvaessa suuremmaksi. Vastaavalla tavalla muuttujina käytetään usein esimerkiksi käännösoptioita, jolloin kaikkiin tiedostoihin saadaan haluttaessa joko debug-käännösoptiot (-g, -O0) tai julkaisua varten tehokkaat optimoinnit (-O3).&lt;br /&gt;
&lt;br /&gt;
== Esimerkki ==&lt;br /&gt;
Esimerkki Makefilestä, jota käytetään kääntämään kahdesta [[C plus plus | C++]]-kielisestä lähdekooditiedostosta (&amp;lt;tt&amp;gt;src/main.cpp&amp;lt;/tt&amp;gt; ja &amp;lt;tt&amp;gt;src/funktiot.cpp&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
 #Objektitiedostot&lt;br /&gt;
 PROJEKTI = src/main.o src/funktiot.o&lt;br /&gt;
 &lt;br /&gt;
 #Käännösasetukset&lt;br /&gt;
 LDFLAGS_CLIENT = -lm&lt;br /&gt;
 CXXFLAGS = -g&lt;br /&gt;
 &lt;br /&gt;
 #Oletuksena suoritetaan osio &amp;quot;softa&amp;quot;&lt;br /&gt;
 all: softa&lt;br /&gt;
 &lt;br /&gt;
 #Tiedot, mistä lähdekooditiedostoista objektitiedostot käännetään&lt;br /&gt;
 src/main.o: src/main.cpp&lt;br /&gt;
 src/funktiot.o: src/funktiot.cpp&lt;br /&gt;
 &lt;br /&gt;
 #Kääntö&lt;br /&gt;
 softa:&lt;br /&gt;
     g++ $(PROJEKTI) $(CXXFLAGS) $(LDFLAGS) -o ohjelma&lt;br /&gt;
 &lt;br /&gt;
 #Clean, joka poistaa tarpeettomat objektitiedostot&lt;br /&gt;
 clean:&lt;br /&gt;
     rm -f $(PROJEKTI)&lt;br /&gt;
&lt;br /&gt;
Nyt projektin hakemistossa voidaan ajaa komento make, jolloin [[make]] kääntää projektin:&lt;br /&gt;
 $make&lt;br /&gt;
 g++ -g   -c -o src/main.o src/main.cpp&lt;br /&gt;
 g++ -g   -c -o src/funktiot.o src/funktiot.cpp&lt;br /&gt;
 g++ src/main.o src/funktiot.o -g  -o ohjelma&lt;br /&gt;
Huomaa, että jos nyt muokkaamme tiedostoa src/funktiot.cpp ja ajamme maken uudelleen, tiedostoa src/main.cpp ei käännetä uudestaan:&lt;br /&gt;
 $[[touch]] src/main.cpp&lt;br /&gt;
 $make&lt;br /&gt;
 g++ -g   -c -o src/main.o src/main.cpp&lt;br /&gt;
 g++ src/main.o src/funktiot.o -g  -o ohjelma&lt;br /&gt;
&lt;br /&gt;
== Katso myös ==&lt;br /&gt;
*[[Make]]&lt;br /&gt;
*[[Cmake]]&lt;br /&gt;
*[[autotools]]&lt;br /&gt;
&lt;br /&gt;
== Linkkejä ==&lt;br /&gt;
*[http://www.flug.fi/ohjeita/linux-ohjelmointi.html#Makefile FLUG:in Linux-ohjelmointi]-opas.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Kehitystyökalut]]&lt;/div&gt;</summary>
		<author><name>82.130.50.93</name></author>
	</entry>
</feed>