Makefiles?

odenter

Well-Known Member
Gibt es irgendwo ein Beispiel-Makefile?
Ich habe zwei *.c Dateien die beide übersetzt werden sollen und am Ende eine Datei mit Namen xyz herauskommen soll.

Wo bekomme ich so ein Beispiel-Makefile, eine Suche bei Goolge hat direkt nichts brauchbares geliefert, ich bin gleich immer erschlagen worden mit Möglichkeiten.

Danke schonmal im Voraus.
 
Die Beispiele beziehen sich ja auf *.c Dateien, also C-Code.
Wenn ich das ganze mit cpp, unter Unixen glalube ich *.cc, machen will, dann tausche ich einfach nur *.c gegen *.cc bzw. *.cpp aus und nehme statt gcc g++ oder?
 
Morgen

Die Beispiele beziehen sich ja auf *.c Dateien, also C-Code.
Wenn ich das ganze mit cpp, unter Unixen glalube ich *.cc, machen will, dann tausche ich einfach nur *.c gegen *.cc bzw. *.cpp aus und nehme statt gcc g++ oder?

Joar, g++ ist der C++ compiler der GNU Compiler Collection (GCC) und bei der Datei Extension ist *.cpp was ausgesprochen "c plus plus" heisst, am meisten verbreitet.

Hier noch drei Makefile Tutorials in Deutsch:

http://www.ijon.de/comp/tutorials/makefile.html
http://gd.tuwien.ac.at/opsys/linux/tut/LinuxFibel/make.htm
http://www.zid.uni-linz.ac.at/dokus/kursunterlagen/programmieren/makefiles/index.html

Gruss
bsdagent
 
Du findest unter FreeBSD auch ein Tutorial über pmake. Das ist die unter FreeBSD verwendete Variante von make.

/usr/share/doc/en/books/pmake/index.html
 
pmake kommt v.a. mit *verdammt* nuetzlichen default rules, folgendes Makefile taugt als Basis fuer C++ Quellen

Code:
PROG=   doener
SRCS=   foo.cc bar.cc

LDADD=  -lm

NO_MAN=yes

.include <bsd.prog.mk>

Code:
% make -n obj; make -n; make -n clean;
if ! test -d /usr/obj/tmp/; then  mkdir -p /usr/obj/tmp;  if ! test -d /usr/obj/tmp/; then  echo "Unable to create /usr/obj/tmp.";  exit 1;  fi;  echo "/usr/obj/tmp created for /tmp";  fi
c++ -O2 -fno-strict-aliasing -pipe -march=pentium-m -c /tmp/foo.cc
c++ -O2 -fno-strict-aliasing -pipe -march=pentium-m -c /tmp/bar.cc
cc -O2 -fno-strict-aliasing -pipe -march=pentium-m   -o doener foo.o bar.o -lm
rm -f doener foo.o bar.o

Die CFLAGS kommen von standard FreeBSD, march kommt von CPUTYPE in /etc/make.conf. Und fuer das OBJDIR siehe make(1).

Ist natuerlich fuer Linux-Systeme nicht so portabel, aber es gibt viele Distributionen die ein pmake Paket haben.
 
Zurück
Oben