/* Web Polygraph       http://www.web-polygraph.org/
 * (C) 2003-2006 The Measurement Factory
 * Licensed under the Apache License, Version 2.0 */

#ifndef POLYGRAPH__ACCONFIG_H
#define POLYGRAPH__ACCONFIG_H

@TOP@

/* host type from configure */
#define CONFIG_HOST_TYPE "-unknown-"

/* external programs */
#undef GNUPLOT_EXE

/* negative or zero if no probing has been done or probing failed */
#define PROBED_MAXFD -1

/* negative or zero if we failed to detect it */
#define DEFAULT_FD_SETSIZE -1


/* sighandler prototype (e.g. "void SignalHandler(...)" on IRIX */
#undef SIGNAL_HANDLER_TYPE

/* various types */
#undef HAVE_TYPE_RUSAGE
#undef HAVE_TYPE_RLIM_T
#undef HAVE_TYPE_IFREQ
#undef HAVE_TYPE_IFALIASREQ
#undef HAVE_TYPE_IOS_BASE_FMTFLAGS
#undef HAVE_TYPE_IOS_FMTFLAGS
#undef HAVE_TYPE_TIMEVAL
#undef HAVE_TYPE_IN6_ALIASREQ
#undef HAVE_TYPE_IN6_IFREQ

/* Some systems use socklen_t typedef for some socket operations.
 * Socklen_t may conflict with "int" that is also used.
 */
#undef HAVE_TYPE_SOCKLEN_T

/* sockaddr structure has sa_len member */
#undef HAVE_SA_LEN

/* tm structure has tm_gmtoff member */
#undef HAVE_TM_GMTOFF

/* altzone global is supported (Solaris only?) */
#undef HAVE_ALTZONE

/* how time zone global variable looks like (timezone, _timezone, etc.) */
#undef HAVE_TIMEZONE

/* must explicitly declare timezone global as extern */
#undef HAVE_EXTERN_TIMEZONE

/* here are some typedefs that configure script might be missing */
#undef rlim_t

/* C++ stuff */

#undef HAVE_TYPE_STREAMPOS
#undef HAVE_SET_NEW_HANDLER
#undef HAVE__SET_NEW_HANDLER

@BOTTOM@

/* various post-processing fixes and adjustments */

// increase FD_SETSIZE if needed and OS supports FD_SETSIZE redifinition
#if !defined(__linux__) && !defined(linux)
#	if PROBED_MAXFD > 0 && DEFAULT_FD_SETSIZE > 0 && PROBED_MAXFD > DEFAULT_FD_SETSIZE
#		ifdef FD_SETSIZE
#			warning FD_SETSIZE is already defined
#		else
#			define FD_SETSIZE PROBED_MAXFD
#		endif
#	endif
#endif

// what file scanner (select(2), poll(2), etc.) use by default
// note: our current heuristic will fail in many environments
#ifdef HAVE_POLL
#	define PG_PREFFERED_FILE_SCANNER Poll
#else
#	define PG_PREFFERED_FILE_SCANNER Select
#endif

// define CONFIG_HOST_OS_* macros (shortened to CFG_HOS_*)
// this code is similar to Squid's include/config.h.in
#if defined(__sun__) || defined(__sun)                
#	define CFG_HOS_SUN
#	if defined(__SVR4)                                  
#		define CFG_HOS_SOLARIS
#	else                                                
#		define CFG_HOS_SUNOS
#	endif
#elif defined(__sgi__) || defined(sgi) || defined(__sgi) 
#	define CFG_HOS_SGI
#	if !defined(_SVR4_SOURCE)
#		define _SVR4_SOURCE                
#	endif
#elif defined(__hpux)                           
#	define CFG_HOS_HPUX
#	define CFG_HOS_SYSV
#elif defined(__osf__)                          
#	define CFG_HOS_OSF
#elif defined(__ultrix)                                
#	define CFG_HOS_ULTRIX
#elif defined(_AIX)                                  
#	define CFG_HOS_AIX
#elif defined(__linux__)                        
#	define CFG_HOS_LINUX
#elif defined(__FreeBSD__)                        
#	define CFG_HOS_FREEBSD
#elif defined(__NeXT__)
#	define CFG_HOS_NEXT
#elif defined(__bsdi__)
#	define CFG_HOS_BSDI                         
#elif defined(__NetBSD__)
#	define CFG_HOS_NETBSD
#elif defined(__CYGWIN32__) || defined(WIN32) || defined(WINNT) || defined(__WIN32__) || defined(__WIN32)
#	define CFG_HOS_MSWIN
#elif defined(sony_news) && defined(__svr4)
#	define CFG_HOS_NEWSOS6
#elif defined(__EMX__) || defined(OS2) || defined(__OS2__)
#	define CFG_HOS_OS2
#endif

#endif /* PG_CONFIG_FILE_H */


syntax highlighted by Code2HTML, v. 0.9.1