====== 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