# **************************************************************************
# System info
# **************************************************************************
DATE := $(shell date +%Y_%m_%d_%H%M)
LDATE := $(shell date +%Y%m%d%H%M)
HOST := $(shell hostname)
CURDIR := $(shell pwd)
PROJDIR := $(shell basename $(CURDIR))

# **************************************************************************
# Global parameters
# **************************************************************************
VERSION := $(DATE)
BACKUP := $(PROJDIR)-$(VERSION).bak.tar.gz
DIST := $(PROJDIR)-$(VERSION).tar.gz

BUILDDIR := build
DEPSDIR := build

# **************************************************************************
# Compiler and linker
# **************************************************************************
CXX := g++
CXXFLAGS := -std=c++11 -Wall -Wextra -O3

LDFLAGS :=

LDLIBS := -lm

# **************************************************************************
# Options
# **************************************************************************

CXXFLAGS += -ggdb
CXXFLAGS += -march=native

#LDFLAGS += -s -static

# **************************************************************************
# Targets
# **************************************************************************
include objs.mk

EXEC := dogs-cnf

# **************************************************************************
# Computed variables
# **************************************************************************
OBJS := $(OBJPATHS:%.o=$(BUILDDIR)/%.o)

DEPS := $(OBJS:$(BUILDDIR)/%.o=$(DEPSDIR)/%.d)

# **************************************************************************
# Export variables
# **************************************************************************
export

# **************************************************************************
# Rules
# **************************************************************************
.PHONY: all exec clean dist force

all $(OBJS) $(LIBOBJ) $(EXEC): force
	$(MAKE) -f rules.mk $(@)

exec: force
	rm -f $(EXEC)
	$(MAKE) -f rules.mk $(EXEC)

clean:
	rm -f $(LIBOBJ) $(EXEC)
	rm -f $(shell find $(DEPSDIR) -name *.d)
	rm -f $(shell find $(BUILDDIR) -name *.o)

backup: clean
	cd ..; tar --exclude-vcs \
		-czf $(BACKUP) $(PROJDIR)

dist: clean
	cd ..; tar --exclude-vcs \
		-czf $(DIST) $(PROJDIR)

force:


