#===============================================================================
# SuiteOPTconfig/Lib/Makefile: for compiling the shared object library
#===============================================================================

LIBRARY = libsuiteoptconfig
VERSION = 1.1.0
SO_VERSION = 1

default: library

ccode: all

include ../SuiteOPTconfig.mk

SO_OPTS += $(CFOPENMP)

# compile and install in SuiteOPT/lib
library:
	$(MAKE) install INSTALL=$(SUITEOPT)

#-------------------------------------------------------------------------------

I = -I$(SUITEOPT)/SuiteOPTconfig
	
#-------------------------------------------------------------------------------

C = $(CC) $(CF) -fPIC

all: library

purge: distclean

distclean: clean
	- $(RM) -r $(PURGE)

clean:
	- $(RM) -r $(CLEAN)

#-------------------------------------------------------------------------------
# SuiteOPT/include directory contains all include except for internal files
#-------------------------------------------------------------------------------
INCLUDE = Makefile \
	$(SUITEOPT)/SuiteOPTconfig/Userconfig.mk \
	$(SUITEOPT)/SuiteOPTconfig/SuiteOPTconfig.mk \
	$(SUITEOPT)/SuiteOPTconfig/sopt.h

OBJ = sopt.o

$(OBJ): $(INCLUDE)

#-------------------------------------
# SOPT Object files
#-------------------------------------
sopt.o: ../sopt.c
	$(C) -c $(I) $<
#-------------------------------------------------------------------------------

# install SOPT
install: $(INSTALL_LIB)/$(SO_TARGET)

$(INSTALL_LIB)/$(SO_TARGET): $(OBJ)
	@mkdir -p $(INSTALL_LIB)
	$(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS)
	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) )
	( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) )
	$(CP) ../Include/napheap.h $(INSTALL_INCLUDE)
	chmod 644 $(INSTALL_INCLUDE)/napheap.h

# uninstall SOPT
uninstall:
	$(RM) $(INSTALL_LIB)/$(SO_TARGET)
	$(RM) $(INSTALL_LIB)/$(SO_PLAIN)
	$(RM) $(INSTALL_LIB)/$(SO_MAIN)
