CFLAGS=-g -O -fPIC

all: test.c libbar-1.so libbar-2.so
	ln -sf libbar-1.so libbar.so
	$(CC) -o test test.c -lbar -L./ -Wl,-rpath,.
	./test
	ln -sf libbar-2.so libbar.so
	./test
	$(CC) -o test test.c -lbar -L./ -Wl,-rpath,.
	./test
	ln -sf libbar-1.so libbar.so
	./test

libfoo.so: foo.c
	$(CC) -Wl,-soname,libfoo.so -shared -o $@ $^ -Wl,--version-script,libfoo.map 

libbar-1.so: bar-1.o
	$(CC) -Wl,-soname,libbar.so -shared -o $@ $^ -Wl,--version-script,libbar-1.map 

libbar-2.so: bar-2.o libfoo.so
	$(CC) -Wl,-soname,libbar.so -shared -o $@ bar-2.o -Wl,-f,libfoo.so -Wl,--version-script,libbar-2.map 

tar:
	tar cfz libgcc.tar.gz *.c *.map Makefile

clean:
	rm -f test *.so *.o *.os
