Modified the Linux build system so that makefiles are now outside the source tree

git-svn-id: https://sfml.svn.sourceforge.net/svnroot/sfml/branches/sfml2@1477 4e206d99-4929-0410-ac5d-dfc041789085
This commit is contained in:
laurentgom 2010-03-23 15:55:07 +00:00
parent fd8fa4e2f8
commit ca5489a5d6
21 changed files with 477 additions and 21 deletions

View File

@ -1,19 +1,8 @@
all: sfml
sfml:
@(cd ./src/SFML && $(MAKE))
sfml-samples:
@(cd ./samples && $(MAKE))
install:
@(cd ./src/SFML && $(MAKE) $@)
clean:
@(cd ./src/SFML && $(MAKE) $@)
@(cd ./samples && $(MAKE) $@)
mrproper:
@(cd ./src/SFML && $(MAKE) $@)
@(cd ./samples && $(MAKE) $@)
sfml samples install clean mrproper:
cd ./build/make && $(MAKE) $@
.PHONY: samples

50
build/make/Makefile Normal file
View File

@ -0,0 +1,50 @@
export SRCROOT = ../../src/SFML
export DESTDIR = /usr/local
export DESTLIBDIR = $(DESTDIR)/lib
export DESTINCDIR = $(DESTDIR)/include
export DESTDBGDIR = $(DESTLIBDIR)/debug/$(DESTLIBDIR)
export CC = gcc
export CPP = g++
export CFLAGS = -W -Wall -pedantic -g -O2 -DNDEBUG -I../../include -I../../src -fPIC
export CFLAGSEXT = -I../../include -I../../src -g -O2 -DNDEBUG -fPIC
export LDFLAGS = -shared
export LIBPATH = ../../lib
export VERSION = 2.0
export CP = cp
export LN = ln
export LNFLAGS = -s -f
export LIBS = system window graphics audio network
all: sfml
sfml: $(LIBS)
samples:
cd ../../samples/build/make && $(MAKE)
$(LIBS):
mkdir -p $(LIBPATH)
$(MAKE) -f Makefile.$@
install:
mkdir -p $(DESTLIBDIR)
mkdir -p $(DESTINCDIR)
mkdir -p $(DESTDBGDIR)
$(CP) -r ../../include/SFML/ $(DESTINCDIR)/
find $(DESTINCDIR)/SFML -name .svn -type d -print0 | xargs -0 /bin/rm -rf
$(MAKE) $@ -f Makefile.system
$(MAKE) $@ -f Makefile.window
$(MAKE) $@ -f Makefile.graphics
$(MAKE) $@ -f Makefile.audio
$(MAKE) $@ -f Makefile.network
clean mrproper:
$(MAKE) $@ -f Makefile.system
$(MAKE) $@ -f Makefile.window
$(MAKE) $@ -f Makefile.graphics
$(MAKE) $@ -f Makefile.audio
$(MAKE) $@ -f Makefile.network
cd ../../samples/build/make && $(MAKE) $@
.PHONY: clean mrproper

28
build/make/Makefile.audio Normal file
View File

