#!/bin/sh # # The purpose of this script is to step in if no version of the "redo" build # system is installed on your system to interpret the files that (Makefile-like) # build the PlomRogue system: ./all.do, ./roguelike-client.do and # ./roguelike-server.do. # # If a version of "redo" is installed on your system and in your $PATH, just run # "redo roguelike-client", "redo roguelike-server" or plain "redo" (to build # both via all.do). Otherwise, run this very script with the very same # arguments. It uses parts of a basic "redo" implementation written by Nils # Dagsson Moskopp a.k.a. erlehmann, snapshots of which are stored in # build/redo_scripts/. For details on this version, see: # - # - # Some tests first: for gcc, and certain necessary header files. (This is not # strictly the responsibility of a mere redo wrapper. But those using a # pre-installed redo probably will be fine with the error messages thrown by it # if these miss.) test=`command -v gcc | wc -l` if [ 1 != $test ] then echo "FAILURE:" echo "No gcc installed, but it's needed!" exit 1 fi test_header() { code="#include <$1>" test=`echo $code | cpp -H -o /dev/null 2>&1 | head -n1 | grep error | wc -l` if [ 0 != $test ] then echo "FAILURE:" echo "No $1 header file found, but it's needed!" echo "Maybe install some $2 package?" exit 1 fi } test_header stdlib.h libc6-dev # Assume stdlib.h guarantees full libc6-dev. test_header ncurses.h libncurses5-dev # The actual redo calling. export PATH=$PATH:$PWD/build/redo_scripts redo "$@"