#
# Makefile for AEC.
# Copyright (C) 1990, James R. Larus (larus@cs.wisc.edu)
#
#
# AE and AEC are free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 1, or (at your option) any
# later version.
#
# AE and AEC are distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU CC; see the file COPYING.  If not, write to James R.
# Larus, Computer Sciences Department, University of Wisconsin--Madison,
# 1210 West Dayton Street, Madison, WI 53706, USA or to the Free
# Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
#

# Set this variable to the path to aec-file-{prologue,epilogue}:

LIB_PATH = \"`pwd`/\"
#LIB_PATH = \"/var/scratch/AE/lib.MIPS/\"


# The directories search for include files must include: the current
# directory, the directory containing gcc, and gcc's config
# subdirectory.

IFLAGS = -I. -I../gcc -I../gcc/config
CFLAGS = -g $(IFLAGS)
YFLAGS = -d

# If you have flex, use it instead of lex.  If you use flex, define this
# variable and set LEXFLAGS.

MYLEX = flex
LEXFLAGS = -DFLEX_SCANNER	# if using flex (not lex)

# If you use lex, set the variables this way:

#MYLEX = lex
#LEXFLAGS =

LDFLAGS =


aec:	y.tab.o lex.yy.o aec.o
	$(CC) $(CFLAGS) aec.o y.tab.o lex.yy.o -o aec $(LDFLAGS)


aec.o:	aec.c
	$(CC) $(CFLAGS) -DLIBRARY_PATH=$(LIB_PATH) -c aec.c


aec.c:	aec.h


y.tab.h: parser.y
	yacc $(YFLAGS) parser.y


y.tab.c: parser.y
	yacc $(YFLAGS) parser.y


lex.yy.c: scanner.l y.tab.h schema.h
	/lib/cpp -P $(LEXFLAGS) scanner.l | $(MYLEX) $(LFLAGS)


# Optimization speeds up the scanner, so use the -O flag.

lex.yy.o: lex.yy.c
	$(CC) $(IFLAGS) -O -c lex.yy.c


TAGS:
	etags *.c *.h *.l *.y


clean:
	rm -f aec *.o y.tab.h y.tab.c lex.yy.c core a.out ae.out
