From ef8c922a147e618a260b7156a1350d874172337f Mon Sep 17 00:00:00 2001 From: "ewan@localhost.localdomain" Date: Sat, 21 Apr 2007 12:42:58 -0700 Subject: Added Makefile.dist, which can make standalone tarballs. Signed-off-by: Ewan Mellor --- tools/libxen/Makefile | 11 ----- tools/libxen/Makefile.dist | 115 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 11 deletions(-) create mode 100644 tools/libxen/Makefile.dist (limited to 'tools/libxen') 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" >>$@ -- cgit v1.2.3