| @@ -1,6 +1,32 @@ | |||
| # Autotools cruft | |||
| *.o | |||
| *.lo | |||
| *.a | |||
| *.la | |||
| *.exe | |||
| *.userprefs | |||
| *.usertasks | |||
| *.pidb | |||
| .auto | |||
| .libs | |||
| .deps | |||
| Makefile | |||
| Makefile.in | |||
| aclocal.m4 | |||
| autom4te.cache | |||
| config.h.in | |||
| config.h | |||
| config.log | |||
| config.status | |||
| configure | |||
| libtool | |||
| stamp-* | |||
| *-stamp | |||
| # Our binaries | |||
| src/test-map | |||
| src/editor | |||
| tools/make-font | |||
| # Our data | |||
| art/*.png | |||
| art/test/*.png | |||
| gfx/font/*.png | |||
| @@ -1,13 +0,0 @@ | |||
| all: | |||
| cd src && $(MAKE) all | |||
| cd tools && $(MAKE) all | |||
| cd art && $(MAKE) all | |||
| cd gfx && $(MAKE) all | |||
| clean: | |||
| cd gfx && $(MAKE) clean | |||
| cd art && $(MAKE) clean | |||
| cd tools && $(MAKE) clean | |||
| cd src && $(MAKE) clean | |||
| @@ -0,0 +1,7 @@ | |||
| SUBDIRS = src tools art gfx | |||
| DIST_SUBDIRS = $(SUBDIRS) | |||
| EXTRA_DIST = bootstrap | |||
| AUTOMAKE_OPTIONS = dist-bzip2 | |||
| @@ -0,0 +1,140 @@ | |||
| #! /bin/sh | |||
| # bootstrap: generic bootstrap/autogen.sh script for autotools projects | |||
| # | |||
| # Copyright (c) 2002-2010 Sam Hocevar <sam@hocevar.net> | |||
| # | |||
| # This program is free software. It comes without any warranty, to | |||
| # the extent permitted by applicable law. You can redistribute it | |||
| # and/or modify it under the terms of the Do What The Fuck You Want | |||
| # To Public License, Version 2, as published by Sam Hocevar. See | |||
| # http://sam.zoy.org/wtfpl/COPYING for more details. | |||
| # | |||
| # The latest version of this script can be found at the following place: | |||
| # http://caca.zoy.org/wiki/build | |||
| # Die if an error occurs | |||
| set -e | |||
| # Guess whether we are using configure.ac or configure.in | |||
| if test -f configure.ac; then | |||
| conffile="configure.ac" | |||
| elif test -f configure.in; then | |||
| conffile="configure.in" | |||
| else | |||
| echo "$0: could not find configure.ac or configure.in" | |||
| exit 1 | |||
| fi | |||
| # Check for needed features | |||
| auxdir="`sed -ne 's/^[ \t]*A._CONFIG_AUX_DIR *([[ ]*\([^] )]*\).*/\1/p' $conffile`" | |||
| pkgconfig="`grep '^[ \t]*PKG_PROG_PKG_CONFIG' $conffile >/dev/null 2>&1 && echo yes || echo no`" | |||
| libtool="`grep '^[ \t]*A._PROG_LIBTOOL' $conffile >/dev/null 2>&1 && echo yes || echo no`" | |||
| header="`grep '^[ \t]*A._CONFIG_HEADER' $conffile >/dev/null 2>&1 && echo yes || echo no`" | |||
| makefile="`[ -f Makefile.am ] && echo yes || echo no`" | |||
| aclocalflags="`sed -ne 's/^[ \t]*ACLOCAL_AMFLAGS[ \t]*=//p' Makefile.am 2>/dev/null || :`" | |||
| # Check for automake | |||
| amvers="no" | |||
| for v in 11 10 9 8 7 6 5; do | |||
| if automake-1.${v} --version >/dev/null 2>&1; then | |||
| amvers="-1.${v}" | |||
| break | |||
| elif automake1.${v} --version >/dev/null 2>&1; then | |||
| amvers="1.${v}" | |||
| break | |||
| fi | |||
| done | |||
| if test "${amvers}" = "no" && automake --version > /dev/null 2>&1; then | |||
| amvers="`automake --version | sed -e '1s/[^0-9]*//' -e q`" | |||
| if expr "$amvers" "<" "1.5" > /dev/null 2>&1; then | |||
| amvers="no" | |||
| else | |||
| amvers="" | |||
| fi | |||
| fi | |||
| if test "$amvers" = "no"; then | |||
| echo "$0: you need automake version 1.5 or later" | |||
| exit 1 | |||
| fi | |||
| # Check for autoconf | |||
| acvers="no" | |||
| for v in "" "259" "253"; do | |||
| if autoconf${v} --version >/dev/null 2>&1; then | |||
| acvers="${v}" | |||
| break | |||
| fi | |||
| done | |||
| if test "$acvers" = "no"; then | |||
| echo "$0: you need autoconf" | |||
| exit 1 | |||
| fi | |||
| # Check for libtool | |||
| if test "$libtool" = "yes"; then | |||
| libtoolize="no" | |||
| if glibtoolize --version >/dev/null 2>&1; then | |||
| libtoolize="glibtoolize" | |||
| else | |||
| for v in "16" "15" "" "14"; do | |||
| if libtoolize${v} --version >/dev/null 2>&1; then | |||
| libtoolize="libtoolize${v}" | |||
| break | |||
| fi | |||
| done | |||
| fi | |||
| if test "$libtoolize" = "no"; then | |||
| echo "$0: you need libtool" | |||
| exit 1 | |||
| fi | |||
| fi | |||
| # Check for pkg-config | |||
| if test "$pkgconfig" = "yes"; then | |||
| if ! pkg-config --version >/dev/null 2>&1; then | |||
| echo "$0: you need pkg-config" | |||
| exit 1 | |||
| fi | |||
| fi | |||
| # Remove old cruft | |||
| for x in aclocal.m4 configure config.guess config.log config.sub config.cache config.h.in config.h compile libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 ltmain.sh libtool ltconfig missing mkinstalldirs depcomp install-sh; do rm -f $x autotools/$x; if test -n "$auxdir"; then rm -f "$auxdir/$x"; fi; done | |||
| rm -Rf autom4te.cache | |||
| if test -n "$auxdir"; then | |||
| if test ! -d "$auxdir"; then | |||
| mkdir "$auxdir" | |||
| fi | |||
| aclocalflags="${aclocalflags} -I $auxdir -I ." | |||
| fi | |||
| # Explain what we are doing from now | |||
| set -x | |||
| # Bootstrap package | |||
| if test "$libtool" = "yes"; then | |||
| ${libtoolize} --copy --force | |||
| if test -n "$auxdir" -a ! "$auxdir" = "." -a -f "ltmain.sh"; then | |||
| echo "$0: working around a minor libtool issue" | |||
| mv ltmain.sh "$auxdir/" | |||
| fi | |||
| fi | |||
| aclocal${amvers} ${aclocalflags} | |||
| autoconf${acvers} | |||
| if test "$header" = "yes"; then | |||
| autoheader${acvers} | |||
| fi | |||
| if test "$makefile" = "yes"; then | |||
| #add --include-deps if you want to bootstrap with any other compiler than gcc | |||
| #automake${amvers} --add-missing --copy --include-deps | |||
| automake${amvers} --foreign --add-missing --copy | |||
| fi | |||
| # Remove cruft that we no longer want | |||
| rm -Rf autom4te.cache | |||
| @@ -0,0 +1,85 @@ | |||
| # $Id$ | |||
| AC_INIT(deushax, 0.0) | |||
| AC_PREREQ(2.50) | |||
| AC_CONFIG_AUX_DIR(.auto) | |||
| AC_CANONICAL_SYSTEM | |||
| AM_INIT_AUTOMAKE([no-define tar-ustar]) | |||
| dnl AM_MAINTAINER_MODE | |||
| AM_CONFIG_HEADER(config.h) | |||
| AM_PROG_CC_C_O | |||
| AC_PROG_CPP | |||
| AC_PROG_CXX | |||
| AC_PROG_CXXCPP | |||
| AC_PROG_RANLIB | |||
| AC_LIBTOOL_WIN32_DLL | |||
| AM_PROG_LIBTOOL | |||
| AC_LIBTOOL_CXX | |||
| AC_C_CONST | |||
| AC_C_INLINE | |||
| dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right | |||
| dnl now otherwise it might be set in an obscure if statement. Same thing for | |||
| dnl PKG_PROG_PKG_CONFIG which needs to be called first. | |||
| AC_EGREP_CPP(yes, foo) | |||
| PKG_PROG_PKG_CONFIG() | |||
| m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) | |||
| if test "${build}" != "${host}" -a "${PKG_CONFIG_LIBDIR}" = ""; then | |||
| export PKG_CONFIG_LIBDIR=/dev/null | |||
| fi | |||
| dnl conditional builds | |||
| AC_ARG_ENABLE(debug, | |||
| [ --enable-debug build debug versions of the library (default no)]) | |||
| AC_CHECK_HEADERS(stdio.h stdarg.h inttypes.h endian.h stdint.h getopt.h) | |||
| # Optimizations | |||
| CXXFLAGS="${CXXFLAGS} -g -O2 -fno-strength-reduce -fomit-frame-pointer" | |||
| # Code qui fait des warnings == code de porc == deux baffes dans ta gueule | |||
| CXXFLAGS="${CXXFLAGS} -Wall -Wextra -Wpointer-arith -Wcast-align -Wcast-qual -Wshadow -Wsign-compare" | |||
| AC_CHECK_LIB(m, sin, MATH_LIBS="${MATH_LIBS} -lm") | |||
| # Use SDL? | |||
| ac_cv_my_have_sdl="no" | |||
| save_CPPFLAGS="${CPPFLAGS}" | |||
| AC_PATH_PROG(SDL_CONFIG, sdl-config, no) | |||
| if test "${SDL_CONFIG}" != "no"; then | |||
| CPPFLAGS="${CPPFLAGS} `sdl-config --cflags`" | |||
| fi | |||
| AC_CHECK_HEADERS(SDL_image.h, | |||
| [ac_cv_my_have_sdl="yes"], | |||
| [ac_cv_my_have_sdl="no"]) | |||
| CPPFLAGS="${save_CPPFLAGS}" | |||
| if test "${ac_cv_my_have_sdl}" != "no"; then | |||
| AC_DEFINE(USE_SDL, 1, Define to 1 to use SDL_image) | |||
| fi | |||
| AM_CONDITIONAL(USE_SDL, test "${ac_cv_my_have_sdl}" = "yes") | |||
| if test "${ac_cv_my_have_sdl}" = "no" -a "${ac_cv_my_have_imlib2}" = "no"; then | |||
| AC_MSG_ERROR([[cannot find SDL_Image or GTK+, please install one of them]]) | |||
| fi | |||
| if test "${enable_debug}" = "yes"; then | |||
| AC_DEFINE(DEBUG, 1, Define to 1 to activate debug) | |||
| fi | |||
| AC_SUBST(MATH_LIBS) | |||
| AC_CONFIG_FILES([ | |||
| Makefile | |||
| src/Makefile | |||
| tools/Makefile | |||
| art/Makefile | |||
| art/test/Makefile | |||
| gfx/Makefile | |||
| gfx/font/Makefile | |||
| ]) | |||
| AC_OUTPUT | |||
| @@ -1,7 +0,0 @@ | |||
| all: | |||
| cd font && $(MAKE) all | |||
| clean: | |||
| cd font && $(MAKE) clean | |||
| @@ -0,0 +1,3 @@ | |||
| SUBDIRS = font | |||
| @@ -1,21 +0,0 @@ | |||
| COMMON = test-map.cpp \ | |||
| game.cpp tiler.cpp tileset.cpp scene.cpp \ | |||
| font.cpp layer.cpp map.cpp joystick.cpp | |||
| TEST_SRC = test-map.cpp sdlvideo.cpp $(COMMON) | |||
| EDITOR_SRC = editor.cpp gtkvideo.cpp $(COMMON) | |||
| all: test-map | |||
| test-map: $(TEST_SRC:%.cpp=%.o) | |||
| g++ -g -Wall -O3 $^ -o $@ `pkg-config --libs sdl gl SDL_image` | |||
| editor-map: $(EDITOR_SRC:%.cpp=%.o) | |||
| g++ -g -Wall -O3 $^ -o $@ `pkg-config --libs sdl gl SDL_image` | |||
| %.o: %.cpp | |||
| g++ -g -Wall -O3 -c $^ -o $@ `pkg-config --cflags sdl gl SDL_image` | |||
| clean: | |||
| rm -f *.o test-map | |||
| @@ -0,0 +1,41 @@ | |||
| noinst_PROGRAMS = test-map editor | |||
| noinst_LIBRARIES = libcommon.a | |||
| libcommon_a_SOURCES = \ | |||
| game.cpp tiler.cpp tileset.cpp scene.cpp \ | |||
| font.cpp layer.cpp map.cpp joystick.cpp | |||
| libcommon_a_CXXFLAGS = `pkg-config --cflags sdl gl SDL_image` | |||
| test_map_SOURCES = test-map.cpp sdlvideo.cpp | |||
| test_map_CXXFLAGS = `pkg-config --cflags sdl gl SDL_image` | |||
| test_map_LDADD = libcommon.a | |||
| test_map_LDFLAGS = `pkg-config --libs sdl gl SDL_image` | |||
| editor_SOURCES = editor.cpp gtkvideo.cpp | |||
| editor_CXXFLAGS = `pkg-config --cflags sdl gl SDL_image gtk+-2.0 gtkgl-2.0` | |||
| editor_LDADD = libcommon.a | |||
| editor_LDFLAGS = `pkg-config --libs sdl gl gtk+-2.0 gtkgl-2.0 SDL_image` | |||
| #COMMON = $(libcommon_a_SOURCES) | |||
| # | |||
| #TEST_SRC = test-map.cpp sdlvideo.cpp $(COMMON) | |||
| #EDITOR_SRC = editor.cpp gtkvideo.cpp $(COMMON) | |||
| # | |||
| #CPPFLAGS = `pkg-config --cflags sdl gl SDL_image gtk+-2.0 gtkgl-2.0` | |||
| #CXXFLAGS = -g -O3 -Wall \ | |||
| # -Wpointer-arith -Wcast-align -Wcast-qual -Wshadow -Wsign-compare | |||
| # | |||
| #test-map: $(TEST_SRC:%.cpp=%.o) | |||
| # g++ $(CXXFLAGS) $^ -o $@ `pkg-config --libs sdl gl SDL_image` | |||
| # | |||
| #editor: $(EDITOR_SRC:%.cpp=%.o) | |||
| # g++ $(CXXFLAGS) $^ -o $@ `pkg-config --libs sdl gl gtk+-2.0 gtkgl-2.0 SDL_image` | |||
| # | |||
| #%.o: %.cpp | |||
| # g++ -c $^ -o $@ $(CXXFLAGS) $(CPPFLAGS) | |||
| # | |||
| #clean: | |||
| # rm -f *.o test-map editor | |||
| @@ -0,0 +1,66 @@ | |||
| #include <SDL.h> | |||
| #include <stdio.h> | |||
| #include <math.h> | |||
| #include "gtkvideo.h" | |||
| #include "game.h" | |||
| #include <math.h> | |||
| #include <gtk/gtk.h> | |||
| #include <gtkgl/gtkglarea.h> | |||
| #include <GL/gl.h> | |||
| volatile int quit = 0; | |||
| static gint main_quit(GtkWidget *widget, GdkEventExpose *event) | |||
| { | |||
| quit = 1; | |||
| return FALSE; | |||
| } | |||
| int main(int argc, char **argv) | |||
| { | |||
| GtkWidget *window, *glarea; | |||
| /* initialize gtk */ | |||
| gtk_init(&argc, &argv); | |||
| /* Create new top level window. */ | |||
| window = gtk_window_new( GTK_WINDOW_TOPLEVEL); | |||
| gtk_window_set_title(GTK_WINDOW(window), "Simple"); | |||
| gtk_container_set_border_width(GTK_CONTAINER(window), 10); | |||
| /* Quit form main if got delete event */ | |||
| gtk_signal_connect(GTK_OBJECT(window), "delete_event", | |||
| GTK_SIGNAL_FUNC(main_quit), NULL); | |||
| /* You should always delete gtk_gl_area widgets before exit or else | |||
| GLX contexts are left undeleted, this may cause problems (=core dump) | |||
| in some systems. | |||
| Destroy method of objects is not automatically called on exit. | |||
| You need to manually enable this feature. Do gtk_quit_add_destroy() | |||
| for all your top level windows unless you are certain that they get | |||
| destroy signal by other means. | |||
| */ | |||
| gtk_quit_add_destroy(1, GTK_OBJECT(window)); | |||
| /* Create new OpenGL widget. */ | |||
| GtkVideo *video = new GtkVideo("LOL", 640, 480); | |||
| glarea = GTK_WIDGET(video->GetWidget()); | |||
| /* put glarea into window and show it all */ | |||
| gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(glarea)); | |||
| gtk_widget_show(GTK_WIDGET(glarea)); | |||
| gtk_widget_show(GTK_WIDGET(window)); | |||
| while (!quit) | |||
| { | |||
| while (g_main_context_iteration(NULL, FALSE)); | |||
| } | |||
| return 0; | |||
| } | |||