Got dependencies building on linux and mingw32; Got library building on linux again, as well as all demos; Got backtrace working in linux (currently the output is a little mangled, need to run it through addr2line to get file and line info out of it and demangle it)

This commit is contained in:
2011-06-21 21:26:27 +00:00
parent f62a36e1c6
commit 1590271691
14 changed files with 103 additions and 27 deletions

View File

@@ -24,14 +24,18 @@ ifeq "$(OS)" "mingw32"
ADDL_CFLAGS=-rdynamic -mwindows -DOS_WIN32 ADDL_CFLAGS=-rdynamic -mwindows -DOS_WIN32
EXESUFFIX=.exe EXESUFFIX=.exe
LIBSUFFIX=.a LIBSUFFIX=.a
DEPMAKEFILE=Makefile.mingw32
endif endif
ifeq "$(OS)" "macosx" ifeq "$(OS)" "macosx"
ADDL_CFLAGS=-rdynamic -DOS_MACOSX ADDL_CFLAGS=-rdynamic -DOS_MACOSX
DEPMAKEFILE=Makefile.macosx
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-rdynamic -DOS_LINUX ADDL_CFLAGS=-rdynamic -DOS_LINUX
DEPMAKEFILE=Makefile.apt
LIBSUFFIX=.a
endif endif
ifeq "$(CFG)" "Debug" ifeq "$(CFG)" "Debug"
@@ -101,6 +105,7 @@ clean:
rm -f $(OUTDIR)/$(LIBTARGET).* rm -f $(OUTDIR)/$(LIBTARGET).*
rm -rf docs/* rm -rf docs/*
cd demo && for dir in $(DEMOS); do cd $$dir && make CFG=$(CFG) OS=$(OS) clean; if [ $$? -ne 0 ]; then exit 1 ; fi; cd .. ; done cd demo && for dir in $(DEMOS); do cd $$dir && make CFG=$(CFG) OS=$(OS) clean; if [ $$? -ne 0 ]; then exit 1 ; fi; cd .. ; done
.PHONY: demos .PHONY: demos
demos: demos:
cd demo && for dir in $(DEMOS); do cd $$dir && make "ADDL_CFLAGS=$(ADDL_CFLAGS)" CFG=$(CFG) OS=$(OS); if [ $$? -ne 0 ]; then exit 1 ; fi; cd .. ; done cd demo && for dir in $(DEMOS); do cd $$dir && make "ADDL_CFLAGS=$(ADDL_CFLAGS)" CFG=$(CFG) OS=$(OS); if [ $$? -ne 0 ]; then exit 1 ; fi; cd .. ; done
@@ -124,4 +129,4 @@ uninstall:
.PHONY: deps .PHONY: deps
deps: deps:
cd deps && make cd deps && make -f $(DEPMAKEFILE)

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

Binary file not shown.

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

Binary file not shown.

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

View File

@@ -25,6 +25,7 @@ ifeq "$(OS)" "mingw32"
endif endif
ifeq "$(OS)" "linux" ifeq "$(OS)" "linux"
ADDL_CFLAGS=-DBUILD_LINUX -rdynamic ADDL_CFLAGS=-DBUILD_LINUX -rdynamic
ADDL_LDFLAGS=-rdynamic
endif endif
# default for release configs # default for release configs
@@ -49,7 +50,7 @@ ifeq "$(CFG)" "Debug"
CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS) CXXFLAGS=-I../../ -I$(HEADERDIR) -I./cpp -pg -g -ggdb -gstabs -Wall -c $(SDL_CFLAGS) $(ADDL_CFLAGS)
endif endif
LINKLIBS=-L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf LINKLIBS=$(ADDL_LDFLAGS) -L../../$(CFG) -L$(LIBDIR) -l$(LINKLIB) $(SDL_LDFLAGS) -lSDL_image -lSDL_mixer -lSDL_gfx -lSDL_ttf
BINOBJ=$(OUTDIR)/demo.o BINOBJ=$(OUTDIR)/demo.o

65
deps/Makefile.apt vendored Executable file
View File

@@ -0,0 +1,65 @@
all: clean packages
#all: packages
#
.PHONY: packages
packages: SDL SDL_image SDL_mixer SDL_ttf SDL_gfx libxml2 cmake yasm ffmpeg SDL_ffmpeg yaml-cpp
.PHONY: SDL
SDL:
sudo apt-get install libsdl-dev
.PHONY:
SDL_image:
sudo apt-get install libsdl-image1.2-dev
.PHONY: SDL_mixer
SDL_mixer:
sudo apt-get install libsdl-mixer1.2-dev
.PHONY: SDL_ttf
SDL_ttf:
sudo apt-get install libsdl-ttf2.0-dev
.PHONY: SDL_gfx
SDL_gfx:
sudo apt-get install libsdl-gfx1.2-dev
.PHONY: cmake
cmake:
sudo apt-get install cmake
.PHONY: yasm
yasm:
sudo apt-get install yasm
.PHONY: ffmpeg
ffmpeg:
wget http://www.ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz
tar -zxvf ffmpeg-0.7-rc1.tar.gz
cd ffmpeg-0.7-rc1 && ./configure $(FFMPEG_CONFIGURE_FLAGS) && make && make install
.PHONY: SDL_ffmpeg
SDL_ffmpeg:
wget http://www.arjanhouben.nl/SDL_ffmpeg/1.3.1/SDL_ffmpeg-1.3.1.tar.gz
tar -zxvf SDL_ffmpeg-1.3.1.tar.gz
cd SDL_ffmpeg && cmake -G "MSYS Makefiles" . && make
cp SDL_ffmpeg/lib/libSDL_ffmpeg.dll.a /usr/local/lib/
cp SDL_ffmpeg/include/SDL/SDL_ffmpeg.h /usr/local/include
.PHONY: yaml-cpp
yaml-cpp:
wget http://yaml-cpp.googlecode.com/files/yaml-cpp-0.2.6.tar.gz
tar -zxvf yaml-cpp-0.2.6.tar.gz
cd yaml-cpp && cmake -G "MSYS Makefiles" . && make
cp -vR yaml-cpp/include/yaml-cpp /usr/local/include/
cp yaml-cpp/libyaml-cpp.a /usr/local/lib/
.PHONY: libxml2
libxml2:
sudo apt-get install libxml2-dev
.PHONY: clean
clean:
rm -rf *gz *zip *bz2
find . -maxdepth 1 -type d -iname "[a-zA-Z0-9]*" -exec rm -rf \{\} \;

View File

@@ -4,7 +4,7 @@ CFLAGS=$(CFLAGS) -I/usr/local/include -I/usr/include
LDFLAGS=$(LDFLAGS) -L/usr/local/lib -L/usr/lib LDFLAGS=$(LDFLAGS) -L/usr/local/lib -L/usr/lib
.PHONY: packages .PHONY: packages
packages: SDL zlib libpng libjpeg libtiff SDL_image libvorbis flac SDL_mixer freetype SDL_ttf SDL_gfx libxml2 cmake ffmpeg SDL_ffmpeg backtrace packages: SDL zlib libpng libjpeg libtiff SDL_image libvorbis flac SDL_mixer freetype SDL_ttf SDL_gfx libxml2 cmake ffmpeg SDL_ffmpeg backtrace yaml-cpp
.PHONY: SDL .PHONY: SDL
SDL: SDL:

View File

@@ -2,23 +2,7 @@
#include <windows.h> #include <windows.h>
#endif #endif
#include <stdlib.h>
#include <iostream>
void RegisterStacktrace()
{
#ifdef __WIN32__
if ( LoadLibraryA("backtrace.dll") == NULL ) {
std::cerr << "Unable to locate backtrace.dll.\n";
exit(1);
}
#else
signal(SIGSEGV, &__libsdlgame_sigsegvhandler);
#endif
}
#ifndef __WIN32__ #ifndef __WIN32__
#include <execinfo.h> #include <execinfo.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@@ -54,7 +38,7 @@ void __libsdlgame_show_stacktrace (void)
void __libsdlgame_sigsegvhandler(int z) void __libsdlgame_sigsegvhandler(int z)
{ {
fprintf(stderr, "Caught segmentation fault; stacktrace follows.\n"); fprintf(stderr, "Caught segmentation fault; stacktrace follows.\n");
print_trace(); __libsdlgame_show_stacktrace();
#ifdef DEBUG_LOOPONSEGFAULT #ifdef DEBUG_LOOPONSEGFAULT
fprintf(stderr, "Entering infinite loop; please connect a debugger to me and then kill me.\n"); fprintf(stderr, "Entering infinite loop; please connect a debugger to me and then kill me.\n");
fflush(stderr); fflush(stderr);
@@ -65,3 +49,17 @@ void __libsdlgame_sigsegvhandler(int z)
#endif #endif
#include <stdlib.h>
#include <iostream>
void RegisterStacktrace()
{
#ifdef __WIN32__
if ( LoadLibraryA("backtrace.dll") == NULL ) {
std::cerr << "Unable to locate backtrace.dll.\n";
exit(1);
}
#else
signal(SIGSEGV, &__libsdlgame_sigsegvhandler);
#endif
}