EXECS=\
	valid32 \
	valid64-MMX \
	valid64-K6-2 \
	valid64-HP \
	valid64-Athlon \
	valid128-AltiVec

CC=/usr/bin/gcc
#CC=/opt/bin/gcc

OBJ=
CFLAGS=
AFLAGS=
#SCCFLAGS= --fe-bvt
SCCFLAGS=

all: $(EXECS)


## valid32 ####################################################################
valid32: valid32.s
	$(CC) -Wall -o valid32 valid32.s

valid32.s: valid32.i
	$(CC) -S -o valid32.s valid32.i

valid32.i: valid32.c valid32.h
	$(CC) -E -o valid32.i valid32.c

valid32.c: valid32.Si
	../../Scc ${SCCFLAGS} --no-fe-cofold --no-be-cofold --no-be-peep -Sc -k -oc valid32.c -oh valid32.h -O0 -irr -mIA32 valid32.Si > valid32.tree 2>&1

valid32.Si: valid32.Sc
	../../Scc ${SCCFLAGS} -k -E valid32.Sc


## valid64-MMX ################################################################
valid64-MMX: valid64-MMX.s
	$(CC) -Wall -o valid64-MMX valid64-MMX.s

valid64-MMX.s: valid64-MMX.i
	$(CC) -S -o valid64-MMX.s valid64-MMX.i

valid64-MMX.i: valid64-MMX.c valid64-MMX.h
	$(CC) -E -o valid64-MMX.i valid64-MMX.c

valid64-MMX.c: valid64.Si
	../../Scc ${SCCFLAGS} --no-fe-cofold --no-be-cofold --no-be-peep -Sc -k -oc valid64-MMX.c -oh valid64-MMX.h -O0 -irr -mMMX valid64.Si > valid64-MMX.tree 2>&1

valid64.Si: valid64.Sc
	../../Scc ${SCCFLAGS} -k -E valid64.Sc



## valid64-K6-2 ################################################################
valid64-K6-2: valid64-K6-2.s
	$(CC) -Wall -o valid64-K6-2 valid64-K6-2.s

valid64-K6-2.s: valid64-K6-2.i
	$(CC) -S -o valid64-K6-2.s valid64-K6-2.i

valid64-K6-2.i: valid64-K6-2.c valid64-K6-2.h
	$(CC) -E -o valid64-K6-2.i valid64-K6-2.c

valid64-K6-2.c: valid64.Si
	../../Scc ${SCCFLAGS} --no-fe-cofold --no-be-cofold --no-be-peep -Sc -k -oc valid64-K6-2.c -oh valid64-K6-2.h -O0 -irr -mK6-2 valid64.Si > valid64-K6-2.tree 2>&1



## valid64-HP #################################################################
valid64-HP: valid64-HP.s
	$(CC) -Wall -o valid64-HP valid64-HP.s

valid64-HP.s: valid64-HP.i
	$(CC) -S -o valid64-HP.s valid64-HP.i

valid64-HP.i: valid64-HP.c valid64-HP.h
	$(CC) -E -o valid64-HP.i valid64-HP.c

valid64-HP.c: valid64.Si
	../../Scc ${SCCFLAGS} -v -W -W -mPA-RISC2 --no-fe-cofold --no-be-cofold --no-be-peep -Sc -k -oc valid64-HP.c -oh valid64-HP.h -O0 -irr valid64.Si > valid64-HP.tree 2>&1



## valid64-Athlon #############################################################
valid64-Athlon: valid64-Athlon.s
	$(CC) -Wall -o valid64-Athlon valid64-Athlon.s

valid64-Athlon.s: valid64-Athlon.i
	$(CC) -S -o valid64-Athlon.s valid64-Athlon.i

valid64-Athlon.i: valid64-Athlon.c valid64-Athlon.h
	$(CC) -E -o valid64-Athlon.i valid64-Athlon.c

valid64-Athlon.c: valid64.Si
	../../Scc ${SCCFLAGS} -v -W -W -mAthlon --no-fe-cofold --no-be-cofold --no-be-peep -Sc -k -oc valid64-Athlon.c -oh valid64-Athlon.h -O0 -irr valid64.Si > valid64-Athlon.tree 2>&1



## valid128-AltiVec ############################################################
valid128-AltiVec: valid128-AltiVec.s
	/usr/local/bin/as -m7400 -o valid128-AltiVec.o valid128-AltiVec.s 2>make.err
	$(CC) -Wall -o valid128-AltiVec valid128-AltiVec.o ../../Libstdswar/libstdswar.a 2>make.err

valid128-AltiVec.s: valid128-AltiVec.i
	$(CC) -S -o valid128-AltiVec.s valid128-AltiVec.i
	#$(CC) -Wall -S -o valid128-AltiVec.s valid128-AltiVec.i

valid128-AltiVec.i: valid128-AltiVec.c valid128-AltiVec.h
	$(CC) -Wall -E -o valid128-AltiVec.i valid128-AltiVec.c

valid128-AltiVec.c: valid128.Si
	../../Scc ${SCCFLAGS} -v -W -W -mAltiVec --no-fe-cofold --no-be-cofold --no-be-peep -Sc -k -oc valid128-AltiVec.c -oh valid128-AltiVec.h -O0 -irr valid128.Si > valid128-AltiVec.tree 2>&1

valid128.Si: valid128.Sc
	../../Scc ${SCCFLAGS} -k -E valid128.Sc



###############################################################################
clean:
	rm -f Scout.c Scout.h
	rm -f *.Si
	rm -f *.c
	rm -f *.h
	rm -f *.i
	rm -f *.s
	rm -f *.o
	rm -f *.tree
	rm -f *.err
	rm -f core

distclean: clean
	rm -f $(EXECS)

