[libvirt] [glib PATCH v2 0/2] Simplify autogen.sh & get rid of our own gtk-doc.make

Let's use a similiar autogen.sh as the one used by libosinfo and, with the change, let's also drop our own crafted gtk-doc.make (as we'll be using gtkdocize to generate the file). Changes since v1: - Do not remove the "--system" shortcut v1: https://www.redhat.com/archives/libvir-list/2019-May/msg00748.html Fabiano Fidêncio (2): autogen.sh: Simplify autogen.sh gtk-doc.make: Remove the file .gitignore | 4 + autogen.sh | 58 +++++------- gtk-doc.make | 256 --------------------------------------------------- 3 files changed, 29 insertions(+), 289 deletions(-) delete mode 100644 gtk-doc.make -- 2.21.0

Let's use an autogen.sh based on libosinfo's one, which is cleaner and matches the current GNOME guidelines. Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- .gitignore | 3 +++ autogen.sh | 58 +++++++++++++++++++++++------------------------------- 2 files changed, 28 insertions(+), 33 deletions(-) diff --git a/.gitignore b/.gitignore index de89c4d..4b9467e 100644 --- a/.gitignore +++ b/.gitignore @@ -19,11 +19,14 @@ Makefile.in *.la *~ *.orig +m4/gtk-doc.m4 +m4/introspection.m4 m4/ltsugar.m4 m4/lt~obsolete.m4 m4/libtool.m4 m4/ltversion.m4 m4/ltoptions.m4 +m4/pkg.m4 autom4te.cache config.* COPYING diff --git a/autogen.sh b/autogen.sh index 3b593ce..bf037f0 100755 --- a/autogen.sh +++ b/autogen.sh @@ -1,43 +1,26 @@ #!/bin/sh # Run this to generate all the initial makefiles, etc. +test -n "$srcdir" || srcdir=$(dirname "$0") +test -n "$srcdir" || srcdir=. -set -e -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. +olddir=$(pwd) -THEDIR=`pwd` -cd $srcdir +cd "$srcdir" -DIE=0 - -for prog in autoreconf automake autoconf libtoolize -do - ($prog --version) < /dev/null > /dev/null 2>&1 || { - echo - echo "You must have $prog installed to compile libvirt-glib." - DIE=1 - } -done - -if test "$DIE" -eq 1; then - exit 1 -fi - -if test -z "$*"; then - echo "I am going to run ./configure with no args - if you " - echo "wish to pass any extra arguments to it, please specify them on " - echo "the $0 command line." -fi +(test -f libvirt-glib/libvirt-glib-main.c) || { + echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" + echo " top-level libvirt-glib directory" + exit 1 +} # Real ChangeLog/AUTHORS is auto-generated from GIT logs at # make dist time, but automake requires that it # exists at all times :-( touch ChangeLog AUTHORS -mkdir -p build-aux -autoreconf -if - -cd $THEDIR +aclocal --install || exit 1 +gtkdocize --copy || exit 1 +autoreconf --verbose --force --install || exit 1 if test "x$1" = "x--system"; then shift @@ -51,7 +34,16 @@ if test "x$1" = "x--system"; then EXTRA_ARGS="--prefix=$prefix --sysconfdir=$sysconfdir --localstatedir=$localstatedir --libdir=$libdir" fi -$srcdir/configure $EXTRA_ARGS "$@" && { - echo - echo "Now type 'make' to compile libvirt-glib." -} +cd "$olddir" + +if [ "$NOCONFIGURE" = "" ]; then + $srcdir/configure $EXTRA_ARGS "$@" || exit 1 + + if [ "$1" = "--help" ]; then + exit 0 + else + echo "Now type 'make' to compile $PKG_NAME" || exit 1 + fi +else + echo "Skipping configure process." +fi -- 2.21.0

On Mon, 2019-05-27 at 13:41 +0200, Fabiano Fidêncio wrote:
Let's use an autogen.sh based on libosinfo's one, which is cleaner and matches the current GNOME guidelines.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- .gitignore | 3 +++ autogen.sh | 58 +++++++++++++++++++++++------------------------------- 2 files changed, 28 insertions(+), 33 deletions(-)
Reviewed-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization

Now that we're using gtkdocisze as part of autogen.sh, there's no reason to keep our own gtk-doc.make file. Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- .gitignore | 1 + gtk-doc.make | 256 --------------------------------------------------- 2 files changed, 1 insertion(+), 256 deletions(-) delete mode 100644 gtk-doc.make diff --git a/.gitignore b/.gitignore index 4b9467e..602a2d6 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,7 @@ python/*pyc */*.gir */*.typelib build/ +gtk-doc.make libvirt-gconfig/libvirt-gconfig-enum-types.h libvirt-gconfig/libvirt-gconfig-enum-types.c libvirt-gobject/libvirt-gobject-enums.h diff --git a/gtk-doc.make b/gtk-doc.make deleted file mode 100644 index 9841de4..0000000 --- a/gtk-doc.make +++ /dev/null @@ -1,256 +0,0 @@ -# -*- mode: makefile -*- - -#################################### -# Everything below here is generic # -#################################### - -if GTK_DOC_USE_LIBTOOL -GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -GTKDOC_RUN = $(LIBTOOL) --mode=execute -else -GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -GTKDOC_RUN = -endif - -# We set GPATH here; this gives us semantics for GNU make -# which are more like other make's VPATH, when it comes to -# whether a source that is a target of one rule is then -# searched for in VPATH/GPATH. -# -GPATH = $(srcdir) - -TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) - -SETUP_FILES = \ - $(content_files) \ - $(DOC_MAIN_SGML_FILE) \ - $(DOC_MODULE)-sections.txt \ - $(DOC_MODULE)-overrides.txt - -EXTRA_DIST = \ - $(HTML_IMAGES) \ - $(SETUP_FILES) - -DOC_STAMPS=setup-build.stamp scan-build.stamp sgml-build.stamp \ - html-build.stamp pdf-build.stamp \ - sgml.stamp html.stamp pdf.stamp - -SCANOBJ_FILES = \ - $(DOC_MODULE).args \ - $(DOC_MODULE).hierarchy \ - $(DOC_MODULE).interfaces \ - $(DOC_MODULE).prerequisites \ - $(DOC_MODULE).signals - -REPORT_FILES = \ - $(DOC_MODULE)-undocumented.txt \ - $(DOC_MODULE)-undeclared.txt \ - $(DOC_MODULE)-unused.txt - -CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) - -if ENABLE_GTK_DOC -if GTK_DOC_BUILD_HTML -HTML_BUILD_STAMP=html-build.stamp -else -HTML_BUILD_STAMP= -endif -if GTK_DOC_BUILD_PDF -PDF_BUILD_STAMP=pdf-build.stamp -else -PDF_BUILD_STAMP= -endif - -all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) -else -all-local: -endif - -docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) - -$(REPORT_FILES): sgml-build.stamp - -#### setup #### - -setup-build.stamp: - -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - echo ' DOC Preparing build'; \ - files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ - if test "x$$files" != "x" ; then \ - for file in $$files ; do \ - test -f $(abs_srcdir)/$$file && \ - cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \ - done; \ - fi; \ - fi - @touch setup-build.stamp - - -#### scan #### - -scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) - @echo ' DOC Scanning header files' - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) - @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ - echo " DOC Introspecting gobjects"; \ - scanobj_options=""; \ - gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$(?)" = "0"; then \ - if test "x$(V)" = "x1"; then \ - scanobj_options="--verbose"; \ - fi; \ - fi; \ - CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ - gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ - else \ - for i in $(SCANOBJ_FILES) ; do \ - test -f $$i || touch $$i ; \ - done \ - fi - @touch scan-build.stamp - -$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp - @true - -#### xml #### - -sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt $(expand_content_files) - @echo ' DOC Building XML' - @_source_dir='' ; \ - for i in $(DOC_SOURCE_DIR) ; do \ - _source_dir="$${_source_dir} --source-dir=$$i" ; \ - done ; \ - gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) - @touch sgml-build.stamp - -sgml.stamp: sgml-build.stamp - @true - -#### html #### - -html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo ' DOC Building HTML' - @rm -rf html - @mkdir html - @mkhtml_options=""; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$(?)" = "0"; then \ - if test "x$(V)" = "x1"; then \ - mkhtml_options="$$mkhtml_options --verbose"; \ - fi; \ - fi; \ - gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ - if test "$(?)" = "0"; then \ - mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ - fi; \ - cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) - -@test "x$(HTML_IMAGES)" = "x" || \ - for file in $(HTML_IMAGES) ; do \ - if test -f $(abs_srcdir)/$$file ; then \ - cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ - fi; \ - if test -f $(abs_builddir)/$$file ; then \ - cp $(abs_builddir)/$$file $(abs_builddir)/html; \ - fi; \ - done; - @echo ' DOC Fixing cross-references' - @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) - @touch html-build.stamp - -#### pdf #### - -pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) - @echo ' DOC Building PDF' - @rm -f $(DOC_MODULE).pdf - @mkpdf_options=""; \ - gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ - if test "$(?)" = "0"; then \ - if test "x$(V)" = "x1"; then \ - mkpdf_options="$$mkpdf_options --verbose"; \ - fi; \ - fi; \ - if test "x$(HTML_IMAGES)" != "x"; then \ - for img in $(HTML_IMAGES); do \ - part=`dirname $$img`; \ - echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ - if test $$? != 0; then \ - mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ - fi; \ - done; \ - fi; \ - gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) - @touch pdf-build.stamp - -############## - -clean-local: - @rm -f *~ *.bak - @rm -rf .libs - -distclean-local: - @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ - $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt - @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ - rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ - fi - -maintainer-clean-local: clean - @rm -rf xml html - -install-data-local: - @installfiles=`echo $(builddir)/html/*`; \ - if test "$$installfiles" = '$(builddir)/html/*'; \ - then echo 1>&2 'Nothing to install' ; \ - else \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - $(mkinstalldirs) $${installdir} ; \ - for i in $$installfiles; do \ - echo ' $(INSTALL_DATA) '$$i ; \ - $(INSTALL_DATA) $$i $${installdir}; \ - done; \ - if test -n "$(DOC_MODULE_VERSION)"; then \ - mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ - $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ - fi; \ - $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ - fi - -uninstall-local: - @if test -n "$(DOC_MODULE_VERSION)"; then \ - installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ - else \ - installdir="$(DESTDIR)$(TARGET_DIR)"; \ - fi; \ - rm -rf $${installdir} - -# -# Require gtk-doc when making dist -# -if ENABLE_GTK_DOC -dist-check-gtkdoc: -else -dist-check-gtkdoc: - @echo "*** gtk-doc must be installed and enabled in order to make dist" - @false -endif - -dist-hook: dist-check-gtkdoc dist-hook-local - @mkdir $(distdir)/html - @cp ./html/* $(distdir)/html - @-cp ./$(DOC_MODULE).pdf $(distdir)/ - @-cp ./$(DOC_MODULE).types $(distdir)/ - @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ - @cd $(distdir) && rm -f $(DISTCLEANFILES) - @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html - -.PHONY : dist-hook-local docs -- 2.21.0

On 5/27/19 1:41 PM, Fabiano Fidêncio wrote:
Now that we're using gtkdocisze as part of autogen.sh, there's no reason to keep our own gtk-doc.make file.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- .gitignore | 1 + gtk-doc.make | 256 --------------------------------------------------- 2 files changed, 1 insertion(+), 256 deletions(-) delete mode 100644 gtk-doc.make
diff --git a/.gitignore b/.gitignore index 4b9467e..602a2d6 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,7 @@ python/*pyc */*.gir */*.typelib build/ +gtk-doc.make
This needs to go to the previous commit because that's where 'gtkdocize --copy' is called which installs the file. Leaving it in this commit makes it harder in case of biscets - I had to 'git reset --hard' between these to commits.
libvirt-gconfig/libvirt-gconfig-enum-types.h libvirt-gconfig/libvirt-gconfig-enum-types.c libvirt-gobject/libvirt-gobject-enums.h
Michal

On Mon, 2019-05-27 at 13:41 +0200, Fabiano Fidêncio wrote:
Now that we're using gtkdocisze as part of autogen.sh, there's no reason
s/gtkdocisze/gtkdocize/
to keep our own gtk-doc.make file.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> --- .gitignore | 1 + gtk-doc.make | 256 --------------------------------------------------- 2 files changed, 1 insertion(+), 256 deletions(-) delete mode 100644 gtk-doc.make
Reviewed-by: Andrea Bolognani <abologna@redhat.com> -- Andrea Bolognani / Red Hat / Virtualization

On 5/27/19 1:41 PM, Fabiano Fidêncio wrote:
Let's use a similiar autogen.sh as the one used by libosinfo and, with the change, let's also drop our own crafted gtk-doc.make (as we'll be using gtkdocize to generate the file).
Changes since v1: - Do not remove the "--system" shortcut v1: https://www.redhat.com/archives/libvir-list/2019-May/msg00748.html
Fabiano Fidêncio (2): autogen.sh: Simplify autogen.sh gtk-doc.make: Remove the file
.gitignore | 4 + autogen.sh | 58 +++++------- gtk-doc.make | 256 --------------------------------------------------- 3 files changed, 29 insertions(+), 289 deletions(-) delete mode 100644 gtk-doc.make
ACK Michal
participants (3)
-
Andrea Bolognani
-
Fabiano Fidêncio
-
Michal Privoznik