Remove ability to build static distribution.

We are now going to build binaries for each distribution so
there is no need to build the quasi-distro-independent static
binaries any more.
This commit is contained in:
Richard W.M. Jones
2010-12-06 18:16:39 +00:00
parent 7eaecf8303
commit 9bc15f5d98
10 changed files with 2 additions and 163 deletions

9
.gitignore vendored
View File

@@ -23,13 +23,10 @@ capitests/test*.tmp
cat/stamp-virt-*.pod
cat/virt-cat
cat/virt-cat.1
cat/virt-cat.static
cat/virt-filesystems
cat/virt-filesystems.1
cat/virt-filesystems.static
cat/virt-ls
cat/virt-ls.1
cat/virt-ls.static
ChangeLog
*.class
*.cma
@@ -67,7 +64,6 @@ depcomp
df/stamp-virt-df.pod
df/virt-df
df/virt-df.1
df/virt-df.static
emptydisk
examples/create_disk
examples/guestfs-examples.3
@@ -78,7 +74,6 @@ fish/cmds_gperf.c
fish/cmds_gperf.gperf
fish/completion.c
fish/guestfish
fish/guestfish.static
fish/prepopts.c
fish/prepopts.h
fish/rc_protocol.c
@@ -86,7 +81,6 @@ fish/rc_protocol.h
fish/stamp-guestfish.pod
fuse/guestmount
fuse/guestmount.1
fuse/guestmount.static
fuse/stamp-guestmount.pod
generator/.pod2text.data*
generator/generator
@@ -146,7 +140,6 @@ images/windows.img
inspector/stamp-virt-inspector.pod
inspector/virt-inspector
inspector/virt-inspector.1
inspector/virt-inspector.static
install-sh
*.jar
java/api
@@ -270,7 +263,6 @@ regressions/test.out
rescue/stamp-virt-rescue.pod
rescue/virt-rescue
rescue/virt-rescue.1
rescue/virt-rescue.static
ruby/bindtests.rb
ruby/examples/guestfs-ruby.3
ruby/examples/stamp-guestfs-ruby.pod
@@ -299,7 +291,6 @@ stamp-h1
test1.img
test-tool/libguestfs-test-tool
test-tool/libguestfs-test-tool.1
test-tool/libguestfs-test-tool.static
test-tool/libguestfs-test-tool-helper
tools/test.img
tools/virt-*.1

View File

