1*7dd7cddfSDavid du Colombier /* 2*7dd7cddfSDavid du Colombier * End of configuration stuff for PD ksh. 3*7dd7cddfSDavid du Colombier * 4*7dd7cddfSDavid du Colombier * RCSid: $Id$ 5*7dd7cddfSDavid du Colombier */ 6*7dd7cddfSDavid du Colombier 7*7dd7cddfSDavid du Colombier #if defined(EMACS) || defined(VI) 8*7dd7cddfSDavid du Colombier # define EDIT 9*7dd7cddfSDavid du Colombier #else 10*7dd7cddfSDavid du Colombier # undef EDIT 11*7dd7cddfSDavid du Colombier #endif 12*7dd7cddfSDavid du Colombier 13*7dd7cddfSDavid du Colombier /* Editing implies history */ 14*7dd7cddfSDavid du Colombier #if defined(EDIT) && !defined(HISTORY) 15*7dd7cddfSDavid du Colombier # define HISTORY 16*7dd7cddfSDavid du Colombier #endif /* EDIT */ 17*7dd7cddfSDavid du Colombier 18*7dd7cddfSDavid du Colombier /* 19*7dd7cddfSDavid du Colombier * if you don't have mmap() you can't use Peter Collinson's history 20*7dd7cddfSDavid du Colombier * mechanism. If that is the case, then define EASY_HISTORY 21*7dd7cddfSDavid du Colombier */ 22*7dd7cddfSDavid du Colombier #if defined(HISTORY) && (!defined(COMPLEX_HISTORY) || !defined(HAVE_MMAP) || !defined(HAVE_FLOCK)) 23*7dd7cddfSDavid du Colombier # undef COMPLEX_HISTORY 24*7dd7cddfSDavid du Colombier # define EASY_HISTORY /* sjg's trivial history file */ 25*7dd7cddfSDavid du Colombier #endif 26*7dd7cddfSDavid du Colombier 27*7dd7cddfSDavid du Colombier /* Can we safely catch sigchld and wait for processes? */ 28*7dd7cddfSDavid du Colombier #if (defined(HAVE_WAITPID) || defined(HAVE_WAIT3)) \ 29*7dd7cddfSDavid du Colombier && (defined(POSIX_SIGNALS) || defined(BSD42_SIGNALS)) 30*7dd7cddfSDavid du Colombier # define JOB_SIGS 31*7dd7cddfSDavid du Colombier #endif 32*7dd7cddfSDavid du Colombier 33*7dd7cddfSDavid du Colombier #if !defined(JOB_SIGS) || !(defined(POSIX_PGRP) || defined(BSD_PGRP)) 34*7dd7cddfSDavid du Colombier # undef JOBS /* if no JOB_SIGS, no job control support */ 35*7dd7cddfSDavid du Colombier #endif 36*7dd7cddfSDavid du Colombier 37*7dd7cddfSDavid du Colombier /* pdksh assumes system calls return EINTR if a signal happened (this so 38*7dd7cddfSDavid du Colombier * the signal handler doesn't have to longjmp()). I don't know if this 39*7dd7cddfSDavid du Colombier * happens (or can be made to happen) with sigset() et. al. (the bsd41 signal 40*7dd7cddfSDavid du Colombier * routines), so, the autoconf stuff checks what they do and defines 41*7dd7cddfSDavid du Colombier * SIGNALS_DONT_INTERRUPT if signals don't interrupt read(). 42*7dd7cddfSDavid du Colombier * If SIGNALS_DONT_INTERRUPT isn't defined and your compiler chokes on this, 43*7dd7cddfSDavid du Colombier * delete the hash in front of the error (and file a bug report). 44*7dd7cddfSDavid du Colombier */ 45*7dd7cddfSDavid du Colombier #ifdef SIGNALS_DONT_INTERRUPT 46*7dd7cddfSDavid du Colombier # error pdksh needs interruptable system calls. 47*7dd7cddfSDavid du Colombier #endif /* SIGNALS_DONT_INTERRUPT */ 48*7dd7cddfSDavid du Colombier 49*7dd7cddfSDavid du Colombier #ifdef HAVE_GCC_FUNC_ATTR 50*7dd7cddfSDavid du Colombier # define GCC_FUNC_ATTR(x) __attribute__((x)) 51*7dd7cddfSDavid du Colombier # define GCC_FUNC_ATTR2(x,y) __attribute__((x,y)) 52*7dd7cddfSDavid du Colombier #else 53*7dd7cddfSDavid du Colombier # define GCC_FUNC_ATTR(x) 54*7dd7cddfSDavid du Colombier # define GCC_FUNC_ATTR2(x,y) 55*7dd7cddfSDavid du Colombier #endif /* HAVE_GCC_FUNC_ATTR */ 56