Premium

Získejte všechny články
jen za 89 Kč/měsíc

Programování pro PalmOS počítače krok za krokem (2)

V pokračování naší malé knihy o programování si povíme více o o jednotlivých programech, tvořících prostředí pro vývoj aplikací pro PalmOS, které budete využívat, zejména o programu make a souborech Makefile.

1.3. Součásti vývojového prostředí GNU

Nainstalované vývojové prostředí tvoří - s jednou vyjímkou - programy, které jsou volány z příkazové řádky. Pokud jste čekali barevná okna a animované ikony, musím vás zklamat: nejsou tu. Místo toho se autoři soustředili na rychlost, výkon a snadnější ovládání. Budete si však muset, alespoň ze začátku, zvyknout na to, že programy spouštíte nikoliv poklepáním na jejich ikonu, ale zadáním jejich jména na příkazové řádce. Není to tak složité jak to vypadá (je to jen o něco málo náročnější na vaši paměť než ikony) a výrazně to urychlí práci.

V následující tabulce jsou vyjmenovány některé programy, které jste si nainstalovali a které budete používat při psaní aplikací pro PalmOS - takový stručný přehled. Většinu jich nebudete přímo spouštět, budete však potřebovat znát jejich jména pro psaní konfiguračních souborů. Některé z nich (označené hvězdičkou v posledním sloupečku tabulky) jsou součásti vývojového prostředí Cygwin, které se chovají stejně jako příslušné programy v Unixu/Linuxu a podrobnou nápovědu k nim můžete najít v některé z příruček popisujících práci v Unixu/Linuxu. Funkci ostatních programů podrobně popíšeme v této knize v kapitole, jejíž číslo je v posledním sloupečku tabulky.

Příkaz/programPopis 
touch soubor Nastaví datum a čas vytvoření souboru na aktuální hodnotu systémového data a času. Pokud soubor předtím neexistoval, vytvoří se nový soubor daného jména s nulovou délkou. *
rm soubory... Smaže soubory, které jsou uvedeny jako parametr programu (podobně jako příkaz DEL v MS DOSu. Je možné uvést libovolně dlouhý seznam souborů, používat zástupné znaky pro výběr skupin souborů a podobně. *
ln -s jméno kam Vytvoří symbolické spojení dvou souborů: vytvoří soubor jméno a když s ním budeme ve vývojovém prostředí Cygwin pracovat, bude to jako bychom pracovali s původním souborem (adresářem) kam. *
ls parametry Vypíše seznam souborů. Podobné příkazu DIR v MS DOSu, ale mnohem elegantnější. Obsahuje mnoho voleb například pro setřídění souborů, formát výstupu a podobně. *
echo text... Vypíše na obrazovku text, který uvedeme jako parametr příkazu. *
pilot-xfer Instaluje nebo zálohuje databáze do Palm Pilota přes sériový port. Na rozdíl od dodávaného programu HotSync umožňuje rychle instalovat jednotlivé aplikace aniž by byla synchronizována všechna ostatní data (instalace aplikací je rychlejší než pomocí programu HotSync). 3
pilrc Překladač souborů prostředků (resources) pro aplikace PalmOS. 2
m68k-palmos-gcc GNU překladač jazyka C/C++ a linker (program, který spojuje přeloženou aplikaci s knihovnami funkcí PalmOS). 1
m68k-palmos-obj-res Program, který rozloží výstupní soubor vytvořený překladačem na jednotlivé součásti aplikace pro PalmOS (které budou pak společně sbaleny v souboru s příponou *.prc). 1
build-prc Spojí jednotlivé součásti aplikace do jednoho souboru s příponou *.prc. 1
m68k-palmos-gdb Program, který ve spolupráci s emulátorem POSE nebo xcopilot slouží k nacházení chyb, které jste udělali při psaní programu. 6
make cíl Program, který slouží k řízení překladu a sjednocení funkce ostatních programů. To je také hlavní z programů uvedených v tabulce, který budete přímo spouštět zadáním jeho jména na příkazové řádce. 1,4

1.4. Program make a soubor Makefile

Program make byl poprvé uveden jako součást operačního systému Unix, sloužící ke zjednodušení a zrychlení překladu složitějších programů. Tyto programy sestávaly z několika souborů zdrojového kódu, které bylo potřeba přeložit v pevném pořadí a spojit s knihovnami. Dokud se k řízení překladu používaly jednoduché dávkové soubory, tak pokud jsme změnili byť jenom jeden soubor zdrojového kódu, bylo potřeba celý projekt - všechny jeho soubory - znovu přeložit a spojit s knihovnami a to trvalo dlouho. Pak někdo prosadil následující: (1) bylo by dobré, kdyby se překládaly jen ty soubory, které se od posledního překladu změnily; (2) nechť tedy programátor vytvoří soubor, popisující závislosti jednotlivých součástí programu na sobě (hierarchii programu) a konečně (3) budiž program, který přečte tento soubor závislostí a na jeho základě určí, které soubory je zapotřebí překládat, spojovat s knihovnami, kopírovat atd. a které z nich jsou aktuální. A vznikl program make, který má všechno tohle za úkol.

make

Program make po spuštění přečte soubor Makefile, který se nachází v aktuálním adresáři a na základě pravidel v něm popsaných určí, které soubory je potřeba přeložit (nebo aktualizovat) a které programy k tomu použít.

Soubor Makefile je tvořen sadou "závislostí" a "pravidel". "Závislost" je dána cílem (souborem, který se má vytvořit) a skupinou souborů, na nichž vytvoření cílu závisí (které když se změní tak je potřeba udělat cíl nový). "Pravidla" popisují postup jak vytvořit cíl ze souborů na nichž závisí. Skupin závislost-pravidlo může být v souboru Makefile libovolné množství. Program make určuje na základě seznamu závislostí a pravidel pořadí, ve kterém mají být cíle vytvořeny a správnou posloupnost pravidel, která k tomu mají být použita. Narazí-li program make kdykoliv během provádění pravidel na chybu (tj. na program, který skončí s chybou) tak zastaví překlad.

Program make může být volán s různými parametry. Ty nejčastěji používané jsou následující:

        make [-f soubor] [-n] [cíl]
cíl
Pokud uvedete jméno cíle tak bude vytvořen. Pokud jméno cíle neuvedete, bude vytvořen první z cílů, který bude v souboru Makefile uveden.
-n
Pokud tuto volbu zadáte tak program make jen vypíše které programy a s jakými parametry by volal, aniž by to však skutečně provedl. To je užitečné, pokud máte velmi složitý soubor se závislostmi a pravidly a chcete jej vyzkoušet.
-f soubor
Pomocí této volby sdělujete programu make, který soubor obsahující pravidla má použít. Pokud tuto volbu nezadáte, bude program make hledat soubor jménem Makefile v aktuálním adresáři.

Makefile

Popíšeme si zjednodušenou syntaxi souboru Makefile; pro podrobnosti se podívejte do literatury o operačním systému Unix nebo popis programu make v dokumentaci libovolného překladače jazyka C/C++ (Visual, Borland, Watcom):

  • Na začátku souboru Makefile mohou být definovaná makra (proměnné, které budou nahrazeny při překladu).
  • Potom následují jednotlivé bloky závislost-proměnná. Tyto bloky jsou od sebe odděleny prázdnými řádky.
  • V souboru Makefile mohou také být komentáře.

Makra mohou být definována na začátku souboru; každá definice musí být na samostatném řádku. Při definici uložíme do makra nějaký text a do dalších definic nebo bloků závislost-pravidlo můžeme vložit jméno makra. Jméno makra (před rovnítkem) bude při překladu nahrazeno obsahem definice (textem od rovnítka až ke konci řádku):

        JMENO=cim vsim bude nahrazeno

V blocích závislost-pravidlo se na makra odvoláváme tak, že uvedeme znak dolar ('$') a jméno makra v závorkách. Tato konstrukce bude při překladu nahrazena obsahem definice. Příklad definice a použití makra:

        TEXT=Ahoj vsichni
        echo $(TEXT) lide, $(TEXT) psi.

Tento příklad vypíše (příkaz echo) na obrazovku text "Ahoj vsichni lide, Ahoj vsichni psi." (Kurzívou je ve vypsané větě zvýrazněn obsah definice makra).

Za komentáře jsou považovány řádky začínající znakem mřížka ('#'). Text, který následuje za tímto znakem je ignorován. Často vkládají autoři do souborů Makefile komentáře jen proto, aby se v nich později vyznali. Příklad komentáře:

        # Vytvoril Petr Lesny, 2000
        #

Jednotlivé bloky závislosti-pravidla jsou od sebe odděleny prázdnými řádky. Syntaxe jednoho takového bloku je následující (v příkladu cíl označuje soubor, který bude vytvořen a který závisí na seznamu souborů. Pravidla jsou jednotlivé po sobě následující příkazy, které budou postupně volány k vytvoření cíle):

        cíl: seznam souborů
                pravidlo1
                pravidlo2
                ...

POZOR! Všechna pravidla v souboru Makefile musí být uvedena na řádcích, které začínají tabulátorem, jinak jim program make nebude rozumět. Tato skutečnost může způsobit zdánlivě "neodstranitelné" chyby - v řadě editorů vypadá několik mezer a tabulátor úplně stejně. Pokud vám program make nebude vykonávat jednotlivá pravidla po sobě tak jak by měl, velmi pravděpodobně je vina právě v tom, že jste místo tabulátoru napsali několik mezer. ŘEŠENÍ: otevřete soubor Makefile v poznámkovém bloku (notepad) ve Windows a ujistěte se, že řá dky, na kterých jsou pravidla, začínají skutečně tabulátory.

Při psaní pravidel můžeme použít makra, která jsme si definovali na začátku souboru Makefile. Makro můžeme uvést kdekoliv - jako jméno i jako parametr příkazu, v seznamu souborů apod. Makro použijeme tak, ze napiseme znak dolar ('$') a za ním jméno makra v kulatých závorkách: $(JMENO) Příklad definice a použití makra v souboru Makefile:

Tento blok je ekvivalentní s blokem:

Všimněte si, že jméno programu i jméno ikony je použito dvakrát. Pokud bychom se v prvním případě rozhodli později, že se program bude jmenovat nedelej_nic.prc tak stačí změnit definici makra JMENO_IKONY na začátku souboru. Ve druhém případě bychom museli změnit oba dva výskyty jména aplikace, což dává větší možnost udělat chybu. Příklad komentovaného souboru Makefile si uvedeme v následujícím rámečku:

Pokud spustíme program make bez parametrů a v adresáři, do kterého jsme rozbalili soubory nic.c (zdrojový text programu), nic.rcp (soubor prostředků aplikace), soubor ikona.bmp (soubor s ikonou, na kterou se odvoláváme v souboru prostředků aplikace) a Makefile z archivu v příloze tak budou provedena pravidla v následujícím pořadí:

  1. pilrc nic.rcp
  2. touch bin.hotovo
  3. m68k-palmos-gcc -O2 -Wall -c nic.c -o nic.o
  4. m68k-palmos-gcc -O2 -Wall nic.o -o nic
  5. m68k-palmos-obj-res nic
  6. touch grc.hotovo
  7. build-prc nic.prc "Nic" NECO *.grc *.bin

Výsledkem bude přeložená aplikace. Pokud změníme soubor nic.c (nebo jej jen aktualizujeme příkazem touch nic.c a spustíme program make znovu, provedou se už jen následující kroky, kterými se přeloží jen tento soubor:

  1. m68k-palmos-gcc -O2 -Wall -c nic.c -o nic.o
  2. m68k-palmos-gcc -O2 -Wall nic.o -o nic
  3. m68k-palmos-obj-res nic
  4. touch grc.hotovo
  5. build-prc nic.prc "Nic" NECO *.grc *.bin

Podobně změníme-li jen soubor nic.rcp (nebo jej jen aktualizujeme příkazem touch nic.rcp a spustíme program make znovu, provedou se pouze následující tři kroky, kterými se začlení aktualizované prostředky aplikace (třeba nová ikona) do výsledného souboru aplikace (nic.prc):

  1. pilrc nic.rcp
  2. touch bin.hotovo
  3. build-prc nic.prc "Nic" NECO *.grc *.bin

Na závěr si uvedeme ještě jednu možnost programu make: pokud v souboru Makefile uvedeme na konci následující řádky s tzv. "falešným cílem":

        # falešný cíl pro make - neodpovídá žádné součásti aplikace

        uklid:
                rm -f *.bin *.grc *.o nic *.hotovo

tak když napíšeme "make uklid" tak se jenom spustí program rm (viz popis programu výše v kapitole) a smaže všechny pracovní soubory, které jsme nechali v adresáři. Tímto způsobem máme připravené jednotné rozhraní k ovládání překladu našich programů pouze prostřednictvím různých cílů programu make.


Příště si povíme více o procesu překladu aplikací pro PalmOS a o různých programech, které se tohoto překladu účastní.

Autor:
  • Nejčtenější

Spotem s Trojanem na horách operátor popudil Poláky. Nerozuměli nadsázce

21. dubna 2024  8:01

Po dvojici Vojtěch Kotek a Lukáš Pavlásek, k níž později přibyl Jakub Kohák, vsadil T-Mobile ve...

Je to už spíš foťák s mobilem a opravdu se povedl. Test Xiaomi 14 Ultra

21. dubna 2024

Prémiový smartphone Xiaomi 14 Ultra působí mezi současnou nabídkou mobilů jako unikát. Jaký jiný...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Operátoři zahušťují pokrytí Česka signálem 5G. Máte ho doma? Podívejte se

20. dubna 2024

Premium V červenci to budou již čtyři roky, co byla v Česku spuštěna první komerční 5G síť. Zatímco v...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Čínský smartphonový standard dorazil do Česka. Není co vytknout, ani cenu

17. dubna 2024  7:02

Motorola představila hned tři modely z top řady Edge. První se začne prodávat model Edge 50 Pro,...

Toto mohl být nevídaný smartphone. Myšlenku však nakonec poslali k vodě

25. dubna 2024

S takovým smartphonem bychom už nikdy nemuseli řešit, že se zpomaluje, nemá dostatek paměti či je...

Samsung má povedenou stylovku. Zkusí to s ní na trhu, kde se mu nedaří

24. dubna 2024

Samsung po velmi dlouhé době oprášil modelovou řadu Galaxy C a představil stylový smartphone se...

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Možná s nenápadnou výbavou, ale je to poctivě postavená stylovka

22. dubna 2024

Oppo se v kontextu dalších čínských výrobců prezentuje jako prémiová značka. Rozhodně se nesnaží o...

Akční letáky
Akční letáky

Prohlédněte si akční letáky všech obchodů hezky na jednom místě!

Manželé Babišovi se rozcházejí, přejí si zachovat rodinnou harmonii

Podnikatel, předseda ANO a bývalý premiér Andrej Babiš (69) s manželkou Monikou (49) v pátek oznámili, že se...

Bývalý fitness trenér Kavalír zrušil asistovanou sebevraždu, manželka je těhotná

Bývalý fitness trenér Jan Kavalír (33) trpí osmým rokem amyotrofickou laterální sklerózou. 19. dubna tohoto roku měl ve...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Největší mýty o zubní hygieně, kvůli kterým si můžete zničit chrup

Možná si myslíte, že se v péči o zuby orientujete dost dobře, přesto v této oblasti stále ještě existuje spousta...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...