PYDIST=	/var/src/Python-1.3
PROGS=	da.py om.py freeze.py
EXECS=	$(PROGS:.py=)

#FREEZE= ./freeze
FREEZE= freeze.py
FROPT=	-O
#FROPT=

P_DA=	da.py decode.py
P_OM=	ltup.py magic.py om.py opcode.py optimize.py
P_FREEZE=\
	checkextensions.py \
	findmodules.py \
	freeze.py \
	makeconfig.py \
	makefreeze.py \
	makemakefile.py \
	parsesetup.py
P_TEST= hello.py optimtest.py
P_SRCS=	$(P_DA) $(P_OM) $(P_FREEZE) $(P_TEST)


all: $(EXECS)

clean:
	rm -rf *.tmp *.pyc *.pyo
clobber: clean
	rm -f $(EXECS) *-O *-noO *.d[co]

freeze: freeze.tmp $(P_FREEZE) $(P_OM)
	# Use python; 'freeze' may not be there yet
	python freeze.py $(FROPT) -mt $@.tmp $@.py

da: da-O
	ln da-O da
da-O: da-O.tmp $(P_DA) $(FREEZE)
	$(FREEZE) -O -mt $@.tmp da.py
	mv da $@
da-noO: da-noO.tmp $(P_DA) $(FREEZE)
	mv da $@
	$(FREEZE) -mt $@-noO.tmp da.py

om: om.tmp $(P_OM) $(FREEZE)
	$(FREEZE) $(FROPT) -mt $@.tmp $@.py

# Creating the directories ourselves instead of letting 'freeze' do it
# has the advantage that it won't delete them either.
# Use 'make clean' for that
da-O.tmp:
	mkdir da-O.tmp
da-noO.tmp:
	mkdir da-noO.tmp
om.tmp: om-O.tmp
	# Why a -f flag!?
	ln -fs $@ $<
om-O.tmp:
	mkdir om-O.tmp
om-noO.tmp:
	mkdir om-noO.tmp
freeze.tmp:
	mkdir freeze.tmp


testtest: optimtest.py
	python -c 'import optimtest'
	da.py optimtest.pyc > optimtest.dc
	om.py -vv optimtest.pyc
	da.py optimtest.pyo > optimtest.do

	#
	#	Real Garbage & Experimental Stuff
	#
om-noO: $(P_OM) $(FREEZE)
	$(FREEZE) -mt $@.tmp om.py && mv om $@
om-O: $(P_OM) $(FREEZE)
	$(FREEZE) -O -mt $@.tmp om.py && mv om $@
om--: om-noO om-O


P_XXCI=	$(PYDIST)/Tools/scripts/xxci.py
xxci-noO: $(P_XXCI) $(FREEZE)
	$(FREEZE) -mt $@.tmp $(P_XXCI) && mv xxci $@
xxci-O: $(P_XXCI) $(FREEZE)
	$(FREEZE) -O -mt $@.tmp $(P_XXCI) && mv xxci $@
xxci--: xxci-noO xxci-O



P_PST=	$(PYDIST)/Tools/scripts/pystone.py
pystone-noO: $(P_PST) $(FREEZE)
	$(FREEZE) -mt $@.tmp $(P_PST) && mv pystone $@
pystone-O: $(P_PST) $(FREEZE)
	$(FREEZE) -O -mt $@.tmp $(P_PST) && mv pystone $@
pystone--: pystone-noO pystone-O
