SHELL=/bin/sh
CC=clang
SOURCES=hashcode.c
OBJECTS=hashcode.o
LIBFILE=libhashcode.so
LIBVERSION=0
SHARED=$(LIBFILE).0.0.1
LINKS=$(LIBFILE) $(LIBFILE).$(LIBVERSION)

CC_OBJECTS_OPTS=-c -fPIC -O3 -Wall -Werror -pedantic-errors -std=c99
CC_SHARED_OPTS=-shared -Wl,-soname,$(LIBFILE).$(LIBVERSION)

INSTALL_DIR=../../lib/ext

LINK_CMD=ln -fs

.PHONY: all install clean

all: $(SOURCES) $(OBJECTS) $(SHARED)

install: $(SHARED)
	mkdir -p $(INSTALL_DIR)
	install $(SHARED) $(INSTALL_DIR)
	$(LINK_CMD) $(INSTALL_DIR)/$(SHARED) $(INSTALL_DIR)/$(LIBFILE).$(LIBVERSION)
	$(LINK_CMD) $(INSTALL_DIR)/$(SHARED) $(INSTALL_DIR)/$(LIBFILE)

$(SHARED): $(OBJECTS)
	$(CC) $(CC_SHARED_OPTS) -o $@ $(OBJECTS) 

$(OBJECTS): $(SOURCES)
	$(CC) $(CC_OBJECTS_OPTS) $(SOURCES) -o $@

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