I found the following issue when trying to compile CVS avi-xmms with CVS
avifile. In avifile's default.h the following construct is found:
#ifdef HAVE_STDINT_H
#include <stdint.h> // for int64_t (on linux)
#else
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> // for int64_t (on xBSD/solaris)
#endif
#endif
As long as we are compiling avifile/aviplay, this is fine - we will be
compiling within the same ./configure generated environment. The problem
happens when we try to compile third-party software. Third-party software
will not necessarily know that having HAVE_STDINT_H set correctly is a
requirement for using the avifile headers and that as such they need to add
an AC_CHECK_HEADERS(stdint.h) clause to their configure.in.
I can think of several solutions for this, and will provide patches
depending on the selected solution:
1. Make "avifile-config --cflags" add "-DHAVE_STDINT_H" to it's output if
avifile is compiled on a platform that requires it. It is the third-party
software programmer's responsibility to use "avifile-config --cflags"
instead of hardcoding the CFLAGS.
2. Generate "default.h" on the fly (from a "default.h.in") so that it does
not have the construct above and instead simply #includes the right file.
This has the disadvantage that the same header file cannot be used by
multiple architectures (i.e. placed in a shared NFS directory). How much of
a problem this is I do not know.
3. Say "caveat programmer" and leave things the way they are.
Comments? Questions? Other possibilities?
Thanks,
--
Manuel A. McLure KE6TAW | ...for in Ulthar, according to an ancient
<[EMAIL PROTECTED]> | and significant law, no man may kill a cat.
<http://www.mclure.org> | -- H.P. Lovecraft
_______________________________________________
Avifile mailing list
[EMAIL PROTECTED]
http://prak.org/mailman/listinfo/avifile