#
#	Makefile for a Java project with native methods.
#

SHELL = /bin/sh

VPATH = @srcdir@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..

PACKAGE = @PACKAGE@
VERSION = @VERSION@
distdir = $(top_srcdir)/$(PACKAGE)-$(VERSION)

prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datarootdir = @datarootdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
configdir = ${sysconfdir}/sane.d

V_MAJOR = @V_MAJOR@
V_MINOR = @V_MINOR@
DLL_PRELOAD = @DLL_PRELOAD@

MKDIR = $(top_srcdir)/mkinstalldirs
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
RANLIB = @RANLIB@
JAVAC=javac
JAVAH=javah -jni

CC = @CC@
#	We'll need something in 'configure' for the Java includes.
INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include \
	-I${JDK_HOME}/include -I${JDK_HOME}/include/genunix

CPPFLAGS = @CPPFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
DEFS = @DEFS@

LIBTOOL = ../libtool
MCOMP	= --mode=compile
MLINK	= --mode=link
MINST	= --mode=install

COMPILE = $(CC) -c $(CFLAGS) $(DEFS) $(INCLUDES) $(CPPFLAGS)

DISTCLEAN_FILES = @DISTCLEAN_FILES@

@SET_MAKE@

LIBSANE = -L`pwd`/../backend/libs -lsane

# Classes to compile.
CLASSES = SaneDevice.class SaneOption.class SaneRange.class Sane.class \
	SaneParameters.class ScanIt.class ImageCanvas.class \
	ImageCanvasClient.class

DISTFILES = ImageCanvas.java ImageCanvasClient.java Jscanimage.java \
  Makefile.in README.JAVA Sane.c Sane.java SaneDevice.java \
  SaneOption.java SaneParameters.java SaneRange.java ScanIt.java \
  Test.java

.PHONY: all clean dist distclean install uninstall

.SUFFIXES: .c .o .h .la .lo .java .class

.java.class:
	$(JAVAC) $<

.class.h:
	$(JAVAH) $*

%.lo:	%.c
	@$(LIBTOOL) $(MCOMP) $(COMPILE) $<

# Don't delete any intermediate files.
.PRECIOUS: %.h %.lo

all: libsanej.la $(CLASSES) Test.class Jscanimage.class

libsanej.la: Sane.lo
	@$(LIBTOOL) $(MLINK) $(CC) -o $@ $(LDFLAGS) $^ \
		-rpath $(libdir) -version-info \
		$(V_MAJOR):$(V_MINOR):0 $(LIBSANE)

Sane.lo: Sane.h

clean:
	rm -f *.class *.lo *.o *.la *.so
	rm -f Sane.h
	rm -rf .libs

distclean: clean
	rm -f $(DISTCLEAN_FILES)

#	Install library.  Don't know where to install .class files yet.
install:
	$(MKDIR) $(libdir) $(configdir)
	$(LIBTOOL) $(MINST) $(INSTALL_PROGRAM) libsanej.la \
		$(libdir)/libsanej.la || exit 1;
	@$(LIBTOOL) $(MINST) --finish $(libdir)


# fixme
uninstall:

dist: $(DISTFILES)
	for file in $(DISTFILES); do \
	  ln $$file $(distdir)/japi 2> /dev/null \
	    || cp -p $$file $(distdir)/japi ; \
	done

