diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-02-25 00:29:16 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-02-25 00:29:16 -0800 |
commit | f46a5e3cdea380494554b0bd11782c8a4dabdc66 (patch) | |
tree | 365cb7401664f819e6dc5080d16581e303077517 /configure | |
parent | a61708f6ca5df1dd17a6bad6a72003b08474ed6e (diff) | |
download | txr-f46a5e3cdea380494554b0bd11782c8a4dabdc66.tar.gz txr-f46a5e3cdea380494554b0bd11782c8a4dabdc66.tar.bz2 txr-f46a5e3cdea380494554b0bd11782c8a4dabdc66.zip |
* configure: Added feature tests for makedev, link/symlink/readlink,
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.
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 89 |
1 files changed, 89 insertions, 0 deletions
@@ -1584,6 +1584,95 @@ else have_posix_sigs=y fi +printf "Checking for makedev ... " + +cat > conftest.c <<! +#include <sys/types.h> + +int main(void) +{ + int d = makedev(1, 2); + int j = major(d); + int n = minor(d); + return 0; +} +! +rm -f conftest$exe +if ! $make conftest > conftest.err 2>&1 || ! [ -x conftest ] ; then + printf "no\n" +else + printf "yes\n" + printf "#define HAVE_MAKEDEV 1\n" >> config.h +fi + +printf "Checking for link, symlink and readlink ... " + +cat > conftest.c <<! +#include <unistd.h> + +int main(void) +{ + int e1 = symlink("a", "b"); + int e2 = link("c", "d"); + char buf[256]; + ssize_t foo = readlink("e", buf, sizeof buf); + return 0; +} +! +rm -f conftest$exe +if ! $make conftest > conftest.err 2>&1 || ! [ -x conftest ] ; then + printf "no\n" +else + printf "yes\n" + printf "#define HAVE_SYMLINK 1\n" >> config.h + have_unistd=y +fi + +printf "Checking for POSIX mkdir ... " + +cat > conftest.c <<! +#included "config.h" +#include <sys/stat.h> +#if HAVE_WINDOWS_H +#include <windows.h> +#endif + +int main(void) +{ + int e = mkdir("a", 0); + return 0; +} +! +rm -f conftest$exe +if ! $make conftest > conftest.err 2>&1 || ! [ -x conftest ] ; then + printf "no\n" +else + printf "yes\n" +cat conftest.err +exit 1 + printf "#define HAVE_MKDIR 1\n" >> config.h +fi + +printf "Checking for mknod ... " + +cat > conftest.c <<! +#include <unistd.h> + +int main(void) +{ + int e = mknod("a", 0, 0); + return 0; +} +! +rm -f conftest$exe +if ! $make conftest > conftest.err 2>&1 || ! [ -x conftest ] ; then + printf "no\n" +else + printf "yes\n" + printf "#define HAVE_MKNOD 1\n" >> config.h + have_unistd=y +fi + # # Dependent variables # |