aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxl/Makefile')
-rw-r--r--tools/libxl/Makefile59
1 files changed, 41 insertions, 18 deletions
diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
index 3ddcd48513..dbf8c436d1 100644
--- a/tools/libxl/Makefile
+++ b/tools/libxl/Makefile
@@ -8,24 +8,40 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1.0
MINOR = 0
+XLUMAJOR = 1.0
+XLUMINOR = 0
+
#CFLAGS += -Werror
CFLAGS += -I. -fPIC
CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore)
LIBS = $(LDFLAGS_libxenctrl) $(LDFLAGS_libxenguest) $(LDFLAGS_libxenstore)
-#LIBCONFIG_URL ?= http://www.hyperrealm.com/libconfig
-LIBCONFIG_URL = $(XEN_EXTFILES_URL)
-LIBCONFIG_SOURCE = libconfig-1.3.2
-LIBCONFIG_OUTPUT = $(LIBCONFIG_SOURCE)/.libs
-
LIBXL_OBJS-y = osdeps.o
LIBXL_OBJS = flexarray.o libxl.o libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o libxl_internal.o xenguest.o libxl_utils.o $(LIBXL_OBJS-y)
+AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h
+AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
+LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o
+
CLIENTS = xl
.PHONY: all
-all: $(CLIENTS) libxenlight.so libxenlight.a
+all: $(CLIENTS) libxenlight.so libxenlight.a libxlutil.so libxlutil.a \
+ $(AUTOSRCS) $(AUTOINCS)
+
+$(AUTOINCS): $(AUTOSRCS)
+
+#%_y.h: %_y.c
+#%_l.h: %_l.c
+
+$(LIBXLU_OBJS): $(AUTOINCS)
+
+%.c: %.y
+ $(BISON) --output=$@ $<
+
+%.c: %.l
+ $(FLEX) --header-file=$*.h --outfile=$@ $<
libxenlight.so: libxenlight.so.$(MAJOR)
ln -sf $< $@
@@ -39,18 +55,23 @@ libxenlight.so.$(MAJOR).$(MINOR): $(LIBXL_OBJS)
libxenlight.a: $(LIBXL_OBJS)
$(AR) rcs libxenlight.a $^
-$(LIBCONFIG_SOURCE).tar.gz:
- $(WGET) $(LIBCONFIG_URL)/$@
+libxlutil.so: libxlutil.so.$(XLUMAJOR)
+ ln -sf $< $@
+
+libxlutil.so.$(XLUMAJOR): libxlutil.so.$(XLUMAJOR).$(XLUMINOR)
+ ln -sf $< $@
+
+libxlutil.so.$(XLUMAJOR).$(XLUMINOR): $(LIBXLU_OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxlutil.so.$(XLUMAJOR) $(SHLIB_CFLAGS) -o $@ $^
-$(LIBCONFIG_OUTPUT)/libconfig.so: $(LIBCONFIG_SOURCE).tar.gz
- [ ! -d "$(LIBCONFIG_SOURCE)" ] && tar xzf $<
- cd $(LIBCONFIG_SOURCE) && ./configure --prefix=$(PREFIX) --libdir=$(LIBDIR) --disable-cxx && $(MAKE)
+libxlutil.a: $(LIBXLU_OBJS)
+ $(AR) rcs libxlutil.a $^
-xl.o: $(LIBCONFIG_OUTPUT)/libconfig.so xl.c
- $(CC) $(CFLAGS) -I$(LIBCONFIG_SOURCE) -c xl.c
+xl.o: xl.c
+ $(CC) $(CFLAGS) -c xl.c
-$(CLIENTS): xl.o libxenlight.so $(LIBCONFIG_OUTPUT)/libconfig.so
- $(CC) $(LDFLAGS) -o $@ $< $(LIBS) -L . -lxenlight -L$(LIBCONFIG_OUTPUT) -lconfig
+$(CLIENTS): xl.o libxlutil.so libxenlight.so
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
.PHONY: install
install: all
@@ -59,15 +80,17 @@ install: all
ln -sf libxenlight.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libxenlight.so.$(MAJOR)
ln -sf libxenlight.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libxenlight.so
$(INSTALL_DATA) libxenlight.a $(DESTDIR)$(LIBDIR)
+ $(INSTALL_PROG) libxlutil.so.$(XLUMAJOR).$(XLUMINOR) $(DESTDIR)$(LIBDIR)
+ ln -sf libxlutil.so.$(XLUMAJOR).$(XLUMINOR) $(DESTDIR)$(LIBDIR)/libxlutil.so.$(XLUMAJOR)
+ ln -sf libxlutil.so.$(XLUMAJOR) $(DESTDIR)$(LIBDIR)/libxlutil.so
+ $(INSTALL_DATA) libxlutil.a $(DESTDIR)$(LIBDIR)
$(INSTALL_DATA) libxl.h $(DESTDIR)$(INCLUDEDIR)
- cd $(LIBCONFIG_SOURCE) && DESTDIR=$(DESTDIR) $(MAKE) install
.PHONY: clean
clean:
$(RM) -f *.o *.so* *.a $(CLIENTS) $(DEPS)
- $(RM) -rf $(LIBCONFIG_SOURCE)
+ $(RM) -f $(AUTOSRCS) $(AUTOINCS)
distclean: clean
- $(RM) -f $(LIBCONFIG_SOURCE).tar.gz
-include $(DEPS)