CC=gcc

all: module1.so module2.so main
	./main global lazy
	./main global now
	./main local lazy
	./main local now

main: main.c 
	$(CC) $(LDFLAGS) -o $@ -Wl,-rpath,. $^ -ldl

libbar.so: bar.c
	$(CC) --shared -o $@ $^ -fPIC $(CFLAGS)

module1.so: module.c libbar.so
	$(CC) --shared -o $@ $^ -fPIC $(CFLAGS)

module2.so: module.c libbar.so
	$(CC) --shared -o $@ $^ -fPIC $(CFLAGS)

clean:
	rm -f *.o *.so main

tar:
	tar cfz /tmp/bug.tar.gz Makefile *.c
