# NOTE: Makefile.in is converted into Makefile by the configure script
# in the parent directory.  Once configure has run, you can recreate
# the Makefile by running just config.status.

# === Variables set by config.stat ===

VERSION=	@VERSION@

srcdir=		@srcdir@
VPATH=		@srcdir@

CC=		@CC@
RANLIB=		@RANLIB@
AR=		@AR@

DEFS=		@DEFS@
LIBS=		@LIBS@


# === Other things that are customizable but not by configure ===

INCLDIR=	$(srcdir)/../Include
OPT=		@OPT@
CFLAGS=		$(OPT) -I$(INCLDIR) -I.. $(DEFS)

MKDEP=		mkdep
SHELL=		/bin/sh


# === Fixed definitions ===

POBJS=		acceler.o grammar1.o \
		listnode.o node.o parser.o \
		parsetok.o tokenizer.o bitset.o \
		metagrammar.o

AROBJS=		$(POBJS) myreadline.o
OBJS=		$(AROBJS) intrcheck.o

SHOBJS=		$(OBJS:%.o=%.pic_o)

PGENMAIN=	pgenmain.o

PGOBJS=		firstsets.o grammar.o pgen.o printgrammar.o

PGENOBJS=	$(PGENMAIN) $(POBJS) $(PGOBJS)

DOBJS=		$(PGENMAIN) $(OBJS) $(PGOBJS)

PGEN=		pgen

LIBRARY=	../libpython$(VERSION).a

# === Rules ===

all:		$(PGEN) $(OBJS)

# This target is used by the master Makefile to add the objects to the library
add2lib:	$(OBJS)
		$(AR) cr $(LIBRARY) $(AROBJS)
		if test ! -f ../Modules/hassignal; \
		then echo adding intrcheck.o; $(AR) r $(LIBRARY) intrcheck.o; \
		else echo leaving intrcheck.o out; fi
		touch add2lib

add2shlib:	$(SHOBJS)
		cp -f $(SHOBJS) ../shobjs/.
		touch add2shlib

$(PGEN):	$(PGENOBJS)
		$(CC) $(OPT) $(PGENOBJS) $(LIBS) -o $(PGEN)

clean:
		-rm -f *.o core *~ [@,#]* *.old *.orig *.rej add2lib \
			*.pic_o add2shlib

clobber:	clean
		-rm -f $(PGEN) *.a tags TAGS

Makefile:	$(srcdir)/Makefile.in ../config.status
		(cd ..; CONFIG_FILES=Parser/Makefile CONFIG_HEADERS= \
		$(SHELL) config.status)

depend:
		$(MKDEP) $(CFLAGS) `echo $(DOBJS) | tr ' ' '\012' | \
					sed 's|\(.*\)\.o|$(srcdir)/\1.c|'`

.SUFFIXES:	.pic_o

%.pic_o:	%.c
		$(CC) -c $(CFLAGS) $(CPPFLAGS) -fPIC -o $@ $<

.PRECIOUS:	Makefile

acceler.o: acceler.c
grammar1.o: grammar1.c
intrcheck.o: intrcheck.c
listnode.o: listnode.c
myreadline.o: myreadline.c
node.o: node.c
parser.o: parser.c
parsetok.o: parsetok.c
tokenizer.o: tokenizer.c
bitset.o: bitset.c
firstsets.o: firstsets.c
grammar.o: grammar.c
metagrammar.o: metagrammar.c
pgen.o: pgen.c
printgrammar.o: printgrammar.c
pgenmain.o: pgenmain.c

# DO NOT DELETE THIS LINE -- mkdep uses it.
# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
