File: Makefile

package info (click to toggle)
libusb-java 0.8%2Bztex20090101-9
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 296 kB
  • sloc: java: 1,102; ansic: 605; makefile: 96; sh: 29
file content (106 lines) | stat: -rw-r--r-- 3,738 bytes parent folder | download
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