On Wednesday 30 July 2008, Ralf S. Engelschall wrote:
> On Tue, Jul 29, 2008, Arkadiusz Miskiewicz wrote:
> > On Tuesday 29 July 2008, Ralf S. Engelschall wrote:
> > > On Tue, Jul 29, 2008, Arkadiusz Miskiewicz wrote:
> > > > type of solution. Does that work for you?
> > >
> > > In general I'm ok with an approach which punishes only
> > > old/obsolete/deprecated/whatever platforms. But in this case I'm more
> > > thinking about neither distinguishing between old and new and more
> > > about mostly feature based testing:
> > >
> > > #ifdef HAVE_CONFIG_H
> > > #include "config.h"
> > > #endif
> > > #if defined(HAVE_STDINT_H) || (defined(__STDC_VERSION__) &&
> > > __STDC_VERSION__+0 >= 199901L) #include <stdint.h>
> > > #endif
> > > #if defined(HAVE_INTTYPES_H)
> > > #include <inttypes.h>
> > > #endif
> >
> > This approach works fine for building rpm itself but it doesn't work when
> > you are building external app that doesn't use autoconf and that app
> > includes rpm public headers.
>
> Why? The above particular code makes sure that as long as the external
> app is using a "modern compiler" (which supports C99) _NOTHING_ has do
> be explicitly done at all. It just seemlessly will include <stdint.h>
> and fine. Notice the "||" above, please. Only if you build on an older
> compiler you have to provide the #defines. That is what I thought is
> what you wished...

Ah, sorry. That way is fine for me, too.

>                                        Ralf S. Engelschall

-- 
Arkadiusz Miƛkiewicz        PLD/Linux Team
arekm / maven.pl            http://ftp.pld-linux.org/
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
Developer Communication List                        rpm-devel@rpm5.org

Reply via email to