Ist nen ordentlicher Block arbeit... Schonmal ein paar Kommentare dazu, was du machen müssen wirst:
1) Es gibt kein "sauberes" build system. Sprich du wirst vermutlich auf der Datei Makefile aufsetzen und da versuchen, es irgendwie ans laufen zu bekommen. Ich hab mich die letzte Stunde schon ein bisschen dran versucht, aber...
2) Die Abhängigkeiten. Es wird direkt GL/gl.h eingebunden. Okay, im pandora crosscompiler gibt es direkt GLES/gl.h, wo der Großteil der Funktionen verfügbar ist. Dummerweise nur der Großteil...
3) Als weiterer include taucht GL/glu.h auf. Hier beginnt der Spaß, da das an sich Teil vom Treiber (also unter Linux Systemen meist mesa) ist. Im pandora sdk natürlich erstmal nicht enthalten.
4) Um nicht GLEW als Abhängigkeit drin zu haben (da es nicht nötig ist) sollte man beim kompilieren das define SDL_VIDEO_OPENGL_ES setzen.
5) Der editor sollte nicht nötig sein, sorgt außerdem für Probleme beim bauen. Entsprechend nen define NO_EDITOR setzen und die Datei aus der OBJECTS auflistung entfernen.
6) Du musst definitiv einstellen, dass das Spiel in 800x480 starten soll. Außerdem ist die Tastaturbelegung momentan hart einkodiert, die musst du auch anpassen. Das Zeug zur Auflösung sollte in preferences.cpp sein, Eingabemethodik in input.cpp.
Hier schonmal als start mein leicht angepasstes Makefile:
Code:
objects = IMG_savepng.o background.o blur.o border_widget.o button.o character_editor_dialog.o current_generator.o editor_dialogs.o editor_formula_functions.o editor_layers_dialog.o editor_stats_dialog.o editor_variable_info.o collision_utils.o color_utils.o controls.o custom_object.o custom_object_callable.o custom_object_functions.o custom_object_type.o debug_console.o dialog.o draw_number.o draw_scene.o draw_tile.o editor_level_properties_dialog.o entity.o filesystem.o font.o formula.o formula_callable_definition.o formula_constants.o formula_function.o formula_profiler.o formula_tokenizer.o formula_variable_storage.o frame.o framed_gui_element.o geometry.o graphical_font.o graphical_font_label.o grid_widget.o group_property_editor_dialog.o gui_formula_functions.o gui_section.o image_widget.o input.o inventory.o iphone_controls.o joystick.o key.o label.o level.o level_logic.o level_object.o level_runner.o level_solid_map.o load_level_nothread.o main.o message_dialog.o movement_script.o multi_tile_pattern.o multiplayer.o object_events.o options_dialog.o particle_system.o pause_game_dialog.o playable_custom_object.o player_info.o powerup.o preferences.o preprocessor.o preview_tileset_widget.o property_editor_dialog.o random.o raster.o raster_distortion.o rectangle_rotator.o settings_dialog.o solid_map.o sound.o speech_dialog.o stats.o string_utils.o surface_cache.o surface_formula.o surface_palette.o surface_scaling.o surface.o texture.o text_entry_widget.o thread.o tile_map.o tileset_editor_dialog.o tooltip.o translate.o utils.o variant.o water.o water_particle_system.o weather_particle_system.o widget.o wml_formula_adapter.o wml_formula_callable.o wml_modify.o wml_node.o wml_parser.o wml_schema.o wml_utils.o wml_writer.o unit_test.o formula_test.o wml_parser_test.o loading_screen.o utility_object_compiler.o utility_object_editor.o
server_objects = server.o simple_wml.o
formula_test_objects = filesystem.o formula_function.o formula_tokenizer.o string_utils.o variant.o wml_node.o wml_parser.o wml_utils.o wml_writer.o
wml_modify_test_objects = filesystem.o string_utils.o wml_node.o wml_parser.o wml_utils.o
wml_schema_test_objects = filesystem.o string_utils.o wml_node.o wml_parser.o wml_utils.o
OPT=-O2 -fno-inline-functions
TOOLCHAIN=/home/nils/pandora-dev/arm-2009q3
GCC_BINARY=bin/arm-none-linux-gnueabi-gcc
G++_BINARY=bin/arm-none-linux-gnueabi-g++
DEFINES=-DNO_EDITOR=1 -DSDL_VIDEO_OPENGL_ES=1
%.o : src/%.cpp
$(TOOLCHAIN)/$(G++_BINARY) -DIMPLEMENT_SAVE_PNG -fno-inline-functions -g $(OPT) `$(TOOLCHAIN)/usr/bin/sdl-config --cflags` -I$(TOOLCHAIN)/usr/include/X11 -I$(TOOLCHAIN)/usr/include -I$(TOOLCHAIN)/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT $(DEFINES) -Wnon-virtual-dtor -Wreturn-type -fthreadsafe-statics -c $<
game: $(objects)
$(TOOLCHAIN)/$(G++_BINARY) -g $(OPT) -L$(TOOLCHAIN)/usr/lib -L. -lX11 -D_GNU_SOURCE=1 -D_REENTRANT -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib `$(TOOLCHAIN)/usr/bin/sdl-config --libs` -lSDLmain -lSDL -lGL -lGLU -lGLEW -lSDL_image -lSDL_ttf -lSDL_mixer -lpng -lboost_regex-mt -lboost_system-mt -fthreadsafe-statics $(objects) -o game
server: $(server_objects)
$(TOOLCHAIN)/$(G++_BINARY) -fno-inline-functions -g $(OPT) -L$(TOOLCHAIN)/usr/lib -lX11 -D_GNU_SOURCE=1 -D_REENTRANT -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib `$(TOOLCHAIN)/usr/bin/sdl-config --libs` -lSDLmain -lSDL -lGL -lGLU -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_regex-mt -lboost_system-mt -lboost_thread-mt -lboost_iostreams-mt -fthreadsafe-statics $(server_objects) -o server
poolalloc.o: src/poolalloc.c
$(TOOLCHAIN)/$(GCC_BINARY) -fno-inline-functions -g $(OPT) `$(TOOLCHAIN)/usr/bin/sdl-config --cflags` -I$(TOOLCHAIN)/usr/include/X11 -D_GNU_SOURCE=1 -D_REENTRANT -Wreturn-type -c src/poolalloc.c
malloc.o: src/malloc.c
$(TOOLCHAIN)/$(GCC_BINARY) -fno-inline-functions -g $(OPT) `$(TOOLCHAIN)/usr/bin/sdl-config --cflags` -I$(TOOLCHAIN)/usr/include/X11 -D_GNU_SOURCE=1 -D_REENTRANT -DUSE_LOCKS=1 -Wreturn-type -c src/malloc.c
formula_test: $(formula_test_objects)
$(TOOLCHAIN)/$(G++_BINARY) -O2 -g -I$(TOOLCHAIN)/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DUNIT_TEST_FORMULA -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib -lSDL -lGL -lGLU -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_regex src/formula.cpp $(formula_test_objects) -o test
wml_modify_test: $(wml_modify_test_objects)
$(TOOLCHAIN)/$(G++_BINARY) -O2 -g -I$(TOOLCHAIN)/usr/include/boost -I$(TOOLCHAIN)/usr/include/SDL -I$(TOOLCHAIN)/usr/include/X11 -Isrc/ -D_GNU_SOURCE=1 -D_REENTRANT -DUNIT_TEST_WML_MODIFY -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib -lboost_regex src/wml_modify.cpp $(wml_modify_test_objects) -o test
wml_schema_test: $(wml_schema_test_objects)
$(TOOLCHAIN)/$(G++_BINARY) -O2 -g -I$(TOOLCHAIN)/usr/include/boost -I$(TOOLCHAIN)/usr/include/SDL -I$(TOOLCHAIN)/usr/include/X11 -Isrc/ -D_GNU_SOURCE=1 -D_REENTRANT -DUNIT_TEST_WML_SCHEMA -Wnon-virtual-dtor -Wreturn-type -L$(TOOLCHAIN)/usr/lib -lboost_regex src/wml_schema.cpp $(wml_schema_test_objects) -o test
clean:
rm -f *.o game
Da ich meine toolchain an nen anderen Ort installiert habe als im crosscompiler howto musst du diesen pfad wohl anpassen. Der Rest sollte so ziemlich klappen. Viel Glück/Spaß/Erfolg.