# 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 \
		frozenmain.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
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
