# 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 ===

srcdir=		@srcdir@
VPATH=		@srcdir@

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

DEFS=		@DEFS@
LIBOBJS=	@LIBOBJS@
LIBS=		@LIBS@
DLINCLDIR=	@DLINCLDIR@


# === 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 ===

OBJS=		\
		bltinmodule.o \
		ceval.o cgensupport.o compile.o \
		errors.o \
		getargs.o getmtime.o graminit.o \
		import.o importdl.o \
		marshal.o modsupport.o mystrtoul.o \
		pythonmain.o pythonrun.o \
		sigcheck.o structmember.o sysmodule.o \
		traceback.o \
		$(LIBOBJS)

LIB=		libPython.a

SYSLIBS=	-lm


# === Rules ===

all:		$(LIB)

$(LIB):		$& $(OBJS)
		-rm -f $(LIB)
		$(AR) cr $(LIB) $(OBJS)
		$(RANLIB) $(LIB)

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

clobber:	clean
		-rm -f *.a tags TAGS

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

importdl.o:	importdl.c
		$(CC) $(CFLAGS) -I$(DLINCLDIR) -c $(srcdir)/importdl.c

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

.PRECIOUS:	Makefile

bltinmodule.o: bltinmodule.c
ceval.o: ceval.c
cgensupport.o: cgensupport.c
compile.o: compile.c
dup2.o: dup2.c
errors.o: errors.c
fmod.o: fmod.c
frozenmain.o: frozenmain.c
getargs.o: getargs.c
getcwd.o: getcwd.c
getmtime.o: getmtime.c
getopt.o: getopt.c
graminit.o: graminit.c
import.o: import.c
importdl.o: importdl.c
marshal.o: marshal.c
memmove.o: memmove.c
modsupport.o: modsupport.c
mystrtoul.o: mystrtoul.c
pythonmain.o: pythonmain.c
pythonrun.o: pythonrun.c
sigcheck.o: sigcheck.c
strerror.o: strerror.c
strtod.o: strtod.c
structmember.o: structmember.c
sysmodule.o: sysmodule.c
thread.o: thread.c
traceback.o: traceback.c
version.o: version.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
