CFLAGS=-g
CC=gcc
LD=ld
LIBC=/export/build/gnu/glibc/build-i686-linux
#TEST=yes
#LDFLAGS=-rdynamic

all: foo.so main
	./main foo.so 2>&1

main: main.o
ifeq (yes,$(TEST))
	$(CC) -nostdlib -nostartfiles -o $@ \
	      $(LDFLAGS) \
	      -Wl,-dynamic-linker=$(LIBC)/elf/ld-linux.so.2 \
	      -Wl,-rpath,.:lib:$(LIBC):$(LIBC)/elf:$(LIBC)/dlfcn:$(LIBC)/linuxthreads \
	      $(LIBC)/csu/crt1.o \
	      $(LIBC)/csu/crti.o \
	      `$(CC) --print-file-name=crtbegin.o` \
	      $< $(LIBC)/dlfcn/libdl.so \
	      -lgcc $(LIBC)/libc.so.6 $(LIBC)/libc_nonshared.a -lgcc \
	      `$(CC) --print-file-name=crtend.o` \
	      $(LIBC)/csu/crtn.o
else
	$(CC) $(LDFLAGS) -o $@ -Wl,-R,.:lib $^ -ldl
endif

foo.so: foo.S libbar.so libfoo.so
	$(CC) --shared -o $@ $^ -fPIC $(CFLAGS) $(ALLLIBS)

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

libfoo.so: glerr.c
	$(CC) --shared -o $@ $^ -fPIC $(CFLAGS) lib/libGLU.so

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

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