Makefile für Anfänger (viele Dateien compilieren/linken)?

Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

From: Mark Seuffert (office_at_pirate.de)
Date: 07. Nov 2001


Hallo,
nachdem ich jetzt das erste mal mit aufwendigeren Makefile selbst kämpfen muss
(gestern nacht lange bei Google und man page geschmökert), wollte ich Euch mal
nach Tips fragen.

Ich hab ein relativ einfaches Projekt (OpenGL Grafikengine), bisheriges
Makefile anbei - bitte nicht auslachen. :)

Es besteht nur aus einigen Source-Dateien und einem Headerfile. Zu den
Abhängigkeiten nix besonderes: Alle Source-Dateien hängen nur von dem
entsprechend includeten Header ab (also keine Abhängigkeiten untereinander).
Das Executable muss gelinkt werden falls sich eine Objectdatei geändert hat.

Muss ich jetzt:
1. Für jede Source/Objet-Datei ein target anlegen...
   ansonsten nimmt er "g++ -c" anstatt "gcc -Wall -ansi -c"?
2. Für "make all" alle Object-Dateien einzelnd aufzählen...
   oder geht das auch eleganter (Liste mit Dateien)?

--
Grüße, Moak

# Makefile for GNU/Linux version (note: Also a KDevelop project file is available)
# Moak 07.11.2001

CC = gcc -Wall -ansi

all: Lucell.o BlueSharkEngine_console.o BlueSharkEngine_core.o BlueSharkEngine_coreinterface.o \
        BlueSharkEngine_error.o BlueSharkEngine_mainloop.o BlueSharkEngine_misc.o \
        BlueSharkEngine_systeminfo.o BlueSharkEngine_timer.o BlueSharkEngine_windowmanager.o
        $(CC) -o lucell \
        Lucell.o BlueSharkEngine_console.o BlueSharkEngine_core.o BlueSharkEngine_coreinterface.o \
        BlueSharkEngine_error.o BlueSharkEngine_mainloop.o BlueSharkEngine_misc.o \
        BlueSharkEngine_systeminfo.o BlueSharkEngine_timer.o BlueSharkEngine_windowmanager.o \
        -lGL -lGLU `sdl-config --cflags --libs`

Lucell.o: Lucell.cpp
        $(CC) -c Lucell.cpp

BlueSharkEngine_console.o: BlueSharkEngine_console.cpp
        $(CC) -c BlueSharkEngine_console.cpp

BlueSharkEngine_core.o: BlueSharkEngine_core.cpp
        $(CC) -c BlueSharkEngine_core.cpp

BlueSharkEngine_coreinterface.o: BlueSharkEngine_coreinterface.cpp
        $(CC) -c BlueSharkEngine_coreinterface.cpp

BlueSharkEngine_error.o: BlueSharkEngine_error.cpp
        $(CC) -c BlueSharkEngine_error.cpp

BlueSharkEngine_mainloop.o: BlueSharkEngine_mainloop.cpp
        $(CC) -c BlueSharkEngine_mainloop.cpp

BlueSharkEngine_misc.o: BlueSharkEngine_misc.cpp
        $(CC) -c BlueSharkEngine_misc.cpp

BlueSharkEngine_systeminfo.o: BlueSharkEngine_systeminfo.cpp
        $(CC) -c BlueSharkEngine_systeminfo.cpp

BlueSharkEngine_timer.o: BlueSharkEngine_timer.cpp
        $(CC) -c BlueSharkEngine_timer.cpp

BlueSharkEngine_windowmanager.o: BlueSharkEngine_windowmanager.cpp
        $(CC) -c BlueSharkEngine_windowmanager.cpp

clean:
        @echo Cleaning up...
        @rm *.o
        @echo Done.


Datumsansicht Baumansicht Betreffansicht Attachement-Sicht

Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET