Add libaltos which talks to USB connected altos devices
[fw/altos] / ao-tools / libaltos / Makefile
diff --git a/ao-tools/libaltos/Makefile b/ao-tools/libaltos/Makefile
new file mode 100644 (file)
index 0000000..5ffbdad
--- /dev/null
@@ -0,0 +1,61 @@
+.SUFFIXES: .java .class
+
+CLASSPATH=".:jnitest/*:libaltosJNI:/usr/share/java/*"
+
+SWIG_DIR=swig_bindings/java
+SWIG_FILE=$(SWIG_DIR)/libaltos.swig
+SWIG_WRAP=$(SWIG_DIR)/libaltos_wrap.c
+
+JNI_DIR=libaltosJNI
+JNI_FILE=$(JNI_DIR)/libaltosJNI.java 
+JNI_SRCS=$(JNI_FILE) \
+       $(JNI_DIR)/SWIGTYPE_p_altos_file.java \
+       $(JNI_DIR)/SWIGTYPE_p_altos_list.java \
+       $(JNI_DIR)/altos_device.java \
+       $(JNI_DIR)/libaltos.java
+
+LIBEXT=dylib
+
+JAVAFILES=\
+       $(JNI_SRCS)
+
+CLASSFILES = $(JAVAFILES:%.java=%.class)
+
+JAVAFLAGS=-Xlint:unchecked
+
+all: libaltos.$(LIBEXT) cjnitest $(CLASSFILES)
+
+.java.class:
+       javac -cp "$(CLASSPATH)" $(JAVAFLAGS) $*.java
+
+DARWIN_CFLAGS=\
+       -I/System/Library/Frameworks/JavaVM.framework/Headers \
+       -I/System/Library/Frameworks/IOKit.framework/Headers \
+       -I/System/Library/Frameworks/CoreFoundation.framework/Headers
+DARWIN_LIBS=\
+       -framework IOKit -framework CoreFoundation
+
+CFLAGS = $(DARWIN_CFLAGS) -I. -O0 -g
+
+HEADERS=libaltos.h
+SRCS = libaltos.c $(SWIG_WRAP)
+OBJS = $(SRCS:%.c=%.o)
+LIBS = $(DARWIN_LIBS)
+
+cjnitest: cjnitest.o $(OBJS)
+       cc -o $@ $(CFLAGS) cjnitest.o $(OBJS) $(LIBS)
+
+libaltos.$(LIBEXT): $(OBJS)
+       gcc -shared -o $@ $(OBJS) $(LIBS)
+
+clean:
+       rm -f $(CLASSFILES) $(OBJS) libaltos.$(LIBEXT) cjnitest
+
+$(JNI_FILE): libaltos.i0 $(HEADERS)
+       mkdir -p $(SWIG_DIR)
+       mkdir -p libaltosJNI
+       sed 's;//%;%;' libaltos.i0 $(HEADERS) > $(SWIG_FILE)
+       swig -java -package libaltosJNI $(SWIG_FILE)
+       cp swig_bindings/java/*.java libaltosJNI
+
+$(SWIG_WRAP): $(JNI_FILE)