summaryrefslogtreecommitdiffstats
path: root/configure
Commit message (Collapse)AuthorAgeFilesLines
* Version 92.txr-92Kaz Kylheku2014-07-101-1/+1
| | | | | | | | * RELNOTES: Updated. * configure, txr.1: Bumped version. * share/txr/stdlib/ver.txr: Likewise
* Version 91.txr-91Kaz Kylheku2014-07-021-1/+1
|
* * Makefile: use $(EXE) in install: recipe.Kaz Kylheku2014-07-021-1/+1
| | | | * configure: set up EXE variable in config.make, not exe.
* Version 90txr-90Kaz Kylheku2014-06-111-1/+1
|
* * Makefile (txr.o): Pass TXR_VER preprocessor symbol on gcc commandKaz Kylheku2014-06-111-3/+5
| | | | | | | | | | | | | | | | | | | | line. (PREINSTALL): New variable holding a step for the install recipe. (pax tar zip): New targets. * configure (txr_ver): Version now added to config.make, passed through to txr.c. (gen_config_make): bindir, datadir and mandir are established using gmake's regular macro assignment (=) rather than expanding assignment (:=). This allows us to override the prefix variable after configure time. * lib.h (wli_noex): New macro. (wli): Retarget to wli_noex, so that argument is subject to macro replacement. * txr.c (version): Use TXR_VER defined on compiler command line, rather than hard-coded string literal.
* 2014-06-10 Kaz Kylheku <kaz@kylheku.com>Kaz Kylheku2014-06-101-13/+19
| | | | | | | | | | | | | | | * Makefile (PROG): Removing ./ prefix from variable name; adding it to invocations of $(PROG) in some rules. (txr.o): Pass several strings as macros on the command line: TXR_REL_PATH, EXE_SUFF and PROG_NAME. * configure (bindir, datadir, mandir): These variables become just relative paths from the prefix. * txr.c (sysroot): Use the TXR_REL_PATH, EXE_SUFF and PROG_NAME preprocessor symbols defined on the command line to avoid hard-coding strings like "bin/txr" and "bin/txr.exe" which actually should reflect the value of the bindir variable.
* * configure: tabs to spaces.Kaz Kylheku2014-06-061-21/+21
|
* * configure (lang_flags): Removing -D_BSD_SOURCEKaz Kylheku2014-06-051-2/+39
| | | | | | | | | | | | from lang_flags. Adding a test for determining which flag reveals BSD functions. This is due to the braindamaged way feature selection macros work on FreeBSD. There is no way to say "give me only the functions from a certain version of the Unix spec, plus traditional BSD functions", so we have to resort to using the internal symbol __BSD_VISIBLE. Also, changing the detection test for daemon function to the pointer-based approach.
* * configure (lang_flags): drop -D_POSIX_C_SOURCE=199309L.Kaz Kylheku2014-06-041-1/+1
| | | | This is subsumed by -D_XOPEN_SOURCE=500.
* * configure: Typo in diagnostic output: wspawnlp.Kaz Kylheku2014-06-041-1/+1
|
* Changes for FreeBSD 9.Kaz Kylheku2014-06-041-2/+1
| | | | | | | | | * configure: Use pointer-based test for timegm, because -Werror=implicit-function-declaration does not work in the gcc 4.2 used on FreeBSD 9. * parser.l: Check for Flex 2.5.9 and earlier which don't have yylex_destroy. Thanks to Marcus Breiing.
* * configure: Changes for building on Solaris 10 using theKaz Kylheku2014-06-041-7/+8
| | | | | | | | | /usr/bin/xpg4/sh shell. Solaris' /bin/sh does not like test -e. Adding break to the new shell existence testing loop so we use the first shell in the list. Solaris wants _XOPEN_SOURCE=500 to reveal certain functions. Fix breakage in the make utility detection, and also use the $make variable everywhere instead of make.
* * configure: Defend against legacy, non-POSIX /bin/sh implementations.Kaz Kylheku2014-06-041-0/+21
| | | | | | | We boostrap using #!/bin/sh, but try to detect a better shell and re-execute the script with that shell. Furthermore, we now set up the SHELL variable in config.make, so that make uses that shell for executing build recipes.
* Version 89txr-89Kaz Kylheku2014-05-101-1/+1
|
* Version 88txr-88Kaz Kylheku2014-04-041-19/+21
|
* Version 87.txr-87Kaz Kylheku2014-03-221-1/+1
|
* Version 86.txr-86Kaz Kylheku2014-03-161-1/+1
|
* * configure: Detect _wspawn* functions.Kaz Kylheku2014-03-161-0/+21
| | | | * stream.c (run): Implement using _wspawnvp on MinGW.
* On platforms with sigaltstack, TXR programs can now catch theKaz Kylheku2014-03-131-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | segmentation fault that occurs when running out of stack space, and escape by throwing an exception. Also, bugfix: save and restore the gc enable/disable state. Without this, if we are ever running cod in a gc disabled state and it jumps out, gc stays disabled. * configure: added check for sigaltstack. * gc.h (gc_enabled): Declaration added for existing variable. * signal.c (is_cpu_exception): New static function. (sig_handler): For cpu_exception type signals that pertain to the execution of some instruction, turn on async_sig_enabled, so that the signal is not deferred. Otherwise we will just return without calling the user-defined handler, restart the instruction and get into a loop. Also, disable gc around the handler just in case. One issue is that we might be on an alternate stack, which gc won't like. (setup_alt_stack, teardown_alt_stack): New static functions. (set_sig_handler): If we have sigaltstack, and are asked to set up a SEGV handler, then set it up on the alternate stack. * signal.h (extended_jmp_buf): Adding new member, gc. (extended_setjmp, extended_longjmp): use gc member to save and restore the gc_enable state across setjmp and longjmp.
* * configure: new test for fcntl.Kaz Kylheku2014-03-111-0/+24
| | | | | | | | | | | * stream.c (open_process): Fixed off-by one erroneous value of nargs, causing memory leak of one string. Fixed memory leak on fork failure. Fixed a deadlock that can occur in the pipe close function when multiple pipes are in existence. This is fixed by setting the FD_CLOEXEC flag on the pipe file descriptor. Without this, one child process can hold another's pipe open, causing that other one not to terminate when we're trying to shut it down, resulting in that child blocked on a write, while we block on waitpid.
* Version 85.txr-85Kaz Kylheku2014-03-081-1/+1
|
* Version 84.txr-84Kaz Kylheku2014-03-071-1/+1
|
* Version 83txr-83Kaz Kylheku2014-03-021-1/+1
| | | | | | | | | | | | * txr.c (version): Bumped. * txr.1: Bumped version, set date. * configure (txr_ver): Bumped. * RELNOTES: Updated * dep.mk: Updated.
* * configure: changed numerous "if ! conftest" tests to "if conftest",Kaz Kylheku2014-03-011-66/+67
| | | | swapping around the consequent and alternative clauses.
* * configure (conftest, conftest_o): New functionsKaz Kylheku2014-03-011-71/+62
| | | | | | Use functions throughout tests instead of repeated code for removing target, invoking make with redirection and testing for existence of target.
* Version 82.txr-82Kaz Kylheku2014-02-271-1/+1
|
* Version 81txr-81Kaz Kylheku2014-02-261-1/+1
| | | | | | | | | | * txr.c (version): Bumped. * txr.1: Bumped version and set date. * configure (txr_ver): Bumped. * RELNOTES, txr.vim: Updated.
* * configure: Make it an error to have implicit function declarations byKaz Kylheku2014-02-251-10/+14
| | | | | | | | | | | means of -Werror=implicit-function-declarations. Fix broken mkdir and mknod tests. Regenerate config.make if we add -U__STRICT_ANSI__ to the compiler options, so that later tests benefit from this. Regenerate config.make right away if adding -D_DARWIN_C_SOURCE. This allows the makedev test to pass. * stream.c: Include <sys/types.h> for makedev. (mknod_wrap): Don't rely on makedev wrappers to be there; test.
* * configure: Use -Werror= on the missing prototypes andKaz Kylheku2014-02-251-1/+1
| | | | strict prototypes warnings; these should be errors.
* * configure: Added feature tests for makedev, link/symlink/readlink,Kaz Kylheku2014-02-251-0/+89
| | | | | | | | | | | | | | mkdir and mknod. * eval.c (eval_init): Wrap #ifdefs around the registrations of the wrappers for these functions. * stream.c (mkdir_wrap): Wrap in #ifdef HAVE_MKDIR, and provide a Windows version if HAVE_MKDIR is missing, but HAVE_WINDOWS_H is true. (makedev_wrap, major_wrap, minor_wrap): Wrap with #if HAVE_MAKEDEV. (mknod): Use #if HAVE_MKNOD. (symlink_wrap, link_wrap, readlink_wrap): Wrap with #if HAVE_SYMLINK.
* Version 80txr-80Kaz Kylheku2014-02-171-1/+1
| | | | | | | | | | * txr.c (version): Bumped. * txr.1: Bumped version and set date. * configure (txr_ver): Bumped. * RELNOTES, txr.vim, dep.mk: Updated.
* Version 79txr-79Kaz Kylheku2014-02-111-1/+1
|
* Version 78.txr-78Kaz Kylheku2014-02-061-1/+1
|
* * configure: remove stray debugging printf from theKaz Kylheku2014-01-311-1/+0
| | | | GNU Make check. This was introduced in May 2012.
* Version 77txr-77Kaz Kylheku2014-01-291-1/+1
|
* Version 76txr-76Kaz Kylheku2014-01-231-1/+1
|
* Version 75.txr-75Kaz Kylheku2014-01-161-1/+1
|
* Version 74txr-74Kaz Kylheku2014-01-131-1/+1
| | | | | | | | | | * txr.c (version): Bumped. * txr.1: Bumped version and set date. * configure (txr_ver): Bumped. * RELNOTES, txr.vim, dep.mk: Updated.
* Mac OSX Upkeep.Kaz Kylheku2014-01-131-9/+21
| | | | | | | | | * configure: (need_svid_source, need_bsd_source): Variables removed. (need_darwin_c_source): New variable. Detect Apple environment and add -D_DARWIN_C_SOURCE, which is needed to reveal some functions in headers. * signal.c (sig_init): Wrap #ifdefs around SIGPOLL; it is not defined on Darwin.
* * configure: Detect platforms which don't reveal declarationsKaz Kylheku2014-01-101-0/+23
| | | | | | | | | | | | | | in C headers which are extensions to standard C, like popen or fileno, in response to standard feature selection macros like -D_POSIX_SOURCE. MinGW and Cygwin are offenders. These platforms hide the declarations when gcc is in -ansi mode, by testing for __STRICT_ANSI__. Turns out, however, that -U__STRICT_ANSI__ on the gcc command line strips this away, causing the declarations to be revealed. * lib.c, parser.l, stream.c, utf8.c: Removed the declarations which compensated for the above problem. Yippee! Fuck you, stupid Cygwin troglodytes, and the MinGW horse you rode in on. http://cygwin.com/ml/cygwin/2011-10/msg00131.html
* * configure (lang_flags): Let us switch from using _XOPEN_SOURCE=2Kaz Kylheku2014-01-101-15/+54
| | | | | | | | | | | | | | | | | | | to _POSIX_C_SOURCE=199309L and _BSD_SOURCE. In the .exe suffix test, try harder to redirect ls's output. Test for fork stuff now needs <sys/types.h> evidently; <unistd.h> does not necessarily pid_t, even though it defines functions that return and accept pid_t! The timegm test no longer needs _SVID_SOURCE since _BSD_SOURCE covers it, and so we end up not using _SVID_SOURCE any more. New tests for usleep and nanosleep. The test for setenv is not conditional on timegm failing. * eval.c: Include <time.h> and conditionally <windows.h>. (usleep_wrap): New function. (eval_init): New usleep_wrap function registered as usleep intrinsic. * lib.c: Only define setenv and unsetenv if we don't have timegm, because only in that situation they are used.
* * configure: Generate HAVE_VALGRIND as #define-d to 1, rathernKaz Kylheku2014-01-101-1/+1
| | | | | | | | | | | | | | | than just fdefined. * gc.c: Use #if HAVE_VALGRIND instaed of #ifdef HAVE_VALGRIND, consistently with other HAVE_* config variables. * lib.c: Likewise. * lib.h: Likewise. * txr.c: Likewise. * txr.h: Likewise.
* Long overdue MinGW port maintenance.Kaz Kylheku2014-01-091-17/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile: Use new EXE variable from config.mk. * configure (exe, have_windows_h): New variables. Handle situations with .exe suffix; on MiGW, the rm command doesn't work on executables if the .exe suffix is not given. New tests for localtime_r and gmtime_r. * lib.c: Supply declarations which are missing on MinGW because we use gcc -ansi, because MinGW doesn't follow established conventions like -D_POSIX_SOURCE. Supply definitions for gmtime_r, localtime_r, setenv and unsetenv. * parser.l: Supply declarations which are missing on MinGW. * signal.h (async_sig_enabled): Declare differently based on HAVE_POSIX_SIGS. Misspelled typedef fixed in the code for !HAVE_POSIX_SIGS that has hitherto not been compiled. (sig_mask): Wrap declaration in #ifdef HAVE_POSIX_SIGS because it relies on sigset_t. * stream.c: Supply declarations which are missing on MinGW. Include <windows.h> if we have it. (sleep): Define for Windows. (statf): Handle missing st_blksize and st_blocks members in struct stat. (stream_init): Handle numerous missing S_* macros. * utf8.c: Supply declarations which are missing on MinGW.
* Version 73txr-73Kaz Kylheku2014-01-081-1/+1
|
* Merry C++mas!Kaz Kylheku2013-12-251-2/+2
| | | | | | | * configure: Avoid using "new" as identifier in signals test case. * signal.c (set_sig_handler): Fix warning about { 0 } initializer. (sig_mask): Avoid using "new" as identifier.
* Version 72txr-72Kaz Kylheku2013-12-171-1/+1
|
* First cut at signal handling support.Kaz Kylheku2013-12-121-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile (OBJS-y): Include signal.o if have_posix_sigs is "y". * configure (have_posix_sigs): New variable, set by detecting POSIX signal stuff. * dep.mk: Regenerated. * arith.c, debug.c, eval.c, filter.c, hash.c, match.c, parser.y, parser.l, rand.c, regex.c, syslog.c, txr.c, utf8.c: Include new signal.h header, now required by unwind, and the <signal.h> system header. * eval.c (exit_wrap): New function. (eval_init): New functions registered as intrinsics: exit_wrap, set_sig_handler, get_sig_handler, sig_check. * gc.c (release): Unused functions removed. * gc.h (release): Declaration removed. * lib.c (init): Call sig_init. * stream.c (set_putc, se_getc, se_fflush): New static functions. (stdio_put_char_callback, stdio_get_char_callback, stdio_put_byte, stdio_flush, stdio_get_byte): Use new functions to enable signals when blocked on I/O. (tail_strategy): Allow signals across sleep. (pipev_close): Allow signals across waitpid. (se_pclose): New static function. (pipe_close): Use new function to enable signals across pclose. * unwind.c (uw_unwind_to_exit_point): use extended_longjmp instead of longjmp. * unwind.h (struct uw_block, struct uw_catch): jb member changes from jmp_buf to extended_jmp_buf. (uw_block_begin, uw_simple_catch_begin, uw_catch_begin): Use extended_setjmp instead of setjmp. * signal.c: New file. * signal.h: New file.
* * configure (config_flags): Variable removed. This was more trouble than itKaz Kylheku2013-12-121-5/+9
| | | | | was worth, and only solved problems caused by not checking that the test program was made all the way to an executable.
* * configure: Fix warnings in test cases for HAVE_FORK_STUFFKaz Kylheku2013-12-121-3/+3
| | | | | | and HAVE_DAEMON. * eval.c: daemon support must be wrapped in #if HAVE_DAEMON
* Bumping copyrights to 2014 and expressing them as year ranges.Kaz Kylheku2013-12-101-1/+1
| | | | Fixing some errors in copyright comments.