njh / twolame

MPEG Audio Layer 2 (MP2) encoder
http://www.twolame.org/
GNU Lesser General Public License v2.1
59 stars 34 forks source link

make job failure due to doc/ directory not being ignored #53

Closed qyot27 closed 7 years ago

qyot27 commented 7 years ago

It's not causing the lib or bins to fail, since it's occurring right at the end, but it does cause make to fail, which can interfere with automated installation.

I do not have doxygen or asciidoc installed, and as per the response in issue #41, this should mean that docs aren't built. The problem is that make is still attempting to dive into doc/ and build them anyway.

I've tried explicitly passing --disable-maintainer-mode as well, just in case maintainer mode is on by default (which it shouldn't be if it is, but still), but the exact same error results. It also happens regardless of whether I'm compiling natively for Linux or cross compiling with MinGW-w64.

Ideally, docs (and the frontends, even though it's far more likely to build those) could be enabled/disabled at configure time and then the directories passed through to make accordingly. My attempts to wriggle a solution like that into configure.ac/Makefile.am yesterday never actually worked as I wanted it to (it just kept skipping docs and frontends entirely, even if I just wanted to skip the docs directory), so I'm just filing a normal bug report instead.

Compilation log:

[~:$] git clone git://github.com/njh/twolame.git
Cloning into 'twolame'...
remote: Counting objects: 2068, done.
remote: Total 2068 (delta 0), reused 0 (delta 0), pack-reused 2068
Receiving objects: 100% (2068/2068), 892.26 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1446/1446), done.

[~:$] cd twolame && mkdir build-scripts

