### Configuration.

CC = gcc
AR = ar
RANLIB = ranlib

CFLAGS = -Wall -Werror -g

LIBREV_OBJS = branch.o dataobj.o datetime.o delta.o inode.o symbol.o revision.o
LIBREVX_OBJS = data_text.o unidiff.o

OBJS = $(LIBREV_OBJS) $(LIBREVX_OBJS)




### Internals

INCLUDES = -I. -I..

COMPILE = $(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)

DEP_FILES_1 = $(foreach obj,$(OBJS),.deps/$(obj))
DEP_FILES = $(DEP_FILES_1:%.o=%.P)




### Normal build rules

all:	librev

librev:	librev.a

librev.a:	$(OBJS)


clean:
	rm -rf .deps core $(OBJS) librev.a




### Internal build rules

DEPS_MAGIC := $(shell mkdir .deps > /dev/null 2>&1 || :)

-include $(DEP_FILES)

%.o: %.c
	@echo '$(COMPILE) -c $<'; \
		$(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
	@-cp .deps/$(*F).pp .deps/$(*F).P; \
		tr ' ' '\012' < .deps/$(*F).pp \
		| sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
		>> .deps/$(*F).P; \
	rm .deps/$(*F).pp

%.a:
	rm -f $@
	$(AR) cru $@ $^
	$(RANLIB) $@
