abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 02:20 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, upozorňuje na svém blogu, že nový Inkscape 0.92 rozbíjí dokumenty vytvořené v předchozích verzích Inkscape. Problém by měl být vyřešen v Inkscape 0.92.2 [reddit].

Ladislav Hagara | Komentářů: 0
dnes 02:02 | Komunita

Øyvind Kolås, hlavní vývojář grafických knihoven GEGL a babl, které využívá grafický program GIMP, žádá o podporu na Patreonu. Díky ní bude moci pracovat na vývoji na plný úvazek. Milník 1000 $, který by stačil na holé přežití, se již téměř podařilo vybrat, dalším cílem je dosažení 2500 $, které mu umožní běžně fungovat ve společnosti.

xkomczax | Komentářů: 0
včera 23:54 | Pozvánky

DevConf.cz 2017, již devátý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě, proběhne od pátku 27. ledna do neděle 29. ledna v prostorách Fakulty informačních technologií Vysokého učení technického v Brně. Na programu je celá řada zajímavých přednášek a workshopů. Letos je povinná registrace.

Ladislav Hagara | Komentářů: 0
včera 22:11 | Nová verze

Byla vydána verze 1.0.0 emulátoru terminálu Terminology postaveného nad EFL (Enlightenment Foundation Libraries). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
20.1. 17:00 | Nová verze

Byl vydán Docker 1.13. Přehled novinek na YouTube a v poznámkách k vydání na GitHubu. Docker umožňuje běh aplikací v softwarových kontejnerech (Wikipedia).

Ladislav Hagara | Komentářů: 3
20.1. 15:51 | Komunita

Mozilla.cz informuje, že nástroje pro webové vývojáře se možná oddělí od Firefoxu a stanou doplňkem. Nástroje pro webové vývojáře prošly velkým přepisem a tým, který se stará o jejich vývoj, by uvítal možnost jejich častějších aktualizacích nezávisle na vydávání nových verzí Firefoxu.

Ladislav Hagara | Komentářů: 7
20.1. 07:00 | Humor

Čtenářům AbcLinuxu vše nejlepší k dnešnímu Dni zvýšení povědomí o tučňácích (Penguin Awareness Day).

Ladislav Hagara | Komentářů: 0
20.1. 06:00 | Komunita

Bylo spuštěno hlasování o přednáškách a workshopech pro letošní InstallFest, jenž proběhne o víkendu 4. a 5. března v Praze. Současně byla oznámena změna místa. InstallFest se letos vrací zpět na Karlovo náměstí do budovy E.

Ladislav Hagara | Komentářů: 0
20.1. 02:48 | Komunita

Greg Kroah-Hartman potvrdil, že Linux 4.9 je jádrem s prodlouženou upstream podporou (LTS, Long Term Support). Podpora je plánována do ledna 2019. Aktuální jádra s prodlouženou podporou jsou tedy 3.2, 3.4, 3.10, 3.12, 3.16, 3.18, 4.1, 4.4 a 4.9.

Ladislav Hagara | Komentářů: 0
20.1. 00:11 | Zajímavý článek

Výrobce síťových prvků, společnost Netgear, spustila nový program, který slibuje vývojářům, expertům, ale i běžným uživatelům vyplacení finanční odměny za nalezení bezpečnostních chyby v jejich produktech. Za nalezení zranitelnosti v hardware, API nebo mobilní aplikaci nabízí odměnu od 150 do 15 tisíc dolarů (dle závažnosti).

Michal Makovec | Komentářů: 0
Jak se stavíte k trendu ztenčování přenosných zařízení (smartphony, notebooky)?
 (10%)
 (2%)
 (74%)
 (3%)
 (11%)