[twolame:$] autoreconf -fiv
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I build-scripts
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'build-scripts'.
libtoolize: copying file 'build-scripts/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'build-scripts'.
libtoolize: copying file 'build-scripts/libtool.m4'
libtoolize: copying file 'build-scripts/ltoptions.m4'
libtoolize: copying file 'build-scripts/ltsugar.m4'
libtoolize: copying file 'build-scripts/ltversion.m4'
libtoolize: copying file 'build-scripts/lt~obsolete.m4'
autoreconf: running: /usr/bin/autoconf --force
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:48: installing 'build-scripts/ar-lib'
configure.ac:48: installing 'build-scripts/compile'
configure.ac:53: installing 'build-scripts/config.guess'
configure.ac:53: installing 'build-scripts/config.sub'
configure.ac:17: installing 'build-scripts/install-sh'
configure.ac:17: installing 'build-scripts/missing'
frontend/Makefile.am: installing 'build-scripts/depcomp'
parallel-tests: installing 'build-scripts/test-driver'
autoreconf: Leaving directory `.'

[twolame:$] CPPFLAGS="-mfpmath=sse -march=pentium3 -msse -mtune=pentium3" \
>     PKG_CONFIG_PATH=/usr/i686-w64-mingw32/lib/pkgconfig ./configure \
>     --prefix=/usr/i686-w64-mingw32 --disable-shared --enable-silent-rules \
>     --host=i686-w64-mingw32
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for i686-w64-mingw32-strip... i686-w64-mingw32-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for i686-w64-mingw32-gcc... i686-w64-mingw32-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether i686-w64-mingw32-gcc accepts -g... yes
checking for i686-w64-mingw32-gcc option to accept ISO C89... none needed
checking whether i686-w64-mingw32-gcc understands -c and -o together... yes
checking dependency style of i686-w64-mingw32-gcc... gcc3
checking for i686-w64-mingw32-ar... i686-w64-mingw32-ar
checking the archiver (i686-w64-mingw32-ar) interface... ar
checking for i686-w64-mingw32-gcc... (cached) i686-w64-mingw32-gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether i686-w64-mingw32-gcc accepts -g... (cached) yes
checking for i686-w64-mingw32-gcc option to accept ISO C89... (cached) none needed
checking whether i686-w64-mingw32-gcc understands -c and -o together... (cached) yes
checking dependency style of i686-w64-mingw32-gcc... (cached) gcc3
checking for i686-w64-mingw32-gcc option to accept ISO C99... none needed
checking whether ln -s works... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... i686-w64-mingw32
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by i686-w64-mingw32-gcc... /usr/i686-w64-mingw32/bin/ld
checking if the linker (/usr/i686-w64-mingw32/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/i686-w64-mingw32-nm -B
checking the name lister (/usr/bin/i686-w64-mingw32-nm -B) interface... BSD nm
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to i686-w64-mingw32 format... func_convert_file_nix_to_w32
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/i686-w64-mingw32/bin/ld option to reload object files... -r
checking for i686-w64-mingw32-objdump... i686-w64-mingw32-objdump
checking how to recognize dependent libraries... file_magic ^x86 archive import|^x86 DLL
checking for i686-w64-mingw32-dlltool... i686-w64-mingw32-dlltool
checking how to associate runtime and link libraries... func_cygming_dll_for_implib
checking for i686-w64-mingw32-ar... (cached) i686-w64-mingw32-ar
checking for archiver @FILE support... @
checking for i686-w64-mingw32-strip... (cached) i686-w64-mingw32-strip
checking for i686-w64-mingw32-ranlib... i686-w64-mingw32-ranlib
checking command to parse /usr/bin/i686-w64-mingw32-nm -B output from i686-w64-mingw32-gcc object... ok
checking for sysroot... no
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for i686-w64-mingw32-mt... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... i686-w64-mingw32-gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... no
checking for objdir... .libs
checking if i686-w64-mingw32-gcc supports -fno-rtti -fno-exceptions... no
checking for i686-w64-mingw32-gcc option to produce PIC... -DDLL_EXPORT -DPIC
checking if i686-w64-mingw32-gcc PIC flag -DDLL_EXPORT -DPIC works... yes
checking if i686-w64-mingw32-gcc static flag -static works... yes
checking if i686-w64-mingw32-gcc supports -c -o file.o... yes
checking if i686-w64-mingw32-gcc supports -c -o file.o... (cached) yes
checking whether the i686-w64-mingw32-gcc linker (/usr/i686-w64-mingw32/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... Win32 ld.exe
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking whether byte ordering is bigendian... no
checking for inline... inline
checking for an ANSI C-conforming const... yes
checking for perl... /usr/bin/perl
checking size of short... 2
checking size of float... 4
checking for sqrt in -lm... yes
checking for lrintf in -lm... yes
checking for powf in -lmx... no
checking for i686-w64-mingw32-pkg-config... /usr/bin/i686-w64-mingw32-pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for SNDFILE... yes
checking for ANSI C header files... (cached) yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking assert.h usability... yes
checking assert.h presence... yes
checking for assert.h... yes
checking for unistd.h... (cached) yes
checking for inttypes.h... (cached) yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating twolame.pc
config.status: creating doc/Makefile
config.status: creating doc/html/Makefile
config.status: creating doc/html/Doxyfile
config.status: creating libtwolame/Makefile
config.status: creating frontend/Makefile
config.status: creating simplefrontend/Makefile
config.status: creating tests/Makefile
config.status: creating libtwolame/config.h
config.status: executing depfiles commands
config.status: executing libtool commands

[twolame:$] make -j4
Making all in libtwolame
make[1]: Entering directory '/home/qyot27/twolame/libtwolame'
make  all-am
make[2]: Entering directory '/home/qyot27/twolame/libtwolame'
  CC       availbits.lo
  CC       ath.lo
  CC       bitbuffer.lo
  CC       crc.lo
  CC       dab.lo
  CC       encode.lo
  CC       energy.lo
  CC       fft.lo
  CC       get_set.lo
  CC       mem.lo
  CC       psycho_0.lo
  CC       psycho_1.lo
  CC       psycho_2.lo
  CC       psycho_3.lo
  CC       psycho_4.lo
  CC       psycho_n1.lo
  CC       subband.lo
  CC       twolame.lo
  CC       util.lo
  CCLD     libtwolame.la
libtool: warning: undefined symbols not allowed in i686-w64-mingw32 shared libraries; building static only
make[2]: Leaving directory '/home/qyot27/twolame/libtwolame'
make[1]: Leaving directory '/home/qyot27/twolame/libtwolame'
Making all in frontend
make[1]: Entering directory '/home/qyot27/twolame/frontend'
  CC       audioin_raw.o
  CC       frontend.o
  CC       audioin_sndfile.o
  CCLD     twolame.exe
make[1]: Leaving directory '/home/qyot27/twolame/frontend'
Making all in simplefrontend
make[1]: Entering directory '/home/qyot27/twolame/simplefrontend'
  CC       simplefrontend.o
  CC       audio_wave.o
  CCLD     stwolame.exe
make[1]: Leaving directory '/home/qyot27/twolame/simplefrontend'
Making all in doc
make[1]: Entering directory '/home/qyot27/twolame/doc'
Making all in html
make[2]: Entering directory '/home/qyot27/twolame/doc/html'
make[2]: *** No rule to make target 'doxygen.css', needed by 'all-am'.  Stop.
make[2]: Leaving directory '/home/qyot27/twolame/doc/html'
Makefile:481: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/qyot27/twolame/doc'
Makefile:469: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

[twolame:$] 
njh commented 7 years ago

Out of interest, is there a reason why you are building from GitHub and not from the official release tarball?

I know I haven't made a release in a long time...

qyot27 commented 7 years ago

It's for two, not entirely unrelated reasons: the length of time between tarballs is one of them, but the other is that I've generally moved most of the dependencies in my FFmpeg/mpv cross-compile guide to the git/svn/cvs repos if they have one available, except in the case of critical libs (gcrypt and the like needed for GnuTLS, or gcc's direct dependencies), or - rather infrequently - regressions in specific libs (the inverse is also true if there's an issue with a point release, but it's been fixed upstream).

njh commented 7 years ago

This should have been fixed by @aleksander0m in #54 / #55

qyot27 commented 7 years ago

Confirming that it does resolve the issue. Thanks.