--- /dev/null
+#!/bin/bash
+# Script that checks against build infrastructure mistakes in the examples.
+
+
+# func_init sample
+# sets environment variables for building and running the given sample.
+func_init ()
+{
+ case "$1" in
+ hello-objc-gnustep) . /usr/share/GNUstep/Makefiles/GNUstep.sh ;;
+ esac
+}
+
+
+# func_autogen sample
+# adds generated build infrastructure files to the given sample.
+func_autogen ()
+{
+ case "$1" in
+ hello-objc-gnustep)
+ (func_init "$1"; cd "$1" && ./autogen.sh)
+ ;;
+ *)
+ (cd "$1" && ./autogen.sh)
+ ;;
+ esac
+}
+
+# func_autoclean sample
+# removes generated build infrastructure files from the given sample.
+func_autoclean ()
+{
+ case "$1" in
+ hello-objc-gnustep)
+ (func_init "$1"; cd "$1" && ./autoclean.sh)
+ ;;
+ *)
+ (cd "$1" && ./autoclean.sh)
+ ;;
+ esac
+}
+
+# func_configure sample [builddir]
+# runs configure for the given sample, optionally in a VPATH build.
+func_configure ()
+{
+ case "$1" in
+ hello-objc-gnustep) ;;
+ *)
+ if test -n "$2"; then
+ (cd "$1"
+ mkdir "$2"
+ (cd "$2" && ../configure)
+ )
+ else
+ (cd "$1" && ./configure)
+ fi
+ ;;
+ esac
+}
+
+# func_distclean sample [builddir]
+# undoes the effects of func_configure sample [builddir].
+func_distclean ()
+{
+ case "$1" in
+ hello-objc-gnustep) ;;
+ *)
+ if test -n "$2"; then
+ (cd "$1/$2" && make distclean)
+ else
+ (cd "$1" && make distclean)
+ fi
+ ;;
+ esac
+}
+
+# func_maintainerclean sample [builddir]
+# also removes files that are expensive to rebuild.
+func_maintainerclean ()
+{
+ case "$1" in
+ hello-objc-gnustep)
+ (func_init "$1"; cd "$1" && make distclean)
+ ;;
+ *)
+ if test -n "$2"; then
+ (cd "$1/$2" && make maintainer-clean)
+ else
+ (cd "$1" && make maintainer-clean)
+ fi
+ ;;
+ esac
+}
+
+
+# func_check_autoclean sample
+# checks whether the autoclean.sh script is complete.
+func_check_autoclean ()
+{
+ sample="$1"
+ rm -rf "$sample.bak"
+ cp -a "$sample" "$sample.bak"
+ func_autogen "$sample"
+ func_autoclean "$sample"
+ LC_ALL=C diff -r -q "$sample.bak" "$sample" | sed -n -e 's/^Only in //p' | sed -e 's|: |/|' > "$sample.out"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ rm -rf "$sample.bak"
+}
+
+func_check_autoclean_all ()
+{
+ rm -f hello-*.out
+ func_check_autoclean hello-c
+ func_check_autoclean hello-c-gnome
+ func_check_autoclean hello-c-gnome3
+ func_check_autoclean hello-c++
+ func_check_autoclean hello-c++-qt
+ func_check_autoclean hello-c++-kde
+ func_check_autoclean hello-c++-gnome
+ func_check_autoclean hello-c++-wxwidgets
+ func_check_autoclean hello-objc
+ func_check_autoclean hello-objc-gnustep
+ func_check_autoclean hello-objc-gnome
+ func_check_autoclean hello-sh
+ func_check_autoclean hello-python
+ func_check_autoclean hello-clisp
+ func_check_autoclean hello-librep
+ func_check_autoclean hello-guile
+ func_check_autoclean hello-smalltalk
+ func_check_autoclean hello-java
+ func_check_autoclean hello-java-awt
+ func_check_autoclean hello-java-swing
+ func_check_autoclean hello-java-qtjambi
+ func_check_autoclean hello-csharp
+ func_check_autoclean hello-csharp-forms
+ func_check_autoclean hello-gawk
+ func_check_autoclean hello-pascal
+ func_check_autoclean hello-ycp
+ func_check_autoclean hello-tcl
+ func_check_autoclean hello-tcl-tk
+ func_check_autoclean hello-perl
+ func_check_autoclean hello-php
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_autoclean error: Leftover files:"
+ cat hello-*.out
+ rm -f hello-*.out
+ exit 1
+ fi
+}
+
+
+# Known configure failures:
+# hello-c-gnome: error: Could not find the gnomeConf.sh file that is generated by gnome-libs install
+# hello-c-gnome3: error: can't find gtk+-3.0 >= 3.10
+# hello-c++-qt: error: cannot find correct Qt headers!
+# hello-c++-kde: configure: error: Qt (>= Qt 3.1.0) (headers and libraries) not found. Please check your installation!
+# hello-c++-gnome: error: Could not find the gnomeConf.sh file that is generated by gnome-libs install
+# hello-objc-gnome: error: Could not find the gnomeConf.sh file that is generated by gnome-libs install
+# hello-ycp: *** Essential program y2base not found
+
+# func_check_distclean sample
+# checks 'make distclean' directly after 'configure'.
+func_check_distclean ()
+{
+ sample="$1"
+ rm -rf "$sample.bak"
+ func_autogen "$sample"
+ cp -a "$sample" "$sample.bak"
+ if func_configure "$sample" > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ func_distclean "$sample"
+ LC_ALL=C diff -r -q "$sample.bak" "$sample" | sed -n -e 's/^Only in //p' | sed -e 's|: |/|' > "$sample.out"
+ fi
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ rm -rf "$sample.bak"
+}
+
+func_check_distclean_all ()
+{
+ rm -f hello-*.log hello-*.out
+ func_check_distclean hello-c
+ #func_check_distclean hello-c-gnome
+ #func_check_distclean hello-c-gnome3
+ func_check_distclean hello-c++
+ #func_check_distclean hello-c++-qt
+ #func_check_distclean hello-c++-kde
+ #func_check_distclean hello-c++-gnome
+ func_check_distclean hello-c++-wxwidgets
+ func_check_distclean hello-objc
+ func_check_distclean hello-objc-gnustep
+ #func_check_distclean hello-objc-gnome
+ func_check_distclean hello-sh
+ func_check_distclean hello-python
+ func_check_distclean hello-clisp
+ func_check_distclean hello-librep
+ func_check_distclean hello-guile
+ func_check_distclean hello-smalltalk
+ func_check_distclean hello-java
+ func_check_distclean hello-java-awt
+ func_check_distclean hello-java-swing
+ func_check_distclean hello-java-qtjambi
+ func_check_distclean hello-csharp
+ func_check_distclean hello-csharp-forms
+ func_check_distclean hello-gawk
+ func_check_distclean hello-pascal
+ #func_check_distclean hello-ycp
+ func_check_distclean hello-tcl
+ func_check_distclean hello-tcl-tk
+ func_check_distclean hello-perl
+ func_check_distclean hello-php
+ if (shopt -s failglob; echo hello-*.log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_distclean error: 'configure' failures"
+ echo hello-*.log
+ exit 1
+ fi
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_distclean error: incomplete 'make distclean'"
+ echo hello-*.out
+ exit 1
+ fi
+}
+
+
+# Known make failures:
+# hello-java-qtjambi: error: package com.trolltech.qt.core does not exist
+
+# func_check_maintainerclean sample
+# checks 'make distclean' after 'configure; make'.
+func_check_maintainerclean ()
+{
+ sample="$1"
+ rm -rf "$sample.bak"
+ func_autogen "$sample"
+ cp -a "$sample" "$sample.bak"
+ if func_configure "$sample"; then
+ if (func_init "$sample"; cd "$sample" && make) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ fi
+ fi
+ func_maintainerclean "$sample"
+ # TODO: Remove .pot files workaround.
+ LC_ALL=C diff -r -q "$sample.bak" "$sample" | sed -n -e 's/^Only in //p' | sed -e 's|: |/|' | grep "^${sample}/" | grep -v '\.pot$' > "$sample.out"
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ rm -rf "$sample.bak"
+}
+
+func_check_maintainerclean_all ()
+{
+ rm -f hello-*.log hello-*.out
+ func_check_maintainerclean hello-c
+ #func_check_maintainerclean hello-c-gnome
+ #func_check_maintainerclean hello-c-gnome3
+ func_check_maintainerclean hello-c++
+ #func_check_maintainerclean hello-c++-qt
+ #func_check_maintainerclean hello-c++-kde
+ #func_check_maintainerclean hello-c++-gnome
+ func_check_maintainerclean hello-c++-wxwidgets
+ func_check_maintainerclean hello-objc
+ func_check_maintainerclean hello-objc-gnustep
+ #func_check_maintainerclean hello-objc-gnome
+ func_check_maintainerclean hello-sh
+ func_check_maintainerclean hello-python
+ func_check_maintainerclean hello-clisp
+ func_check_maintainerclean hello-librep
+ func_check_maintainerclean hello-guile
+ func_check_maintainerclean hello-smalltalk
+ func_check_maintainerclean hello-java
+ func_check_maintainerclean hello-java-awt
+ func_check_maintainerclean hello-java-swing
+ #func_check_maintainerclean hello-java-qtjambi
+ func_check_maintainerclean hello-csharp
+ func_check_maintainerclean hello-csharp-forms
+ func_check_maintainerclean hello-gawk
+ func_check_maintainerclean hello-pascal
+ #func_check_maintainerclean hello-ycp
+ func_check_maintainerclean hello-tcl
+ func_check_maintainerclean hello-tcl-tk
+ func_check_maintainerclean hello-perl
+ func_check_maintainerclean hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_maintainerclean error: 'make' failures"
+ echo hello-*.log
+ exit 1
+ fi
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_maintainerclean error: incomplete 'make maintainer-clean'"
+ echo hello-*.out
+ exit 1
+ fi
+}
+
+
+# func_check_maintainerclean_vpath sample
+# checks 'make distclean' after 'configure; make' with a VPATH build.
+func_check_maintainerclean_vpath ()
+{
+ sample="$1"
+ case "$sample" in
+ hello-objc-gnustep) ;;
+ *)
+ rm -rf "$sample.bak"
+ func_autogen "$sample"
+ cp -a "$sample" "$sample.bak"
+ if func_configure "$sample" build; then
+ if (func_init "$sample"; cd "$sample"/build && make) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ fi
+ fi
+ func_maintainerclean "$sample" build
+ # TODO: Remove .pot files workaround.
+ find "$sample"/build -type f | LC_ALL=C sort | grep -v '\.pot$' > "$sample.out"
+ rm -rf "$sample"/build
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ rm -rf "$sample.bak"
+ ;;
+ esac
+}
+
+func_check_maintainerclean_vpath_all ()
+{
+ rm -f hello-*.log hello-*.out
+ func_check_maintainerclean_vpath hello-c
+ #func_check_maintainerclean_vpath hello-c-gnome
+ #func_check_maintainerclean_vpath hello-c-gnome3
+ func_check_maintainerclean_vpath hello-c++
+ #func_check_maintainerclean_vpath hello-c++-qt
+ #func_check_maintainerclean_vpath hello-c++-kde
+ #func_check_maintainerclean_vpath hello-c++-gnome
+ func_check_maintainerclean_vpath hello-c++-wxwidgets
+ func_check_maintainerclean_vpath hello-objc
+ func_check_maintainerclean_vpath hello-objc-gnustep
+ #func_check_maintainerclean_vpath hello-objc-gnome
+ func_check_maintainerclean_vpath hello-sh
+ func_check_maintainerclean_vpath hello-python
+ func_check_maintainerclean_vpath hello-clisp
+ func_check_maintainerclean_vpath hello-librep
+ func_check_maintainerclean_vpath hello-guile
+ func_check_maintainerclean_vpath hello-smalltalk
+ func_check_maintainerclean_vpath hello-java
+ func_check_maintainerclean_vpath hello-java-awt
+ func_check_maintainerclean_vpath hello-java-swing
+ #func_check_maintainerclean_vpath hello-java-qtjambi
+ func_check_maintainerclean_vpath hello-csharp
+ func_check_maintainerclean_vpath hello-csharp-forms
+ func_check_maintainerclean_vpath hello-gawk
+ func_check_maintainerclean_vpath hello-pascal
+ #func_check_maintainerclean_vpath hello-ycp
+ func_check_maintainerclean_vpath hello-tcl
+ func_check_maintainerclean_vpath hello-tcl-tk
+ func_check_maintainerclean_vpath hello-perl
+ func_check_maintainerclean_vpath hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_maintainerclean_vpath error: 'make' failures"
+ echo hello-*.log
+ exit 1
+ fi
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_maintainerclean_vpath error: incomplete 'make maintainer-clean'"
+ echo hello-*.out
+ exit 1
+ fi
+}
+
+
+# func_check_dist sample
+# checks 'make dist' after 'configure; make'.
+func_check_dist ()
+{
+ sample="$1"
+ case "$sample" in
+ hello-objc-gnustep) ;;
+ *)
+ func_autogen "$sample"
+ if func_configure "$sample"; then
+ if (func_init "$sample"; cd "$sample" && make); then
+ if (func_init "$sample"; cd "$sample" && make dist) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ (func_init "$sample"; cd "$sample" && make distclean)
+ rm -f `find "$sample" -name '*~'` `find "$sample" -name '*.orig'`
+ rm -rf "$sample/autom4te.cache"
+ if test -f "$sample/$sample-0.tar.gz"; then
+ (cd "$sample" && tar xfz "$sample-0.tar.gz")
+ LC_ALL=C diff -r -q "$sample" "$sample/$sample-0" | grep -v "^Only in $sample: $sample-0$" | grep -v "^Only in $sample: $sample-0.tar.gz$" | grep -v "^Only in $sample: BUGS$" > "$sample.out"
+ else
+ echo "$sample-0.tar.gz was not created" > "$sample.out"
+ fi
+ fi
+ rm -rf "$sample/$sample-0"
+ rm -f "$sample/$sample-0.tar.gz"
+ fi
+ fi
+ func_configure "$sample"
+ func_maintainerclean "$sample"
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ ;;
+ esac
+}
+
+func_check_dist_all ()
+{
+ rm -f hello-*.log hello-*.out
+ func_check_dist hello-c
+ #func_check_dist hello-c-gnome
+ #func_check_dist hello-c-gnome3
+ func_check_dist hello-c++
+ #func_check_dist hello-c++-qt
+ #func_check_dist hello-c++-kde
+ #func_check_dist hello-c++-gnome
+ func_check_dist hello-c++-wxwidgets
+ func_check_dist hello-objc
+ func_check_dist hello-objc-gnustep
+ #func_check_dist hello-objc-gnome
+ func_check_dist hello-sh
+ func_check_dist hello-python
+ func_check_dist hello-clisp
+ func_check_dist hello-librep
+ func_check_dist hello-guile
+ func_check_dist hello-smalltalk
+ func_check_dist hello-java
+ func_check_dist hello-java-awt
+ func_check_dist hello-java-swing
+ #func_check_dist hello-java-qtjambi
+ func_check_dist hello-csharp
+ func_check_dist hello-csharp-forms
+ func_check_dist hello-gawk
+ func_check_dist hello-pascal
+ #func_check_dist hello-ycp
+ func_check_dist hello-tcl
+ func_check_dist hello-tcl-tk
+ func_check_dist hello-perl
+ func_check_dist hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_dist error: 'make dist' failures"
+ echo hello-*.log
+ exit 1
+ fi
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_dist error: tarball created by 'make dist' does not contain the expected files"
+ echo hello-*.out
+ exit 1
+ fi
+}
+
+
+# func_check_dist_vpath sample
+# checks 'make dist' after 'configure; make' with a VPATH build
+func_check_dist_vpath ()
+{
+ sample="$1"
+ case "$sample" in
+ hello-objc-gnustep) ;;
+ *)
+ func_autogen "$sample"
+ if func_configure "$sample" build; then
+ if (func_init "$sample"; cd "$sample"/build && make); then
+ if (func_init "$sample"; cd "$sample"/build && make dist) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ (func_init "$sample"; cd "$sample"/build && make distclean)
+ rm -f `find "$sample" -name '*~'` `find "$sample" -name '*.orig'`
+ rm -rf "$sample/autom4te.cache"
+ if test -f "$sample/build/$sample-0.tar.gz"; then
+ (cd "$sample"/build && tar xfz "$sample-0.tar.gz")
+ # TODO: Remove stamp-po workaround.
+ LC_ALL=C diff -r -q "$sample" "$sample/build/$sample-0" | grep -v "^Only in $sample: build$" | grep -v "^Only in $sample: BUGS$" | grep -v "^Only in $sample/build/$sample-0/po: stamp-po$" > "$sample.out"
+ else
+ echo "$sample-0.tar.gz was not created" > "$sample.out"
+ fi
+ fi
+ rm -rf "$sample/build/$sample-0"
+ rm -f "$sample/build/$sample-0.tar.gz"
+ fi
+ fi
+ rm -rf "$sample"/build
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ ;;
+ esac
+}
+
+func_check_dist_vpath_all ()
+{
+ rm -f hello-*.log hello-*.out
+ func_check_dist_vpath hello-c
+ #func_check_dist_vpath hello-c-gnome
+ #func_check_dist_vpath hello-c-gnome3
+ func_check_dist_vpath hello-c++
+ #func_check_dist_vpath hello-c++-qt
+ #func_check_dist_vpath hello-c++-kde
+ #func_check_dist_vpath hello-c++-gnome
+ func_check_dist_vpath hello-c++-wxwidgets
+ func_check_dist_vpath hello-objc
+ func_check_dist_vpath hello-objc-gnustep
+ #func_check_dist_vpath hello-objc-gnome
+ func_check_dist_vpath hello-sh
+ func_check_dist_vpath hello-python
+ func_check_dist_vpath hello-clisp
+ func_check_dist_vpath hello-librep
+ func_check_dist_vpath hello-guile
+ func_check_dist_vpath hello-smalltalk
+ func_check_dist_vpath hello-java
+ func_check_dist_vpath hello-java-awt
+ func_check_dist_vpath hello-java-swing
+ #func_check_dist_vpath hello-java-qtjambi
+ func_check_dist_vpath hello-csharp
+ func_check_dist_vpath hello-csharp-forms
+ func_check_dist_vpath hello-gawk
+ func_check_dist_vpath hello-pascal
+ #func_check_dist_vpath hello-ycp
+ func_check_dist_vpath hello-tcl
+ func_check_dist_vpath hello-tcl-tk
+ func_check_dist_vpath hello-perl
+ func_check_dist_vpath hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_dist_vpath error: 'make dist' failures"
+ echo hello-*.log
+ exit 1
+ fi
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_dist_vpath error: tarball created by 'make dist' does not contain the expected files"
+ echo hello-*.out
+ exit 1
+ fi
+}
+
+
+# Base installation directory for all samples.
+instdir=/tmp/gtexinst
+
+# func_check_install sample
+# checks 'make install' after 'configure; make'.
+# You need to check afterwards whether the installed binaries work.
+func_check_install ()
+{
+ sample="$1"
+ case "$sample" in
+ hello-objc-gnustep)
+ # In this sample, you have to check the uninstalled binaries (see the INSTALL file).
+ ;;
+ *)
+ func_autogen "$sample"
+ if (cd "$sample" && ./configure --prefix="$instdir/$sample"); then
+ if (func_init "$sample"; cd "$sample" && make); then
+ if (func_init "$sample"; cd "$sample" && make install) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ fi
+ fi
+ fi
+ func_maintainerclean "$sample"
+ func_autoclean "$sample"
+ ;;
+ esac
+}
+
+func_check_install_all ()
+{
+ rm -f hello-*.log
+ rm -rf "$instdir/hello-*"
+ func_check_install hello-c
+ #func_check_install hello-c-gnome
+ #func_check_install hello-c-gnome3
+ func_check_install hello-c++
+ #func_check_install hello-c++-qt
+ #func_check_install hello-c++-kde
+ #func_check_install hello-c++-gnome
+ func_check_install hello-c++-wxwidgets
+ func_check_install hello-objc
+ func_check_install hello-objc-gnustep
+ #func_check_install hello-objc-gnome
+ func_check_install hello-sh
+ func_check_install hello-python
+ func_check_install hello-clisp
+ func_check_install hello-librep
+ func_check_install hello-guile
+ func_check_install hello-smalltalk
+ func_check_install hello-java
+ func_check_install hello-java-awt
+ func_check_install hello-java-swing
+ #func_check_install hello-java-qtjambi
+ func_check_install hello-csharp
+ func_check_install hello-csharp-forms
+ func_check_install hello-gawk
+ func_check_install hello-pascal
+ #func_check_install hello-ycp
+ func_check_install hello-tcl
+ func_check_install hello-tcl-tk
+ func_check_install hello-perl
+ func_check_install hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_install error: 'make install' failures"
+ echo hello-*.log
+ exit 1
+ fi
+}
+
+
+# func_check_uninstall sample
+# checks 'make uninstall' after 'configure; make; make install'.
+func_check_uninstall ()
+{
+ sample="$1"
+ case "$sample" in
+ hello-objc-gnustep)
+ # In this sample, you have to check the uninstalled binaries (see the INSTALL file).
+ ;;
+ *)
+ func_autogen "$sample"
+ if (cd "$sample" && ./configure --prefix="$instdir/$sample"); then
+ if (func_init "$sample"; cd "$sample" && make); then
+ if (func_init "$sample"; cd "$sample" && make install); then
+ if (func_init "$sample"; cd "$sample" && make uninstall) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ (cd "$instdir" && find "$sample" -type f | LC_ALL=C sort) > "$sample.out"
+ fi
+ fi
+ fi
+ fi
+ func_maintainerclean "$sample"
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ ;;
+ esac
+}
+
+func_check_uninstall_all ()
+{
+ rm -f hello-*.log hello-*.out
+ rm -rf "$instdir/hello-*"
+ func_check_uninstall hello-c
+ #func_check_uninstall hello-c-gnome
+ #func_check_uninstall hello-c-gnome3
+ func_check_uninstall hello-c++
+ #func_check_uninstall hello-c++-qt
+ #func_check_uninstall hello-c++-kde
+ #func_check_uninstall hello-c++-gnome
+ func_check_uninstall hello-c++-wxwidgets
+ func_check_uninstall hello-objc
+ func_check_uninstall hello-objc-gnustep
+ #func_check_uninstall hello-objc-gnome
+ func_check_uninstall hello-sh
+ func_check_uninstall hello-python
+ func_check_uninstall hello-clisp
+ func_check_uninstall hello-librep
+ func_check_uninstall hello-guile
+ func_check_uninstall hello-smalltalk
+ func_check_uninstall hello-java
+ func_check_uninstall hello-java-awt
+ func_check_uninstall hello-java-swing
+ #func_check_uninstall hello-java-qtjambi
+ func_check_uninstall hello-csharp
+ func_check_uninstall hello-csharp-forms
+ func_check_uninstall hello-gawk
+ func_check_uninstall hello-pascal
+ #func_check_uninstall hello-ycp
+ func_check_uninstall hello-tcl
+ func_check_uninstall hello-tcl-tk
+ func_check_uninstall hello-perl
+ func_check_uninstall hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_uninstall error: 'make uninstall' failures"
+ echo hello-*.log
+ exit 1
+ fi
+ if (shopt -s failglob; echo hello-*.out) >/dev/null 2>/dev/null; then
+ echo "*** func_check_uninstall error: left-over files"
+ echo hello-*.out
+ exit 1
+ fi
+}
+
+
+# func_check_distcheck sample
+# checks 'make distcheck' after 'configure; make'.
+func_check_distcheck ()
+{
+ sample="$1"
+ case "$sample" in
+ hello-objc-gnustep) ;;
+ *)
+ func_autogen "$sample"
+ if func_configure "$sample"; then
+ if (func_init "$sample"; cd "$sample" && make); then
+ if (func_init "$sample"; cd "$sample" && make distcheck) > "$sample.log" 2>&1; then
+ rm -f "$sample.log"
+ fi
+ if test -d "$sample/$sample-0"; then chmod -R u+w "$sample/$sample-0"; fi
+ rm -rf "$sample/$sample-0"
+ rm -f "$sample/$sample-0.tar.gz"
+ fi
+ fi
+ func_maintainerclean "$sample"
+ func_autoclean "$sample"
+ if ! test -s "$sample.out"; then
+ rm -f "$sample.out"
+ fi
+ ;;
+ esac
+}
+
+func_check_distcheck_all ()
+{
+ rm -f hello-*.log
+ func_check_distcheck hello-c
+ #func_check_distcheck hello-c-gnome
+ #func_check_distcheck hello-c-gnome3
+ func_check_distcheck hello-c++
+ #func_check_distcheck hello-c++-qt
+ #func_check_distcheck hello-c++-kde
+ #func_check_distcheck hello-c++-gnome
+ func_check_distcheck hello-c++-wxwidgets
+ func_check_distcheck hello-objc
+ func_check_distcheck hello-objc-gnustep
+ #func_check_distcheck hello-objc-gnome
+ func_check_distcheck hello-sh
+ func_check_distcheck hello-python
+ func_check_distcheck hello-clisp
+ func_check_distcheck hello-librep
+ func_check_distcheck hello-guile
+ func_check_distcheck hello-smalltalk
+ func_check_distcheck hello-java
+ func_check_distcheck hello-java-awt
+ func_check_distcheck hello-java-swing
+ #func_check_distcheck hello-java-qtjambi
+ func_check_distcheck hello-csharp
+ func_check_distcheck hello-csharp-forms
+ func_check_distcheck hello-gawk
+ func_check_distcheck hello-pascal
+ #func_check_distcheck hello-ycp
+ func_check_distcheck hello-tcl
+ func_check_distcheck hello-tcl-tk
+ func_check_distcheck hello-perl
+ func_check_distcheck hello-php
+ if (shopt -s failglob; echo hello-*log) >/dev/null 2>/dev/null; then
+ echo "*** func_check_distcheck error: 'make distcheck' failures"
+ echo hello-*.log
+ exit 1
+ fi
+}
+
+
+# If you want to extend this script:
+
+# A dummy check function.
+func_check ()
+{
+ :
+}
+
+# Complete list of samples.
+func_check_all ()
+{
+ func_check hello-c
+ func_check hello-c-gnome
+ func_check hello-c-gnome3
+ func_check hello-c++
+ func_check hello-c++-qt
+ func_check hello-c++-kde
+ func_check hello-c++-gnome
+ func_check hello-c++-wxwidgets
+ func_check hello-objc
+ func_check hello-objc-gnustep
+ func_check hello-objc-gnome
+ func_check hello-sh
+ func_check hello-python
+ func_check hello-clisp
+ func_check hello-librep
+ func_check hello-guile
+ func_check hello-smalltalk
+ func_check hello-java
+ func_check hello-java-awt
+ func_check hello-java-swing
+ func_check hello-java-qtjambi
+ func_check hello-csharp
+ func_check hello-csharp-forms
+ func_check hello-gawk
+ func_check hello-pascal
+ func_check hello-ycp
+ func_check hello-tcl
+ func_check hello-tcl-tk
+ func_check hello-perl
+ func_check hello-php
+}
+
+
+# Top-level code.
+
+func_check_autoclean_all
+func_check_distclean_all
+func_check_maintainerclean_all
+func_check_maintainerclean_vpath_all
+func_check_dist_all
+func_check_dist_vpath_all
+func_check_install_all
+func_check_uninstall_all
+func_check_distcheck_all