Skip to content

Commit

Permalink
compile static linking
Browse files Browse the repository at this point in the history
  • Loading branch information
martinohanlon committed Dec 6, 2016
1 parent 4c2fb9d commit f107469
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 6 deletions.
89 changes: 89 additions & 0 deletions Makefilestatic
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
CPP = g++
CC = gcc
RES =
OBJ = allegro_compatibility.o battle_sequence.o collision.o command.o game_mgr.o intro_sequence.o player_input.o mapping_key.o mapping_joy.o menuhandler.o Mayhem2.o option.o physics.o platform_data.o player_info.o player_view.o soundfx.o ticktimer.o utils.o vaisseau_data.o vaisseau_gfx.o xc.o $(RES)
LINKOBJ = allegro_compatibility.o battle_sequence.o collision.o command.o game_mgr.o intro_sequence.o player_input.o mapping_key.o mapping_joy.o menuhandler.o Mayhem2.o option.o physics.o platform_data.o player_info.o player_view.o soundfx.o ticktimer.o utils.o vaisseau_data.o vaisseau_gfx.o xc.o $(RES)
#LIBS = -lallegro -lallegro_audio -lallegro_image -lallegro_primitives -lallegro_font -lallegro_ttf -lallegro_acodec
LIBS = -L"/opt/vc/lib" -lGLESv2 -lEGL -lbcm_host `pkg-config --cflags --libs --static allegro-static-5 allegro_audio-static-5 allegro_font-static-5 allegro_image-static-5 allegro_primitives-static-5 allegro_ttf-static-5 allegro_acodec-static-5`
INCS =
BIN = "mayhem2-pi"
CXXINCS= -O0 -g -Werror -Wno-write-strings -Wno-deprecated-declarations -I"/opt/vc/lib"
INCS= -O0 -g -Werror -Wno-write-strings -Wno-deprecated-declarations
CXXFLAGS = -std=c++11 $(CXXINCS)
CFLAGS = $(INCS)

.PHONY: all all-before all-after clean clean-custom

all: all-before "mayhem2-pi" all-after

clean: clean-custom
rm -f $(OBJ) $(BIN)

$(BIN): $(OBJ)
$(CPP) $(LINKOBJ) -o "mayhem2-pi" $(LIBS)

allegro_compatibility.o: allegro_compatibility.cpp
$(CPP) -c allegro_compatibility.cpp -o allegro_compatibility.o $(CXXFLAGS)

battle_sequence.o: battle_sequence.cpp
$(CPP) -c battle_sequence.cpp -o battle_sequence.o $(CXXFLAGS)

collision.o: collision.cpp
$(CPP) -c collision.cpp -o collision.o $(CXXFLAGS)

command.o: command.cpp
$(CPP) -c command.cpp -o command.o $(CXXFLAGS)

game_mgr.o: game_mgr.cpp
$(CPP) -c game_mgr.cpp -o game_mgr.o $(CXXFLAGS)

intro_sequence.o: intro_sequence.cpp
$(CPP) -c intro_sequence.cpp -o intro_sequence.o $(CXXFLAGS)

player_input.o: player_input.cpp
$(CPP) -c player_input.cpp -o player_input.o $(CXXFLAGS)

mapping_key.o: mapping_key.cpp
$(CPP) -c mapping_key.cpp -o mapping_key.o $(CXXFLAGS)

mapping_joy.o: mapping_joy.cpp
$(CPP) -c mapping_joy.cpp -o mapping_joy.o $(CXXFLAGS)

menuhandler.o: menuhandler.cpp
$(CPP) -c menuhandler.cpp -o menuhandler.o $(CXXFLAGS)

Mayhem2.o: Mayhem2.cpp
$(CPP) -c Mayhem2.cpp -o Mayhem2.o $(CXXFLAGS)

option.o: option.cpp
$(CPP) -c option.cpp -o option.o $(CXXFLAGS)

physics.o: physics.cpp
$(CPP) -c physics.cpp -o physics.o $(CXXFLAGS)

