> Igen, a nyújtott kisujj és a kar esete, gondolom, ezek vezettek mindenféle build-framework fejlesztésekhez.
Pontosan.
> Viszont ahogy írod is, egy kis if meg for-támogatás (na, meg egy kis sztring-manipuláció) a Makefile-ba talán nem annyira "bloat".
Egyáltalán nem bloat, én nem is ezt írtam. A különféle Make derivánsokkal más baj van: a hordozhatóság lábonlövése.
> Miért kell szimlinkelni? Ha a GNUMakefile jól van megírva, akkor a
$(MAKE)parancsot használja a következő szintű
make-hez, azaz a
gmakeparancsra le kellene rendesen fordulnia.
Hát igen. Ha jól van megírva. Ha jól van megírva. De mi van, ha nincs? Mi van, ha csak be van írva, hogy
make, mert egy Linux-only gyökér a felelős érte és vagy nem tudja, vagy nem érdekli, hogy amit csinál, az nem hordozható?
> Viszont ha van egy olyan keret, ami ezeket támogatja, miért ne használhatnád? Mint ahogy én sem ragaszkodtam a szabványhoz, hanem kihasználtam a plusz lehetőségeket, ezáltal kisebb az én kódom, másrészt nagyobb része (a BSD-make bővített készlete) széles körben tesztelt, azaz kevesebb a hiba lehetősége.
Ez alap: ha neked jó, akkor nyugodtan használhatod. Mint mondtam, egy
makemég nem akkora agyhalál dependency; alapvetően a BSD/GNUMake sem az. Viszont akkor ez azzal jár, hogy a cuccod csak ott fog működni, ahol ez rendelkezésre áll.
> Ennyi erővel a make is bloat, mert azért nem olyan nehéz egy szkriptet összedobni, ami legenerálja a dolgokat :)
Ez már szókiforgatás. Én kerek perec leírtam, hogy a
make, de még a különféle kiterjesztett Make derivánsok sem bloatedek.
> Azaz: azt gondolom, hogy attól, hogy a POSIX-nál valami többet tud, nem feltétlen bloat.
De én nem is mondtam. Olvasd el még egyszer az odavágó kettes bekezdést, mert asszem nem ment át: a POSIX kiterjesztése nem ekvivalens ab ovo a bloattal; csak amennyiben a kiterjesztés függőségként jelenik meg valahol, akkor onnantól kezdve lőttek a hordozhatóságnak. Leegyszerűsítem: Ha egy adott projekt a "natúr" POSIX
makeparanccsal mondjuk öt percig fordul, a
bmakeparanccsal meg háromig, akkor itt a POSIX kiterjesztések kezelése jól van megvalósítva, mert működik a normál felállás mellett is, csak kihasználja az opcionális pluszokat. Viszont, ha a
makeparanccsal egyáltalán nem fordul, akkor ez nem kihasználja az opcionális pluszokat, hanem nem tud nélkülük élni. És ez a nem mindegy.
> Valóban nem. Viszont úgy gondolom, hogy a
makearra lett kitalálva, hogy néhány fájlból meghatározott szabályok szerint új fájlt generáljon, amennyiben a kiindulási fájlok közül legalább egy újabb, mint a cél - azaz nem feltétlen csak C/C++ projektekre lehet használni.
Nem hát, de én - megint csak - nem ezt mondtam. Én pontosan arról beszéltem, hogy ez a felállás nagyon faszán működhet egy makróalapú website-nál, de nem biztos, hogy egy hiperkomplex forráshalmaz buildelésére is jó lesz. Neked jó, mert erre a célra jó volt, de mindenre nem jó és nem is lesz. Nincs, ami mindenre jó. Csak megpróbálnak csinálni, de ez szükségszerűen mindig szar lesz. Neked most elég volt, valaki másnak már nem lesz és akkor
GOTO 10. (Aztán meg
GOTO 666, amikor jön a dependency-hell.)