usage: @echo "make nolib | static | dynamic" %.o: %.c gcc -c -fPIC -g -Wall $< nolib: main.o util.o gcc -g -o main main.o util.o static: libutil.a main.o gcc -o main main.o -L. -lutil libutil.a: util.o ar rcs libutil.a util.o # use "ldd main" to see the shared objects used by main dynamic: main.o libutil.so.1 solink gcc -o main main.o -L. -lutil libutil.so.1: util.o gcc -shared -Wl,-soname,libutil.so -o libutil.so.1 util.o -lc solink: ln -sf libutil.so.1 libutil.so clean: rm -f *.a *.o main libutil.so libutil.so.1 *~