Version 3.5.
[febootstrap.git] / Makefile.am
index b239bbf..4765024 100644 (file)
@@ -1,5 +1,5 @@
 # febootstrap Makefile.am
-# (C) Copyright 2009 Red Hat Inc.
+# (C) Copyright 2009-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
 #
 # Written by Richard W.M. Jones <rjones@redhat.com>
 
-SUBDIRS = examples
+ACLOCAL_AMFLAGS = -I m4
 
-bin_SCRIPTS = \
-       febootstrap \
-       febootstrap-run \
-       febootstrap-install \
-       febootstrap-minimize \
-       febootstrap-to-initramfs
-DISTCLEANFILES = $(bin_SCRIPTS)
+SUBDIRS = lib helper
 
-febootstrap: febootstrap.sh
-       rm -f $@
-       cp $< $@-t
-       chmod 0555 $@-t
-       mv $@-t $@
+# Note these must be in build dependency order.
+SOURCES = \
+       config.ml \
+       febootstrap_utils.mli \
+       febootstrap_utils.ml \
+       febootstrap_cmdline.mli \
+       febootstrap_cmdline.ml \
+       febootstrap_package_handlers.mli \
+       febootstrap_package_handlers.ml \
+       febootstrap_yum_rpm.ml \
+       febootstrap_debian.ml \
+       febootstrap_pacman.ml \
+       febootstrap.ml
 
-febootstrap-run: febootstrap-run.sh
-       rm -f $@
-       cp $< $@-t
-       chmod 0555 $@-t
-       mv $@-t $@
+CLEANFILES = *~ *.cmi *.cmo *.cmx *.o febootstrap
 
-febootstrap-install: febootstrap-install.sh
-       rm -f $@
-       cp $< $@-t
-       chmod 0555 $@-t
-       mv $@-t $@
+EXTRA_DIST = \
+       .gitignore \
+       .gitmodules \
+       autogen.sh \
+       febootstrap.8 \
+       febootstrap.pod \
+       html/pod.css \
+       m4/gnulib-cache.m4 \
+       $(SOURCES)
 
-febootstrap-minimize: febootstrap-minimize.sh
-       rm -f $@
-       cp $< $@-t
-       chmod 0555 $@-t
-       mv $@-t $@
+man_MANS = \
+       febootstrap.8
 
-febootstrap-to-initramfs: febootstrap-to-initramfs.sh
-       rm -f $@
-       cp $< $@-t
-       chmod 0555 $@-t
-       mv $@-t $@
+bin_SCRIPTS = febootstrap
 
-man_MANS = \
-       febootstrap.8 \
-       febootstrap-run.8 \
-       febootstrap-install.8 \
-       febootstrap-minimize.8 \
-       febootstrap-to-initramfs.8
+SOURCES_ML = $(filter %.ml,$(SOURCES))
+BOBJECTS = $(SOURCES_ML:.ml=.cmo)
+XOBJECTS = $(SOURCES_ML:.ml=.cmx)
 
-if HAVE_PERLDOC
+if !HAVE_OCAMLOPT
+OBJECTS = $(BOBJECTS)
+else
+OBJECTS = $(XOBJECTS)
+endif
 
-febootstrap.8: febootstrap.pod
-       pod2man \
-         --section 8 \
-         -c "Virtualization Support" \
-         --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
-         $< > $@
+OCAMLPACKAGES = -package unix,str
+OCAMLFLAGS = -warn-error CDEFLMPSUVXYZ
 
-febootstrap.txt: febootstrap.pod
-       pod2text $< > $@
+febootstrap: $(OBJECTS)
+       $(OCAMLFIND) $(OCAMLBEST) $(OCAMLFLAGS) $(OCAMLPACKAGES) -linkpkg \
+         $^ -o $@
 
-febootstrap-run.8: febootstrap-run.pod
-       pod2man \
-         --section 8 \
-         -c "Virtualization Support" \
-         --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
-         $< > $@
+.mli.cmi:
+       $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
+.ml.cmo:
+       $(OCAMLFIND) ocamlc $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
+.ml.cmx:
+       $(OCAMLFIND) ocamlopt $(OCAMLFLAGS) $(OCAMLPACKAGES) -c $< -o $@
 
-febootstrap-run.txt: febootstrap-run.pod
-       pod2text $< > $@
+depend: .depend
 
-febootstrap-install.8: febootstrap-install.pod
-       pod2man \
-         --section 8 \
-         -c "Virtualization Support" \
-         --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
-         $< > $@
+.depend: $(SOURCES)
+       rm -f $@ $@-t
+       $(OCAMLFIND) ocamldep $^ > $@-t
+       mv $@-t $@
 
-febootstrap-install.txt: febootstrap-install.pod
-       pod2text $< > $@
+include .depend
 
-febootstrap-minimize.8: febootstrap-minimize.pod
-       pod2man \
-         --section 8 \
-         -c "Virtualization Support" \
-         --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
-         $< > $@
+SUFFIXES = .cmo .cmi .cmx .ml .mli .mll .mly
 
-febootstrap-minimize.txt: febootstrap-minimize.pod
-       pod2text $< > $@
+if HAVE_PERLDOC
 
-febootstrap-to-initramfs.8: febootstrap-to-initramfs.pod
+febootstrap.8: febootstrap.pod
        pod2man \
          --section 8 \
          -c "Virtualization Support" \
          --release "$(PACKAGE_NAME)-$(PACKAGE_VERSION)" \
          $< > $@
 
-febootstrap-to-initramfs.txt: febootstrap-to-initramfs.pod
-       pod2text $< > $@
+noinst_DATA = \
+       html/febootstrap.8.html
+
+html/febootstrap.8.html: febootstrap.pod
+       mkdir -p html
+       pod2html \
+         --css 'pod.css' \
+         --htmldir html \
+         --outfile html/febootstrap.8.html \
+         febootstrap.pod
 
 endif
 
-EXTRA_DIST = \
-       fakechroot-2.8-relchroot.patch \
-       fakechroot-svn-no-dup-envs.patch \
-       febootstrap.8 febootstrap.txt febootstrap.pod \
-         febootstrap.sh \
-       febootstrap-run.8 febootstrap-run.txt febootstrap-run.pod \
-         febootstrap-run.sh \
-       febootstrap-install.8 febootstrap-install.txt febootstrap-install.pod \
-         febootstrap-install.sh \
-       febootstrap-minimize.8 febootstrap-minimize.txt \
-         febootstrap-minimize.pod \
-         febootstrap-minimize.sh \
-       febootstrap-to-initramfs.8 febootstrap-to-initramfs.txt \
-         febootstrap-to-initramfs.pod \
-         febootstrap-to-initramfs.sh
+# Maintainer website update.
+HTMLFILES = \
+       html/febootstrap.8.html \
+       html/febootstrap-supermin-helper.8.html
+
+WEBSITEDIR = $(HOME)/d/redhat/websites/libguestfs
+
+website: $(HTMLFILES)
+       cp $(HTMLFILES) $(WEBSITEDIR)
+
+CLEANFILES += $(HTMLFILES) pod2*.tmp