@ -0,0 +1,28 @@
SRC = $(wildcard $(SRCROOT)/Audio/*.cpp)
OBJ = $(SRC:.cpp=.o)
LIB = libsfml-audio.so
LIBNAME = $(LIB).$(VERSION)
FULLLIBNAME = $(LIBPATH)/$(LIBNAME)
LINK = $(LN) $(LNFLAGS) $(LIBNAME) $(DESTLIBDIR)/$(LIB)
all: $(LIB)
libsfml-audio.so: $(OBJ)
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIBNAME) -o $(FULLLIBNAME) $(OBJ) -lsndfile -lopenal
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
rm -rf $(OBJ)
mrproper: clean
rm -rf $(FULLLIBNAME)
install:
objcopy --only-keep-debug $(FULLLIBNAME) $(DESTDBGDIR)/$(LIBNAME)
objcopy --strip-unneeded $(FULLLIBNAME) $(DESTLIBDIR)/$(LIBNAME)
$(LINK)

View File

@ -0,0 +1,44 @@
SRC = $(wildcard $(SRCROOT)/Graphics/*.cpp $(SRCROOT)/Graphics/Linux/*.cpp)
SRCGLEW = $(wildcard $(SRCROOT)/Graphics/GLEW/*.c)
SRCJPEG = $(wildcard $(SRCROOT)/Graphics/libjpeg/*.c)
SRCPNG = $(wildcard $(SRCROOT)/Graphics/libpng/*.c)
SRCSOIL = $(wildcard $(SRCROOT)/Graphics/SOIL/*.c)
SRCZLIB = $(wildcard $(SRCROOT)/Graphics/zlib/*.c)
OBJ = $(SRC:.cpp=.o)
OBJGLEW = $(SRCGLEW:.c=.o)
OBJJPEG = $(SRCJPEG:.c=.o)
OBJPNG = $(SRCPNG:.c=.o)
OBJSOIL = $(SRCSOIL:.c=.o)
OBJZLIB = $(SRCZLIB:.c=.o)
LIB = libsfml-graphics.so
LIBNAME = $(LIB).$(VERSION)
FULLLIBNAME = $(LIBPATH)/$(LIBNAME)
LINK = $(LN) $(LNFLAGS) $(LIBNAME) $(DESTLIBDIR)/$(LIB)
all: $(LIB)
libsfml-graphics.so: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIBNAME) -o $(FULLLIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype -lX11 -lGL
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2
$(OBJSOIL): %.o: %.c
$(CC) -o $@ -c $< $(CFLAGSEXT) -DSTBI_FAILURE_USERMSG
$(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJZLIB): %.o: %.c
$(CC) -o $@ -c $< $(CFLAGSEXT)
.PHONY: clean mrproper
clean:
rm -rf $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB)
mrproper: clean
rm -rf $(FULLLIBNAME)
install:
objcopy --only-keep-debug $(FULLLIBNAME) $(DESTDBGDIR)/$(LIBNAME)
objcopy --strip-unneeded $(FULLLIBNAME) $(DESTLIBDIR)/$(LIBNAME)
$(LINK)

View File

@ -0,0 +1,28 @@
SRC = $(wildcard $(SRCROOT)/Network/*.cpp $(SRCROOT)/Network/Unix/*.cpp)
OBJ = $(SRC:.cpp=.o)
LIB = libsfml-network.so
LIBNAME = $(LIB).$(VERSION)
FULLLIBNAME = $(LIBPATH)/$(LIBNAME)
LINK = $(LN) $(LNFLAGS) $(LIBNAME) $(DESTLIBDIR)/$(LIB)
all: $(LIB)
libsfml-network.so: $(OBJ)
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIBNAME) -o $(FULLLIBNAME) $(OBJ)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
rm -rf $(OBJ)
mrproper: clean
rm -rf $(FULLLIBNAME)
install:
objcopy --only-keep-debug $(FULLLIBNAME) $(DESTDBGDIR)/$(LIBNAME)
objcopy --strip-unneeded $(FULLLIBNAME) $(DESTLIBDIR)/$(LIBNAME)
$(LINK)

View File

@ -0,0 +1,28 @@
SRC = $(wildcard $(SRCROOT)/System/*.cpp $(SRCROOT)/System/Unix/*.cpp)
OBJ = $(SRC:.cpp=.o)
LIB = libsfml-system.so
LIBNAME = $(LIB).$(VERSION)
FULLLIBNAME = $(LIBPATH)/$(LIBNAME)
LINK = $(LN) $(LNFLAGS) $(LIBNAME) $(DESTLIBDIR)/$(LIB)
all: $(LIB)
libsfml-system.so: $(OBJ)
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIBNAME) -o $(FULLLIBNAME) $(OBJ) -lpthread
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
rm -rf $(OBJ)
mrproper: clean
rm -rf $(FULLLIBNAME)
install:
objcopy --only-keep-debug $(FULLLIBNAME) $(DESTDBGDIR)/$(LIBNAME)
objcopy --strip-unneeded $(FULLLIBNAME) $(DESTLIBDIR)/$(LIBNAME)
$(LINK)

View File

@ -0,0 +1,28 @@
SRC = $(wildcard $(SRCROOT)/Window/*.cpp $(SRCROOT)/Window/Linux/*.cpp)
OBJ = $(SRC:.cpp=.o)
LIB = libsfml-window.so
LIBNAME = $(LIB).$(VERSION)
FULLLIBNAME = $(LIBPATH)/$(LIBNAME)
LINK = $(LN) $(LNFLAGS) $(LIBNAME) $(DESTLIBDIR)/$(LIB)
all: $(LIB)
libsfml-window.so: $(OBJ)
$(CPP) $(LDFLAGS) -Wl,-soname,$(LIBNAME) -o $(FULLLIBNAME) $(OBJ) -lX11 -lXrandr -lGL
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
rm -rf $(OBJ)
mrproper: clean
rm -rf $(FULLLIBNAME)
install:
objcopy --only-keep-debug $(FULLLIBNAME) $(DESTDBGDIR)/$(LIBNAME)
objcopy --strip-unneeded $(FULLLIBNAME) $(DESTLIBDIR)/$(LIBNAME)
$(LINK)

View File

@ -0,0 +1,17 @@
export SRCROOT = ../..
export BINPATH = ../../bin
export CPP = g++
export CFLAGS = -W -Wall -ansi -g -O2 -DNDEBUG -I../../include
export SAMPLES = ftp opengl pong qt shader sockets sound sound_capture voip window wxwidgets X11
all: $(SAMPLES)
$(SAMPLES):
mkdir -p $(BINPATH)
$(MAKE) -f Makefile.$@
clean mrproper:
for sample in $(SAMPLES); do $(MAKE) $@ -f Makefile.$${sample}; done
.PHONY: clean mrproper

View File

@ -0,0 +1,20 @@
EXE = X11
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-window -lsfml-system -lGLU -lGL -lX11
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = ftp
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-network -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,21 @@
EXE = opengl
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-graphics -lsfml-window -lsfml-system -lGLU -lGL
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = pong
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-audio -lsfml-graphics -lsfml-window -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,21 @@
EXE = qt
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-graphics -lsfml-window -lsfml-system -lQtCore -lQtGui -lX11
CFLAGS += -I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = shader
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-graphics -lsfml-window -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = sockets
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-network -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = sound
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-audio -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = sound_capture
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-audio -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = voip
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-audio -lsfml-network -lsfml-system
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,20 @@
EXE = window
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-window -lsfml-system -lGLU -lGL
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -0,0 +1,21 @@
EXE = wxwidgets
SRC = $(wildcard $(SRCROOT)/$(EXE)/*.cpp)
OBJ = $(SRC:.cpp=.o)
LDFLAGS = -lsfml-graphics -lsfml-window -lsfml-system `wx-config --libs` `pkg-config --libs gtk+-2.0`
CFLAGS += -I/usr/include/gtk-2.0 `wx-config --cppflags` `pkg-config --cflags gtk+-2.0`
all: $(EXE)
$(EXE): $(OBJ)
$(CPP) -o $(BINPATH)/$(EXE) $(OBJ) $(LDFLAGS)
$(OBJ): %.o: %.cpp
$(CPP) -o $@ -c $< $(CFLAGS)
.PHONY: clean mrproper
clean:
@rm -rf $(OBJ)
mrproper: clean
@rm -rf $(BINPATH)/$(EXE)

View File

@ -49,11 +49,12 @@ myDuration(0.f)
////////////////////////////////////////////////////////////
SoundBuffer::SoundBuffer(const SoundBuffer& copy) :
myBuffer (0),
mySamples (copy.mySamples),
myDuration(copy.myDuration),
mySounds () // don't copy the attached sounds
SoundBuffer::SoundBuffer(const SoundBuffer& copy) :
Resource<SoundBuffer>(),
myBuffer (0),
mySamples (copy.mySamples),
myDuration (copy.myDuration),
mySounds () // don't copy the attached sounds
{
// Create the buffer
ALCheck(alGenBuffers(1, &myBuffer));