all:
	sh -c 'rm prog;true'
	make xo link
build:clean all
run:all
	./prog
exec: 
	sh -c "if [ ! -x prog ]; then exec make bulid;fi"
	./prog
dbx:
	sh -c "if [ ! -x prog ]; then exec make build;fi"
	dbx prog
gcc:
	echo making gcc
	gcc -fno-asm -ggdb3 *.c -o prog
cc:
	cc -g *.c -o prog
gdb:
	touch core
	rm core
	sh -c "if [ ! -x prog ]; then exec make;fi"
	gdb --se=prog
link:
	cc *.o -o prog
obj: 
	sh -c 'GCC=`which gcc`;if [ -x "$$GCC" ]; then gcc -c -ggdb3 -fno-asm *.c; else cc -c -g *.c;fi'
xo: 
	sh -c 'GCC=`which gcc`;if [ -x "$$GCC" ]; then CCC="gcc -c -ggdb3 -fno-asm"; else CCC="cc -c -g";fi;for ff in *.c; do fn=`basename $$ff .c`.o;fn=`ls -t $$ff $$fn *.h 2>/dev/null|head -1`; if [ "$$fn" != `basename $$ff .c`.o ]; then echo Compiling $$ff;rm `basename $$ff .c`.o 2>/dev/null;$$CCC $$ff;else echo $$ff not changed;fi;done' 
clean:
	touch core
	sh -c 'rm `ls|grep -v -e .[ch]|grep -v Makefile` *.o;true'
rmi:
	sh -c 'rm -i `ls|grep -v -e .[ch]|grep -v Makefile` *.o;true'
tgz:
	make rmi
	sh -c 'WORKDIR=`pwd`;WORKDIR=`basename $$WORKDIR`;cd ..;ls;read TGZNAME;export TGZNAME;tar -cf- $$WORKDIR|gzip -c -9 >$$TGZNAME;gzip -c -d $$TGZNAME|tar -tf-'
			
