Skip to content

Instantly share code, notes, and snippets.

@CruzR
Created December 4, 2012 00:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CruzR/4199487 to your computer and use it in GitHub Desktop.
Save CruzR/4199487 to your computer and use it in GitHub Desktop.
Build script for TheLongestRoad
#!/bin/sh
# Instructions:
# -------------
# - Copy both buildjar.sh and startgame.sh into the game directory.
# - Execute buildjar.sh
# - Execute startgame.sh
USAGE="Usage:\n$0 <java_include_path>\n"
if [ $# -lt 1 ]; then
echo -e $USAGE
exit
fi
JAVA_INCLUDE=$1
JAVA_INCLUDE_LINUX=$JAVA_INCLUDE/linux
LIBRARY_DIR=$PWD/Libraries
LIBRARY_SRC_DIR="$LIBRARY_DIR/Native Code"
GAMEMATH_DIR="$LIBRARY_SRC_DIR/GameMath"
SQLITE_DIR="$LIBRARY_SRC_DIR/Sqlite"
# Compile java sources to class files
javac `find src -name '*.java'`
# Generate C header from class files
# Not sure whether that's really necessary
if [ -e include ]; then
rm -rf include
fi
mkdir include
javah -d include -classpath src `find src -name *.class | tr '/' '.' | sed 's/src.//' | sed 's/.class//'`
# Compile libGameMath.so
gcc -Wall -I include -I $JAVA_INCLUDE -I $JAVA_INCLUDE_LINUX -shared \
"$GAMEMATH_DIR/GameMath.c" -o $LIBRARY_DIR/libGameMath.so
# Add missing include to Sqlite.cpp
mv "$SQLITE_DIR/Sqlite.cpp" "$SQLITE_DIR/Sqlite.cpp.old"
echo "#include <string.h>" | cat - "$SQLITE_DIR/Sqlite.cpp.old" > "$SQLITE_DIR/Sqlite.cpp"
# Compile libSqlite.so
gcc -Wall -I include -I $JAVA_INCLUDE -I $JAVA_INCLUDE_LINUX -shared \
"$SQLITE_DIR/shell.c" "$SQLITE_DIR/sqlite3.c" "$SQLITE_DIR/Sqlite.cpp" \
-o $LIBRARY_DIR/libSqlite.so
# Restore old Sqlite.cpp
mv "$SQLITE_DIR/Sqlite.cpp.old" "$SQLITE_DIR/Sqlite.cpp"
# Package jar
cd src
jar cfe ../TheLongestRoad.jar Core.Launcher .
cd ..
#!/bin/sh
LD_LIBRARY_PATH=$PWD/Libraries
java -jar TheLongestRoad.jar
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment