XEN_LIBXC = $(XEN_ROOT)/tools/libxc
XEN_XENSTORE = $(XEN_ROOT)/tools/xenstore
XEN_LIBXENSTAT = $(XEN_ROOT)/tools/xenstat/libxenstat/src
+XEN_BLKTAP2 = $(XEN_ROOT)/tools/blktap2
CFLAGS_include = -I$(XEN_INCLUDE)
CFLAGS_libxenstore = -I$(XEN_XENSTORE) $(CFLAGS_include)
LDFLAGS_libxenstore = -L$(XEN_XENSTORE) -lxenstore
+CFLAGS_libblktapctl = -I$(XEN_BLKTAP2)/control -I$(XEN_BLKTAP2)/include $(CFLAGS_include)
+LDFLAGS_libblktapctl = -L$(XEN_BLKTAP2)/control -lblktapctl
+
X11_LDPATH = -L/usr/X11R6/$(LIBLEAFDIR)
CFLAGS += -D__XEN_TOOLS__
CTL_OBJS += tap-ctl-major.o
CTL_OBJS += tap-ctl-check.o
-OBJS = $(CTL_OBJS)
-LIBS = libblktapctl.a
+CTL_PICS = $(patsubst %.o,%.opic,$(CTL_OBJS))
+
+OBJS = $(CTL_OBJS) tap-ctl.o
+PICS = $(CTL_PICS)
+
+LIBS = libblktapctl.a libblktapctl.so
+IBIN = tap-ctl
all: build
-build: $(IBIN)
+build: $(IBIN) $(LIBS)
-tap-ctl: tap-ctl.o libblktapctl.a
+tap-ctl: tap-ctl.o libblktapctl.so
$(CC) $(CFLAGS) -o $@ $^
libblktapctl.a: $(CTL_OBJS)
- ar r $@ $^
+ $(AR) r $@ $^
+
+libblktapctl.so: $(CTL_PICS)
+ $(CC) $(CFLAGS) -fPIC -shared -rdynamic $^ -o $@
-install: all
+install: $(IBIN) $(LIBS)
$(INSTALL_DIR) -p $(DESTDIR)$(SBINDIR)
$(INSTALL_PROG) $(IBIN) $(DESTDIR)$(SBINDIR)
+ $(INSTALL_PROG) $(LIBS) $(DESTDIR)$(LIBDIR)
clean:
- rm -f $(OBJS) $(DEPS) $(IBIN) $(LIBS)
+ rm -f $(OBJS) $(PICS) $(DEPS) $(IBIN) $(LIBS)
rm -f *~
.PHONY: all build clean install