mirror of
https://github.com/obgm/libcoap.git
synced 2026-11-05 01:12:55 +03:00
The header coap.h should be the only header file a user has to include to get functions from the libcoap available. Bu we have to provide not only the header interface to the user, the user needs also some extra information like the libcoap version or upstream related infos. To get these automated in to a shipped coap.h header file we simple can use some autotool magic and expand some macros while configure is running and pasing i/c/coap.h.in. By this we can currently add the following macro variables: LIBCOAP_PACKAGE_BUGREPORT -> upstream email contact LIBCOAP_PACKAGE_NAME -> the used package name (libcoap) LIBCOAP_PACKAGE_STRING -> package name + version LIBCOAP_PACKAGE_URL -> upstream homepage LIBCOAP_PACKAGE_VERSION -> the current used version All these macros variables are expanded from the respective macro names from the configure run. The variables are prefixed because this with LIBCOAP_ to not get name clashing on the user side while running the autotools of the users project. There are probably more predefined macros needed, but they can be easily added later into include/coap/coap.h.in.
120 lines
3.0 KiB
Bash
Executable File
120 lines
3.0 KiB
Bash
Executable File
#!/bin/sh -e
|
|
|
|
# uncomment the set command for debugging
|
|
#set -x
|
|
|
|
# function to check for needed helper tools
|
|
check_helper() {
|
|
#echo "Checking for $1 ..."
|
|
TOOL=`which "$1" || echo none`
|
|
|
|
if [ "$TOOL" = "none" ]; then
|
|
echo
|
|
echo "Couldn't find '$1'!"
|
|
RET=1
|
|
else
|
|
RET=0
|
|
fi
|
|
}
|
|
|
|
PROJECT="libcoap"
|
|
|
|
AUTOGEN_FILES="INSTALL \
|
|
aclocal.m4 ar-lib \
|
|
coap_config.h coap_config.h.in* compile config.guess config.h* config.log config.status config.sub configure \
|
|
depcomp \
|
|
doc/Doxyfile doc/doxyfile.stamp doc/doxygen_sqlite3.db doc/Makefile doc/Makefile.in \
|
|
examples/*.o examples/rd.o examples/coap-* examples/rd \
|
|
include/coap/coap.h
|
|
install-sh \
|
|
libcoap-1.0.pc libtool ltmain.sh \
|
|
missing \
|
|
Makefile Makefile.in \
|
|
stamp-h1 src/.dirstamp libcoap*.la* src/*.*o \
|
|
tests/*.o tests/Makefile tests/testdriver \
|
|
m4/libtool.m4 m4/lt~obsolete.m4 m4/ltoptions.m4 m4/ltsugar.m4 m4/ltversion.m4"
|
|
|
|
AUTOGEN_DIRS=".deps \
|
|
.libs autom4te.cache/ \
|
|
doc/html/ \
|
|
examples/.deps/ \
|
|
src/.libs/ src/.deps/ \
|
|
tests/.deps/"
|
|
|
|
# checking for cleaner argument
|
|
echo
|
|
if [ "$1" = "--clean" ]; then
|
|
echo "removing autogerated files ..."
|
|
rm -rf $AUTOGEN_FILES $AUTOGEN_DIRS
|
|
echo "done"
|
|
exit
|
|
else
|
|
echo "[HINT] You can run 'autogen.sh --clean' to remove all generated files by the autotools."
|
|
echo
|
|
fi
|
|
|
|
# checking for autoreconf
|
|
check_helper autoconf
|
|
if [ "$RET" = "1" ]; then
|
|
echo "You probably need to install the package 'autoconf'."
|
|
ERROR=1
|
|
else
|
|
echo "Found 'autoconf'."
|
|
fi
|
|
|
|
# checking for aclocal
|
|
check_helper aclocal
|
|
if [ "$RET" = "1" ]; then
|
|
echo "You probably need to install the package 'automake'."
|
|
ERROR=1
|
|
else
|
|
echo "Found 'aclocal'."
|
|
fi
|
|
|
|
# checking for libtool
|
|
# The libtool helper maybe installed as 'libtoolize', checking for 'libtool' first.
|
|
check_helper libtool
|
|
if [ "$RET" = "1" ]; then
|
|
# O.k. libtool not found, searching for libtoolize.
|
|
check_helper libtoolize
|
|
if [ "$RET" = "1" ]; then
|
|
echo "You probably need to install the package 'libtool'."
|
|
# That's bad, we found nothing!
|
|
ERROR=1
|
|
else
|
|
echo "Found 'libtoolize'."
|
|
break
|
|
fi
|
|
else
|
|
echo "Found 'libtool'."
|
|
fi
|
|
|
|
# exit if one tool isn't available
|
|
if [ "$ERROR" = "1" ]; then
|
|
echo
|
|
echo "One or more needed tools are missing, exiting ..."
|
|
echo "Please install the needed software packages and restart 'autogen.sh' again."
|
|
echo
|
|
exit
|
|
fi
|
|
|
|
echo
|
|
echo " ---> Found all needed tools! That's fine."
|
|
echo
|
|
|
|
# countinue otherwise
|
|
test -n "$srcdir" || srcdir=`dirname "$0"`
|
|
test -n "$srcdir" || srcdir=.
|
|
|
|
# Creating the directory m4 before calling autoreconf to
|
|
# not struggle with old versions of aclocal.
|
|
mkdir -p $srcdir/m4
|
|
|
|
echo "Generating needed autotools files for $PROJECT by running autoreconf ..."
|
|
autoreconf --force --install --verbose "$srcdir"
|
|
|
|
echo
|
|
echo "You can now run 'configure --help' to see possible configuration options."
|
|
echo "Otherwise process the configure script to create the makefiles and generated helper files."
|
|
echo
|