Celkem 352 hlasů
 Komentářů: 25, poslední včera 13:34
    Rozcestník
    Reklama

    Dotaz: makefile - Jak předat na příkazovou řádku název proměnné?

    4.12.2006 16:50 Styryx | skóre: 3
    makefile - Jak předat na příkazovou řádku název proměnné?
    Přečteno: 164×
    Věděl by někdo z přítomných Linuxových programátorů, jak předám programu z makefile název proměnné?

    Např. pokud bych měl
    PROMENNA = HODNOTA_PROMENNE
    
    neco:
        echo Promenna $$(PROMENNA) ma hodnotu $(PROMENNA)
    aby mi vypsal
    Promenna $(PROMENNA) ma hodnotu HODNOTA_PROMENNE
    Ovšem takto mi to funguje pouze na Windows, nikoliv na Linuxu. Na linuxu se, jak se zdá, pokouší z mě neznámého důvodu zavolat příkazy (?) uvedené mezi $() - tj. make zřejmě předá správně
    Promenna $(PROMENNA) ma hodnotu HODNOTA_PROMENNE
    ovšem "kdosi" se patrně $(PROMENNA) pokouší ještě dereferencovat a výsledek make je:
    /bin/sh: PROMENNA: command not found
    Promenna  ma hodnotu HODNOTA_PROMENNE
    tj. chybový výpis a hlavně tam pak chybi $(PROMENNA). Ovšem pokud tam mám jenom $$ samotné, bez (PROMENNA), vypise to $ správně jak bych očekával.

    Co s tím? Potřebuji $(PROMENNA) předat dál a nikoliv spouštět jakýsi program...

    Odpovědi

    pdp7 avatar 4.12.2006 16:55 pdp7 | skóre: 32 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    A proc davas do zavorek?
    pdp7 avatar 4.12.2006 16:57 pdp7 | skóre: 32 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    PROMENA=hodnota

    echo $PROMENA
    4.12.2006 17:04 Styryx | skóre: 3
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    To byl zjednodušenej přiklad, konkrétně to potřebuju pro vytvoření dependencies příkazem
    somesrc.d: somesrc.cpp
        gcc -MM -MP -MF$@ -MT$$(DIR)/$*.$$(OBJ_SFX) $<
    aby soubor somesrc.d obsahoval
    $(DIR)/somesrc.$(OBJ_SFX): somesrc.cpp ...
    tj. aby proměnné v .dep souboru nebyly dereferencované (kvůli různým nastavením pro různé systémy).

    Jenže takto to nefunguje, vypíše mi to
    /bin/sh: DIR: command not found
    /bin/sh: OBJ_SFX: command not found
    a ve výsledném .d souboru je bohužel jenom
    /somesrc.: somesrc.cpp ...
    (tj. bez proměnných).
    pdp7 avatar 4.12.2006 17:09 pdp7 | skóre: 32 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    Jo tak. Misto tech kulatych zavorek tam dej slozeny.
    pdp7 avatar 4.12.2006 17:12 pdp7 | skóre: 32 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    Jinak o skriptovani vim skoro prd, takze sory jestli ti radim blbe. :-D
    4.12.2006 17:22 Styryx | skóre: 3
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    To taky nefachčí. Když tam dam složený nebo bez závorek, tak to sice nevypíše chybu, ale taky se to nahradí "prázdnem".

    Chjo, se mi to nechce dělat přes sed ale zřejmě to jinak nepude.
    pdp7 avatar 4.12.2006 18:01 pdp7 | skóre: 32 | blog: Mravenec_v_LCD_monitoru | Zákupy u České lípy
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    Promin vubec me neposlouchej! Nerid se mnou!! Plodim desny kraviny.
    5.12.2006 09:59 Styryx | skóre: 3
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    To je ok :-) dík alespoň za snahu.
    4.12.2006 19:45 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    No make $$ premeni na $, takze jeste byste to mel escapnout pro shell (slash, uvozovky). Mozna takhle
    somesrc.d: somesrc.cpp
        gcc -MM -MP -MF$@ -MT\$$(DIR)/$*.\$$(OBJ_SFX) $<
    
    5.12.2006 10:07 Styryx | skóre: 3
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    Jo, díky, navedl jste mě na správnou cestu. Baskslash ani uvozovky nefungujou, ale s apostrofy to jde
    gcc -MM -MP -MF$@ '-MT$$(DIR)/$*.\$$(OBJ_SFX)' $<
    našel jsem před chvílí nakonec někde na stránkách o /bin/sh že když je to v apostrofech tak se proměnný nevyhodnocujou :-).
    5.12.2006 10:58 podlesh | skóre: 38 | Praha
    Rozbalit Rozbalit vše Re: makefile - Jak předat na příkazovou řádku název proměnné?
    Pro úplnost bych doplnil základní vysvětlení příčiny problému: došlo k pomíchání resolvování proměnných make a shellu. Obě syntaxe jsou velmi podobné (začínají dolarem), ale ne stejné: zatímco v makefile se používají kulaté závorky, v shellu složené. Kulaté závorky v shellu spustí program, je to ekvivalentní použití zpětných apostrofů (backtick).

    Například tyto dva zápisy jsou (funkčně) ekvivalentní:
    echo `basename $PWD`
    echo $(basename $PWD)
    
    V původním makefile bylo správně zabráněno resolvování proměnné make (zdvojením dolaru), ale už nebylo zabráněno zpracování této konstrukce v shellu. Na windows to samozřejmě fungovalo, protože cmd.exe nic takového nemá.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.