5ffbdadff881e625d3ce830a481ea897629da956
[fw/altos] / ao-tools / libaltos / Makefile
1 .SUFFIXES: .java .class
2
3 CLASSPATH=".:jnitest/*:libaltosJNI:/usr/share/java/*"
4
5 SWIG_DIR=swig_bindings/java
6 SWIG_FILE=$(SWIG_DIR)/libaltos.swig
7 SWIG_WRAP=$(SWIG_DIR)/libaltos_wrap.c
8
9 JNI_DIR=libaltosJNI
10 JNI_FILE=$(JNI_DIR)/libaltosJNI.java 
11 JNI_SRCS=$(JNI_FILE) \
12         $(JNI_DIR)/SWIGTYPE_p_altos_file.java \
13         $(JNI_DIR)/SWIGTYPE_p_altos_list.java \
14         $(JNI_DIR)/altos_device.java \
15         $(JNI_DIR)/libaltos.java
16
17 LIBEXT=dylib
18
19 JAVAFILES=\
20         $(JNI_SRCS)
21
22 CLASSFILES = $(JAVAFILES:%.java=%.class)
23
24 JAVAFLAGS=-Xlint:unchecked
25
26 all: libaltos.$(LIBEXT) cjnitest $(CLASSFILES)
27
28 .java.class:
29         javac -cp "$(CLASSPATH)" $(JAVAFLAGS) $*.java
30
31 DARWIN_CFLAGS=\
32         -I/System/Library/Frameworks/JavaVM.framework/Headers \
33         -I/System/Library/Frameworks/IOKit.framework/Headers \
34         -I/System/Library/Frameworks/CoreFoundation.framework/Headers
35 DARWIN_LIBS=\
36         -framework IOKit -framework CoreFoundation
37
38 CFLAGS = $(DARWIN_CFLAGS) -I. -O0 -g
39
40 HEADERS=libaltos.h
41 SRCS = libaltos.c $(SWIG_WRAP)
42 OBJS = $(SRCS:%.c=%.o)
43 LIBS = $(DARWIN_LIBS)
44
45 cjnitest: cjnitest.o $(OBJS)
46         cc -o $@ $(CFLAGS) cjnitest.o $(OBJS) $(LIBS)
47
48 libaltos.$(LIBEXT): $(OBJS)
49         gcc -shared -o $@ $(OBJS) $(LIBS)
50
51 clean:
52         rm -f $(CLASSFILES) $(OBJS) libaltos.$(LIBEXT) cjnitest
53
54 $(JNI_FILE): libaltos.i0 $(HEADERS)
55         mkdir -p $(SWIG_DIR)
56         mkdir -p libaltosJNI
57         sed 's;//%;%;' libaltos.i0 $(HEADERS) > $(SWIG_FILE)
58         swig -java -package libaltosJNI $(SWIG_FILE)
59         cp swig_bindings/java/*.java libaltosJNI
60
61 $(SWIG_WRAP): $(JNI_FILE)