proj := qrtr
proj-major := 1
proj-minor := 0
proj-version := $(proj-major).$(proj-minor)

CFLAGS := -Wall -g
LDFLAGS :=

prefix := /usr/local
bindir := $(prefix)/bin
libdir := $(prefix)/lib
includedir := $(prefix)/include
servicedir := $(prefix)/lib/systemd/system

ifneq ($(CROSS_COMPILE),)
CC := $(CROSS_COMPILE)gcc
endif
SFLAGS := -I$(shell $(CC) -print-file-name=include) -Wno-non-pointer-null

$(proj)-cfg-srcs := \
	lib/logging.c \
	src/addr.c \
	src/cfg.c \

$(proj)-cfg-cflags := -Ilib

$(proj)-ns-srcs := \
	lib/logging.c \
	src/addr.c \
	src/ns.c \
	src/map.c \
	src/hash.c \
	src/waiter.c \
	src/util.c \

$(proj)-ns-cflags := -Ilib

$(proj)-lookup-srcs := \
	lib/logging.c \
	src/lookup.c \
	src/util.c \

$(proj)-lookup-cflags := -Ilib

lib$(proj).so-srcs := \
	lib/logging.c \
	lib/qrtr.c \
	lib/qmi.c

lib$(proj).so-cflags := -fPIC -Isrc

targets := $(proj)-ns $(proj)-cfg $(proj)-lookup lib$(proj).so

out := out
src_to_obj = $(patsubst %.c,$(out)/obj/%.o,$(1))
src_to_dep = $(patsubst %.c,$(out)/dep/%.d,$(1))

all-srcs :=
all-objs :=
all-deps :=
all-clean := $(out)
all-install :=

all: $(targets)

$(out)/obj/%.o: %.c
ifneq ($C,)
	@echo "CHECK	$<"
	@sparse $< $(patsubst -iquote=%,-I%,$(CFLAGS)) $(SFLAGS)
endif
	@echo "CC	$<"
	@$(CC) -MM -MF $(call src_to_dep,$<) -MP -MT "$@ $(call src_to_dep,$<)" $(CFLAGS) $(_CFLAGS) $<
	@$(CC) -o $@ -c $< $(CFLAGS) $(_CFLAGS)

define add-inc-target
$(DESTDIR)$(includedir)/$2: $1/$2
	@echo "INSTALL	$$<"
	@install -D -m 755 $$< $$@

all-install += $(DESTDIR)$(includedir)/$2
endef

define add-target-deps
all-srcs += $($1-srcs)
all-objs += $(call src_to_obj,$($1-srcs))
all-deps += $(call src_to_dep,$($1-srcs))
all-clean += $1
$(call src_to_obj,$($1-srcs)): _CFLAGS := $($1-cflags)
endef

define add-bin-target

$(call add-target-deps,$1)

$1: $(call src_to_obj,$($1-srcs))
	@echo "LD	$$@"
	$$(CC) -o $$@ $$(filter %.o,$$^) $(LDFLAGS)

$(DESTDIR)$(bindir)/$1: $1
	@echo "INSTALL	$$<"
	@install -D -m 755 $$< $$@

all-install += $(DESTDIR)$(bindir)/$1
endef

define add-lib-target

$(call add-target-deps,$1)

$1: $(call src_to_obj,$($1-srcs))
	@echo "LD	$$@"
	$$(CC) -o $$@ $$(filter %.o,$$^) $(LDFLAGS) -shared -Wl,-soname,$1.$(proj-major)

$(DESTDIR)$(libdir)/$1.$(proj-version): $1
	@echo "INSTALL	$$<"
	@install -D -m 755 $$< $$@
	@ln -sf $1.$(proj-version) $(DESTDIR)$(libdir)/$1.$(proj-major)
	@ln -sf $1.$(proj-major) $(DESTDIR)$(libdir)/$1

all-install += $(DESTDIR)$(libdir)/$1.$(proj-version)
endef

define add-systemd-service-target
$1: $1.in
	sed 's+QRTR_NS_PATH+$(bindir)+g' $$< > $$@

$(DESTDIR)$(servicedir)/$1: $1
	@echo "INSTALL	$$<"
	@install -D -m 644 $$< $$@

all-install += $(DESTDIR)$(servicedir)/$1
endef

$(foreach v,$(filter-out %.so,$(targets)),$(eval $(call add-bin-target,$v)))
$(foreach v,$(filter %.so,$(targets)),$(eval $(call add-lib-target,$v)))
$(eval $(call add-inc-target,lib,libqrtr.h))
$(eval $(call add-systemd-service-target,qrtr-ns.service))

install: $(all-install)

clean:
	@echo CLEAN
	@$(RM) -r $(all-clean)

$(call src_to_obj,$(all-srcs)): Makefile

ifneq ("$(MAKECMDGOALS)","clean")
cmd-goal-1 := $(shell mkdir -p $(sort $(dir $(all-objs) $(all-deps))))
-include $(all-deps)
endif
