/
roa/
roa/lib/boards/
roa/lib/config/
roa/lib/edits/
roa/lib/help/
roa/lib/misc/
roa/lib/plrobjs/
roa/lib/quests/
roa/lib/socials/
roa/lib/www/
roa/lib/www/LEDSign/
roa/lib/www/LEDSign/fonts/
roa/lib/www/LEDSign/scripts/
roa/src/s_inc/
roa/src/sclient/
roa/src/sclient/binary/
roa/src/sclient/text/
roa/src/util/
/************************************************************************
	Realms of Aurealis 		James Rhone aka Vall of RoA

sysdep.h				System dependant configuration
					items.  Based on conf.h settings.

		******** Heavily modified and expanded ********
		*** BE AWARE OF ALL RIGHTS AND RESERVATIONS ***
		******** Heavily modified and expanded ********
		        All rights reserved henceforth. 

    Please note that no guarantees are associated with any code from
Realms of Aurealis.  All code which has been released to the general
public has been done so with an 'as is' pretense.  RoA is based on both
Diku and CircleMUD and ALL licenses from both *MUST* be adhered to as well
as the RoA license.   *** Read, Learn, Understand, Improve ***
*************************************************************************/
#ifndef ROA_SYSDEP_H
#define ROA_SYSDEP_H

/* #define NOCRYPT */

/************************************************************************/
/*** Do not change anything below this line *****************************/
/************************************************************************/

/*
 * Set up various machine-specific things based on the values determined
 * from configure and conf.h.
 */


/* Standard C headers  *************************************************/

#include <stdio.h>
#include <ctype.h>

#if     (defined (STDC_HEADERS) || defined (__GNU_LIBRARY__))
#include <stdlib.h>
#include <string.h>

#else   /* No standard headers.  */

#ifdef HAVE_STRING_H
#include <string.h>
#else
#include <strings.h>
#endif

#ifdef  HAVE_MEMORY_H
#include <memory.h>
#endif

extern void free ();

extern void abort (), exit ();

#endif  /* Standard headers.  */

/* POSIX compliance  *************************************************/

#ifdef HAVE_UNISTD_H
# include <sys/types.h>
# include <unistd.h>
# include <sys/stat.h>
# ifdef HAVE_SYS_WAIT_H
#  include <sys/wait.h>
# endif
/* Ultrix's unistd.h always defines _POSIX_VERSION, but you only get
   POSIX.1 behavior with `cc -YPOSIX', which predefines POSIX itself!  */
#if defined (_POSIX_VERSION) && !defined (ultrix)
#define POSIX
#endif
#endif

/* Some systems define _POSIX_VERSION but are not really POSIX.1.  */
#if (defined (butterfly) || defined (__arm) || \
     (defined (__mips) && defined (_SYSTYPE_SVR3)) || \
     (defined (sequent) && defined (i386)))
#undef POSIX
#endif

#if !defined (POSIX) && defined (_AIX) && defined (_POSIX_SOURCE)
#define POSIX
#endif

#if defined(_AIX)
#define POSIX_NONBLOCK_BROKEN
#endif


/* Header files *******************************************************/


# include <sys/time.h>
# include <time.h>

#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif

#ifdef HAVE_ASSERT_H
#include <assert.h>
#else
#define assert(arg)
#endif

/* for DMALLOC stuff */
#include "dmalloc.h" 

/* if we're not using dmalloc... 4/22/98 -jtrhone */
#ifndef DMALLOC_DISABLE
 #undef strdup 
 #define strdup(str)\
  	 _xstrdup_leap(__FILE__, __LINE__, str) 
#endif /* DMALLOC_DISABLE */

#define str_dup strdup

/* Function prototypes ************************************************/

/*
 * For reasons that perplex me, the header files of many OS's do not contain
 * function prototypes for the standard C library functions.  This produces
 * annoying warning messages (sometimes, a huge number of them) on such OS's
 * when compiling with gcc's -Wall.
 *
 * Some versions of CircleMUD prior to 3.0 patchlevel 9 attempted to include
 * prototypes taken from OS man pages for a large number of OS's in the
 * header files.  I now think such an approach is a bad idea: maintaining that
 * list is very difficult and time-consuming, and when new revisions of OS's
 * are released with new new header files, Circle can break if the
 * prototypes contained in Circle's .h files differs from the new OS header
 * files (for example, Circle 3.0 patchlevel 8 failed with compiler errors
 * under Solaris 2.5 and Linux 1.3.xx whereas under previous revisions of
 * those OS's it had been fine.
 *
 * Thus, to silence the compiler warnings but still maintain some level of
 * portability (albiet at the expense of worse error checking in the code),
 * my solution is to define a "typeless" function prototype for all problem
 * functions that have not already been prototyped by the OS.
 */

#ifndef atoi
   int atoi();
#endif

#ifndef atol
   long atol();
#endif

#ifndef bzero
   void bzero();
#endif

#ifndef crypt
   char *crypt();
#endif

#ifndef fclose
   int fclose();
#endif

#ifndef fflush
   int fflush();
#endif

#ifndef fprintf
  int fprintf();
#endif

#ifndef fread
   size_t fread();
#endif

#ifndef fscanf
   int fscanf();
#endif

#ifndef fseek
   int fseek();
#endif

#ifndef fwrite
   size_t fwrite();
#endif

#ifndef gettimeofday
   int gettimeofday();
#endif

#ifndef perror
   void perror();
#endif

#ifndef random
   long int random();
#endif

#ifndef rewind
   void rewind();
#endif

#ifndef srandom
   void srandom();
#endif

#ifndef sscanf
   int sscanf();
#endif

#ifndef system
   int system();
#endif

#ifndef time
   time_t time();
#endif

#ifndef unlink
   int unlink();
#endif

#endif /* ROA_SYSDEP_H */