1PROG = usb_modeswitch 2VERS = 2.2.3 3CC ?= gcc 4CFLAGS += -Wall 5#LIBS = `pkg-config --libs --cflags libusb-1.0` 6RM = /bin/rm -f 7OBJS = usb_modeswitch.c 8PREFIX = $(DESTDIR)/usr 9ETCDIR = $(DESTDIR)/etc 10SYSDIR = $(ETCDIR)/systemd/system 11UPSDIR = $(ETCDIR)/init 12UDEVDIR = $(DESTDIR)/lib/udev 13SBINDIR = $(PREFIX)/sbin 14MANDIR = $(PREFIX)/share/man/man1 15VPATH = jimtcl 16HOST_TCL := $(shell cd jim && ./autosetup/find-tclsh) 17ifeq (,$(findstring jimsh0,$(HOST_TCL))) 18TCL ?= $(HOST_TCL) 19else 20TCL ?= /usr/bin/tclsh 21endif 22JIM_CONFIGURE_OPTS = --disable-lineedit \ 23 --with-out-jim-ext="stdlib posix load signal syslog" --prefix=/usr 24 25.PHONY: clean install install-common uninstall \ 26 script shared static \ 27 dispatcher-script dispatcher-shared dispatcher-static \ 28 install-script install-shared install-static 29 30all: script 31 32script: $(PROG) dispatcher-script 33 34shared: $(PROG) dispatcher-shared 35 36static: $(PROG) dispatcher-static 37 38$(PROG): $(OBJS) usb_modeswitch.h 39 $(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS) 40 41jim/libjim.so: 42 cd jim && CFLAGS="$(CFLAGS)" CC="$(CC)" ./configure $(JIM_CONFIGURE_OPTS) --shared 43 $(MAKE) -C jim lib 44 45jim/libjim.a: 46 cd jim && CFLAGS="$(CFLAGS)" CC="$(CC)" ./configure $(JIM_CONFIGURE_OPTS) 47 $(MAKE) -C jim lib 48 49dispatcher-script: usb_modeswitch.tcl 50 sed 's_!/usr/bin/tclsh_!'"$(TCL)"'_' < usb_modeswitch.tcl > usb_modeswitch_dispatcher 51 52dispatcher-shared: jim/libjim.so dispatcher.c usb_modeswitch.string 53 $(CC) dispatcher.c $(LDFLAGS) -Ljim -ljim -Ijim -o usb_modeswitch_dispatcher $(CFLAGS) 54 55dispatcher-static: jim/libjim.a dispatcher.c usb_modeswitch.string 56 $(CC) dispatcher.c $(LDFLAGS) jim/libjim.a -Ijim -o usb_modeswitch_dispatcher $(CFLAGS) 57 58usb_modeswitch.string: usb_modeswitch.tcl 59 $(HOST_TCL) make_string.tcl usb_modeswitch.tcl > $@ 60 61clean: 62 $(RM) usb_modeswitch 63 $(RM) usb_modeswitch_dispatcher 64 $(RM) usb_modeswitch.string 65 $(RM) jim/autosetup/jimsh0 66 $(RM) jim/autosetup/jimsh0.c 67 68distclean: clean 69 -$(MAKE) -C jim distclean 70 71ums-clean: 72 $(RM) usb_modeswitch 73 $(RM) usb_modeswitch_dispatcher 74 $(RM) usb_modeswitch.string 75 76# If the systemd folder is present, install the service for starting the dispatcher 77# If not, use the dispatcher directly from the udev rule as in previous versions 78 79install-common: $(PROG) usb_modeswitch_dispatcher 80 install -D --mode=755 usb_modeswitch $(SBINDIR)/usb_modeswitch 81 install -D --mode=755 usb_modeswitch.sh $(UDEVDIR)/usb_modeswitch 82 install -D --mode=644 usb_modeswitch.conf $(ETCDIR)/usb_modeswitch.conf 83 install -D --mode=644 usb_modeswitch.1 $(MANDIR)/usb_modeswitch.1 84 install -D --mode=644 usb_modeswitch_dispatcher.1 $(MANDIR)/usb_modeswitch_dispatcher.1 85 install -D --mode=755 usb_modeswitch_dispatcher $(SBINDIR)/usb_modeswitch_dispatcher 86 install -d $(DESTDIR)/var/lib/usb_modeswitch 87 test -d $(UPSDIR) -a -e /sbin/initctl && install --mode=644 usb-modeswitch-upstart.conf $(UPSDIR) || test 1 88 test -d $(SYSDIR) -a \( -e /usr/bin/systemctl -o -e /bin/systemctl \) && install --mode=644 usb_modeswitch@.service $(SYSDIR) || test 1 89 90install: install-script 91 92install-script: dispatcher-script install-common 93 94install-shared: dispatcher-shared install-common 95 96install-static: dispatcher-static install-common 97 98uninstall: 99 $(RM) $(SBINDIR)/usb_modeswitch 100 $(RM) $(SBINDIR)/usb_modeswitch_dispatcher 101 $(RM) $(UDEVDIR)/usb_modeswitch 102 $(RM) $(ETCDIR)/usb_modeswitch.conf 103 $(RM) $(MANDIR)/usb_modeswitch.1 104 $(RM) -R $(DESTDIR)/var/lib/usb_modeswitch 105 $(RM) $(SYSDIR)/usb_modeswitch@.service 106