Bioplib
Protein Structure C Library
 All Data Structures Files Functions Variables Typedefs Macros Pages
port.h
Go to the documentation of this file.
1 /************************************************************************/
2 /**
3 
4  \file port.h
5 
6  \version V1.2
7  \date 03.04.09
8  \brief Port-specific defines to allow us to use things like
9  popen() in a clean compile
10 
11  \copyright (c) UCL / Dr. Andrew C. R. Martin 1988-2009
12  \author Dr. Andrew C. R. Martin
13  \par
14  Institute of Structural & Molecular Biology,
15  University College London,
16  Gower Street,
17  London.
18  WC1E 6BT.
19  \par
20  andrew@bioinf.org.uk
21  andrew.martin@ucl.ac.uk
22 
23 **************************************************************************
24 
25  This code is NOT IN THE PUBLIC DOMAIN, but it may be copied
26  according to the conditions laid out in the accompanying file
27  COPYING.DOC.
28 
29  The code may be modified as required, but any modifications must be
30  documented so that the person responsible can be identified.
31 
32  The code may not be sold commercially or included as part of a
33  commercial product except as described in the file COPYING.DOC.
34 
35 **************************************************************************
36 
37  Description:
38  ============
39 
40 
41 **************************************************************************
42 
43  Usage:
44  ======
45  This must be included before the system includes (i.e. stdio.h etc)
46 
47 **************************************************************************
48 
49  Revision History:
50  =================
51 - V1.0 27.02.98 Original
52 - V1.1 17.03.09 Added Mac OS X and Windows. By: CTP
53 - V1.2 03.04.09 Added check for linux whether _POSIX_SOURCE already
54  defined and added further checks for MS_WINDOWS
55 
56 *************************************************************************/
57 /***
58  *** The following are necessary for getting popen() to work cleanly
59  ***/
60 
61 /* Silicon graphics IRIX */
62 #ifdef __sgi
63 /* These are for Irix6 */
64 # ifndef __EXTENSIONS__
65 # define __EXTENSIONS__
66 # endif
67 
68 # ifdef _POSIX_C_SOURCE
69 # undef _POSIX_C_SOURCE
70 # endif
71 # define _POSIX_C_SOURCE 2
72 
73 /* These are for Irix5 */
74 # ifdef _POSIX_SOURCE
75 # undef _POSIX_SOURCE
76 # endif
77 #endif
78 
79 /* DEC OSF/1 (Alpha) */
80 #ifdef __osf__
81 # ifndef _XOPEN_SOURCE
82 # define _XOPEN_SOURCE
83 # endif
84 # ifndef __STDC__
85 # define __STDC__
86 # endif
87 #endif
88 
89 /* SunOS - doesn't need anything for SunOS 4.1.2 */
90 #if defined(sun) && defined(sparc) && !defined(__svr4)
91 #endif
92 
93 /* Linux */
94 #ifdef linux
95 # ifndef _POSIX_SOURCE
96 # define _POSIX_SOURCE
97 # endif
98 #endif
99 
100 /* MacOS - Doesn't need anything. */
101 #ifdef __APPLE__
102 #endif
103 
104 /* Windows - Does not support unix pipes. */
105 #if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || \
106  defined(__WIN64__) || defined(_WIN64) || defined(WIN64) || \
107  defined(__WIN95__) || defined(__NT__) || defined(__WINDOWS__) || \
108  defined(msdos) || defined(__msdos__)
109 # define MS_WINDOWS 1
110 # define NOPIPE
111 #endif