# libblas3 swig

FILE=gslode
CCFLAG:=$(shell perl -MConfig -e "print \$$Config{ccflags}")
ARCHLIB:=$(shell perl -e 'use Config; print $$Config{archlib};')
OCTAVE_INCLUDE:=/usr/include/octave-3.8.1/

swig:
	swig  -perl5 -module $(FILE) $(FILE).h
	gcc -fpic     -Dbool=char    -I$(ARCHLIB)/CORE $(CCFLAG)  -lgsl -lblas -c $(FILE)_wrap.c 
	gcc -g  -I$(OCTAVE_INCLUDE)  -I$(OCTAVE_INCLUDE)octave/ -fpic -shared  $(FILE)_wrap.o $(FILE).c  -lgsl -lgslcblas -o $(FILE).so  

#gcc -g -fpic -shared  $(FILE)_wrap.o $(FILE).c  -lgsl -lblas -o $(FILE).so  


gslode:  gslode.c gslode.h
	 gcc  -c  -I$(OCTAVE_INCLUDE)   -I$(OCTAVE_INCLUDE)octave  -g gslode.c -lgsl -lblas -ogslode



clean: 
	rm -f ${FILE}_wrap.c  ${FILE}_wrap.o ${FILE}.so *.pm *~  gslode


#/usr/lib/perl5/5.18.1/x86_64-linux-thread-multi/CORE
#-D_REENTRANT -D_GNU_SOURCE -DPERL_USE_SAFE_PUTENV -fno-strict-aliasing -pipe -fstack-protector -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=6

octaveo: octave.cpp
	g++  -c  -I$(OCTAVE_INCLUDE)   -I$(OCTAVE_INCLUDE)octave -o octave.o octave.cpp 

octave: octaveo
	mkoctfile --link-stand-alone -o octave octave.o




COMPILER         = -c++
#COMPILER        = -clang
OPTIMIZATION_OPT = -O1
BASE_OPTIONS     = -pedantic-errors -Wall -Wextra -Werror -Wno-long-long
OPTIONS          = $(BASE_OPTIONS) $(OPTIMIZATION_OPT)
OPTIONS          = 
LINKER_OPT       = -L/usr/lib -lstdc++ -lm

mexk.o: mexk.c
	$(COMPILER) $(OPTIONS) -o $@  -c mexk.c 

exk.o: exk.cpp exprtk.hpp
	$(COMPILER) $(OPTIONS) -o $@ -c exk.cpp 

exk: mexk.o exk.o
	$(COMPILER) -o $@ exk.o mexk.o $(LINKER_OPT)

