1/* memalloc.h -- consolidate code for including alloca.h or malloc.h and 2 defining alloca. */ 3 4/* Copyright (C) 1993 Free Software Foundation, Inc. 5 6 This file is part of GNU Bash, the Bourne Again SHell. 7 8 Bash is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free 10 Software Foundation; either version 2, or (at your option) any later 11 version. 12 13 Bash is distributed in the hope that it will be useful, but WITHOUT ANY 14 WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 for more details. 17 18 You should have received a copy of the GNU General Public License along 19 with Bash; see the file COPYING. If not, write to the Free Software 20 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 21 22#if !defined (_MEMALLOC_H_) 23# define _MEMALLOC_H_ 24 25#if defined (sparc) && defined (sun) && !defined (HAVE_ALLOCA_H) 26# define HAVE_ALLOCA_H 27#endif 28 29#if defined (__GNUC__) && !defined (HAVE_ALLOCA) 30# define HAVE_ALLOCA 31#endif 32 33#if defined (HAVE_ALLOCA_H) && !defined (HAVE_ALLOCA) && !defined (C_ALLOCA) 34# define HAVE_ALLOCA 35#endif /* HAVE_ALLOCA_H && !HAVE_ALLOCA */ 36 37#if defined (__GNUC__) && !defined (C_ALLOCA) 38# undef alloca 39# define alloca __builtin_alloca 40#else /* !__GNUC__ || C_ALLOCA */ 41# if defined (HAVE_ALLOCA_H) && !defined (C_ALLOCA) 42# if defined (IBMESA) 43# include <malloc.h> 44# else /* !IBMESA */ 45# include <alloca.h> 46# endif /* !IBMESA */ 47# else /* !HAVE_ALLOCA_H || C_ALLOCA */ 48# if defined (__hpux) && defined (__STDC__) && !defined (alloca) 49extern void *alloca (); 50# else 51# if !defined (alloca) 52# if defined (__STDC__) 53extern void *alloca (size_t); 54# else 55extern char *alloca (); 56# endif /* !__STDC__ */ 57# endif /* !alloca */ 58# endif /* !__hpux || !__STDC__ && !alloca */ 59# endif /* !HAVE_ALLOCA_H || C_ALLOCA */ 60#endif /* !__GNUC__ || C_ALLOCA */ 61 62#endif /* _MEMALLOC_H_ */ 63