eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaMakefile › Re: Makefile
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.pi.v.chmurka.n
    et!not-for-mail
    From: q...@t...no1 (Queequeg)
    Newsgroups: pl.misc.elektronika
    Subject: Re: Makefile
    Date: Wed, 22 Aug 2018 11:05:33 +0000 (UTC)
    Organization: news.chmurka.net
    Message-ID: <2...@t...no1>
    References: <5b7ad99d$0$673$65785112@news.neostrada.pl>
    <2...@t...no1>
    NNTP-Posting-Host: pi.v.chmurka.net
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: 8bit
    Injection-Date: Wed, 22 Aug 2018 11:05:33 +0000 (UTC)
    Injection-Info: news.chmurka.net; posting-account="gof";
    posting-host="pi.v.chmurka.net:172.24.44.20"; logging-data="27709";
    mail-complaints-to="abuse-news.(at).chmurka.net"
    User-Agent: tin/2.4.2-20171224 ("Lochhead") (UNIX) (Linux/4.4.50-v7+ (armv7l))
    Cancel-Lock: sha1:Ccfq0w+x+RxGxwb40BA7JVc6NgY=
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:735512
    [ ukryj nagłówki ]

    Queequeg <q...@t...no1> wrote:

    Jeszcze wyjaśnienie, co to robi.

    > NAME = maketest

    Ustawia nazwę projektu (pliku .bin i .hex), jest używana niżej.

    > SRCS = maketest.c maketest2.c

    Lista plików źródłowych.

    > ASMS = $(SRCS:.c=.s)

    Lista plików .s stworzona z listy plików źródłowych zamieniając .c na .s.

    > OBJS = $(ASMS:.s=.o)

    Lista plików .o stworzona jak wyżej (z listy plików .s, zamieniając .s na
    .o).

    > .PHONY: all clean

    Nawet jak będzie istniał plik all i clean, to i tak wykona te targety.

    > all: $(NAME).hex

    Określa, że make all będzie miało taki sam efekt, jak make maketest.hex
    (make tworzy plik, all to target a nie plik).

    > %.s:
    > cc65 -o $@ $<

    Określa regułę dla utworzenia pliku .s. $@ to plik wyjściowy (.s), $<
    wejściowy (.c).

    > %.o:
    > ca65 -o $@ $<

    Analogicznie.

    > $(ASMS): $(SRCS)

    Tworzy zależność plików .s od plików .c.

    > $(OBJS): $(ASMS)

    Analogicznie .o od .s.

    > $(NAME).bin: $(OBJS)
    > ld64 -o $(NAME).bin $(OBJS)

    Tworzy zależność pliku .bin od plików .o i tworzy regułę utworzenia tego
    pliku z plików .o (z listy OBJS).

    > $(NAME).hex: $(NAME).bin
    > program_do_konwersji_do_hex $(NAME).hex $(NAME).bin

    Tworzy zależność pliku .hex od pliku .bin i tworzy regułę, jak wyżej. W
    testach też dodałem -o przed $(NAME).hex.

    > clean:
    > rm -f $(NAME).hex $(NAME).bin $(OBJS) $(ASMS)

    Tworzy target kasujący pliki potworzone przez makefile, żeby make clean je
    usunęło. Kasuje plik maketest.hex, maketest.bin, pliki .o i pliki .s.

    --
    https://www.youtube.com/watch?v=9lSzL1DqQn0

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: