CC=gcc
LIB=./lib
LIB_VERSION=1.0
TARGET=prog

CFLAGS = -Wall -fPIC
LDFLAGS = -Wall -L./

all:$(TARGET)

$(TARGET):$(TARGET).c libsharelib.so.$(LIB_VERSION)
	ln -sf libsharelib.so.$(LIB_VERSION) libsharelib.so
	ln -sf libsharelib.so.$(LIB_VERSION) libsharelib.so.1
	$(CC) $(LDFLAGS) $(TARGET).c -lsharelib -o $(TARGET)

libsharelib.so.$(LIB_VERSION): shared-library.o
	$(CC) -shared -Wl,-soname,libsharelib.so.1 -o libsharelib.so.$(LIB_VERSION) shared-library.o

shared-library.o: $(LIB)/shared-library.c
	$(CC) $(CFLAGS) -c $(LIB)/shared-library.c -o shared-library.o

clean:
	rm -f ./*.so* ./*.o $(TARGET)
