summaryrefslogtreecommitdiffstats
path: root/java/Makefile.am
blob: d91df56fdfe6447a72945e528dd68fa3f205acf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Define the java module
JAVA_MODULE = lasso
# Define java package name
JAVA_PACKAGE = com.entrouvert.lasso
# Define java Package directory, the tailing '/' is mandatory.
JAVA_PATH = com/entrouvert/lasso/
JDK_INCLUDES = @JDK_INCLUDE@
CLASSPATH = .

javalibdir = $(prefix)/lib/java
javasharedir = $(prefix)/share/java

# Shared library.
javalib_LTLIBRARIES = libjlasso.la

libjlasso_la_SOURCES =	$(JAVA_MODULE)_wrap.c \
			$(top_srcdir)/swig/Lasso.c
libjlasso_la_CFLAGS =	$(JDK_INCLUDES) \
			$(LASSO_CFLAGS) \
			-I$(top_srcdir)

libjlasso_la_LIBADD =	$(top_builddir)/lasso/liblasso.la $(LASSO_LIBS)

libjlasso_la_LDFLAGS =	-no-undefined -avoid-version -module

# Java package
javashare_DATA = lasso.jar
JAVA_JAR = lasso.jar

SWIG_OUTPUTS = $(JAVA_PATH)$(JAVA_MODULE).java $(JAVA_MODULE)_wrap.c $(JAVA_MODULE).java.in
JAVA_CRUFT = $(JAVA_PATH)$(JAVA_MODULE).class $(JAVA_MODULE)_wrap.o \
	$(JAVA_JAR) \
	$(JAVA_PATH)$(JAVA_MODULE)JNI.java

# The SWIG outputs are included in the distribution so SWIG is not
# required to use the Java interface
EXTRA_DIST = lasso-fragment.java $(SWIG_OUTPUTS)

CLEANFILES = $(JAVA_CRUFT)
MAINTAINERCLEANFILES = $(SWIG_OUTPUTS)


$(JAVA_MODULE)_wrap.c $(JAVA_MODULE).java.in: $(top_srcdir)/swig/Lasso.i
	here=`pwd`; \
	$(SWIG) -v -java -noproxy -module $(JAVA_MODULE) -package $(JAVA_PACKAGE) -o $(JAVA_MODULE)_wrap.c $$here/$<; \
	if test -r $(JAVA_MODULE)JNI.java; then \
	  echo "Fixing SWIG 1.3.15+ broken Java API"; \
	  rm -f $(JAVA_MODULE).java SWIGTYPE_*; \
	  sed -e 's/class $(JAVA_MODULE)JNI/public class $(JAVA_MODULE)/' $(JAVA_MODULE)JNI.java > $(JAVA_MODULE).java; \
	  sed -e 's/$(JAVA_MODULE)JNI/$(JAVA_MODULE)/g' $(JAVA_MODULE)_wrap.c > $(JAVA_MODULE)_wrap.c.new; \
	  rm -f $(JAVA_MODULE)_wrap.c $(JAVA_MODULE)JNI.java; \
	  mv $(JAVA_MODULE)_wrap.c.new $(JAVA_MODULE)_wrap.c; \
	fi; \
	mv $(JAVA_MODULE).java $(JAVA_MODULE).java.in

# FIXME There must be a better way to do this with SWIG
$(JAVA_PATH)$(JAVA_MODULE).java: $(JAVA_MODULE).java.in lasso-fragment.java
	mkdir -p $(JAVA_PATH) 
	cd $(JAVA_PATH) 
	sed -e 's/^}//' $(JAVA_MODULE).java.in > $(JAVA_PATH)$(JAVA_MODULE).java.tmp
	cat $(JAVA_PATH)$(JAVA_MODULE).java.tmp lasso-fragment.java > $@
	echo "}" >> $@
	rm -f $(JAVA_PATH)$(JAVA_MODULE).java.tmp


clean-local:
	rm -f *.class
	rm -rf com

all-local: $(JAVA_JAR)

$(JAVA_PATH)$(JAVA_MODULE).class: $(JAVA_PATH)$(JAVA_MODULE).java
	mkdir -p $(JAVA_PATH)
	test -f $(JAVA_PATH)$(JAVA_MODULE).java || cp $(srcdir)/$(JAVA_PATH)$(JAVA_MODULE).java $(JAVA_PATH)
	$(JAVAC) $(JAVAC_FLAGS) $(JAVA_PATH)$(JAVA_MODULE).java

$(JAVA_JAR): $(JAVA_PATH)$(JAVA_MODULE).class 
	rm -f $@
	jar cf $@ $(JAVA_PATH)$(JAVA_MODULE).class 

$(DEPDIR)/libjlasso_la-lasso_wrap.Plo:
	mkdir -p $(DEPDIR)
	echo "#dummy" > $(DEPDIR)/libjlasso_la-lasso_wrap.Plo 

$(DEPDIR)/com/entrouvert/lasso/lasso.Po:
	mkdir -p $(DEPDIR)/com/entrouvert/lasso 
	echo "#dummy" > $(DEPDIR)/com/entrouvert/lasso/lasso.Po