]> Savannah Git Hosting - gnulib.git/commitdiff
Add another example.
authorBruno Haible <bruno@clisp.org>
Sat, 8 Jan 2022 19:58:14 +0000 (20:58 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 8 Jan 2022 19:58:14 +0000 (20:58 +0100)
* examples/hello-c-gnulib-conddeps: New directory.

ChangeLog
examples/hello-c-gnulib-conddeps/INSTALL [new file with mode: 0644]
examples/hello-c-gnulib-conddeps/Makefile.am [new file with mode: 0644]
examples/hello-c-gnulib-conddeps/autoclean.sh [new file with mode: 0755]
examples/hello-c-gnulib-conddeps/autogen.sh [new file with mode: 0755]
examples/hello-c-gnulib-conddeps/configure.ac [new file with mode: 0644]
examples/hello-c-gnulib-conddeps/hello.c [new file with mode: 0644]
examples/hello-c-gnulib-conddeps/m4/Makefile.am [new file with mode: 0644]

index 64d70fd41daccd81cda08bb3a84d1dcc2df18eda..7a53784ccfc0bc8e7c41e80ce59eae379727bd1a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2022-01-08  Bruno Haible  <bruno@clisp.org>
+
+       Add another example.
+       * examples/hello-c-gnulib-conddeps: New directory.
+
 2022-01-08  Marc Nieper-Wißkirchen  <marc@nieper-wisskirchen.de>
 
        c-stack: Adapt header file for use in C++ applications.
diff --git a/examples/hello-c-gnulib-conddeps/INSTALL b/examples/hello-c-gnulib-conddeps/INSTALL
new file mode 100644 (file)
index 0000000..062762b
--- /dev/null
@@ -0,0 +1,8 @@
+Installation:
+  ./autogen.sh
+  ./configure --prefix=/some/prefix
+  make
+  make install
+Cleanup:
+  make distclean
+  ./autoclean.sh
diff --git a/examples/hello-c-gnulib-conddeps/Makefile.am b/examples/hello-c-gnulib-conddeps/Makefile.am
new file mode 100644 (file)
index 0000000..367e819
--- /dev/null
@@ -0,0 +1,22 @@
+# This file is in the public domain.
+#
+# Makefile configuration - processed by automake.
+
+# General automake options.
+AUTOMAKE_OPTIONS = foreign no-dependencies
+ACLOCAL_AMFLAGS = -I m4 -I gnulib-m4
+
+# The list of subdirectories containing Makefiles.
+SUBDIRS = m4 lib tests
+
+AM_CPPFLAGS = -Ilib -I$(srcdir)/lib
+
+# The list of programs that are built.
+bin_PROGRAMS = hello
+
+# The source files of the 'hello' program.
+hello_SOURCES = hello.c
+hello_LDADD = lib/libgnu.a
+
+# Additional files to be distributed.
+EXTRA_DIST = autogen.sh autoclean.sh gnulib-m4/gnulib-cache.m4
diff --git a/examples/hello-c-gnulib-conddeps/autoclean.sh b/examples/hello-c-gnulib-conddeps/autoclean.sh
new file mode 100755 (executable)
index 0000000..9fd8d95
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+# This file is in the public domain.
+#
+# Script for cleaning all autogenerated files.
+
+test ! -f Makefile || make distclean
+
+# Generated by aclocal.
+rm -f aclocal.m4
+
+# Generated by autoconf.
+rm -f configure
+
+# Generated by autoheader.
+rm -f config.h.in
+
+# Generated or brought in by automake.
+rm -f Makefile.in
+rm -f m4/Makefile.in
+rm -f build-aux/compile
+rm -f build-aux/depcomp
+rm -f build-aux/install-sh
+rm -f build-aux/missing
+rm -f build-aux/config.guess
+rm -f build-aux/config.sub
+
+# Generated or brought in by gnulib-tool.
+rm -rf lib gnulib-m4 tests
+rm -f build-aux/ar-lib
+rm -f build-aux/run-test
+rm -f build-aux/test-driver.diff
+
+# Generated by autogen.sh.
+rm -f build-aux/test-driver
diff --git a/examples/hello-c-gnulib-conddeps/autogen.sh b/examples/hello-c-gnulib-conddeps/autogen.sh
new file mode 100755 (executable)
index 0000000..a8557a9
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+# This file is in the public domain.
+#
+# Script for regenerating all autogenerated files.
+
+# Usage: ./autogen.sh [--skip-gnulib]
+
+skip_gnulib=false
+while :; do
+  case "$1" in
+    --skip-gnulib) skip_gnulib=true; shift;;
+    *) break ;;
+  esac
+done
+
+if test $skip_gnulib = false; then
+  if test -n "$GNULIB_SRCDIR"; then
+    test -d "$GNULIB_SRCDIR" || {
+      echo "*** GNULIB_SRCDIR is set but does not point to an existing directory." 1>&2
+      exit 1
+    }
+  fi
+  # Now it should contain a gnulib-tool.
+  GNULIB_TOOL="$GNULIB_SRCDIR/gnulib-tool"
+  test -f "$GNULIB_TOOL" || {
+    echo "*** gnulib-tool not found." 1>&2
+    exit 1
+  }
+  GNULIB_MODULES='
+    unistd
+    get_ppid_of
+  '
+  $GNULIB_TOOL --lib=libgnu --source-base=lib --m4-base=gnulib-m4 --tests-base=tests \
+    --with-tests --conditional-dependencies \
+    --import $GNULIB_MODULES
+  mkdir -p build-aux
+  $GNULIB_TOOL --copy-file build-aux/ar-lib; chmod a+x build-aux/ar-lib
+  $GNULIB_TOOL --copy-file build-aux/config.guess; chmod a+x build-aux/config.guess
+  $GNULIB_TOOL --copy-file build-aux/config.sub;   chmod a+x build-aux/config.sub
+  $GNULIB_TOOL --copy-file build-aux/run-test; chmod a+x build-aux/run-test
+  $GNULIB_TOOL --copy-file build-aux/test-driver.diff
+fi
+
+aclocal -I m4 -I gnulib-m4
+autoconf
+autoheader && touch config.h.in
+automake -a -c
+patch --quiet --forward --reject-file=/dev/null build-aux/test-driver < build-aux/test-driver.diff
+rm -rf autom4te.cache
diff --git a/examples/hello-c-gnulib-conddeps/configure.ac b/examples/hello-c-gnulib-conddeps/configure.ac
new file mode 100644 (file)
index 0000000..b7bd80f
--- /dev/null
@@ -0,0 +1,21 @@
+dnl This file is in the public domain.
+dnl
+dnl Configuration file - processed by autoconf.
+
+AC_INIT([hello-c], [0])
+AC_CONFIG_AUX_DIR([build-aux])
+AC_CONFIG_SRCDIR([hello.c])
+AM_INIT_AUTOMAKE
+
+AC_CONFIG_HEADERS([config.h])
+
+AC_PROG_CC
+
+gl_EARLY
+gl_INIT
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([m4/Makefile])
+AC_CONFIG_FILES([lib/Makefile])
+AC_CONFIG_FILES([tests/Makefile])
+AC_OUTPUT
diff --git a/examples/hello-c-gnulib-conddeps/hello.c b/examples/hello-c-gnulib-conddeps/hello.c
new file mode 100644 (file)
index 0000000..239bca7
--- /dev/null
@@ -0,0 +1,26 @@
+/* This file is in the public domain.
+
+   Source code of the C program.  */
+
+
+/* Every source file that uses Gnulib needs this.  */
+#include <config.h>
+
+/* Get printf() declaration.  */
+#include <stdio.h>
+
+/* Get getpid() declaration.  */
+#include <unistd.h>
+
+/* Include Gnulib header files.  */
+#include "get_ppid_of.h"
+
+int
+main ()
+{
+  printf ("%s\n", "Hello, world!");
+  printf ("This program is running as process number %d.\n", getpid ());
+  printf ("The parent process number is %d.\n", get_ppid_of (getpid ()));
+
+  return 0;
+}
diff --git a/examples/hello-c-gnulib-conddeps/m4/Makefile.am b/examples/hello-c-gnulib-conddeps/m4/Makefile.am
new file mode 100644 (file)
index 0000000..1b336ac
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST =