shithub: freetype+ttf2subf

ref: 98408d89372fff62722faf0907d9477a529ceb5a
dir: /config/unix/ftconfig.h/

View raw version
/*******************************************************************
 *
 *  ftconfig.h
 *
 *    Unix-specific configuration file
 *
 *  Copyright 1996-1998 by
 *  David Turner, Robert Wilhelm, and Werner Lemberg.
 *
 *  This file is part of the FreeType project, and may only be used
 *  modified and distributed under the terms of the FreeType project
 *  license, LICENSE.TXT.  By continuing to use, modify, or distribute 
 *  this file you indicate that you have read the license and
 *  understand and accept it fully.
 *
 *
 *  This header file contains a number of macro definitions that are
 *  used by the rest of the engine. Porters are free to copy this file
 *  and adapt it to suit their own system..
 *
 *  IMPORTANT NOTE :
 *
 *    Porters, read carefully the comments in ftsys.h before trying
 *    to port this file to your system. It contains many essential
 *    remarks, and will ease your work greatly..
 *
 ******************************************************************/

#ifndef FTCONFIG_H
#define FTCONFIG_H

/*************************************************************************/
/*                                                                       */
/*               PLATFORM-SPECIFIC CONFIGURATION MACROS                  */
/*                                                                       */
/*  These macros can be toggled to suit a specific system. The current   */
/*  ones are defaults used to compile FreeType in a 32-bits ANSI C       */
/*  environment. Copy this file to your own "freetype/arch/<system>"     */
/*  directory, and edit it to port the engine..                          */
/*                                                                       */
/*************************************************************************/

/* Define to empty if the keyword does not work.  */
/* #undef const */

/* Define if you have a working `mmap' system call.  */
#define  HAVE_MMAP

/* Define if you have the ANSI C header files.  */
#define STDC_HEADERS 1

/* Define if your processor stores words with the most significant
   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
/* #undef WORDS_BIGENDIAN */

/* Define if the X Window System is missing or not being used.  */
/* #undef X_DISPLAY_MISSING */

/* The number of bytes in a int.  */
#define SIZEOF_INT 4

/* The number of bytes in a long.  */
#define SIZEOF_LONG 4

/* Define if you have the getpagesize function.  */
#define HAVE_GETPAGESIZE 1

/* Define if you have the memcpy function.  */
#define HAVE_MEMCPY 1

/* Define if you have the <fcntl.h> header file.  */
#define HAVE_FCNTL_H 1

/* Define if you have the <unistd.h> header file.  */
#define HAVE_UNISTD_H 1

/* Define if you have the <locale.h> header file.  */
#define HAVE_LOCALE_H 1

/* Define if you have the <libintl.h> header file.  */
#undef  HAVE_LIBINTL_H  

/* Define if you have the libintl library.  */
/* #undef HAVE_LIBINTL */

/* Preferred alignment of data */
#define  FT_ALIGNMENT  8

/* See the definition of the macro FT_CONFIG_OPTION_LITTLE_ENDIAN */
/* and FT_CONFIG_OPTION_BIG_ENDIAN below, they may need to be set */
/* according to the platform too..                                */


#include <ftoption.h>

/*************************************************************************/
/*                                                                       */
/*                       AUTOMATIC CONFIGURATION MACROS                  */
/*                                                                       */
/*  These macros are computed from the ones defined above. Don't touch   */
/*  their definition, unless you know precisely what you're doing. No    */
/*  porter should need to mess with them.                                */
/*                                                                       */
/*************************************************************************/

  /* IntN types:                                                        */
  /*                                                                    */
  /*   Used to guarantee the size of some specific integers.            */
  /*                                                                    */

  typedef signed short    FT_Int16;
  typedef unsigned short  FT_Word16;

#if SIZEOF_INT == 4

  typedef signed int      FT_Int32;
  typedef unsigned int    FT_Word32;

#elif SIZEOF_LONG == 4

  typedef signed long     FT_Int32;
  typedef unsigned long   FT_Word32;

#else
#error "no 32bit type found - please check your configuration files"
#endif

#if SIZEOF_LONG == 8

/* LONG64 must be defined when a 64-bit type is available */
#define LONG64
#define INT64   long

#else

/* GCC provides the non-ANSI 'long long' 64-bit type.  You can activate it */
/* by defining the FTCALC_USE_LONG_LONG macro in 'ftconfig.h'.  Note that  */
/* this will produce many -ansi warnings during library compilation.       */
#ifdef FTCALC_USE_LONG_LONG

#define LONG64
#define INT64   long long

#endif /* FTCALC_USE_LONG_LONG */
#endif

#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define  LOCAL_DEF   static
#define  LOCAL_FUNC  static
#else
#define  LOCAL_DEF   extern
#define  LOCAL_FUNC  /* nothing */
#endif

#ifdef FT_MAKE_OPTION_SINGLE_LIBRARY_OBJECT
#define  BASE_DEF    LOCAL_DEF
#define  BASE_FUNC   LOCAL_FUNC
#else
#define  BASE_DEF    extern
#define  BASE_FUNC   /* nothing */
#endif

#ifndef  EXPORT_DEF
#define  EXPORT_DEF   extern
#endif

#ifndef  EXPORT_FUNC
#define  EXPORT_FUNC  /* nothing */
#endif


#endif /* FTCONFIG_H */