PACKAGE_NAME	= Utsusemi

INC_EXT = MLF
DIST_NAME ?= RH7
NUM_MULTH ?= 8
CXX	?= g++
CXX_OPT ?= -L$(MANYO_PATH)/lib -fPIC -O3 -fopenmp -DMULTH=$(NUM_MULTH) -DUTSUSEMIMANYOREVNUMBER=$(UTSUSEMI_REV) -std=c++11
#CXX_OPT ?= -L$(MANYO_PATH)/lib -fPIC -g -fopenmp -DMULTH=$(NUM_MULTH) -DUTSUSEMIMANYOREVNUMBER=$(UTSUSEMI_REV)
INC_OPT ?= -I$(MANYO_PATH)/include $(INC_EXT:%=-I$(MANYO_PATH)/include/%)
LIB_OPT ?= $(INC_EXT:%=-l%)
PyVer	?= $(shell python3 --version 2>&1 | cut -d" " -f2 | cut -d. -f1-2 )
PKG_SOVER ?=
PREFIX ?= $(MANYO_PATH)
PY_PREFIX ?= $(PREFIX)
DESTDIR ?=

SWIG ?= swig
PyLib ?= $(PyVer)
PyMaj ?= $(shell echo $(PyVer) | cut -d. -f1)

ifeq ($(PyMaj),3)

ifeq ($(DIST_NAME),RH7)
	PyLib := $(PyVer)m
endif
ifeq ($(DIST_NAME),Ubuntu16)
	PyLib := $(PyVer)m
endif
	PyInc ?= /usr/include/python$(PyLib)
endif
PyInc ?= /usr/include/python$(PyVer)

CXX_OPT := -DPyMaj=$(PyMaj) -I$(PyInc) ${CXX_OPT}
SWIG_OPT := -DPyMaj=$(PyMaj)

include Makefile.obj


_$(PACKAGE_NAME).so:	$(PACKAGE_NAME)_wrap.o $(OBJS) lib$(PACKAGE_NAME).so
	$(CXX) $(CXX_OPT) $(INC_OPT) -o $@ $(PACKAGE_NAME)_wrap.o -fopenmp -shared -lpython$(PyLib) \
	-pthread -lutil -ldl -L. -lManyo -l$(PACKAGE_NAME)  -lNeXus -lgsl \
	-lgslcblas -lboost_serialization -lboost_filesystem -lboost_system $(LIB_OPT)

ifdef PKG_SOVER
lib$(PACKAGE_NAME).so: lib$(PACKAGE_NAME).so.$(PKG_SOVER)
	ln -s lib$(PACKAGE_NAME).so.$(PKG_SOVER) lib$(PACKAGE_NAME).so

lib$(PACKAGE_NAME).so.$(PKG_SOVER):	$(OBJS)
	$(CXX) $(CXX_OPT)  $(INC_OPT) $(OBJS) -o $@ -fopenmp -shared -lNeXus -lgsl -lgslcblas \
	-lboost_serialization -lboost_filesystem -lboost_system -lpython$(PyLib) -pthread -lutil -ldl $(LIB_OPT)
else
lib$(PACKAGE_NAME).so:	$(OBJS)
	$(CXX) $(CXX_OPT)  $(INC_OPT) $(OBJS) -o $@ -fopenmp -shared -lNeXus -lgsl -lgslcblas \
	-lboost_serialization -lboost_filesystem -lboost_system -lpython$(PyLib) -pthread -lutil -ldl $(LIB_OPT)
endif

$(PACKAGE_NAME)_wrap.o:	$(PACKAGE_NAME)_wrap.cxx
	$(CXX) $(CXX_OPT) $(INC_OPT) -c -fPIC $(PACKAGE_NAME)_wrap.cxx \
	-DPYTHONSERVERPORT=8888 -DJQPORT=8890 



$(PACKAGE_NAME).py $(PACKAGE_NAME)_wrap.cxx:	$(PACKAGE_NAME).i
        #swig -c++ -threads $(INC_OPT) -python $(PACKAGE_NAME).i
	swig -c++ $(INC_OPT) -python $(PACKAGE_NAME).i



install:	_$(PACKAGE_NAME).so $(PACKAGE_NAME).py lib$(PACKAGE_NAME).so
	mkdir -p $(DESTDIR)$(PREFIX)/lib
	mkdir -p $(DESTDIR)$(PREFIX)/include/$(PACKAGE_NAME)
	mkdir -p $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)
	mkdir -p $(DESTDIR)$(PREFIX)/sample/$(PACKAGE_NAME)
	cp -a *.cc *.hh $(DESTDIR)$(PREFIX)/include/$(PACKAGE_NAME)/
	cp -a lib$(PACKAGE_NAME).so* $(DESTDIR)$(PREFIX)/lib
	cp -a $(PACKAGE_NAME).py $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)/
	echo "from ."${PACKAGE_NAME}" import *" > $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)/__init__.py
	echo "__version__ = UTSUSEMIMANYOVERSION" >> $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)/__init__.py
	cp -a _$(PACKAGE_NAME).so $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)
	cp -a sample/*.py $(DESTDIR)$(PREFIX)/sample/$(PACKAGE_NAME)/
	rm -f $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)/*.pyc

uninstall:
	rm -rf $(DESTDIR)$(PREFIX)/include/$(PACKAGE_NAME)
	rm -rf $(DESTDIR)$(PREFIX)/lib/lib$(PACKAGE_NAME).so*
	rm -rf $(DESTDIR)$(PY_PREFIX)/Manyo/$(PACKAGE_NAME)
	rm -rf $(DESTDIR)$(PREFIX)/sample/$(PACKAGE_NAME)

clean:
	-rm -rf a.out _$(PACKAGE_NAME).so $(PACKAGE_NAME)_wrap.o \
	$(PACKAGE_NAME)_wrap.cxx lib$(PACKAGE_NAME).so lib$(PACKAGE_NAME).so.$(PKG_SOVER) $(OBJS) \
	$(PACKAGE_NAME).py $(PACKAGE_NAME).pyc \
	html latex xml interfaces

man:
	./CreateManual

.cc.o:
	$(CXX) $(CXX_OPT) $(INC_OPT) -c $<


include CC_Files_Dependence

