# Makefile zum Erzeugen der Audiobibliothek aulib++
# ------------------ Der Compiler ------------------------
# Compilername:
CC = g++
# notwendige Optionen und Makros:
# -fhandle-exceptions - Ausnahmebehandlung
# -Wall - alle Warnungen anzeigen
# -DDAMN_INTEL_BYTE_ORDER - auf einem Littel-Endian-Rechner
# -g - ausfuehrbare Dateien mit Angaben fuer den Debugger
# andere Optionen und Makros:
# -O2 - Code-Optimierung
# -DAF - wenn der AFPlayer verwendet wird (nur am Lehrstuhl moeglich)
# -DTEST - Ausgabe von Zwischenergebnissen
# -DLOGFILE - Zwischenergebnisse in results.log ablegen
CFLAGS = -g -DDAMN_INTEL_BYTE_ORDER -DLOGFILE -DAF -Wall -fhandle-exceptions -DTEST
# Verzeichnisse mit Headerdateien:
# -I. - aktuelles Verzeichnis (immer dabei)
# -I/opt/audio/AF/include - notwendig nur fuer den AFPlayer
INC = -I. -I/opt/audio/AF/include
# Name der Bibliothek:
ALIB = AUlib
# --------------------- Module ----------------------------
SRCS = auformat.cpp aucache.cpp audata.cpp aufactor.cpp aufile.cpp
\
aufile_c.cpp aufile_l.cpp
aufile_o.cpp aufile_x.cpp \
aufile_s.cpp compfft.cpp energy.cpp
amplitud.cpp length.cpp \
threshol.cpp cres.cpp afplayer.cpp
aucut.cpp
OBJS = auformat.o aucache.o audata.o aufactor.o aufile.o aufile_c.o
\
aufile_l.o aufile_o.o aufile_x.o
aufile_s.o compfft.o energy.o \
amplitud.o length.o threshol.o
cres.o afplayer.o aucut.o
# "Packen" der Objektdateien in eine einzige .a Datei:
lib$(ALIB).a: $(OBJS)
ar ruv lib$(ALIB).a $(OBJS)
.SUFFIXES:
.SUFFIXES: .cpp $(SUFFIXES)
# Erzeugen von Objektdateien:
.cpp.o:
$(CC) -c $(CFLAGS) $(INC) $*.cpp
# Aufraeumarbeiten:
clean:
rm -f $(OBJS)
Zum Erzeugen einer Anwendung, die aulib++ benutzt, wird folgendes Makefile verwendet:
# Makefile zum Erzeugen einer aulib-Anwendung
# ------------------ Der Compiler ------------------------
# Compilername:
CC = g++
# notwendige Optionen und Makros:
# -fhandle-exceptions - Ausnahmebehandlung
# -Wall - alle Warnungen anzeigen
# -DDAMN_INTEL_BYTE_ORDER - auf einem Littel-Endian-Rechner
# -g - ausfuehrbare Dateien mit Angaben fuer den Debugger
# andere Optionen und Makros:
# -O2 - Code-Optimierung
# -DAF - wenn der AFPlayer verwendet wird (nur am Lehrstuhl moeglich)
# -DTEST - Ausgabe von Zwischenergebnissen
# -DLOGFILE - Zwischenergebnisse in results.log ablegen
CFLAGS = -g -DDAMN_INTEL_BYTE_ORDER -DLOGFILE -DAF -Wall -fhandle-exceptions -DTEST
# Bibliotheken, die Eingebunden werden muessen:
# AudioFile (notwendig nur fuer den AFPlayer)
AFLIB = -L/opt/audio/AF/lib -lAFUtil -lAF
# Die aulib++ selbst:
ALIB = AUlib
# Pfad der aulib++ Headerdateien und der .a Datei:
AUPATH = ~/AULIB++/code
LIB = -l$(ALIB) $(AFLIB) $(SOCKLIB) -lm -L$(AUPATH)
# Spezielle Pfadangeben (notwendig nur am Lehrstuhl):
DLINK = -Wl,-rpath,/opt/tcltk/lib:/opt/X11R6.3/lib:/opt/graphics/lib:/opt/GNU/lib
# Verzeichnisse mit Headerdateien:
# -I. - aktuelles Verzeichnis (immer dabei)
# -I$(AUPATH) - aulib++ Headerdateien
# -I/opt/audio/AF/include - notwendig nur fuer den AFPlayer
INC = -I. -I$(AUPATH) -I/opt/audio/AF/include
# --------------------- Anwendungen ----------------------------
all: Example
Example: $(AUPATH)/lib$(ALIB).a Example.cpp; $(CC) $(CFLAGS) $(DLINK) -o $@ Example.cpp $(INC) $(LIB)
# Falls aulib++ nicht auf dem neuesten Stand, wird sie zuerst neu ubersetzt:
$(AUPATH)/lib$(ALIB).a: ; (cd $(AUPATH) ; make lib$(ALIB).a)