mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
Hi Rich, automake's policy on what to remove via "make clean" is reasonable: if running build rules creates it, then "make clean" can and should remove it. However, even if build rules happen to create backup files, please remove only the specific ones they can create, not all of the ones in a directory. Just in case someone relies on those and expect them to hang around... >From 1e8be391ac17b4ddcf9671e8413d2660844e6993 Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Thu, 30 Apr 2009 15:47:52 +0200 Subject: [PATCH] build: don't tell "make clean" to remove my '~' backup files * Makefile.am (CLEANFILES): Don't remove '~' backup files. * daemon/Makefile.am: Ditto. * examples/Makefile.am: Ditto. * fish/Makefile.am: Ditto. * images/Makefile.am: Ditto. * inspector/Makefile.am: Ditto. * java/Makefile.am: Ditto. * ocaml/Makefile.am: Ditto. * ocaml/examples/Makefile.am: Ditto. * perl/Makefile.am: Ditto. * python/Makefile.am: Ditto. * ruby/Makefile.am: Ditto. * src/Makefile.am: Ditto.
208 lines
5.3 KiB
Makefile
208 lines
5.3 KiB
Makefile
# libguestfs
|
|
# Copyright (C) 2009 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.
|
|
|
|
ACLOCAL_AMFLAGS = -I m4
|
|
|
|
SUBDIRS = src daemon fish examples images
|
|
|
|
if HAVE_OCAML
|
|
SUBDIRS += ocaml
|
|
endif
|
|
if HAVE_PERL
|
|
SUBDIRS += perl
|
|
endif
|
|
if HAVE_PYTHON
|
|
SUBDIRS += python
|
|
endif
|
|
if HAVE_RUBY
|
|
SUBDIRS += ruby
|
|
endif
|
|
if HAVE_JAVA
|
|
SUBDIRS += java
|
|
endif
|
|
if HAVE_INSPECTOR
|
|
SUBDIRS += inspector
|
|
endif
|
|
|
|
EXTRA_DIST = \
|
|
make-initramfs.sh update-initramfs.sh \
|
|
guestfs.pod guestfs-actions.pod guestfs-structs.pod \
|
|
guestfish.pod guestfish-actions.pod \
|
|
libguestfs.spec \
|
|
html/pod.css \
|
|
HACKING TODO \
|
|
tests.c \
|
|
libguestfs.pc libguestfs.pc.in \
|
|
gitlog-to-changelog \
|
|
recipes/LICENSE \
|
|
recipes/README \
|
|
recipes/*.html \
|
|
recipes/*.sh \
|
|
recipes/*.example \
|
|
html/recipes.css \
|
|
make-recipes.sh
|
|
|
|
# Build the root filesystem.
|
|
# Currently this is arch-dependent, so it seems like putting it in
|
|
# $(libdir) is best. When we build cross-architecture filesystems we
|
|
# should probably move them to $(datadir).
|
|
|
|
fsdir = $(libdir)/guestfs
|
|
|
|
INITRAMFSIMG = initramfs.$(REPO).$(host_cpu).img
|
|
VMLINUZ = vmlinuz.$(REPO).$(host_cpu)
|
|
|
|
fs_DATA = $(INITRAMFSIMG) $(VMLINUZ)
|
|
|
|
$(INITRAMFSIMG) $(VMLINUZ): initramfs/fakeroot.log
|
|
|
|
initramfs/fakeroot.log: make-initramfs.sh.in
|
|
-mv $(INITRAMFSIMG) $(INITRAMFSIMG).bak
|
|
-mv $(VMLINUZ) $(VMLINUZ).bak
|
|
if ! bash $(top_builddir)/make-initramfs.sh; then rm -f $@; exit 1; fi
|
|
|
|
$(INITRAMFSIMG): initramfs/fakeroot.log daemon/guestfsd
|
|
rm -f $@
|
|
bash $(top_builddir)/update-initramfs.sh
|
|
touch $@
|
|
|
|
make-initramfs.sh: make-initramfs.sh.in
|
|
./config.status $@
|
|
|
|
# Tests. These are auto-generated from the test descriptions.
|
|
|
|
check_PROGRAMS = tests
|
|
|
|
tests_SOURCES = tests.c
|
|
tests_CFLAGS = \
|
|
-I$(top_builddir)/src -Wall
|
|
tests_LDADD = $(top_builddir)/src/libguestfs.la
|
|
|
|
TESTS = $(check_PROGRAMS)
|
|
|
|
$(TESTS): $(INITRAMFS) $(VMLINUZ)
|
|
|
|
# Manual pages.
|
|
# guestfs-actions.pod and guestfs-structs are autogenerated. There is
|
|
# no include mechanism for POD, so we have to do it by hand.
|
|
|
|
man_MANS = guestfs.3 guestfish.1
|
|
|
|
guestfs.3: guestfs.pod guestfs-actions.pod guestfs-structs.pod
|
|
sed \
|
|
-e '/@ACTIONS@/rguestfs-actions.pod' -e 's/@ACTIONS@//' \
|
|
-e '/@STRUCTS@/rguestfs-structs.pod' -e 's/@STRUCTS@//' \
|
|
< $< | \
|
|
$(POD2MAN) \
|
|
--section 3 \
|
|
-c "Virtualization Support" \
|
|
--name "guestfs" \
|
|
--release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
|
|
> $@
|
|
|
|
guestfish.1: guestfish.pod guestfish-actions.pod
|
|
sed \
|
|
-e '/@ACTIONS@/rguestfish-actions.pod' -e 's/@ACTIONS@//' \
|
|
< $< | \
|
|
$(POD2MAN) \
|
|
--section 1 \
|
|
-c "Virtualization Support" \
|
|
--name "guestfish" \
|
|
--release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
|
|
> $@
|
|
|
|
noinst_DATA = html/guestfs.3.html html/guestfish.1.html
|
|
|
|
html/guestfs.3.html: guestfs.pod guestfs-actions.pod guestfs-structs.pod
|
|
sed \
|
|
-e '/@ACTIONS@/rguestfs-actions.pod' -e 's/@ACTIONS@//' \
|
|
-e '/@STRUCTS@/rguestfs-structs.pod' -e 's/@STRUCTS@//' \
|
|
< $< | \
|
|
pod2html \
|
|
--css 'pod.css' \
|
|
--title "libguestfs API documentation" \
|
|
--htmldir html \
|
|
--outfile $@
|
|
|
|
html/guestfish.1.html: guestfish.pod guestfish-actions.pod
|
|
sed \
|
|
-e '/@ACTIONS@/rguestfish-actions.pod' -e 's/@ACTIONS@//' \
|
|
< $< | \
|
|
pod2html \
|
|
--css 'pod.css' \
|
|
--title "guestfish, libguestfs filesystem interactive shell" \
|
|
--htmldir html \
|
|
--outfile $@
|
|
|
|
# Recipes web page.
|
|
html/recipes.html: $(wildcard recipes/*.sh) $(wildcard recipes/*.html) $(wildcard recipes/*.example) Makefile make-recipes.sh
|
|
rm -f $@ $@-t
|
|
sh make-recipes.sh recipes/*.sh > $@-t
|
|
mv $@-t $@
|
|
|
|
website: html/guestfs.3.html html/guestfish.1.html \
|
|
html/virt-inspector.1.html \
|
|
html/recipes.html
|
|
cp $^ html/pod.css html/recipes.css \
|
|
$(HOME)/d/redhat/et-website/libguestfs/
|
|
|
|
# Generate the ChangeLog automatically from the gitlog.
|
|
|
|
dist-hook:
|
|
./gitlog-to-changelog > ChangeLog
|
|
cp ChangeLog $(distdir)/ChangeLog
|
|
|
|
# Pkgconfig.
|
|
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = libguestfs.pc
|
|
|
|
# Test-boot the image.
|
|
|
|
test-boot: emptydisk
|
|
qemu-system-$(host_cpu) \
|
|
-m 384 \
|
|
-kernel $(VMLINUZ) -initrd $(INITRAMFSIMG) \
|
|
-hda emptydisk
|
|
|
|
emptydisk:
|
|
rm -f emptydisk
|
|
dd if=/dev/zero of=emptydisk bs=1024 count=1440
|
|
echo 0, | sfdisk -q -C 80 -H 2 -S 18 emptydisk > /dev/null
|
|
|
|
# This is a more realistic test boot command line which better
|
|
# reflects what the library does.
|
|
|
|
test-boot-realistic: emptydisk
|
|
qemu-system-$(host_cpu) \
|
|
-m 384 \
|
|
-kernel $(VMLINUZ) -initrd $(INITRAMFSIMG) \
|
|
-hda emptydisk \
|
|
-append "console=ttyS0 guestfs=10.0.2.4:6666" \
|
|
-nographic \
|
|
-serial stdio \
|
|
-net channel,6666:unix:/tmp/sock,server,nowait \
|
|
-net user,vlan=0 \
|
|
-net nic,vlan=0
|
|
|
|
# Make clean.
|
|
|
|
CLEANFILES = $(fs_DATA) emptydisk pod2htm?.tmp
|
|
|
|
clean-local:
|
|
rm -rf initramfs
|