Re: Lots of deprecation warnings when running automake

Torsten Jager <[email protected]> Sat, 03 Dec 2016 16:38:05 +0100
Newsgroups gmane.comp.video.xine.devel
Message-ID <[email protected]>
Hi,

> automake is giving a lot of warnings on Fedora 25 and probably others.
> 1/
> configure.ac:225: warning: The 'AM_PROG_MKDIR_P' macro is deprecated, and its use is discouraged.
> configure.ac:225: You should use the Autoconf-provided 'AC_PROG_MKDIR_P' macro instead,
> configure.ac:225: and use '$(MKDIR_P)' instead of '$(mkdir_p)'in your Makefile.am files.

This is not a xine issue but made by old gettext package:
   * We call ./autogen.sh
   * That calls autopoint (part of gettext)
   * That generates m4/po.m4 m4/intl.m4 and others
   * These still contain that AM_PROG_MKDIR_P stuff.
In other words: gettext version gets hardcoded into ./configure.
We ourselves dont use *mkdir_p* directly.
Seems the only way to kill that warning is to upgrade gettext,
and requiring all users to do as well :-/

> 2/
> configure.ac:1166: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')

See my uploads.

> 3/
> src/input/Makefile.am:110: warning: source file '../demuxers/asfheader.c' is in a subdirectory,
> src/input/Makefile.am:110: but option 'subdir-objects' is disabled
> automake: warning: possible forward-incompatibility.
> automake: At least a source file is in a subdirectory, but the 'subdir-objects'
> automake: automake option hasn't been enabled.  For now, the corresponding output
> automake: object file(s) will be placed in the top-level directory.  However,
> automake: this behaviour will change in future Automake versions: they will
> automake: unconditionally cause object files to be placed in the same subdirectory
> automake: of the corresponding sources.
> automake: You are advised to start using 'subdir-objects' option throughout your
> automake: project, to avoid future incompatibilities.

See again (and shake head maybe).

> Additionally, some possible portability issues are also showing up :
>
> misc/Makefile.quiet:1: warning: ':='-style assignments are not portable
> misc/Makefile.quiet:1: warning: if $(findstring GNU,$(shell $(MAKE: non-POSIX variable name
> misc/Makefile.quiet:1: (probably a GNU make extension)
>
> contrib/Makefile.am:18: warning: shell cd @srcdir@; pwd: non-POSIX variable name
> contrib/Makefile.am:18: (probably a GNU make extension)

All make-like tools should support assigning vars with plain "=",
meaning any $(foo) style refs in it will be resolved late on every use.
":=" is a GNU make extension, meaning the string is resolved once before
assigning it - useful when there are external program calls like
$(shell uname ...) in it.

Since I am using all this on Linux only for now, I probably cannot test
possible alternatives.

Regards,
Torsten


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot