1 # Makefile for Microsoft Visual C++ 7.0 (or compatible)
2 # Charlie Hull, Lemur Consulting Ltd. www.lemurconsulting.com
5 # Will build the Java Swig bindings
7 # Where the core is, relative to the Java Swig bindings
8 # Change this to match your environment
10 XAPIAN_CORE_REL_JAVA
=..\..\xapian-core
11 OUTLIBDIR
=$(XAPIAN_CORE_REL_JAVA
)\win32\
$(XAPIAN_DEBUG_OR_RELEASE
)\libs
13 !INCLUDE
$(XAPIAN_CORE_REL_JAVA
)\win32\config.mak
15 OUTDIR
=$(XAPIAN_CORE_REL_JAVA
)\win32\
$(XAPIAN_DEBUG_OR_RELEASE
)\Java
18 XAPIAN_SWIG_JAVA_SRCS
=\
25 DateValueRangeProcessor.java\
36 MultiValueSorter.java\
37 NumberValueRangeProcessor.java\
38 PositionIterator.java\
49 StringValueRangeProcessor.java\
50 SWIGTYPE_p_std__string.java\
55 ValueRangeProcessor.java\
58 WritableDatabase.java\
63 XAPIAN_SWIG_JAVA_CLASS
= $(XAPIAN_SWIG_JAVA_SRCS
:.java
=.class
)
65 # Java generates nested classes with filenames containing a $ (smart move) so
66 # we pick them up with a wildcard and omit them from dependencies to avoid
67 # escaping hell. The lack of a dependency shouldn't really be an issue since
68 # these classes are always generated along with the containing class which
69 # is listed in the dependencies.
70 XAPIAN_SWIG_JAVA_EXTRA_CLASSES
=\
71 Enquire
*docid_order.class\
73 QueryParser
*feature_flag.class\
74 QueryParser
*stem_strategy.class\
75 TermGenerator
*flags.class
77 ALL
: "$(OUTDIR)/xapian_jni.jar" \
79 "$(OUTDIR)/xapian_jni.dll" \
80 WriteJavaVersion.class
81 # REMOVE THIS NEXT LINE if using Visual C++ .net 2003 - you won't need to worry about manifests. For later compilers this prevents error R6034
82 $(MANIFEST
) "$(OUTDIR)\xapian_jni.dll.manifest" -outputresource
:"$(OUTDIR)\xapian_jni.dll;2"
83 copy
"$(ZLIB_LIB_DIR)\zdll.lib"
84 copy
"$(ZLIB_BIN_DIR)\zlib1.dll" $(OUTDIR
)
87 -@erase SmokeTest.class
88 -@erase
"$(OUTDIR)\*.class"
89 -@erase
"$(OUTDIR)\xapian_jni.jar"
90 -@erase xapian_wrap.obj
91 -@erase
"$(OUTDIR)\xapian_jni.*"
92 -@erase
$(XAPIAN_SWIG_JAVA_CLASS
)
93 -@erase
$(XAPIAN_SWIG_JAVA_EXTRA_CLASSES
)
96 -@erase MyMatchDecider.class
97 -@erase MyExpandDecider.class
98 -@erase WriteJavaVersion.class
100 -@erase javaversion.h
103 -@erase xapian_wrap.
cc
104 -@erase xapian_wrap.h
105 -@erase
$(XAPIAN_SWIG_JAVA_SRCS
)
108 copy SmokeTest.class
"$(OUTDIR)\SmokeTest.class"
109 copy MyMatchDecider.class
"$(OUTDIR)\MyMatchDecider.class"
110 copy MyExpandDecider.class
"$(OUTDIR)\MyExpandDecider.class"
112 $(JAVA
) -classpath xapian_jni.jar
; SmokeTest
118 if not exist
"$(OUTDIR)\dist\$(NULL)" mkdir
"$(OUTDIR)\dist"
119 if not exist
"$(OUTDIR)\dist\docs/$(NULL)" mkdir
"$(OUTDIR)\dist\docs"
120 if not exist
"$(OUTDIR)\dist\docs\examples/$(NULL)" mkdir
"$(OUTDIR)\dist\docs\examples"
121 copy
"$(OUTDIR)\xapian_jni.dll" "$(OUTDIR)\dist"
122 copy
"$(OUTDIR)\xapian_jni.jar" "$(OUTDIR)\dist"
123 if exist docs copy docs\
*.htm
* "$(OUTDIR)\dist\docs"
124 if exist docs\examples copy docs\examples\
*.
* "$(OUTDIR)\dist\docs\examples"
127 if not exist
"$(OUTDIR)/$(NULL)" mkdir
"$(OUTDIR)"
130 $(OUTDIR
)/xapian_jni.jar
: xapian_wrap.obj
"$(OUTDIR)" $(XAPIAN_SWIG_JAVA_CLASS
)
131 $(JAR
) -cf
$(OUTDIR
)/xapian_jni.jar
$(XAPIAN_SWIG_JAVA_CLASS
) $(XAPIAN_SWIG_JAVA_EXTRA_CLASSES
)
133 CPP_PROJ
=$(CPPFLAGS_EXTRA
) /GR \
134 /I
"$(XAPIAN_CORE_REL_JAVA)" /I
"$(XAPIAN_CORE_REL_JAVA)\include" /I
"$(JAVA_INCLUDE_DIR)" /I
"$(JAVA_INCLUDE_DIR)/win32"\
135 /I
"." /Fo
"$(INTDIR)\\" /Tp
$(INPUTNAME
)
137 ALL_LINK32_FLAGS
=$(LINK32_FLAGS
) $(XAPIAN_LIBS
)
139 "$(OUTDIR)\xapian_jni.dll" : "$(OUTDIR)" xapian_wrap.obj
".\version.res"
141 $(ALL_LINK32_FLAGS
) /DLL
/out
:"$(OUTDIR)\xapian_jni.dll" xapian_wrap.obj
".\version.res"
145 !IF
"$(SWIGBUILD)" == "1"
146 # FIXME: make this work properly with SWIG
147 xapian_wrap.
cc xapian_wrap.h
$(XAPIAN_SWIG_JAVA_SRCS
):
148 # Make sure that we don't package stale generated sources in the
149 # case where SWIG changes its mind as to which files it generates.
150 -@erase
$(XAPIAN_SWIG_JAVA_SRCS
)
151 $(SWIG
) $(SWIG_FLAGS
) -I
$(XAPIAN_CORE_REL_JAVA
)\
include -I..\generic \
152 -c
++ -java
-module Xapian \
153 -o xapian_wrap.
cc ..
/xapian.i
154 # Insert code to automatically load the JNI library.
155 $(PERL_EXE
) -pe
"print \" System.loadLibrary('xapian_jni'); \n\" if /^\s*swig_module_init/" XapianJNI.java
>XapianJNI.java.tmp
156 -erase XapianJNI.java
157 -rename XapianJNI.java.tmp XapianJNI.java
160 JAVAOPTS
=-classpath
$(INTDIR
) -d
$(INTDIR
)
166 ".\version.res": version.rc WriteJavaVersion.class
167 "$(JAVA)" WriteJavaVersion
170 /I
"$(XAPIAN_CORE_REL_JAVA)\include" \
173 .java
{$(XAPIAN_SWIG_JAVA_CLASS
)}.class
:
174 $(JAVAC
) $(JAVAOPTS
) $*.java
176 xapian_wrap.obj
: xapian_wrap.
cc
181 SmokeTest.class
: SmokeTest.java
182 $(JAVAC
) $(JAVAOPTS
) SmokeTest.java
184 WriteJavaVersion.class
: WriteJavaVersion.java
185 $(JAVAC
) $(JAVAOPTS
) WriteJavaVersion.java