# Makefile

TARGETS:=uphpmvault

uphpmvault_SRCS:=uphpmvault.cc dumpw.cc

OBJ   = $(patsubst %.c,$O%.o,$(patsubst %.cc,$O%.o,$1))
uphpmvault_OBJS := $(uphpmvault_SRCS)
uphpmvault_OBJS := $(call OBJ,$(uphpmvault_OBJS))

CC:=gcc
CXX:=g++
CFLAGS:=-O2 -g
LFLAGS:=-g
CFLAGS += -Wall -Wformat -Wstrict-aliasing

.PHONY: all
all: $(TARGETS)

# --- Target Rules

uphpmvault: $(uphpmvault_OBJS)
	@echo "LINK       " $@
	@$(CXX) -o $@ $^ $(LFLAGS)
	@cp $@ $@_unstripped
	@strip $@

.PHONY: install
install:
	install -d $(DESTDIR)/usr/bin
	install -s uphpmvault $(DESTDIR)/usr/bin

.PHONY: build
build:
# Override MAKELEVEL or the debian-helpers get mad
	MAKELEVEL= dpkg-buildpackage -I.git

# --- Inference Rules

$O%.o: %.c
	@printf "COMPILE     %-30.30s %s\n" "$@" "$(CFLAGS) $(CFLAGS_C)"
	@$(CXX) -c $(CFLAGS) $(CFLAGS_C)  -o $@ $<

$O%.o: %.cc
	@printf "COMPILE     %-30.30s %s\n" "$@" "$(CFLAGS) $(CFLAGS_CXX)"
	@$(CXX) -c  $(CFLAGS) $(CFLAGS_CXX) -o $@ $<

# --- Maintenance Rules

.PHONY: tidy
tidy:
	-rm *~

.PHONY: clean distclean
clean distclean:
	@echo "CLEAN"
	@touch _clean
	@-rm _clean $(wildcard *.o *~ $(TARGETS) *_unstripped)
