easier.legacy
| @@ -1,6 +1,32 @@ | |||||
| # Autotools cruft | |||||
| *.o | *.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/test-map | ||||
| src/editor | |||||
| tools/make-font | tools/make-font | ||||
| # Our data | |||||
| art/*.png | art/*.png | ||||
| art/test/*.png | art/test/*.png | ||||
| gfx/font/*.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; | |||||
| } | |||||