00001 /* 00002 * Copyright (C) 2007 Jolien Creighton 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with with program; see the file COPYING. If not, write to the 00016 * Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, 00017 * MA 02111-1307 USA 00018 */ 00019 00020 /************************************ <lalVerbatim file="LALStdlibHV"> 00021 Author: J. D. E. Creighton, T. D. Creighton 00022 $Id: LALStdlib.h,v 1.12 2007/06/08 14:41:53 bema Exp $ 00023 ************************************* </lalVerbatim> */ 00024 00025 /* <lalLaTeX> 00026 00027 \section{Header \texttt{LALConfig.h}} 00028 \label{s:LALConfig.h} 00029 00030 Defines configuration macro constants. 00031 00032 \subsection*{Synopsis} 00033 \begin{verbatim} 00034 #include <lal/LALConfig.h> 00035 \end{verbatim} 00036 00037 \noindent This header (which is not technically in the \texttt{std} package; 00038 rather it is generated directly in the \texttt{include/lal} directory during 00039 configuration) is included in essentially every other header file. It 00040 contains macro constants that are defined at configuration time. They are: 00041 00042 \idx[Constant]{LAL\_VERSION} 00043 \idx[Constant]{LAL\_VERSION\_MAJOR} 00044 \idx[Constant]{LAL\_VERSION\_MINOR} 00045 \idx[Constant]{LAL\_CONFIGURE\_ARGS} 00046 \idx[Constant]{LAL\_CONFIGURE\_DATE} 00047 \idx[Constant]{LAL\_CVS\_TAG} 00048 \idx[Constant]{LAL\_SIZEOF\_DOUBLE} 00049 \idx[Constant]{LAL\_SIZEOF\_FLOAT} 00050 \idx[Constant]{LAL\_SIZEOF\_INT} 00051 \idx[Constant]{LAL\_SIZEOF\_LONG} 00052 \idx[Constant]{LAL\_SIZEOF\_LONG\_LONG} 00053 \idx[Constant]{LAL\_SIZEOF\_SHORT} 00054 \idx[Constant]{LAL\_NDEBUG} 00055 \idx[Constant]{NOLALMACROS} 00056 \idx[Constant]{LAL\_PTHREAD\_LOCK} 00057 \idx[Constant]{LAL\_FRAME\_ENABLED} 00058 \idx[Constant]{LAL\_MPI\_ENABLED} 00059 \begin{description} 00060 \item[\texttt{LAL\_VERSION}] Constant string containing the version of LAL. 00061 \item[\texttt{LAL\_VERSION\_MAJOR}] Integer representing the major version 00062 number of LAL. 00063 \item[\texttt{LAL\_VERSION\_MINOR}] Integer representing the minor version 00064 number of LAL. 00065 \item[\texttt{LAL\_CONFIGURE\_ARGS}] Constant string containing the arguments 00066 given to the configure script. 00067 \item[\texttt{LAL\_CONFIGURE\_DATE}] Constant string containing the date 00068 when LAL was configured. 00069 \item[\texttt{LAL\_CVS\_TAG}] Constant string containing the CVS tag used to 00070 checkout LAL (blank if none). 00071 \item[\texttt{LAL\_SIZEOF\_DOUBLE}] Integer representing the size of a 00072 double precision floating point number. 00073 \item[\texttt{LAL\_SIZEOF\_FLOAT}] Integer representing the size of a 00074 single precision floating point number. 00075 \item[\texttt{LAL\_SIZEOF\_INT}] Integer representing the size of a 00076 integer. 00077 \item[\texttt{LAL\_SIZEOF\_LONG}] Integer representing the size of a 00078 long integer. 00079 \item[\texttt{LAL\_SIZEOF\_LONG\_LONG}] Integer representing the size of a 00080 long long integer. 00081 \item[\texttt{LAL\_SIZEOF\_SHORT}] Integer representing the size of a 00082 short integer. 00083 \item[\texttt{LAL\_NDEBUG}] Defined if debugging is turned off (use the 00084 configure argument \texttt{--disable-debug} to do this). 00085 \item[\texttt{NOLALMACROS}] Defined if status macros are replaced by functions 00086 (where possible) (use the configure argument \texttt{--disable-macros} to do 00087 this). 00088 \item[\texttt{LAL\_PTHREAD\_LOCK}] Defined if POSIX thread mutex locking is 00089 to be used for threadsafety (use the configure argument 00090 \texttt{--enable-pthread-lock} to do this). 00091 \item[\texttt{LAL\_FRAME\_ENABLED}] Defined if LAL frame-format data reading 00092 routines will be compiled (use the configure argument 00093 \texttt{--enable-frame} to do this). 00094 \item[\texttt{LAL\_MPI\_ENABLED}] Defined if LAL MPI routines will be compiled 00095 (use the configure argument \texttt{--enable-mpi} to do this). 00096 \end{description} 00097 00098 00099 \newpage 00100 \section{Header \texttt{LALStdlib.h}} 00101 \label{s:LALStdlib.h} 00102 00103 Includes the standard LAL header files. 00104 00105 \subsection*{Synopsis} 00106 \begin{verbatim} 00107 #include <lal/LALStdlib.h> 00108 \end{verbatim} 00109 00110 \noindent This header is the overall header for the \verb@std@ 00111 package. It provides the datatypes, constants, and macros required by 00112 most LAL functions, by including the following header files in the 00113 \verb@std@ package: 00114 00115 \vspace{1ex} 00116 00117 </lalLaTeX> */ 00118 00119 #ifndef _LALSTDLIB_H 00120 #define _LALSTDLIB_H 00121 00122 /* <lalVerbatim> */ 00123 #include <lal/LALRCSID.h> 00124 #include <lal/LALDatatypes.h> 00125 #include <lal/LALStatusMacros.h> 00126 /* </lalVerbatim> 00127 <lalLaTeX> 00128 00129 \noindent\verb@LALStdlib.h@ also includes function prototype headers 00130 for certain standard modules used by many LAL routines: 00131 00132 \vspace{1ex} 00133 00134 </lalLaTeX> 00135 <lalVerbatim> */ 00136 #include <stdio.h> 00137 #include <stdarg.h> 00138 #include <lal/LALMalloc.h> 00139 /* </lalVerbatim> 00140 00141 <lalLaTeX> 00142 \vfill{\footnotesize\input{LALStdlibHV}} 00143 </lalLaTeX> */ 00144 00145 #ifdef __cplusplus 00146 extern "C" { 00147 #endif 00148 00149 NRCSID (LALSTDLIBH, "$Id: LALStdlib.h,v 1.12 2007/06/08 14:41:53 bema Exp $"); 00150 00151 /* These are non-ANSI standard routines that will be allowed in LAL */ 00152 int getopt( int, char * const *, const char * ); 00153 FILE *popen( const char *, const char * ); 00154 int pclose( FILE * ); 00155 00156 #ifdef __cplusplus 00157 } 00158 #endif 00159 00160 #endif /* _LALSTDLIB_H */
1.5.2