### Configuration.

CC = gcc
AR = ar
RANLIB = ranlib

CFLAGS = -Wall -Werror -g
LDFLAGS = -L. -L.. -L../libpavs -L../librcs -L../librev

PA_OBJS = checkout.o cmds.o diff.o error.o log.o pa.o

OBJS = $(PA_OBJS)




### Internals

INCLUDES = -I. -I..
LIBS = -lpavs -lrcs -lrev

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

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




### Normal build rules

all:	pa


pa:	$(PA_OBJS) ../librev/librev.a ../librcs/librcs.a ../libpavs/libpavs.a
	$(CC) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(PA_OBJS) $(LIBS)


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




### 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) $@
