#
# This file can be redistributed and used under GNU Library General Public
# License. (c) 2000 Micha Moskal <malekith@topnet.pl>. 
# $Id: make-0,v 1.15 2001/01/06 16:47:15 malekith Exp $
#

ifeq (${top},)
top = ..
endif

ifeq (${target:.a=.blah},${target})

# exe
libs = obj/version.o ${top}/v/obj/libv.a ${top}/vdb/obj/libvdb.a
lib = no

else

# lib
lib = yes

endif

CFLAGS := -W -Wall -g -Werror
CXXFLAGS := ${CFLAGS}
CPPFLAGS := -I${top} -I${top}/vdb ${defs}
cc_src := $(wildcard *.cc) ${add_cc_src}
c_src := $(wildcard *.c) ${add_c_src}
src := ${cc_src} ${c_src}
obj := 	$(addprefix obj/, ${cc_src:.cc=.o}) \
	$(addprefix obj/, ${c_src:.c=.o}) ${libs}

.PHONY: clean all b

all: ${preall} ${target} ${postall}

obj:
	[ -d obj ] || mkdir obj

obj/%.o: %.c
	gcc ${CFLAGS} ${CPPFLAGS} -o $@ -c $< 

obj/%.o: %.cc
	g++ ${CXXFLAGS} ${CPPFLAGS} -o $@ -c $< 


clean:
	rm -f ${obj} ${target} core .dep

tags: ${src}
	ctags $^

b:
	${MAKE} -C ${top} b


version := $(shell perl \
	-e 'while (<>) { /^build=(\d+)/ and $$b = $$1;' \
	-e '/^version=(\d+\.\d+)/ and $$v = $$1; }' \
	-e 'print "$$v.$$b"' ${top}/Makefile)

obj/version.o:
	@echo -n "[2m- [0m--[1m> [34mupdating version file [0m... "
	@(\
		echo '.globl     v_version' ; \
		echo '.globl     v_date' ; \
		echo '.lc0:      .string "${version}"' ; \
		echo '.lc1:      .string "' "`date '+%D @ %T'`" '"' ; \
		echo 'v_version: .long   .lc0' ; \
		echo 'v_date:    .long   .lc1' ) | as - -o obj/version.o
	@echo "v[1;35m${version}[0m."

#.dep:
#	g++ ${CPPFLAGS} -M ${src} > .dep
#
#include .dep

ifeq (${lib},yes)

${target}: obj ${obj}
	rm -f ${target}
	ar rcs ${target} ${obj}

else

${target}: obj ${libs} ${obj} 
	g++ ${CFLAGS} -o ${target} ${obj} ${spec_libs}
	@rm -f obj/version.o

.PHONY: ${libs}
${top}/v/obj/libv.a:
	${MAKE} -C ${top}/v

${top}/vdb/obj/libvdb.a:
	${MAKE} -C ${top}/vdb

endif
