
MODULE		=	$(notdir $(patsubst %/,%,$(CURDIR)))

$(info --- Makefile dans $(MODULE), cible $(MAKECMDGOALS))

default: all

-include ./make/compiler.mk

modules		=	${shell find $(MDIR) -maxdepth 1 -mindepth 1 -type d -print | sed 's/modules\///g'}
MODINC		=	$(modules:%=-I$(MDIR)/%/include)
MODLIBS		=	$(modules:%=$(ODIR)/lib%.a)

INCLUDES	+=	$(MODINC) `pkg-config --cflags opencv4`
LIBS		+=	`pkg-config --libs opencv4` -lpthread

BINS	:=	$(patsubst $(SDIR)/%.cpp,$(BDIR)/%,$(wildcard $(SDIR)/*.cpp))

$(BDIR)/%: $(MODLIBS) $(ODIR)/%.o
	echo "Linking binary file:" $(@:$(BDIR)/%=%)
	$(LD) $(LDFLAGS) -o $@ $(@:$(BDIR)/%=$(ODIR)/%.o) $(MODLIBS) $(LIBS)

$(ODIR)/lib%.a: FORCE
	$(eval modf = $(@:$(ODIR)/lib%.a=$(MDIR)/%))
	$(eval modl = $(@:$(ODIR)/%=%))
	echo "Retrieving file for module:" $(modf)
	make -C $(modf)
	cp $(modf)/lib/$(modl) $@

all:	$(BINS)

all-clean: FORCE clean
	make -C $(MDIR) clean

-include ./make/common.mk
