all: newp oldp
	ln -sf libold.so libfoo.so
	LD_LIBRARY_PATH=. ./oldp
	ln -sf libnew.so libfoo.so
	LD_LIBRARY_PATH=. ./oldp
	LD_LIBRARY_PATH=. ./newp

oldp: libold.so main.o
	$(CC) -o $@ $^

newp: libnew.so main.o
	$(CC) -o $@ $^

libold.so: old.o
	$(CC) -Wl,-soname,libfoo.so -shared -o $@ $^

libnew.so: new.o foo.v
	$(CC) -Wl,-soname,libfoo.so,--version-script=foo.v -shared -o $@ new.o

foo.o old.o: CFLAGS+=-fPIC

clean:
	rm -f *.o *.so oldp newp

tar:
	tar cfz test.tar.gz *.c *.v Makefile
