简体   繁体   中英

No rule to make target 'bootstrap', needed by 'distdir-am'. Stop

I'm having the following problem when using automake to 'make dist'. Below is a snap shot of the error being reported by the compiler. I'm using Debian 10.5, with the default compiler version 8.0.3; autoconf 2.69; automake 1.16.1, libtool 2.4.6

######## Problem ########

aperri@debian:~/XerlangCPL2$ make dist
make  dist-gzip am__post_remove_distdir='@:'
make[1]: Entering directory '/home/aperri/XerlangCPL2'
make  distdir-am
make[2]: Entering directory '/home/aperri/XerlangCPL2'
make[2]: *** No rule to make target 'bootstrap', needed by 'distdir-am'.  Stop.
make[2]: Leaving directory '/home/aperri/XerlangCPL2'
make[1]: *** [Makefile:633: distdir] Error 2
make[1]: Leaving directory '/home/aperri/XerlangCPL2'
make: *** [Makefile:710: dist] Error 2 

I'm including my configure.ac and makefile.am in this message with the hope that there is a solution to this problem

######## configure.ac ########

#                                               -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])
AC_INIT([XerlangCPL], [1.0], [aperri1001@gmail.com])
AC_CONFIG_SRCDIR([src/xmlPROC.cpp])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])

# Enable "automake" to simplify creating Makefiles
AM_INIT_AUTOMAKE([1.16.1 subdir-objects -Wall -Werror])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])


# Checks for programs.
AC_PROG_CC
AC_PROG_CXXCPP
AC_PROG_CXX
# Used in conjuction with {TARGET}_CPPFLAGS = -DDEBUG in Makefile.am
AM_PROG_CC_C_O

# Checks for libraries.
AX_BOOST_BASE([1.67], [], AC_MSG_ERROR([Could not find a useful version of boost]))
AX_BOOST_FILESYSTEM
AX_BOOST_SYSTEM
AX_BOOST_PROGRAM_OPTIONS
AX_BOOST_REGEX
# AX_BOOST_DATE_TIME
# AX_BOOST_THREAD

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions
PKG_CHECK_MODULES(libxml, libxml++-2.6 >= 2.10.0 )


AC_CHECK_PROGS([DOXYGEN], [doxygen])
if test -z "$DOXYGEN";
   then AC_MSG_WARN([Doxygen not found - continuing without Doxygen support])
fi
AM_CONDITIONAL([HAVE_DOXYGEN], [test -n "$DOXYGEN"])
AC_CONFIG_FILES([Makefile doc/Doxyfile])

# AM_CONDITIONAL([DEBUG], [test x$debug = xtrue])
# AC_ARG_WITH(debug, [  --with-debug  add the debugging module], [AC_DEFINE(WITH_DEBUG,1,0)
# AC_SUBST(WITH_DEBUG,1)
# CXXFLAGS="-O0 -ggdb"])


AC_OUTPUT

echo "
  XErlang Compiler ($PACKAGE_NAME) version $PACKAGE_VERSION
  Prefix.........: $prefix
  Debug Build....: $debug
  C++ Compiler...: $CXX $CXXFLAGS $CPPFLAGS
  Linker.........: $LD $LDFLAGS $LIBS
"
######## makefile.am ########

ACLOCAL_AMFLAGS = -I m4 --install

bin_PROGRAMS = xerlangCPL
xerlangCPL_SOURCES = \
    src/xmlPROC.cpp \
    src/xml_structs.h \
    src/debug.h \
    src/conxsTracker.cpp \
    src/conxs_tracker.h \
    src/xmlConxsParser.cpp \
    src/oven_control


xerlangCPL_LDFLAGS = -DDEBUG \
                     $(libxml_LIBS) \
                     $(BOOST_LDFLAGS) \
                     $(BOOST_SYSTEM_LDFLAGS) \
                     $(BOOST_FILESYSTEM_LDFLAGS) \
                     $(BOOST_PROGRAM_OPTIONS_LDFLAGS)

xerlangCPL_CPPFLAGS = $(libxml_CFLAGS) \
                      $(BOOST_CPPFLAGS)


xerlangCPL_LIBS = $(BOOST_SYSTEM_LIBS) \
                  $(BOOST_FILESYSTEM_LIBS) \
                  $(BOOST_PROGRAM_OPTIONS_LIBS)

xerlangCPL_CXXFLAGS = -lboost_filesystem -ldl -lboost_system

# start of Doxygen section
if HAVE_DOXYGEN

doxyfile.stamp:
    $(DOXYGEN) $(top_srcdir)/doc/Doxyfile
    echo Timestamp > $@


CLEANFILES = $(top_srcdir)/doxyfile.stamp

# all-local: doxyfile.stamp
all-local: doxyfile.stamp
# clean-local:
#     rm -rf $(top_srcdir)/
endif

EXTRA_DIST = bootstrap m4/NOTES 

The problem could be related to the inclusion of Boost Modules or the lack of them.

The problem is that EXTRA_DIST lists some mysterious file called bootstrap .

Makefile.am provides no instructions for building this file.

Therefore, this file is expected to already exist in the build directory, and it does not.

That's the reason for your make dist failure.

The reason for the missing file is something that you'll have to figure out on your own, the only thing that can be stated here is that its absence is the reason for your build failure.

You could, of course

touch bootstrap

and create an empty file in the build directory, which will be good enough. But you should investigate, in your project, what this file is, and where it should come from, and fix things accordingly.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM