###########################################################################
#
# Makefile for search4j used by Greenstone
# A component of the Greenstone digital library software
# from the New Zealand Digital Library Project at the
# University of Waikato, New Zealand.
#
# Copyright (C) 1999-2008  The New Zealand Digital Library Project
#
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
###########################################################################

prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@

CXX = @CXX@
CXXFLAGS = @CXXFLAGS@
DEFS = @DEFS@
GSDLOS = @gsdlos@
INCLUDES = 
STRIP   = @STRIP@
INSTALL = @INSTALL@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@

JAVAC = @JAVAC@
JAR = jar
JAVACFLAGS = @JAVACFLAGS@ -source 1.8 -target 1.8

CXXCOMPILE = $(CXX) -c $(CXXFLAGS) $(DEFS) $(INCLUDES)
CXXLINK = $(CXX) $(LDFLAGS) -o $@


.SUFFIXES:
.SUFFIXES: .cpp .o
.cpp.o:
	$(CXXCOMPILE) $< 


SOURCES = \
	libsearch4j.cpp \
	search4j.cpp

OBJECTS = \
	libsearch4j.o \
	search4j.o

EXECUTABLE_OBJECTS = \
	$(OBJECTS)

EXECUTABLE = search4j


# Default target: make the search4j executable
all: $(EXECUTABLE) compile-java install-java

search4j: $(EXECUTABLE_OBJECTS)
	$(CXXLINK) $(EXECUTABLE_OBJECTS) $(LIBS)

install: $(EXECUTABLE)
	$(INSTALL) -d $(bindir)
#	$(STRIP) $(EXECUTABLE)
	$(INSTALL) -m 755 $(EXECUTABLE) $(bindir)

clean:
	rm -f $(OBJECTS) $(EXECUTABLE)
	rm -f DisplayJavaVersion.class
	rm -f DisplayJavaBitness.class

distclean:
	rm -f $(OBJECTS) $(EXECUTABLE) Makefile

depend:
	makedepend -Y -- $(DEFS) $(INCLUDES) $(CXXFLAGS) -- $(SOURCES)

compile-java:
	$(JAVAC) $(JAVACFLAGS) -cp jna.jar DisplayJavaVersion.java
	$(JAVAC) $(JAVACFLAGS) -cp jna.jar DisplayJavaBitness.java
	$(JAR) cvfm display-java-version.jar Manifest-version.txt DisplayJavaVersion.class
	$(JAR) cvfm display-java-bitness.jar Manifest-bitness.txt DisplayJavaBitness.class

install-java:
	$(INSTALL) -d $(libdir)
	$(INSTALL) -d $(libdir)/java
	$(INSTALL) display-java-version.jar $(libdir)/java
	$(INSTALL) jna.jar $(libdir)/java
	$(INSTALL) display-java-bitness.jar $(libdir)/java
