# Parallaxis Version: @(#)Makefile	2.19  11/2/92 11:28:17
CC = bsdcc -DBSD4_3 -Dunix
SDEBUG = -g
PAROPTION = -DSUN -DIBM  $(SDEBUG)
OPTIONS = -DSUN -DIBM -c $(SDEBUG)
ZIEL = pa

MAKEFILE = makefile

LINTOPT = -a

OBJ = parallax.o\
 parallex.o\
 fehler.o\
 makro.o\
 message.o\
 main.o\
 symboltabelle.o\
 listing.o\
 pass2.o\
 expr.o\
 stat.o\
 output.o\
 code_out.o\
 out_func.o\
 strings.o\
 calc.o\
 code.o \
 hilfsvar.o\
 param.o\
 standard.o\
 typ.o\
 texte.o\
 wb.o\
 keyword.o\
 st_funcs.o\
 st_procs.o\
 actions.o\
 first.o\
 conf.o\
 list.o\
 debug.o\
 scope.o\
 port.o\
 conn.o\
 color.o\
 crosscheck.o


SRC = parallax.c\
 parallex.c\
 fehler.c\
 makro.c\
 message.c\
 main.c\
 symboltabelle.c\
 listing.c\
 pass2.c\
 expr.c\
 stat.c\
 output.c\
 code_out.c\
 out_func.c\
 strings.c\
 calc.c\
 code.c \
 hilfsvar.c\
 param.c\
 standard.c\
 typ.c\
 texte.c\
 wb.c\
 keyword.c\
 st_funcs.c\
 st_procs.c\
 actions.c\
 first.c\
 conf.c\
 list.c\
 debug.c\
 scope.c\
 port.c\
 conn.c\
 color.c\
 crosscheck.c

# Debug-Version von parallaxis

$(ZIEL): $(OBJ);
	$(CC) $(OBJ) -lm -ll -o $(ZIEL)
	chmod 755 $(ZIEL)
	chmod +x $(ZIEL)


ALL: fehler.txt v2.y
	yacc -p/user/barth/para/yaccpar -vd v2.y
	mv y.tab.h y_tab.h
	mv y.tab.c y_tab.c

y_tab.h: v2.y
	yacc -p/user/barth/para/yaccpar -vd v2.y
	mv y.tab.h y_tab.h

fehler.txt: v2.y extract token change englisch stateno spezial
	yacc -p/user/barth/para/yaccpar -vd v2.y
	extract < y.tab.c > fehlergen.c
	token < y.tab.h > y.tok.h
	$(CC) fehlergen.c -o fehlergen
	fehlergen > fehler.txt
	/bin/rm y.tok.h y.tab.h y.tab.c fehlergen.c fehlergen
	change < fehler.txt > pafehler.txt
	englisch < pafehler.txt > paerror.txt
	stateno < paerror.txt > pa_error.h
	/bin/rm fehler.txt pafehler.txt paerror.txt

token: token.l
	lex -t token.l > token.c
	$(CC) token.c -ll -o token

extract: extract.l
	lex -t extract.l > extract.c
	$(CC) extract.c -ll -o extract
	
change: change.l
	lex -t change.l > change.c
	$(CC) change.c -ll -o change
	
englisch: englisch.l
	lex -t englisch.l > englisch.c
	$(CC) englisch.c -ll -o englisch
	
stateno: stateno.l
	lex -t stateno.l > stateno.c
	$(CC) stateno.c -ll -o stateno
	
adapt: adapt.l
	lex -t adapt.l > adapt.c
	$(CC) adapt.c -ll -o adapt

spezial: spezial.l
	lex -t spezial.l > spezial.c
	$(CC) spezial.c -ll -o spezial

y_tab.c: v2.y
	yacc -p/user/barth/para/yaccpar -v v2.y
	mv y.tab.c y_tab.c

parallax.c: y_tab.c adapt
	adapt <y_tab.c >parallax.c

parallex.c: v2.l;
	lex -t v2.l | sed -e s/\(int\)/\(long\)/g -e 's/# define YYLMAX 200/# define YYLMAX BUFSIZ/g' -e 's/tryagain:/if \(yywlastch \>= \&yywtext\[YYLMAX\]\) fatal\(text\[100\]\)\; tryagain:/' >parallex.c

# Dateien
actions.o: defines.h typen.h makro.h parallax.h symbols.h y_tab.h\
 fehler.h\
 actions.c;
	$(CC) $(OPTIONS) actions.c

calc.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 scope.h\
 calc.c;
	$(CC) $(OPTIONS) calc.c

code.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 code.c;
	$(CC) $(OPTIONS) code.c

code_out.o: outputx.h conf.h\
 defines.h parallax.h typen.h symbols.h makro.h y_tab.h hilfsvar.h code.h scope.h\
 fehler.h\
 code_out.c;
	$(CC) $(OPTIONS) code_out.c

out_func.o: outputx.h conf.h\
 defines.h parallax.h typen.h symbols.h makro.h y_tab.h hilfsvar.h code.h scope.h\
 fehler.h\
 out_func.c;
	$(CC) $(OPTIONS) out_func.c

