# libblas3 swig

#EXT=$(shell perl -e 'use Config; print $Config{archlib};')

#/usr/lib/i386-linux-gnu/perl/5.20/CORE
#https://github.com/AlekSi/google-breakpad-mirror/blob/master/src/third_party/libdisasm/swig/perl/Makefile-swig
# PERL rules
#PERL_MOD	=	blib/arch/auto/$(BASE_NAME)/$(BASE_NAME).so
#PERL_SHADOW	=	$(BASE_NAME)_wrap.c
#PERL_SWIG	=	$(BASE_NAME).pl
#PERL_OBJ	=	$(BASE_NAME)_wrap.o
PERL_INC	=	`perl -e 'use Config; print $$Config{archlib};'`/CORE
#PERL_CC_FLAGS	=	`perl -e 'use Config; print $$Config{ccflags};'
#$(GCC) $(CC_FLAGS) $(PERL_CC_FLAGS) -I$(PERL_INC) -o $@ $<

COMPILER         = -c++
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

FILE=testu

#testu.o: testu.c
#	$(COMPILER) $(OPTIONS) -g -o $@ -c testu.c  

all: swig

eclean: 
	rm -f *_wrap.c  *_wrap.o libgslexprtk.so  gslexprtk.o useexprtk_wrap.cxx  useexprtk.pm *~  useexprtk_wrap.o useexprtk.so

edepclean: eclean
	rm useexprtk.o libuseexptk.so


#	gcc -fpic  -std=c11   -Dbool=char  -Wl,-rpath=.   -I$(ARCHLIB)/CORE $(CCFLAG)   -c testu_wrap.c -o testu_wrap.o 


gslexprtk.o: gslexprtk.c
	$(COMPILER) $(OPTIONS) -g -fpic -o gslexprtk.o -c gslexprtk.c  

libgslexprtk.so: gslexprtk.o
	gcc -g -shared -o libgslexprtk.so gslexprtk.o -lgsl -lgslcblas


useexprtk.o: useexprtk.cpp exprtk.hpp 
	c++  -g -fpic  -o useexprtk.o -c useexprtk.cpp 


useexprtk_wrap.cxx:   useexprtk.i useexprtk.cpp  useexprtk.h 
	swig -Wall -c++ -perl5 useexprtk.i


useexprtk_wrap.o: useexprtk_wrap.cxx libgslexprtk.so Makefile
	c++  -c -fPIC useexprtk_wrap.cxx -Dbool=char  -L. -Wl,-rpath=. -I$(PERL_INC) -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -L/usr/lib -lstdc++ -lm  -lgslexprtk


swig: useexprtk.so 

useexprtk.so: useexprtk.o useexprtk_wrap.o libgslexprtk.so Makefile
	c++ -shared -fPIC  -L. -Wl,-rpath=. -o useexprtk.so useexprtk.o useexprtk_wrap.o -L/usr/lib -lstdc++ -lm -lgslexprtk


# ldd nm
