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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
# Makefile for libusbJava, a Java libusb wrapper
# Copyright (C) 2009 ZTEX e.K.
# http://www.ztex.de
#
# This Makefile ia a part of the reorganized version of the libusbJava source tree
# with proper makefiles. (SVN version of Apr. 6, 2009).
#
# Please visit http://libusbjava.sourceforge.net for more information about the
# original project.
#########################
# Configuration section #
#########################
# $(JAVAPREFIX)/include should contain jni.h
#JAVAPREFIX=$(shell find /usr/lib/jvm/ -name jni.h | sed -e 's/include.*//' | head -n 1)
#JAVAPREFIX=/usr/lib/jvm/java-6-openjdk-$(shell dpkg-architecture -qDEB_BUILD_ARCH|tr -d "\n")
# A bit desparate, things fail to work across platforms
JAVAPREFIX=$(shell find /usr/lib/jvm/ -name jni.h | sed -e 's/include.*//' | head -n 1)
###############################
# this should not be modified #
###############################
GCC=gcc
STRIP=strip
CHMOD=chmod -x
JAVAC=javac -source 7 -target 7 -encoding ISO-8859-1
RM=rm -f
INSTALL=install
INSTALLDIR=$(INSTALL) -d
INSTALLEXE=$(INSTALL) -m 0755
INSTALLFILE=$(INSTALL) -m 0644
OBJEXTRADEPS=LibusbJava.h
LIBSRCS=LibusbJava.o
LIBSRCS64=LibusbJava.c
JAVASRCS=$(shell echo ch/ntb/usb/*.java) $(shell echo ch/ntb/usb/logger/*.java)
LIBTARGET_SH=libusbJavaSh.so
LIBTARGET_ST=libusbJavaSt.so
LIBTARGET_64=libusbJava64.so
LIBLIBS=-lusb
LIBINCS=-I $(JAVAPREFIX)/include -I $(JAVAPREFIX)/include/linux
.PHONY: all libs classes install2 clean distclean
all: libs classes
classes: classes.made
#libs: $(LIBTARGET_SH) $(LIBTARGET_ST) $(LIBTARGET_64)
libs: $(LIBTARGET_SH)
%.o: %.c LibusbJava.h
$(GCC) -fPIC -g -c -std=c99 -Wall -Wno-pointer-to-int-cast $(LIBINCS) $< -o$@
$(LIBTARGET_ST): $(LIBSRCS)
VERSIONSUFFIX=
$(LIBTARGET_ST):$(LIBTARGET_ST)$(VERSIONSUFFIX)
$(LIBTARGET_SH):$(LIBTARGET_SH)$(VERSIONSUFFIX)
$(LIBTARGET):$(LIBTARGET)$(VERSIONSUFFIX)
$(LIBTARGET_64):$(LIBTARGET_64)$(VERSIONSUFFIX)
$(LIBTARGET_ST)$(VERSIONSUFFIX): $(LIBSRCS)
$(GCC) -shared -Wl,-soname,$(LIBTARGET_ST),-static $(LIBINCS) $(LIBSRCS) -static -o $(LIBTARGET_ST)$(VERSIONSUFFIX) $(LIBLIBS)
[ -r $(LIBTARGET_ST) ] || ln -s $(LIBTARGET_ST)$(VERSIONSUFFIX) $(LIBTARGET_ST)
$(STRIP) $(LIBTARGET_ST)
$(CHMOD) $(LIBTARGET_ST)
$(LIBTARGET_SH)$(VERSIONSUFFIX): $(LIBSRCS)
$(GCC) -fPIC -shared -Wl,-soname,$(LIBTARGET_SH) $(LIBINCS) $(LIBSRCS) -o $(LIBTARGET_SH)$(VERSIONSUFFIX) $(LIBLIBS)
[ -r $(LIBTARGET_SH) ] || ln -s $(LIBTARGET_SH)$(VERSIONSUFFIX) $(LIBTARGET_SH)
$(STRIP) $(LIBTARGET_SH)
$(CHMOD) $(LIBTARGET_SH)
$(LIBTARGET)$(VERSIONSUFFIX): $(LIBSRCS)
$(GCC) -fPIC -shared -Wl,-soname,$(LIBTARGET) $(LIBINCS) $(LIBSRCS) -o $(LIBTARGET)$(VERSIONSUFFIX) $(LIBLIBS)
[ -r $(LIBTARGET) ] || ln -s $(LIBTARGET)$(VERSIONSUFFIX) $(LIBTARGET)
$(STRIP) $(LIBTARGET)
$(CHMOD) $(LIBTARGET)
$(LIBTARGET_64)$(VERSIONSUFFIX): $(LIBSRCS64)
$(GCC) -fPIC -m64 -shared -std=c99 -Wall -Wno-pointer-to-int-cast -Wl,-soname,$(LIBTARGET_64) $(LIBINCS) $(LIBSRCS64) $(LIBLIBS) -o $(LIBTARGET_64)$(VERSIONSUFFIX)
[ -r $(LIBTARGET_64) ] || ln -s $(LIBTARGET_64)$(VERSIONSUFFIX) $(LIBTARGET_64)
$(STRIP) $(LIBTARGET_64)
$(CHMOD) $(LIBTARGET_64)
classes.made: $(JAVASRCS)
$(JAVAC) $(JAVASRCS)
echo > classes.made
doc:
javadoc ch.ntb.usb -d ../docs/libusbJava
install2: all
$(INSTALLDIR) ../libusbJava/ch/ntb/usb/logger
$(INSTALLFILE) $(LIBTARGET_SH) ../libusbJava
$(INSTALLFILE) $(LIBTARGET_ST) ../libusbJava
$(INSTALLFILE) $(LIBTARGET_64) ../libusbJava
$(INSTALLFILE) ch/ntb/usb/*.class ../libusbJava/ch/ntb/usb
$(INSTALLFILE) ch/ntb/usb/logger/*.class ../libusbJava/ch/ntb/usb/logger
clean distclean:
$(RM) *.o $(LIBTARGET_SH) $(LIBTARGET_ST) $(LIBTARGET_64) libusbJava*.dll ch/ntb/usb/*.class ch/ntb/usb/logger/*.class classes.made
|