1
0
mirror of https://github.com/libssh2/libssh2.git synced 2025-07-29 13:01:14 +03:00

buildsystem: drop custom buildconf script, rely on autoreconf (#224)

Notes:
The buildconf script is currently required, because we need to copy a
header around, because it is used both from the library and the examples
sources.

However, having a custom 'buildconf'-like script is not needed if we can
ensure that the header exists by the time it is needed. For that, we can
just append the src/ directory to the headers search path for the
examples.

And then it means we no longer need to generate the same header twice,
so we remove the second one from configure.ac.

Now, we can just call "autoreconf -fi" to generate the autotools files,
instead of relying on the canned sequence in "buildconf", since
autoreconf has now long known what to do at the correct moment (future
versions of autotools, automake, autopoint, autoheader etc... may
require an other ordering, or other intermediate steps, etc...).

Eventually, get rid of buildconf now it is no longer needed. In fact, we
really keep it for legacy, but have it just call autoreconf (and print a
nice user-friendly warning). Don't include it in the release tarballs,
though.

Update doc, gitignore, and travis-CI jobs accordingly.

Credit:
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Sam Voss <sam.voss@rockwellcollins.com>
This commit is contained in:
yann-morin-1998
2020-07-01 20:44:08 +02:00
committed by GitHub
parent 1c3a03ebc3
commit fc5d77881e
8 changed files with 13 additions and 27 deletions

2
.gitignore vendored
View File

@ -13,6 +13,8 @@ Makefile
Makefile.in Makefile.in
aclocal.m4 aclocal.m4
autom4te.cache autom4te.cache
compile
test-driver
config.guess config.guess
config.log config.log
config.status config.status

View File

@ -107,7 +107,7 @@ script:
fi fi
- | - |
if [ "$B" = "configure" ]; then if [ "$B" = "configure" ]; then
./buildconf autoreconf -fi
./configure --enable-debug --enable-werror ./configure --enable-debug --enable-werror
make make
make check make check

View File

@ -43,7 +43,7 @@ os400/libssh2rpg/libssh2_publickey.rpgle \
os400/libssh2rpg/libssh2_sftp.rpgle \ os400/libssh2rpg/libssh2_sftp.rpgle \
Makefile.os400qc3.inc Makefile.os400qc3.inc
EXTRA_DIST = $(WIN32FILES) buildconf $(NETWAREFILES) get_ver.awk \ EXTRA_DIST = $(WIN32FILES) $(NETWAREFILES) get_ver.awk \
maketgz NMakefile RELEASE-NOTES libssh2.pc.in $(VMSFILES) config.rpath \ maketgz NMakefile RELEASE-NOTES libssh2.pc.in $(VMSFILES) config.rpath \
CMakeLists.txt cmake $(OS400FILES) CMakeLists.txt cmake $(OS400FILES)

View File

@ -1,22 +1,8 @@
#!/bin/sh #!/bin/sh
LIBTOOLIZE="libtoolize" echo "***" >&2
echo "*** Do not use buildconf. Instead, just use: autoreconf -fi" >&2
echo "*** Doing it for you now, but buildconf may disapear in the future." >&2
echo "***" >&2
if [ "x`which $LIBTOOLIZE`" = "x" ]; then ${AUTORECONF:-autoreconf} -fi "${@}"
LIBTOOLIZE="glibtoolize"
fi
if [ "x`which $LIBTOOLIZE`" = "x" ]; then
echo "Neither libtoolize nor glibtoolize could be found!"
exit 1
fi
${LIBTOOLIZE} --copy --automake --force
${ACLOCAL:-aclocal} -I m4 $ACLOCAL_FLAGS
${AUTOHEADER:-autoheader}
# copy the private libssh2_config.h.in to the examples dir so that
# it can be included without pointing the include path to the private
# source dir
cp src/libssh2_config.h.in example/libssh2_config.h.in
${AUTOCONF:-autoconf}
${AUTOMAKE:-automake} --add-missing --copy

View File

@ -2,7 +2,7 @@
AC_INIT(libssh2, [-], libssh2-devel@cool.haxx.se) AC_INIT(libssh2, [-], libssh2-devel@cool.haxx.se)
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_SRCDIR([src]) AC_CONFIG_SRCDIR([src])
AC_CONFIG_HEADERS([src/libssh2_config.h example/libssh2_config.h]) AC_CONFIG_HEADERS([src/libssh2_config.h])
AM_MAINTAINER_MODE AM_MAINTAINER_MODE
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])

View File

@ -14,9 +14,9 @@ If you want to build directly from the git repository, you must first
generate the configure script and Makefile using autotools. There is generate the configure script and Makefile using autotools. There is
a convenience script that calls all tools in the correct order. Make a convenience script that calls all tools in the correct order. Make
sure that autoconf, automake and libtool are installed on your system, sure that autoconf, automake and libtool are installed on your system,
then execute the following script: then execute:
./buildconf autoreconf -fi
After executing this script, you can build the project as usual: After executing this script, you can build the project as usual:

2
example/.gitignore vendored
View File

@ -21,8 +21,6 @@ config.h.in
ssh2_exec ssh2_exec
ssh2_agent ssh2_agent
ssh2_agent_forwarding ssh2_agent_forwarding
libssh2_config.h
libssh2_config.h.in
stamp-h2 stamp-h2
sftp_append sftp_append
sftp_write_sliding sftp_write_sliding

View File

@ -13,5 +13,5 @@ if HAVE_SYS_UN_H
noinst_PROGRAMS += x11 noinst_PROGRAMS += x11
endif endif
AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/example AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/example -I../src
LDADD = $(top_builddir)/src/libssh2.la LDADD = $(top_builddir)/src/libssh2.la