aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxen
diff options
context:
space:
mode:
authorewan@localhost.localdomain <ewan@localhost.localdomain>2007-04-21 12:42:58 -0700
committerewan@localhost.localdomain <ewan@localhost.localdomain>2007-04-21 12:42:58 -0700
commitef8c922a147e618a260b7156a1350d874172337f (patch)
tree2cf3915b6cb14e2679a83964ff19b47465b7c784 /tools/libxen
parente83be1159570416909d74bca47175a30a13534f8 (diff)
downloadxen-ef8c922a147e618a260b7156a1350d874172337f.tar.gz
xen-ef8c922a147e618a260b7156a1350d874172337f.tar.bz2
xen-ef8c922a147e618a260b7156a1350d874172337f.zip
Added Makefile.dist, which can make standalone tarballs.
Signed-off-by: Ewan Mellor <ewan@xensource.com>
Diffstat (limited to 'tools/libxen')
-rw-r--r--tools/libxen/Makefile11
-rw-r--r--tools/libxen/Makefile.dist115
2 files changed, 115 insertions, 11 deletions
diff --git a/tools/libxen/Makefile b/tools/libxen/Makefile
index d91be3c33d..103b192467 100644
--- a/tools/libxen/Makefile
+++ b/tools/libxen/Makefile
@@ -72,14 +72,3 @@ clean:
rm -f libxenapi.so*
rm -f libxenapi.a
rm -f $(TEST_PROGRAMS)
-
-
-.PHONY: uberheader
-uberheader: include/xen/api/xen_all.h
-include/xen/api/xen_all.h::
- echo "/* This file is autogenerated */" >$@
- echo "#ifndef XEN_API_XEN_ALL_H" >>$@
- echo "#define XEN_API_XEN_ALL_H" >>$@
- ls include/xen/api/*.h | grep -v xen_all.h | grep -v _decl.h | \
- sed 's,^include/\(.*\)$$,#include <\1>,g' >>$@
- echo "#endif" >>$@
diff --git a/tools/libxen/Makefile.dist b/tools/libxen/Makefile.dist
new file mode 100644
index 0000000000..d6a4cf3ca8
--- /dev/null
+++ b/tools/libxen/Makefile.dist
@@ -0,0 +1,115 @@
+#
+# Copyright (c) 2006-2007, XenSource Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+MAJOR = 0.9
+MINOR = 1
+
+CFLAGS = -Iinclude \
+ $(shell xml2-config --cflags) \
+ $(shell curl-config --cflags) \
+ -W -Wall -Wmissing-prototypes -Werror -std=c99 -O2 -fPIC
+
+LDFLAGS = $(shell xml2-config --libs) \
+ $(shell curl-config --libs)
+
+# -h for Solaris
+SONAME_LDFLAG ?= -soname
+# -R /usr/sfw/$(LIBDIR) -shared for Solaris
+SHLIB_CFLAGS ?= -shared
+
+# ginstall for Solaris
+INSTALL = install
+INSTALL_DIR = $(INSTALL) -d -m0755 -p
+INSTALL_DATA = $(INSTALL) -m0644 -p
+
+LIBXENAPI_HDRS = $(wildcard include/*.h)
+LIBXENAPI_OBJS = $(patsubst %.c, %.o, $(wildcard src/*.c))
+
+TEST_PROGRAMS = test/test_bindings test/test_event_handling
+
+TARBALL_DEST = libxenapi-$(MAJOR).$(MINOR)
+
+.PHONY: all
+all: $(TEST_PROGRAMS)
+
+libxenapi.so: libxenapi.so.$(MAJOR)
+ ln -sf $< $@
+
+libxenapi.so.$(MAJOR): libxenapi.so.$(MAJOR).$(MINOR)
+ ln -sf $< $@
+
+libxenapi.so.$(MAJOR).$(MINOR): $(LIBXENAPI_OBJS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libxenapi.so.$(MAJOR) $(SHLIB_CFLAGS) -o $@ $^
+
+libxenapi.a: $(LIBXENAPI_OBJS)
+ $(AR) rcs libxenapi.a $^
+
+$(TEST_PROGRAMS): test/%: test/%.o libxenapi.so
+ $(CC) $(LDFLAGS) -o $@ $< -L . -lxenapi
+
+
+.PHONY: install
+install: all
+ $(INSTALL_DIR) $(DESTDIR)/usr/include/xen/api
+ $(INSTALL_DIR) $(DESTDIR)/usr/$(LIBDIR)
+ $(INSTALL_PROG) libxenapi.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)
+ ln -sf libxenapi.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libxenapi.so.$(MAJOR)
+ ln -sf libxenapi.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libxenapi.so
+ $(INSTALL_DATA) libxenapi.a $(DESTDIR)/usr/$(LIBDIR)
+ for i in $(LIBXENAPI_HDRS); do \
+ $(INSTALL_DATA) $$i $(DESTDIR)/usr/include/xen/api; \
+ done
+
+
+.PHONY: tarball
+tarball: $(TARBALL_DEST).tar.bz2
+
+$(TARBALL_DEST).tar.bz2: all
+ rm -Rf $(TARBALL_DEST)
+ mkdir -p $(TARBALL_DEST)/include/xen/api
+ mkdir -p $(TARBALL_DEST)/src
+ mkdir -p $(TARBALL_DEST)/test
+ cp COPYING $(TARBALL_DEST)
+ cp Makefile.dist $(TARBALL_DEST)/Makefile
+ cp Makefile.dist $(TARBALL_DEST)/Makefile.dist
+ cp README $(TARBALL_DEST)
+ cp include/*.h $(TARBALL_DEST)/include
+ cp include/xen/api/*.h $(TARBALL_DEST)/include/xen/api
+ cp src/*.c $(TARBALL_DEST)/src
+ cp test/*.c $(TARBALL_DEST)/test
+ fakeroot chown root:root -R $(TARBALL_DEST)
+ fakeroot tar cjf $(TARBALL_DEST).tar.bz2 $(TARBALL_DEST)
+
+
+.PHONY: clean
+clean:
+ rm -f `find -name *.o`
+ rm -f libxenapi.so*
+ rm -f libxenapi.a
+ rm -f $(TEST_PROGRAMS)
+
+
+.PHONY: uberheader
+uberheader: include/xen/api/xen_all.h
+include/xen/api/xen_all.h::
+ echo "/* This file is autogenerated */" >$@
+ echo "#ifndef XEN_API_XEN_ALL_H" >>$@
+ echo "#define XEN_API_XEN_ALL_H" >>$@
+ ls include/xen/api/*.h | grep -v xen_all.h | grep -v _decl.h | \
+ sed 's,^include/\(.*\)$$,#include <\1>,g' >>$@
+ echo "#endif" >>$@