1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-04-28 06:33:36 +00:00

Add another example.

* examples/hello-c-gnulib-conddeps: New directory.
This commit is contained in:
Bruno Haible
2022-01-08 20:58:14 +01:00
parent 549fce0183
commit 5a6191b07d
8 changed files with 166 additions and 0 deletions

View File

@@ -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.

View File

@@ -0,0 +1,8 @@
Installation:
./autogen.sh
./configure --prefix=/some/prefix
make
make install
Cleanup:
make distclean
./autoclean.sh

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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;
}

View File

@@ -0,0 +1 @@
EXTRA_DIST =