all: new old
	ln -sf libnew.so libfoo.so
	./old
	./new
	ln -sf libold.so libfoo.so
	./old
	./new

new: libnew.so main.o
	$(CC) -o $@ $^ -Wl,-rpath,.

old: libold.so main.o
	$(CC) -o $@ $^ -Wl,-rpath,.

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

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

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

clean:
	rm -f *.o *.so old new

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