@@ -193,14 +193,7 @@ CLEANFILES = \
quickcheck:
test-tool/run-test-tool-locally
# Mostly static binary distribution.
#
# Some binaries are relinked partially statically. You can make these
# binaries "more static" by making sure that as many foo-static
# packages are installed as possible.
#
# We remove the supermin appliance and adjust some directories to make
# them non-Fedora-specific.
# Make binary distribution.
BINTMPDIR = /tmp/libguestfs-bin
bindist:
@@ -208,26 +201,6 @@ bindist:
mkdir $(BINTMPDIR)
$(MAKE)
$(MAKE) DESTDIR=$(BINTMPDIR) install
rm -r $(BINTMPDIR)$(libdir)/guestfs/supermin.d
rm $(BINTMPDIR)$(libdir)/guestfs/kmod.whitelist
mv $(BINTMPDIR)$(prefix)/lib64/* $(BINTMPDIR)$(libdir)
mv $(BINTMPDIR)/usr/lib64/* $(BINTMPDIR)$(libdir)
-find $(BINTMPDIR) -type d -exec rmdir --ignore-fail-on-non-empty {} \;
$(MAKE) -C fish guestfish.static
cp fish/guestfish.static $(BINTMPDIR)$(bindir)/guestfish
$(MAKE) -C fuse guestmount.static
cp fuse/guestmount.static $(BINTMPDIR)$(bindir)/guestmount
$(MAKE) -C test-tool libguestfs-test-tool.static
cp test-tool/libguestfs-test-tool.static $(BINTMPDIR)$(bindir)/libguestfs-test-tool
$(MAKE) -C cat virt-cat.static virt-filesystems.static virt-ls.static
cp cat/virt-cat.static $(BINTMPDIR)$(bindir)/virt-cat
cp cat/virt-filesystems.static $(BINTMPDIR)$(bindir)/virt-filesystems
cp cat/virt-ls.static $(BINTMPDIR)$(bindir)/virt-ls
$(MAKE) -C df virt-df.static
cp df/virt-df.static $(BINTMPDIR)$(bindir)/virt-df
$(MAKE) -C inspector virt-inspector.static
cp inspector/virt-inspector.static $(BINTMPDIR)$(bindir)/virt-inspector
$(MAKE) -C rescue virt-rescue.static
cp rescue/virt-rescue.static $(BINTMPDIR)$(bindir)/virt-rescue
(cd $(BINTMPDIR) && tar cf - .) | \
gzip -c -9 > libguestfs-$(VERSION)-$(host_cpu).tar.gz
gzip -c -9 > libguestfs-$(VERSION)-$(DISTRO)-$(host_cpu).tar.gz

View File

@@ -129,17 +129,3 @@ TESTS_ENVIRONMENT = \
LIBGUESTFS_PATH=$(top_builddir)/appliance
TESTS = test-virt-cat.sh test-virt-filesystems.sh test-virt-ls.sh
# Build a partly-static binary (for the binary distribution).
virt-cat.static$(EXEEXT): $(virt_cat_OBJECTS) $(virt_cat_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(virt_cat_LINK) $(virt_cat_OBJECTS) -static $(virt_cat_LDADD) $(virt_cat_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm
virt-filesystems.static$(EXEEXT): $(virt_filesystems_OBJECTS) $(virt_filesystems_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(virt_filesystems_LINK) $(virt_filesystems_OBJECTS) -static $(virt_filesystems_LDADD) $(virt_filesystems_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm
virt-ls.static$(EXEEXT): $(virt_ls_OBJECTS) $(virt_ls_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(virt_ls_LINK) $(virt_ls_OBJECTS) -static $(virt_ls_LDADD) $(virt_ls_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm

View File

@@ -79,9 +79,3 @@ TESTS_ENVIRONMENT = \
LIBGUESTFS_PATH=$(top_builddir)/appliance
TESTS = test-virt-df.sh
# Build a partly-static binary (for the binary distribution).
virt-df.static$(EXEEXT): $(virt_df_OBJECTS) $(virt_df_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(virt_df_LINK) $(virt_df_OBJECTS) -static $(virt_df_LDADD) $(virt_df_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm

View File

@@ -128,12 +128,6 @@ rc_protocol.h: rc_protocol.x
mv $@-t $@
endif
# Build a partly-static library (for the binary distribution).
guestfish.static$(EXEEXT): $(guestfish_OBJECTS) $(guestfish_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(guestfish_LINK) $(guestfish_OBJECTS) -static $(guestfish_LDADD) $(guestfish_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -ltinfo -lpcre -lhivex -lmagic -lz -lm
# Manual page.
man_MANS = guestfish.1

View File

@@ -55,12 +55,6 @@ guestmount_LDADD = \
$(top_builddir)/src/libguestfs.la \
../gnulib/lib/libgnu.la
# Build a partly-static library (for the binary distribution).
guestmount.static$(EXEEXT): $(guestmount_OBJECTS) $(guestmount_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(guestmount_LINK) $(guestmount_OBJECTS) -static $(guestmount_LDADD) $(guestmount_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm
# Documentation.
man_MANS = guestmount.1

View File

@@ -95,9 +95,3 @@ example-ubuntu.xml:
./run-inspector-locally ../images/ubuntu.img > $@
example-windows.xml:
./run-inspector-locally ../images/windows.img | fgrep -v '<uuid>' > $@
# Build a partly-static library (for the binary distribution).
virt-inspector.static$(EXEEXT): $(virt_inspector_OBJECTS) $(virt_inspector_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(virt_inspector_LINK) $(virt_inspector_OBJECTS) -static $(virt_inspector_LDADD) $(virt_inspector_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm

View File

@@ -1,75 +0,0 @@
#!/bin/bash -
# Copyright (C) 2010 Red Hat Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Written by Richard W.M. Jones <rjones@redhat.com>
#
# Take a dynamically linked ELF binary and relink it, maximizing the
# use of static libraries.
#
# Example:
# binary foo
# ---> dynamically links to libbar.so.0
# ---> dynamically links to libzab.so.3
# If libbar.a is available, but there is no libzab.a, then we would
# end up with:
# binary foo.static with libbar.a statically inside it
# ---> still dynamically linking with libzab.so.3
#
# We need to have access to the original link command. This script
# works by post-processing it to find the '-lbar' arguments, which are
# replaced sometimes by direct static library names.
#
# Therefore to use this, you have to add this rule to your
# Makefile.am:
#
# foo.static$(EXEEXT): $(foo_OBJECTS) $(foo_DEPENDENCIES)
# relink-static.sh \
# $(foo_LINK) $(foo_OBJECTS) -static $(foo_LDADD) $(foo_LIBS)
declare -a args
i=0
for arg; do
case "$arg" in
-l*) # get just the library name (eg. "xml2")
lib=${arg:2}
# does a static version exist?
for d in /usr/local/lib{64,} /usr/lib{64,} /lib{64,}; do
path="$d/lib$lib.a"
if [ -f "$path" ]; then
arg="$path"
break
fi
done
;;
*.la) # hack around libtool mess
d=$(dirname "$arg")
b=$(basename "$arg")
b=${b:0:${#b}-3}
if [ -f "$d/.libs/$b.a" ]; then
arg="$d/.libs/$b.a"
fi
;;
*) ;;
esac
args[$i]="$arg"
i=$(($i+1))
done
# Run the final command.
echo "${args[@]}"
"${args[@]}"

View File

@@ -59,9 +59,3 @@ stamp-virt-rescue.pod: virt-rescue.pod
--html $(top_builddir)/html/virt-rescue.1.html \
$<
touch $@
# Build a partly-static binary (for the binary distribution).
virt-rescue.static$(EXEEXT): $(virt_rescue_OBJECTS) $(virt_rescue_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(virt_rescue_LINK) $(virt_rescue_OBJECTS) -static $(virt_rescue_LDADD) $(virt_rescue_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm

View File

@@ -39,12 +39,6 @@ libguestfs_test_tool_LDADD = \
libguestfs_test_tool_helper_SOURCES = helper.c
libguestfs_test_tool_helper_LDFLAGS = -all-static
# Build a partly-static library (for the binary distribution).
libguestfs-test-tool.static$(EXEEXT): $(libguestfs_test_tool_OBJECTS) $(libguestfs_test_tool_DEPENDENCIES)
$(top_srcdir)/relink-static.sh \
$(libguestfs_test_tool_LINK) $(libguestfs_test_tool_OBJECTS) -static $(libguestfs_test_tool_LDADD) $(libguestfs_test_tool_LIBS) $(LIBVIRT_LIBS) $(LIBXML2_LIBS) -lpcre -lhivex -lmagic -lz -lm
libguestfs-test-tool.1: libguestfs-test-tool.pod
$(top_srcdir)/podwrapper.sh \
--man $@ \