#!/bin/bash
# ----------------------------------------------------------------------
# Datei build fuer praedikate10
# ----------------------------------------------------------------------
set -e # exit wenn einfacher Befehl sich fehlerhaft beendet
#set -x # Befehle ausgeben nach Expansion und vor Ausfuehrung
echo -----------------------------------------------------------------
# Einige Variablen initialisieren (zur Verbesserung der Lesbarkeit):
GENTLE=$CB_GENTLE/gentle/gentle      # Der gentle-Compiler
GRTS=$CB_GENTLE/gentle/grts.o        # Das gentle runtime system
REFLEX=$CB_GENTLE/reflex/reflex.exe  # Das Hilfsprogramm reflex
LIB=$CB_GENTLE/lib                   # Fuer main.o, errmsg.o etc.
CC=gcc                               # Ein C-Compiler

# Die Werte einiger Variablen sind abhaengig vom Betriebssystem:
if   [ $OSTYPE = cygwin ]; then
   echo Wir sind in einem cygwin-Fenster unter Windows:
   LEX=flex        
   YACC=bison     
   TABC=gen.tab.c  
elif [ $OSTYPE = linux ]; then
   echo Wir sind unter Linux:
   LEX=lex        
   YACC=yacc     
   TABC=y.tab.c   
else
   # Fehlermeldung ausgeben und abbrechen:
   echo ------------------------------------------------------------
   echo Bekannte Werte der Variablen OSTYPE: cygwin und linux
   echo OSTYPE hat aber den Wert $OSTYPE
   echo Deshalb wird dieses Skript build beendet!
   echo ------------------------------------------------------------
fi
echo -----------------------------------------------------------------
echo Gentle-Compiler, reflex, Lexer-Generator und Parser-Generator:
$GENTLE praedikate10.g # erzeuge praedikate10.c, gen.h, gen.y, gen.lit, gen.tkn
$REFLEX GanzLit=ilit_ada.t               # erzeuge gen.l
$LEX    gen.l          # erzeuge lex.yy.c
$YACC   gen.y          # erzeuge y.tab.c bzw. gen.tab.c
echo -----------------------------------------------------------------
echo Die ausfuehrbare Datei praedikate10 bzw. praedikate10.exe erzeugen:
$CC -o  praedikate10 \
   praedikate10.c    \
   lex.yy.c          \
   $TABC             \
   $LIB/errmsg.o     \
   $LIB/text_io.o    \
   $LIB/main1.o      \
   $GRTS
echo -----------------------------------------------------------------
echo Das Programm praedikate10 bzw. praedikate10.exe im aktuellen
echo Arbeitsverzeichnis ./ ausfuehren lassen:
echo -----------------------------------------------------------------
./praedikate10 " 3 3 3 3 -1 -3 -3 -3 -3 -3 ; -1 -3 3 -1 ;"
echo -----------------------------------------------------------------
