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 17:22 | Nová verze

    Raspberry Pi Connect, tj. oficiální služba Raspberry Pi pro vzdálený přístup k jednodeskovým počítačům Raspberry Pi z webového prohlížeče, byla vydána v nové verzi 2.5. Nejedná se už o beta verzi.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | Komunita

    Google zveřejnil seznam 1272 projektů (vývojářů) od 185 organizací přijatých do letošního, již jednadvacátého, Google Summer of Code. Plánovaným vylepšením v grafických a multimediálních aplikacích se věnuje článek na Libre Arts.

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

    Byla vydána (𝕏) dubnová aktualizace aneb nová verze 1.100 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.100 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    včera 18:00 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.5.

    Ladislav Hagara | Komentářů: 0
    včera 01:22 | Nová verze Ladislav Hagara | Komentářů: 0
    včera 00:55 | Zajímavý projekt

    PyXL je koncept procesora, ktorý dokáže priamo spúštat Python kód bez nutnosti prekladu ci Micropythonu. Podľa testov autora je pri 100 MHz približne 30x rýchlejší pri riadeni GPIO nez Micropython na Pyboard taktovanej na 168 MHz.

    vlk | Komentářů: 0
    7.5. 19:44 | Nová verze

    Grafana (Wikipedie), tj. open source nástroj pro vizualizaci různých metrik a s ní související dotazování, upozorňování a lepší porozumění, byla vydána ve verzi 12.0. Přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    7.5. 17:33 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-05-06. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Pravděpodobně se jedná o poslední verzi postavenou na Debianu 12 Bookworm. Následující verze by již měla být postavena na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    7.5. 05:33 | Komunita

    Richard Stallman dnes v Liberci přednáší o svobodném softwaru a svobodě v digitální společnosti. Od 16:30 v aule budovy G na Technické univerzitě v Liberci. V anglickém jazyce s automaticky generovanými českými titulky. Vstup je zdarma i pro širokou veřejnost.

    Ladislav Hagara | Komentářů: 17
    7.5. 03:55 | Komunita

    sudo-rs, tj. sudo a su přepsáné do programovacího jazyka Rust, nahradí v Ubuntu 25.10 klasické sudo. V plánu je také přechod od klasických coreutils k uutils coreutils napsaných v Rustu.

    Ladislav Hagara | Komentářů: 0
    Jaký filesystém primárně používáte?
     (57%)
     (1%)
     (8%)
     (22%)
     (4%)
     (2%)
     (2%)
     (1%)
     (1%)
     (3%)
    Celkem 566 hlasů
     Komentářů: 26, poslední včera 09:58
    Rozcestník

    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: 200×
    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: 33 | 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: 33 | 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: 33 | 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: 33 | 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: 33 | 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 | Freiburg im Breisgau
    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.