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í
×
    včera 18:11 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.14.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 16:33 | IT novinky

    Bylo oznámeno, že Qualcomm kupuje Arduino. Současně byla představena nová deska Arduino UNO Q se dvěma čipy: MPU Qualcomm Dragonwing QRB2210, na kterém může běžet Linux, a MCU STM32U585 a vývojové prostředí Arduino App Lab.

    Ladislav Hagara | Komentářů: 1
    včera 15:55 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.14.0. Podrobný přehled novinek v changelogu. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

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

    Byla vydána nová stabilní verze 6.10 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    6.10. 23:55 | Komunita

    Ubuntu 26.04 LTS bude (𝕏) Resolute Raccoon (rezolutní mýval).

    Ladislav Hagara | Komentářů: 3
    6.10. 21:00 | Nová verze

    Netwide Assembler (NASM) byl vydán v nové major verzi 3.00. Přehled novinek v poznámkách k vydání v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 0
    6.10. 20:11 | Komunita

    Linuxová distribuce Frugalware (Wikipedie) ke konci roku 2025 oficiálně končí.

    Ladislav Hagara | Komentářů: 0
    6.10. 17:22 | Nová verze

    Byla vydána nová verze 3.0.6 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP bude brzy k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    6.10. 16:11 | IT novinky

    Americký výrobce čipů AMD uzavřel s americkou společností OpenAI smlouvu na několikaleté dodávky vyspělých mikročipů pro umělou inteligenci (AI). Součástí dohody je i předkupní právo OpenAI na přibližně desetiprocentní podíl v AMD.

    Ladislav Hagara | Komentářů: 1
    6.10. 12:22 | Nová verze Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (39%)
     (46%)
     (15%)
     (17%)
     (21%)
     (15%)
     (18%)
     (16%)
     (16%)
    Celkem 191 hlasů
     Komentářů: 12, poslední 4.10. 20:35
    Rozcestník

    Dotaz: Vnořené Makefiles

    29.4.2009 21:36 Cunha
    Vnořené Makefiles
    Přečteno: 326×

    Zdravím,

    mám následující strukturu adresářů:

    a/

    a/amd/

    a/distrib/

     

    V a/ mám Makefile:

    vpath %.c ..
    vpath %.h ..
    vpath %.y ..
    ...
    CFLAGS=-g -O0 -Wall -Werror -fPIC -DPIC -DNET_NO_IO -DNET_NO_LOG -fno-stack-protector
    LDFLAGS=-lpthread

    ...


    LIBSA +=./distrib/libdist.a
    ...

    all: distr ...

    ...
    distr:
         make -C distrib all   
    ...

    z ktereho includuju (pravidlo distr) Makefile z a/distrib:

    MKDIR=mkdir
    CP=cp
    CCADMIN=CCadmin
    RANLIB=ranlib
    OBJ=net.o msg.o
    HEAD=main.h

    NAME = project
    CFLAGS=-g -O0 -Wall -Wall -fPIC -fno-stack-protector
    LDFLAGS=-lpthread
    OPT=-Wall -pedantic -pthread
    CC=gcc

    # build
    build: $(NAME)

    $(NAME): ${OBJ}
        ar cru libdist.a net.o msg.o
        ranlib libdist.a

    ${OBJ}:${HEAD}

    %.o : %.c
        gcc $(CFLAGS) -c $<

    # clean
    clean:
        rm -rf *.o libdist.a

    # all
    all: project

    Pokud zadám 'make' v a/, pak se mi to zkompiluje v pořádku. Ale v adresáři a/amd/ je Makefile:

    include ../Makefile

    Pokud zadám make v tomto podadresáři, vypíše mi to:

    make -C distrib all   
    make: *** distrib: No such file or directory.  Stop.
    make: *** [distr] Error 2

    Vím, že by to mělo být něco s VPATH, ale nevím jak na to. Zkoušel jsem něco vygooglit, ale nezabralo nic. Díky

    Odpovědi

    30.4.2009 02:50 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Vnořené Makefiles
    Příkaz make -C distrib all se bude chovat podobně jako cd distrib; make all; cd -, a pokud v adresáři amd není podadresář distrib, tak to nefunguje. Podle manuálu totiž parametr -C adresář říká, že před tím, než se načtou jakékoli soubory, přejde make do zadaného adresáře.
    30.4.2009 09:01 cunha
    Rozbalit Rozbalit vše Re: Vnořené Makefiles

    No, to tusim. Ale jak cestu k adresari pridat?

    Diky

    30.4.2009 10:30 #Tom | skóre: 32 | blog: Inspirace, aneb co jsem kde vyhrabal
    Rozbalit Rozbalit vše Re: Vnořené Makefiles
    Připadá mi to spíš jako chyba v návrhu struktury těch skriptů. Pokud v adresáři a/amd funguje make -f ../distrib/Makefile all, půjde to udělat třeba tak, že se v a/Makefile zavede nová proměnná BASE_PATH:
    ifndef BASE_PATH
    BASE_PATH = .
    endif
    
    Potom je třeba změnit pravidlo distr:
    distr:
         make -f $(BASE_PATH)/distrib/Makefile all 
    
    V a/amd/Makefile se potom na začátek přidá nahoru definice:
    BASE_PATH = ..
    
    30.4.2009 11:02 cunha
    Rozbalit Rozbalit vše Re: Vnořené Makefiles

    Díky

    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.