RPATH := $$ORIGIN

main: main.c libbar.so
	$(CC) $< -L. '-Wl,-rpath,$(RPATH)' -lbar -o $@

libbar.so: libfoo.so

libbar.so: LDLIBS = -lfoo
libfoo.so: LDLIBS =

lib%.so: %.c
	$(CC) -shared -Wl,-h,$@ -fPIC $< -L. '-Wl,-rpath,$$ORIGIN' $(LDLIBS) -o $@

main.c: DECL = bar()
bar.c:  DECL = foo()
foo.c:  DECL = i

%.c:
	echo 'int $(DECL);   int $*() { return $(DECL); }' > $@

.PHONY: clean
clean:
	rm -f *.c *.so main
