CC = gcc
CFLAGS = -O1 -Wall -fPIC
SHARED_FLAGS = -shared -Wl,-soname,libvec.so.1
DYNAMIC_LINK_FLAGS = -rdynamic

all: addvec.o multvec.o libvec.so prog2c

addvec.o: addvec.c
	$(CC) $(CFLAGS) -c addvec.c

multvec.o: multvec.c
	$(CC) $(CFLAGS) -c multvec.c

libvec.so: addvec.o multvec.o
	$(CC) $(SHARED_FLAGS) -o libvec.so.1.0 addvec.o multvec.o 
	sudo cp libvec.so.1.0 /usr/local/lib
	sudo ln -s /usr/local/lib/libvec.so.1.0 /usr/local/lib/libvec.so.1
	sudo ln -s /usr/local/lib/libvec.so.1.0 /usr/local/lib/libvec.so

prog2c: dll.c
	$(CC) $(DYNAMIC_LINK_FLAGS) -o prog2c dll.c -ldl
#	$(CC) $(DYNAMIC_LINK_FLAGS) -o prog2c dll.c ./libvec.so

clean:
	rm *.o prog2c libvec.so.1.0
	sudo rm /usr/local/lib/libvec.so.1.0; sudo unlink /usr/local/lib/libvec.so.1; sudo unlink /usr/local/lib/libvec.so
