summaryrefslogtreecommitdiffstats
path: root/java/Makefile
blob: 0c727dd7106c7a50df56b4b76b741eb4416e1ab1 (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
TARGET=target

#JAVAC=/usr/bin/javac
#JAVAH=/usr/bin/javah
#JAVAH_CLASSPATH_PREFIX=
#JAR=/usr/bin/jar

#JAVAC=/opt/jdk/bin/javac
#JAVAH=/opt/jdk/bin/javah
#JAVAH_CLASSPATH_PREFIX=
#JAR=/opt/jdk/bin/jar

JAVAC=/usr/lib/kaffe/bin/javac
JAVAH=/usr/lib/kaffe/bin/javah
JAVAH_CLASSPATH_PREFIX=/usr/share/kaffe/Klasses.jar:
JAR=/usr/lib/kaffe/bin/jar

#JAVAC=/usr/bin/gcj -C
#JAVAH=/usr/bin/gcjh -jni
#JAVAH_CLASSPATH_PREFIX=
#JAR=/usr/bin/fastjar

JAVA_BUILD_DIR=${TARGET}/classes
JAVA_SOURCE_DIR=src/java
JAVA_PACKAGE=com.entrouvert.lasso
JAVA_SOURCE=${wildcard ${JAVA_SOURCE_DIR}/${subst .,/,${JAVA_PACKAGE}}/*.java}
JAVA_CLASSES=${addprefix ${JAVA_PACKAGE}., ${filter-out LassoTest, ${basename ${notdir ${JAVA_SOURCE}}}}}
LASSO.JAR=${TARGET}/lasso.jar

C_SOURCE_DIR=src/c
C_BUILD_DIR=${C_SOURCE_DIR}
C_SOURCE=${wildcard ${C_SOURCE_DIR}/*.c}
C_OBJECT=${C_SOURCE:.c=.o}
LASSO.SO=${TARGET}/libjlasso.so

.PHONY: clean all binary-java binary-c generate-header

all: binary-java binary-c

binary-java:
	mkdir -p ${JAVA_BUILD_DIR}
	${JAVAC} -d ${JAVA_BUILD_DIR} ${JAVA_SOURCE}
	${JAR} cf ${LASSO.JAR} -C ${JAVA_BUILD_DIR} com

generate-header: binary-java
	${JAVAH} -d ${C_SOURCE_DIR} -classpath ${JAVAH_CLASSPATH_PREFIX}${JAVA_BUILD_DIR} ${JAVA_CLASSES}

binary-c: ${LASSO.SO}

${C_OBJECT}: ${C_SOURCE}
	${MAKE} -C ${C_SOURCE_DIR}

mylibs = ../lasso/.libs/liblasso.so

${LASSO.SO}: generate-header ${C_OBJECT}
	$(CC) -shared -lgobject-2.0 -lglib-2.0 $(mylibs) ${C_OBJECT} -o $@

clean:
	${MAKE} -C ${C_SOURCE_DIR} clean
	rm -fr ${TARGET} *~ *.log