CC := $(CROSS_COMPILE)gcc

PLATFORM := $(shell $(CC) -dumpmachine | cut -f 3 -d -)

ifeq ($(PLATFORM),mingw32)
  ext := dll
else
  ext := so
endif

all:

libbar := libbar.$(ext)
$(libbar): bar.o
$(libbar): CFLAGS =
$(libbar): LDLIBS =

libfoo := libfoo.$(ext)
$(libfoo): foo.o | $(libbar)
$(libfoo): CFLAGS = -I.
$(libfoo): LDLIBS = -L. -lbar

bazinator: bazinator.o | $(libfoo)
bazinator: CFLAGS = -I.
bazinator: LDLIBS = -L. -lfoo -Wl,-rpath-link=.

all: bazinator

%.so %.dll::
	$(CC) $(LDFLAGS) -shared $^ $(LDLIBS) -o $@

check: bazinator
ifeq ($(PLATFORM),mingw32)
	bazinator
else
	@LD_LIBRARY_PATH=. ./bazinator
endif
