1
1
PROG = usb_modeswitch
5
LIBS = `pkg-config --libs --cflags libusb-1.0`
7
7
OBJS = usb_modeswitch.c
8
8
PREFIX = $(DESTDIR)/usr
9
9
ETCDIR = $(DESTDIR)/etc
10
SYSDIR = $(ETCDIR)/systemd/system
11
UPSDIR = $(ETCDIR)/init
10
12
UDEVDIR = $(DESTDIR)/lib/udev
11
13
SBINDIR = $(PREFIX)/sbin
12
14
MANDIR = $(PREFIX)/share/man/man1
15
.PHONY: clean install uninstall
19
shared: $(PROG) dispatcher-dynamic
16
HOST_TCL := /usr/bin/jimsh
18
JIM_CONFIGURE_OPTS = --disable-lineedit \
19
--with-out-jim-ext="stdlib posix load signal syslog" --prefix=/usr
21
.PHONY: clean install install-common uninstall \
22
script shared static \
23
dispatcher-script dispatcher-shared dispatcher-static \
24
install-script install-shared install-static
28
script: $(PROG) dispatcher-script
30
shared: $(PROG) dispatcher-shared
21
32
static: $(PROG) dispatcher-static
34
$(PROG): $(OBJS) usb_modeswitch.h
24
35
$(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS)
26
dispatcher-static: dispatcher.c usb_modeswitch.tcl
27
./make_static_dispatcher.sh
29
dispatcher-dynamic: usb_modeswitch_dispatcher
31
usb_modeswitch_dispatcher: usb_modeswitch_dispatcher.c
32
$(CC) $(CFLAGS) usb_modeswitch_dispatcher.c -lpipeline -ludev -o $@
38
cd jim && CFLAGS="$(CFLAGS)" CC="$(CC)" ./configure $(JIM_CONFIGURE_OPTS) --shared
42
cd jim && CFLAGS="$(CFLAGS)" CC="$(CC)" ./configure $(JIM_CONFIGURE_OPTS)
45
dispatcher-script: usb_modeswitch.tcl
46
sed 's_!/usr/bin/tclsh_!'"$(TCL)"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher
48
dispatcher-shared-jim: dispatcher.c usb_modeswitch.string
49
$(CC) dispatcher.c $(LDFLAGS) -Ljim -ljim -Ijim -o usb_modeswitch_dispatcher $(CFLAGS)
52
$(CC) $(CFLAGS) usb_modeswitch_dispatcher.c -o usb_modeswitch_dispatcher -lpipeline -ludev
54
dispatcher-static: jim/libjim.a dispatcher.c usb_modeswitch.string
55
$(CC) dispatcher.c $(LDFLAGS) jim/libjim.a -Ijim -o usb_modeswitch_dispatcher $(CFLAGS)
34
57
usb_modeswitch.string: usb_modeswitch.tcl
35
jimsh make_string.tcl usb_modeswitch.tcl > $@
58
$(HOST_TCL) make_string.tcl usb_modeswitch.tcl > $@
38
61
$(RM) usb_modeswitch
39
62
$(RM) usb_modeswitch_dispatcher
40
63
$(RM) usb_modeswitch.string
64
$(RM) jim/autosetup/jimsh0
65
$(RM) jim/autosetup/jimsh0.c
68
-$(MAKE) -C jim distclean
43
71
$(RM) usb_modeswitch
44
72
$(RM) usb_modeswitch_dispatcher
45
73
$(RM) usb_modeswitch.string
46
- cd jim && $(MAKE) distclean
49
install -D -s --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch
75
# If the systemd folder is present, install the service for starting the dispatcher
76
# If not, use the dispatcher directly from the udev rule as in previous versions
78
install-common: $(PROG) usb_modeswitch_dispatcher
79
install -D --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch
50
80
install -D --mode=755 usb_modeswitch.sh $(UDEVDIR)/usb_modeswitch
51
81
install -D --mode=644 usb_modeswitch.conf $(ETCDIR)/usb_modeswitch.conf
52
82
install -D --mode=644 usb_modeswitch.1 $(MANDIR)/usb_modeswitch.1
83
install -D --mode=644 usb_modeswitch_dispatcher.1 $(MANDIR)/usb_modeswitch_dispatcher.1
84
install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher
53
85
install -d $(DESTDIR)/var/lib/usb_modeswitch
56
@SHELL=`which tclsh 2>/dev/null`; \
57
if [ -z $$SHELL ]; then \
58
SHELL="`which jimsh 2>/dev/null`"; \
59
if [ -z $$SHELL ]; then \
60
echo "Warning: no Tcl interpreter found!"; \
61
SHELL="/usr/bin/tclsh"; \
64
sed 's_!/usr/bin/tclsh_!'"$$SHELL"'_' <usb_modeswitch.tcl >usb_modeswitch_dispatcher
65
install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher
68
install -D -s --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher
70
install: all install-common install-script
72
install-shared: shared install-common install-binary
74
install-static: static install-common install-binary
86
test -d $(UPSDIR) -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf $(UPSDIR) || test 1
87
test -d $(SYSDIR) -a -e /usr/bin/systemctl && install --mode=644 usb_modeswitch@.service $(SYSDIR) || test 1
89
install: install-script
91
install-script: dispatcher-script install-common
93
install-shared: dispatcher-shared install-common
95
install-static: dispatcher-static install-common
77
98
$(RM) $(SBINDIR)/usb_modeswitch