platform_data.o: platform_data.cpp
$(CPP) -c platform_data.cpp -o platform_data.o $(CXXFLAGS)

player_info.o: player_info.cpp
$(CPP) -c player_info.cpp -o player_info.o $(CXXFLAGS)

player_view.o: player_view.cpp
$(CPP) -c player_view.cpp -o player_view.o $(CXXFLAGS)

soundfx.o: soundfx.cpp
$(CPP) -c soundfx.cpp -o soundfx.o $(CXXFLAGS)

ticktimer.o: ticktimer.cpp
$(CPP) -c ticktimer.cpp -o ticktimer.o $(CXXFLAGS)

utils.o: utils.cpp
$(CPP) -c utils.cpp -o utils.o $(CXXFLAGS)

vaisseau_data.o: vaisseau_data.cpp
$(CPP) -c vaisseau_data.cpp -o vaisseau_data.o $(CXXFLAGS)

vaisseau_gfx.o: vaisseau_gfx.cpp
$(CPP) -c vaisseau_gfx.cpp -o vaisseau_gfx.o $(CXXFLAGS)

xc.o: xc.cpp
$(CPP) -c xc.cpp -o xc.o $(CXXFLAGS)
22 changes: 18 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,11 @@ sudo raspi-config

##Install

You will need to download the game and compile [allegro 5](https://http://liballeg.org/) - this will take a while, particularly on a Pi 0/1.
You will need to download the game and install libdumb1 dependency

```
sudo apt-get install libdumb1
git clone -b allegro5 https://github.com/martinohanlon/mayhem-pi
cd mayhem-pi
./compile_allegro5.sh
```

##Run
Expand All @@ -96,19 +95,34 @@ cd mayhem-pi

##Compile

Compiling Mayhem2 will need [allegro 5](https://http://liballeg.org/) to be compiled and installed - this will take a while, particularly on a Pi 0/1.

```
cd mayhem-pi
./compile_allegro5
```

To compile Mayhem2.

```
make
```

To compile Mayhem2 to distribute, including static linking to the allegro libraries.

```
make clean
make -f Makefilestatic
```

## RetroPie

To install Mayhem to the 'ports' section of RetroPie:

```
cd /home/pi/RetroPie/roms/ports
sudo apt-get install libdumb1
git clone -b allegro5 https://github.com/martinohanlon/mayhem-pi
./compile_allegro5.sh
```

##Version history
Expand Down
7 changes: 5 additions & 2 deletions compile_allegro5.sh → compile_allegro5
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
sudo apt-get update
sudo apt-get --assume-yes install build-essential git cmake cmake-curses-gui xorg-dev libgl1-mesa-dev libglu-dev libpng-dev libcurl4-nss-dev libfreetype6-dev libjpeg-dev libvorbis-dev libopenal-dev libphysfs-dev libgtk2.0-dev libpulse-dev libflac-dev libdumb1-dev
sudo apt-get --assume-yes install build-essential git cmake cmake-curses-gui xorg-dev libgl1-mesa-dev libglu-dev libpng-dev libcurl4-nss-dev libfreetype6-dev libjpeg-dev libvorbis-dev libopenal-dev libphysfs-dev libgtk2.0-dev libpulse-dev libflac-dev libdumb1-dev
cd ~
git clone https://github.com/liballeg/allegro5.git
cd ~/allegro5
git checkout 5.2.1
mkdir ~/allegro5/build
cd ~/allegro5/build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-raspberrypi.cmake
#just shared libraries
#cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-raspberrypi.cmake
#including static libraries
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-raspberrypi.cmake -DGRADE_DEBUG=on -DSHARED=off -DSTATIC=on
make
sudo make install
export PKG_CONFIG_PATH=/home/pi/allegro5/build/lib/pkgconfig
Expand Down
Binary file modified mayhem2-pi
Binary file not shown.

0 comments on commit f107469

Please sign in to comment.