conf.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 conf.c;
	$(CC) $(OPTIONS) conf.c

conn.o: defines.h makro2.h makro.h typen.h symbols.h y_tab.h conf.h\
 parallax.h\
 fehler.h\
 hilfsvar.h\
 code.h\
 conn.c;
	$(CC) $(OPTIONS) conn.c

debug.o: outputx.h\
 defines.h parallax.h typen.h symbols.h makro.h y_tab.h hilfsvar.h code.h scope.h\
 fehler.h\
 debug.c
	$(CC) $(OPTIONS) debug.c

expr.o: pass2x.h conf.h wb.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h scope.h\
 parallax.h\
 fehler.h\
 expr.c;
	$(CC) $(OPTIONS) expr.c

fehler.o: parallax.h defines.h\
 fehler.h\
 fehler.c;
	$(CC) $(OPTIONS) fehler.c

first.o: pass2.h procs.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 first.c;
	$(CC) $(OPTIONS) first.c

hilfsvar.o: defines.h pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 hilfsvar.c;
	$(CC) $(OPTIONS) hilfsvar.c

keyword.o: typen.h y_tab.h\
 keyword.c;
	$(CC) $(OPTIONS) keyword.c

list.o: outputx.h\
 defines.h parallax.h typen.h symbols.h makro.h y_tab.h hilfsvar.h code.h scope.h\
 fehler.h\
 list.c;
	$(CC) $(OPTIONS) list.c

listing.o: defines.h parallax.h\
 fehler.h\
 listing.c;
	$(CC) $(OPTIONS) listing.c

main.o: defines.h typen.h y_tab.h symbols.h makro2.h\
 parallax.h\
 fehler.h\
 main.c;
	$(CC) $(OPTIONS) main.c

makro.o: defines.h typen.h makro.h parallax.h symbols.h y_tab.h procs.h\
 fehler.h\
 makro.c;
	$(CC) $(OPTIONS) makro.c

message.o: defines.h parallax.h\
 fehler.h\
 message.c;
	$(CC) $(OPTIONS) message.c

output.o: defines.h parallax.h typen.h symbols.h makro.h y_tab.h hilfsvar.h code.h conf.h scope.h\
 fehler.h\
 output.c;
	$(CC) $(OPTIONS) output.c

parallax.o: defines.h typen.h makro.h parallax.h symbols.h conf.h procs.h\
 fehler.h\
 parallax.c;
	$(CC) $(OPTIONS) -DYYDEBUG parallax.c

color.o: defines.h typen.h makro.h parallax.h symbols.h conf.h procs.h\
 fehler.h\
 color.c;
	$(CC) $(OPTIONS) color.c

crosscheck.o: defines.h typen.h makro.h parallax.h symbols.h conf.h procs.h\
 fehler.h\
 crosscheck.c;
	$(CC) $(OPTIONS) crosscheck.c

parallex.o: defines.h typen.h y_tab.h parallax.h\
 fehler.h\
 parallex.c;
	$(CC) $(OPTIONS) parallex.c

param.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 param.c;
	$(CC) $(OPTIONS) param.c

pass2.o: defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h procs.h scope.h wb.h\
 parallax.h\
 fehler.h\
 pass2.c;
	$(CC) $(OPTIONS) pass2.c

port.o: pass2x.h conf.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h scope.h\
 parallax.h\
 fehler.h\
 port.c
	$(CC) $(OPTIONS) port.c

scope.o: outputx.h\
 defines.h parallax.h typen.h symbols.h makro.h y_tab.h hilfsvar.h code.h scope.h\
 fehler.h\
 scope.c
	$(CC) $(OPTIONS) scope.c

st_funcs.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 st_funcs.c;
	$(CC) $(OPTIONS) st_funcs.c

st_procs.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 st_procs.c;
	$(CC) $(OPTIONS) st_procs.c

standard.o: pass2.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 standard.c;
	$(CC) $(OPTIONS) standard.c

stat.o: pass2x.h conf.h wb.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h scope.h\
 parallax.h\
 fehler.h\
 stat.c;
	$(CC) $(OPTIONS) stat.c

strings.o: defines.h parallax.h typen.h symbols.h y_tab.h makro.h\
 fehler.h\
 strings.c;
	$(CC) $(OPTIONS) strings.c

symboltabelle.o: defines.h parallax.h symbols.h\
 fehler.h\
 symboltabelle.c;
	$(CC) $(OPTIONS) symboltabelle.c

texte.o: defines.h pa_error.h\
 texte.c;
	$(CC) $(OPTIONS) texte.c

typ.o: pass2.h scope.h\
 defines.h makro2.h makro.h typen.h symbols.h y_tab.h hilfsvar.h code.h conf.h\
 parallax.h\
 fehler.h\
 typ.c;
	$(CC) $(OPTIONS) typ.c

wb.o: defines.h typen.h y_tab.h parallax.h symbols.h\
 fehler.h\
 wb.c;
	$(CC) $(OPTIONS) wb.c

lint: $(SRC);
	lint$(LINTOPT)  $(OPTION) $(SRC) /usr/lib/lint/llib-lc.ln
