#
# $Id: Makefile,v 1.55 2000/10/03 07:41:56 malekith Exp $
#

SMALL = no
CPPFLAGS = -Ih

version=1.3.0
build=507

ifeq (${SMALL},yes)
d=-s
bin/%.o: %.c
	gcc ${CPPFLAGS} ${CFLAGS} ${small_flags} -DSMALL -S -c $< -o - | \
		grep -v '\.ident' | \
		grep -v '\.version' | \
		as -Qy - -o $@
else
d=-g
bin/%.o: %.c
	gcc ${CPPFLAGS} ${CFLAGS} -c $< -o $@
endif

CFLAGS = -W -Wall ${d} -Werror 
small_flags = -Os 
# -finline-functions -fstrict-aliasing

all: bin trash

small:
	make SMALL=yes clean all
	ls -l trash

bin:
	[ -d bin ] || mkdir bin

src=$(wildcard *.c)
obj=$(addprefix bin/,${src:.c=.o})

trash: ${obj} bin/version.o
	@ld ${d} -static ${obj} bin/version.o -o $@
	@rm -f bin/version.o

b:
	cvs -Q commit -m '.' 
	cvs -Q tag v$(subst .,-,${version})-${build}

clean:
	rm -rf bin trash core

bin/version.o:
	@echo -n "[2m- [0m--[1m> [34mupdating version file [0m... "
	@perl 	-e 'print qq{.globl xversion\n.globl xdate\n} ;' \
		-e 'print qq{.lc0: .string "${version} (${build})"\n} ;' \
		-e 'print qq{.lc1: .string "$$ARGV[0]"\n} ;' \
		-e 'print qq{xversion: .long .lc0\nxdate: .long .lc1\n} ;' \
			"`date '+%D @ %T'`" | as - -o bin/version.o
	@perl -p -i -e 'if(/^build=(\d+)/){$$v=$$1+1;s/build=(\d+)/build=$$v/}' \
		Makefile
	@echo "v[1;35m${version} (${build})[0m."

dist: b
	mkdir a
	cd a ; \
	cvs -Q get trash ; \
	mv trash trash-${version} ; \
	tar zcf ../trash-${version}.tar.gz trash-${version} 
	rm -rf a

tags: ${src}
	ctags *
