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

Reply via email to