libaltos: make clean remove all built files
[fw/altos] / ao-tools / libaltos / Makefile
1 OS:=$(shell uname)
2
3 ifeq ($(OS),Linux)
4
5 JAVA_CFLAGS=-I/usr/lib/jvm/java-6-openjdk/include
6
7 OS_CFLAGS=-DLINUX -DPOSIX_TTY $(JAVA_CFLAGS)
8
9 LIBEXT=so
10
11 endif
12
13 ifeq ($(OS),Darwin)
14
15 DARWIN_CFLAGS=\
16         -I/System/Library/Frameworks/JavaVM.framework/Headers \
17         -I/System/Library/Frameworks/IOKit.framework/Headers \
18         -I/System/Library/Frameworks/CoreFoundation.framework/Headers
19 DARWIN_LIBS=\
20         -framework IOKit -framework CoreFoundation
21
22 OS_CFLAGS = $(DARWIN_CFLAGS) -DDARWIN -DPOSIX_TTY
23 LIBEXT=dylib
24
25 endif
26
27 .SUFFIXES: .java .class
28
29 CLASSPATH=".:jnitest/*:libaltosJNI:/usr/share/java/*"
30
31 SWIG_DIR=swig_bindings/java
32 SWIG_FILE=$(SWIG_DIR)/libaltos.swig
33 SWIG_WRAP=$(SWIG_DIR)/libaltos_wrap.c
34
35 JNI_DIR=libaltosJNI
36 JNI_FILE=$(JNI_DIR)/libaltosJNI.java 
37 JNI_SRCS=$(JNI_FILE) \
38         $(JNI_DIR)/SWIGTYPE_p_altos_file.java \
39         $(JNI_DIR)/SWIGTYPE_p_altos_list.java \
40         $(JNI_DIR)/altos_device.java \
41         $(JNI_DIR)/libaltos.java
42
43 JAVAFILES=\
44         $(JNI_SRCS)
45
46 CLASSFILES = $(JAVAFILES:%.java=%.class)
47
48 JAVAFLAGS=-Xlint:unchecked
49
50 all: libaltos.$(LIBEXT) cjnitest $(CLASSFILES)
51
52 .java.class:
53         javac -cp "$(CLASSPATH)" $(JAVAFLAGS) $*.java
54
55 CFLAGS=$(OS_CFLAGS) -O0 -g -I.
56
57 HEADERS=libaltos.h
58 SRCS = libaltos.c $(SWIG_WRAP)
59 OBJS = $(SRCS:%.c=%.o)
60 LIBS = $(DARWIN_LIBS)
61
62 cjnitest: cjnitest.o $(OBJS)
63         cc -o $@ $(CFLAGS) cjnitest.o $(OBJS) $(LIBS)
64
65 libaltos.$(LIBEXT): $(OBJS)
66         gcc -shared -o $@ $(CFLAGS) $(OBJS) $(LIBS)
67
68 clean:
69         rm -f $(CLASSFILES) $(OBJS) libaltos.$(LIBEXT) cjnitest cjnitest.o
70         rm -rf swig_bindings libaltosJNI
71
72 $(JNI_FILE): libaltos.i0 $(HEADERS)
73         mkdir -p $(SWIG_DIR)
74         mkdir -p libaltosJNI
75         sed 's;//%;%;' libaltos.i0 $(HEADERS) > $(SWIG_FILE)
76         swig -java -package libaltosJNI $(SWIG_FILE)
77         cp swig_bindings/java/*.java libaltosJNI
78
79 $(SWIG_WRAP): $(JNI_FILE)