summaryrefslogtreecommitdiff
path: root/examples/hello-c-gnulib-nonrecursive
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2021-12-15 19:59:01 +0100
committerBruno Haible <bruno@clisp.org>2021-12-15 19:59:01 +0100
commita3c4f3ffbed121b02ed44a6ddf6cfdd16e5b05e9 (patch)
treeeb6e2f749d3232984971773f18fd01043f35f38c /examples/hello-c-gnulib-nonrecursive
parentb2bd0a9041ed7401fb69f59f7450abb8b3249ecb (diff)
downloadgnulib-a3c4f3ffbed121b02ed44a6ddf6cfdd16e5b05e9.tar.gz
Add simple examples.
* examples: New directory.
Diffstat (limited to 'examples/hello-c-gnulib-nonrecursive')
-rw-r--r--examples/hello-c-gnulib-nonrecursive/INSTALL8
-rw-r--r--examples/hello-c-gnulib-nonrecursive/Makefile.am28
-rwxr-xr-xexamples/hello-c-gnulib-nonrecursive/autoclean.sh30
-rwxr-xr-xexamples/hello-c-gnulib-nonrecursive/autogen.sh48
-rw-r--r--examples/hello-c-gnulib-nonrecursive/configure.ac18
-rw-r--r--examples/hello-c-gnulib-nonrecursive/m4/Makefile.am1
-rw-r--r--examples/hello-c-gnulib-nonrecursive/src/hello.c26
-rw-r--r--examples/hello-c-gnulib-nonrecursive/src/local.mk7
8 files changed, 166 insertions, 0 deletions
diff --git a/examples/hello-c-gnulib-nonrecursive/INSTALL b/examples/hello-c-gnulib-nonrecursive/INSTALL
new file mode 100644
index 0000000000..062762be0f
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/INSTALL
@@ -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-nonrecursive/Makefile.am b/examples/hello-c-gnulib-nonrecursive/Makefile.am
new file mode 100644
index 0000000000..d239c3c68f
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/Makefile.am
@@ -0,0 +1,28 @@
+# This file is in the public domain.
+#
+# Makefile configuration - processed by automake.
+
+# General automake options.
+AUTOMAKE_OPTIONS = foreign no-dependencies subdir-objects
+ACLOCAL_AMFLAGS = -I m4 -I gnulib-m4
+
+# The list of subdirectories containing Makefiles.
+SUBDIRS =
+
+AM_CPPFLAGS = -Ilib -I$(srcdir)/lib
+
+# Additional files to be distributed.
+EXTRA_DIST = autogen.sh autoclean.sh gnulib-m4/gnulib-cache.m4
+
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES =
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+noinst_LIBRARIES =
+
+include lib/gnulib.mk
+include src/local.mk
diff --git a/examples/hello-c-gnulib-nonrecursive/autoclean.sh b/examples/hello-c-gnulib-nonrecursive/autoclean.sh
new file mode 100755
index 0000000000..bb8789d972
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/autoclean.sh
@@ -0,0 +1,30 @@
+#!/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
+rm -f build-aux/ar-lib
+rm -f build-aux/prefix-gnulib-mk
diff --git a/examples/hello-c-gnulib-nonrecursive/autogen.sh b/examples/hello-c-gnulib-nonrecursive/autogen.sh
new file mode 100755
index 0000000000..eb97f95975
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/autogen.sh
@@ -0,0 +1,48 @@
+#!/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='
+ alloca
+ unistd
+ get_ppid_of
+ non-recursive-gnulib-prefix-hack
+ '
+ $GNULIB_TOOL --lib=libgnu --source-base=lib --m4-base=gnulib-m4 \
+ --makefile-name=gnulib.mk \
+ --import $GNULIB_MODULES
+ build-aux/prefix-gnulib-mk --lib-name=libgnu lib/gnulib.mk
+ $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
+fi
+
+aclocal -I m4 -I gnulib-m4
+autoconf
+autoheader && touch config.h.in
+automake -a -c
+rm -rf autom4te.cache
diff --git a/examples/hello-c-gnulib-nonrecursive/configure.ac b/examples/hello-c-gnulib-nonrecursive/configure.ac
new file mode 100644
index 0000000000..d30a9ec1dc
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/configure.ac
@@ -0,0 +1,18 @@
+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([src/hello.c])
+AM_INIT_AUTOMAKE
+
+AC_CONFIG_HEADERS([config.h])
+
+AC_PROG_CC
+
+gl_EARLY
+gl_INIT
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
diff --git a/examples/hello-c-gnulib-nonrecursive/m4/Makefile.am b/examples/hello-c-gnulib-nonrecursive/m4/Makefile.am
new file mode 100644
index 0000000000..1b336ac1a8
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/m4/Makefile.am
@@ -0,0 +1 @@
+EXTRA_DIST =
diff --git a/examples/hello-c-gnulib-nonrecursive/src/hello.c b/examples/hello-c-gnulib-nonrecursive/src/hello.c
new file mode 100644
index 0000000000..239bca7347
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/src/hello.c
@@ -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-nonrecursive/src/local.mk b/examples/hello-c-gnulib-nonrecursive/src/local.mk
new file mode 100644
index 0000000000..69226118b3
--- /dev/null
+++ b/examples/hello-c-gnulib-nonrecursive/src/local.mk
@@ -0,0 +1,7 @@
+
+# The list of programs that are built.
+bin_PROGRAMS = src/hello
+
+# The source files of the 'hello' program.
+src_hello_SOURCES = src/hello.c
+src_hello_LDADD = lib/libgnu.a