blob: e8ba19b5131a3a6a7fa2338770cd59d02dd01944 [file] [log] [blame]
all: a.out liba.dylib libb.dylib libc.dylib libd.dylib
CC ?= clang
ifeq "$(ARCH)" ""
ARCH = x86_64
endif
CFLAGS ?=-arch $(ARCH) -g -O0
CWD := $(shell pwd)
all: a.out hidden/libd.dylib
a.out: main.o libd.dylib
$(CC) $(CFLAGS) -o a.out main.o -L. -ld
main.o: main.c
$(CC) $(CFLAGS) -c main.c
hidden/libd.dylib: b.o
$(CC) $(CFLAGS) -dynamiclib -o hidden/libd.dylib d.o
dsymutil -o hidden/libd.dylib.dSYM hidden/libd.dylib
liba.dylib: a.o libb.dylib
$(CC) $(CFLAGS) -dynamiclib -install_name "@executable_path/liba.dylib" -o liba.dylib a.o -L. -lb
dsymutil liba.dylib
a.o: a.c
$(CC) $(CFLAGS) -c a.c
libb.dylib: b.o
$(CC) $(CFLAGS) -dynamiclib -install_name "@executable_path/libb.dylib" -o libb.dylib b.o
dsymutil libb.dylib
b.o: b.c
$(CC) $(CFLAGS) -c b.c
libc.dylib: c.o
$(CC) $(CFLAGS) -dynamiclib -install_name "@executable_path/libc.dylib" -o libc.dylib c.o
dsymutil libc.dylib
c.o: c.c
$(CC) $(CFLAGS) -c c.c
libd.dylib: d.o
$(CC) $(CFLAGS) -dynamiclib -install_name "$(CWD)/libd.dylib" -o libd.dylib d.o
dsymutil libd.dylib
d.o: d.c
$(CC) $(CFLAGS) -c d.c
clean:
rm -rf *.o *~ *.dylib a.out *.dSYM hidden/*