eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingmake vs. gmake
Ilość wypowiedzi w tym wątku: 6

  • 1. Data: 2011-04-10 20:37:04
    Temat: make vs. gmake
    Od: Maciej Sobczak <s...@g...com>

    Piszę sobie Makefile i mam taki kaprys, żeby mi działał zarówno z make
    jak i z gmake.
    Całkiem sporo da się zrobić przenośnie, ale dotarłem do ściany z
    konstrukcjami warunkowymi.

    Otóż w gmake mogę uzależnić jakąś część od docelowej platformy, np.:

    UNAME = $(shell uname)
    ifeq ($(UNAME),Linux)
    SOME_FLAGS = siabadaba
    else
    SOME_FLAGS = siubaduba
    endif

    Standardowy make (konkretnie chodzi o ten z FreeBSD) ma jakąś podobną
    formę z .if/.else/.endif, ale nie mogę znaleźć konstrukcji, która by
    była poprawna zarówno z make jak i z gmake. Jak bym tego nie wyginał,
    dostaję błędy składniowe albo w jednym albo w drugim.

    Czy ktoś z grupowiczów może już ten problem rozwiązał?

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 2. Data: 2011-04-10 21:24:13
    Temat: Re: make vs. gmake
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-04-10, Maciej Sobczak <s...@g...com> wrote:
    > Piszę sobie Makefile i mam taki kaprys, żeby mi działał zarówno z make
    > jak i z gmake.
    > Całkiem sporo da się zrobić przenośnie, ale dotarłem do ściany z
    > konstrukcjami warunkowymi.

    Niestety może się nie udać. O instrukcjach warunkowych nie ma ani słówka
    w specyfikacji SUS:
    http://pubs.opengroup.org/onlinepubs/009695399/utili
    ties/make.html

    Odbiłem się od tego samego gdy pracowałem krótką chwilę pod FreeBSD.

    Mógłbyś próbować wychodzić do shella ($(shell ...)), ale raczej nie o to
    ci chodzi.

    > Standardowy make (konkretnie chodzi o ten z FreeBSD) ma jakąś podobną
    > formę z .if/.else/.endif, ale nie mogę znaleźć konstrukcji, która by
    > była poprawna zarówno z make jak i z gmake. Jak bym tego nie wyginał,
    > dostaję błędy składniowe albo w jednym albo w drugim.

    Moim zdaniem stick to the GNU make. Pod FreeBSD o niego łatwo, pod
    Linuksem jest domyślny.

    --
    Secunia non olet.
    Stanislaw Klekot


  • 3. Data: 2011-04-11 06:55:23
    Temat: Re: make vs. gmake
    Od: Maciej Sobczak <s...@g...com>

    On 10 Kwi, 23:24, "Stachu 'Dozzie' K."
    <d...@g...eat.some.screws.spammer.invalid> wrote:

    > Niestety może się nie udać. O instrukcjach warunkowych nie ma ani słówka
    > w specyfikacji SUS:http://pubs.opengroup.org/onlinepubs/009695399/u
    tilities/make.html

    Tego się obawiałem.

    > Moim zdaniem stick to the GNU make. Pod FreeBSD o niego łatwo, pod
    > Linuksem jest domyślny.

    Żeby było śmieszniej, ta konstrukcja warunkowa wcale nie jest mi
    potrzebna do odróżniania Linuksa od FreeBSD, bo akurat dane opcje są
    dla tych systemów takie same.
    Konstrukcja jest potrzebna, żeby wyróżnić Darwina, któremu ogólnie
    bliżej do FreeBSD, ale z jakiegoś powodu używa gmake (jak Linux) a
    opcjami niczego nie przypomina...
    I weź tu pisz wiersze.

    W każdym razie dziękuję za radę, trzeba będzie pozostać przy gmake.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 4. Data: 2011-04-11 13:12:56
    Temat: Re: make vs. gmake
    Od: Jędrzej Dudkiewicz <j...@n...com>

    On 04/11/2011 08:55 AM, Maciej Sobczak wrote:
    > Żeby było śmieszniej, ta konstrukcja warunkowa wcale nie jest mi
    > potrzebna do odróżniania Linuksa od FreeBSD, bo akurat dane opcje są
    > dla tych systemów takie same.
    > Konstrukcja jest potrzebna, żeby wyróżnić Darwina, któremu ogólnie
    > bliżej do FreeBSD

    No nie wiem, wg mnie on szybko zamienia się w Linuksa - co jest zresztą
    logiczne, bo helpów, tutoriali i skryptów pod Linuksa jest co niemiara,
    a pod BSD mniej.

    JD


  • 5. Data: 2011-04-12 16:08:33
    Temat: Re: make vs. gmake
    Od: Waldek Hebisch <h...@m...uni.wroc.pl>

    Maciej Sobczak <s...@g...com> wrote:
    > Pisze sobie Makefile i mam taki kaprys, zeby mi dzialal zarowno z make
    > jak i z gmake.
    > Calkiem sporo da sie zrobic przenosnie, ale dotarlem do sciany z
    > konstrukcjami warunkowymi.
    >
    > Standardowy make (konkretnie chodzi o ten z FreeBSD)

    make z FreeBSD jest _bardzo_ mocno rozszerzony w stosunku do standardu.

    O ile mi wiadomo w standartowym make nie ma konstrucji warunkowych,
    ale mozna osiagnac rownowazny efekt np:

    FLAGS_linux=aaaa
    FLAGS_bsd=bbbb
    FLAGS=$(FLAGS_$(OS))

    zakladajac ze zmienna OS to albo linux albo bsd usyskujesz efekt
    podstawienia warunkowego. Jesli OS bedzie mial inna wartosc to
    zmienna FLAGS_xxx nie bedzie istniala i make da pusty string.
    Jak dasz wiecej warstw tego typu to da sie zapisac calkiem
    skomplikowana logike warunkowa. To dzialajaca technika i moze
    sie przydac jesli musisz miec przenosny Makefile. Jesli
    przenosnosc to tylko kaprys to odradzam uzycie...

    --
    Waldek Hebisch
    h...@m...uni.wroc.pl


  • 6. Data: 2011-04-16 14:59:00
    Temat: Re: make vs. gmake
    Od: "Matt P. Dz." <n...@i...local>

    On 4/10/2011 10:37 PM, Maciej Sobczak wrote:
    > Piszę sobie Makefile i mam taki kaprys, żeby mi działał zarówno z make
    > jak i z gmake.
    > Całkiem sporo da się zrobić przenośnie, ale dotarłem do ściany z
    > konstrukcjami warunkowymi.

    Jesli chodzi o przenosnosc, to, cytujac z "Paul's Rules of Makefiles" (
    http://make.paulandlesley.org/rules.html ):

    "Use GNU make.
    Don't hassle with writing portable makefiles, use a portable make instead!"

    :-)

    Pozdrawiam,

    Matt

strony : [ 1 ]


Szukaj w grupach

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: