====== Kompilacne skripty pre kompilaciu s projlibs.in ======
===== Kompilacia projektu =====
na kompilaciu sa pouziva script **compile**
parametre scriptu :
- **priecinok** priecinok projektu ( povinny ) **tento parameter je vzdy prvy pri ostatnych nezalezi na poradi**
- **platforma** **vzdy jeden** z prepinacov [ -emtest_xscale -emtest_xscale_26 -i386 -waysion_cortexa8 -rg_cortexa9 -all ] ( povinny )
- **sablona** **jeden** z prepinacov [ -app -lib ] ( povinny )
- **volitelne parametre** [ -max-cpu ] - pouzije sa maximalny pocet jadier na kompilaciu
- **volitelne parametre** [ -L ] - stahuju sa len kniznice nekompiluje sa a nevytvara sa balik
- **volitelne parametre** [ -test ] - Vytvara sa testovaci balik neukladaju sa zdrojaky ani sa neinkrementuje cislo buildu
- **volitelne parametre** [ -scp ] - Na stahovanie kniznic sa pouziva command scp namiesto nfs ( optimalizaia stahovania pre vpn )
priklad:
compile TicketIssueLogic/ -all -L
compile TicketIssueLogic/ -i386 -lib
compile OnboardComputer/ -emtest_xscale_26 -app -max-cpu
compile Slave/ -all -app -max-cpu
**Pre spravne fungovanie kompilacie musi byt upraveny .pro subor podla novych scopov !!! **
scopy : **i386, waysion_cortexa8, emtest_xscale, emtest_xscale_26**
i386 {
LIBS += -L./../../lib/i386 \
-Wl,--no-as-needed \
-lusb-1.0 \
-lExoApi \
-lExoTb
QMAKE_CXXFLAGS += -Wall -Werror
}
# stare emtest citacky so systemom 2.4 nepodporuju nastavenie 'no-as-needed'
!emtest_xscale {
LIBS += \
-Wl,--no-as-needed
}
emtest_xscale_26 {
LIBS += \
-L./../../lib/emtest_xscale_26
}
waysion_cortexa8 {
LIBS += \
-L./../../lib/waysion_cortexa8
}
emtest_xscale {
LIBS += -L./../../lib/emtest_xscale \
-liw \
-lmad
}
rg_cortexa9 {
LIBS += \
-L./../../lib/rg_cortexa9
}
transdata_cortexa9 {
LIBS += \
-L./../../lib/transdata_cortexa9
}
===== Define-y podporovanych platforiem =====
EMTEST_XSCALE - stare emtest citacky so systemom 2.4
EMTEST_XSCALE_26 - mijola so systemom 2.6 a vyssie
WAYSION_CORTEXA8 - zariadenie od firmy waysion, typ X7
RG_CORTEXA9 - zariadenie od firmy R&G
TRANSDATA_CORTEXA9 - nami vyvinuty priemysleny tablet, ktory nikto nechce. Kodove oznacenie 'lacov prasivy tablet'
===== *_projlibs subory =====
System kompilacnych skriptov podporuje definiciu roznych kniznic pre urcite platformu. V pripade, ze je potrebne zo servra phoenix stiahnut pre danu platformu nejaku specificku kniznicu, je potrebne postupovat nasledovne:
* Definovat subor pre stiahnutie kniznic nasledovne 'nazov platformy'_projlibs
* Vlozit do vzniknuteho suboru pozadovanu kniznicu v tvare lib'nazov kniznice'.so.'major verzia'.'minor verzia'.'maintenance verzia'
* ak nie je pre danu platformu definovany subor [platforma]_projlibs defaultne sa berie subor all_projlibs.
* script uz nepodporuje projlibs tvaru projlibs.in.2.4 projlibs.in.2.6
===== Rozsirujuce sablony pre vytvorenie instalacneho balika aplikacie =====
Kompilacny system umoznuje vytvorenie instalacneho balika aplikacie s moznostou rozsirenia o doplnkove moduly.
Umiestnenie templatova na Phoenixe /usr/local/emtest/platforms/templates
Momentalne pouzivane moduly aplikacie:
* Platnobny terminal
* Dispcerske konfiguracne subory
* Servis tlaciarne
* Aplikacne utilitky + konfiguracne subory
Kompilacii je mozne nastavit platformu a preto je potrebne specifikovat platformu aje pre rozsirujuce sablony aplikacie nasledovne:
{{howto:definicia_platformy_v_sablonach.png|}}
Na obrazku je mozne vidiet, ze momentalne su vsetky specificke platformy jednotne a je spraveny symbolicky odkaz na all.
Sablona moze byt specificka pre kazdu platformu. Ciel je udrzat sablony platforiem jednotne a preto prosim o zvazenie, ci sa uprava neda spravit univerzalne pre vsetky platformy.
===== Popis kompilacnych scriptov =====
kompilacne scripty sa nachadzaju v priecinku **/usr/local/emtest/bin/compile_new/**
* ** compile ** hlavny kompilacny scrip parsuje parametre a maze **vzdy** stary priecinok l_(meno projektu)
* ** [platform]/compile ** kolpilacny script pre specificku platformu
* ** pre_compile_actions ** vytvaranie noveho priecinku l_(meno projektu) kopirovanie zdojovych kodov a export cisla buildu
* ** prepare_projlibs ** spracuva (makra a includy) v subore projlibs.in, vystup ulozi do suboru projlibs.in.out
* ** update_directory ** kopiruje priecinky s pridanymi pravidlami na subory
* ** update_libs ** vyberie spravy projlibs.in podla platformy a refresne libky pre projekt
* ** copy_libs ** stiahne libky pre vybranu architekturu do adresara (projekt)/lib
* ** post_compile_actions ** spustanie akcci po uspesnej kompilacii backup a vytvaranie balika
* ** log_build ** script vytvara popisny subor build.txt a zalohuje zdojove kody na Phoenix (/usr/local/emtest/ver/src)
* ** create_package ** na zalkade zvolenej sablony vytvara balik