default: bug
	LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH bug
	
bug: bug.c lib-a.so lib-b.so lib-c.so
	gcc -o bug -gstabs /lib/libdl.so.2 bug.c
	
lib-a.so: a.c a.h lib-b.so lib-c.so
	gcc -shared -fPIC -gstabs -o lib-a.so lib-b.so lib-c.so a.c
	
lib-b.so: b.c b.h lib-c.so
	gcc -shared -fPIC -gstabs -o lib-b.so lib-c.so b.c
	
lib-c.so: c.c c.h
	gcc -shared -fPIC -gstabs -o lib-c.so c.c
	
clean:
	-rm bug lib-a.so lib-b.so lib-c.so
	
				