#
# Set this to the root hierarchy where you want the libraries to install in
#
INSTALLROOT = /usr/local

#
# Set this to the root of your Java SDK installation
#
JAVAROOT = $(INSTALLROOT)/java

#
# Modify these include paths to correspond to your installation
#
JNI_INCLUDE = -I$(JAVAROOT)/include -I$(JAVAROOT)/include/linux
C_INCLUDE   = -I$(INSTALLROOT)/include
LD_LIB      = -L$(INSTALLROOT)/lib \
	-lblas -lcblas -lclapack -lf2c -lm

#
# Check the compiler, linker options and names
#
CC      = gcc -c -fPIC -O2 -Wall $(JNI_INCLUDE) $(C_INCLUDE)
LD      = ld -shared $(LD_LIB)
JAVAC   = $(JAVAROOT)/bin/javac
JAVAH   = $(JAVAROOT)/bin/javah
INSTALL = install
RM      = rm -f

#
# No need to modify below
#----------------------------------------------------------------------

all: blas lapack

install: all
	$(INSTALL) libnni_blas.so $(INSTALLROOT)/lib
	$(INSTALL) libnni_lapack.so $(INSTALLROOT)/lib

blas: libnni_blas.so 

lapack: libnni_lapack.so

nni/BLAS.class: nni/BLAS.java
	$(JAVAC) nni/BLAS.java

nni_BLAS.o: nni/BLAS.class nni_BLAS.c
	$(JAVAH) nni.BLAS
	$(CC) nni_BLAS.c

libnni_blas.so: nni_BLAS.o
	$(LD) nni_BLAS.o -o libnni_blas.so

nni/LAPACK.class: nni/LAPACK.java
	$(JAVAC) nni/LAPACK.java

nni_LAPACK.o: nni/LAPACK.class nni_LAPACK.c
	$(JAVAH) nni.LAPACK
	$(CC) nni_LAPACK.c

libnni_lapack.so: nni_LAPACK.o
	$(LD) nni_LAPACK.o -o libnni_lapack.so

clean:
	$(RM) *.h
	$(RM) *.o
	$(RM) *.so
	$(RM) nni/*.class

