Makefile-test 0.3 (nagy projekthez)

A korábban kialakított makefile-omat tovább irogattam, a teszt kód mind Mac OS X alatt (shared library: dylib), mind Linux alatt (itt meg .so végű) a várt módon működik. Sőt, 64-bites kód esetén a -fPIC-et is megkapja mind a gcc, mind a g++.

A gcc-nél valamiért az a szokás, hogy alamafa.c esetén a függőségeket tartalmazó fájl almafa.d, de ez nem igazán tökéletes megoldás, ugyanis normál "ls" kimenetében is benne lesz - feleslegesen. Legalábbis engem zavar. Ezért a Linux kernelhez hasonló megoldást választottam, mely szerint egy ponttal kezdődik a név, ami rejtettnek számít. Bár nem pontosan az ott látható .cmd fájlok ezek. Tehát a példakód esetén egy fájlnév ilyen:
apps/elso/.elso.d

Egyébként ezt kipróbáltam kb. 20-30 fájlból álló projektnél is (a nagyprogramom nagyságrendben ekkora volt évekkel ezelőtt, ronda Makefile-t tartalmazott, és végre ki tudtam pucolni :) )

"make" parancs kimenete Linuxon:


  CXX   apps/elso/elso.cc
  CXX   lib/common/common.cc
  AR    lib/common/common.a
  LD    apps/elso/elso
  CXX   apps/masodik/masodik.cc
  CXX   lib/dynamic/common_dyn.cc
 SHARED lib/dynamic/common_dyn.so
  LD    apps/masodik/masodik

Ugyanez Mac-en:


  CXX   apps/elso/elso.cc
  CXX   lib/common/common.cc
  AR    lib/common/common.a
  LD    apps/elso/elso
  CXX   apps/masodik/masodik.cc
  CXX   lib/dynamic/common_dyn.cc
 SHARED lib/dynamic/common_dyn.dylib
  LD    apps/masodik/masodik

Letöltés: http://panther.inf.elte.hu/linux/programming/makefile-test/makefile-tes…