… | |
… | |
33 | AC_PROG_CPP |
33 | AC_PROG_CPP |
34 | AC_PROG_INSTALL |
34 | AC_PROG_INSTALL |
35 | |
35 | |
36 | AC_AIX |
36 | AC_AIX |
37 | AC_ISC_POSIX |
37 | AC_ISC_POSIX |
38 | |
|
|
39 | AC_LANG(C) |
38 | AC_LANG(C++) |
40 | |
39 | |
41 | dnl check wetehr we can link with gcc -lsupc++ |
40 | dnl check wether we can link with gcc -lsupc++ |
42 | LINKER="$CXX" |
|
|
43 | if test x$GCC = xyes && test x$GXX = xyes; then |
41 | if test x$GCC = xyes && test x$GXX = xyes; then |
44 | AC_CHECK_LIB(supc++, main, [ |
42 | dnl FreeBSD (at least up to 5.3) has a broken GCC, workaround it |
45 | LINKER="$CC" |
43 | AC_MSG_CHECKING([for working libsupc++]) |
|
|
44 | save_CXX="$CXX" |
|
|
45 | save_LIBS="$LIBS" |
|
|
46 | CXX="$CC" |
46 | LIBS="$LIBS -lsupc++" |
47 | LIBS="$LIBS -lsupc++" |
|
|
48 | LINKER="$CC" |
|
|
49 | AC_LINK_IFELSE( |
|
|
50 | [AC_LANG_PROGRAM([struct test { }; void f() try { throw new test; } catch (...) { throw; }])], |
|
|
51 | [AC_MSG_RESULT(ok)], |
|
|
52 | [ |
|
|
53 | AC_MSG_RESULT([no, making everything bigger and slower]) |
|
|
54 | LIBS="$save_LIBS" |
|
|
55 | LINKER="$save_CXX" |
|
|
56 | ] |
47 | ]) |
57 | ) |
|
|
58 | CXX="$save_CXX" |
48 | fi |
59 | fi |
49 | AC_SUBST(LINKER,[$LINKER]) |
60 | AC_SUBST(LINKER,[$LINKER]) |
50 | |
61 | |
51 | AC_LANG(C++) |
62 | AC_LANG(C++) |
52 | dnl# -------------------------------------------------------------------------- |
63 | dnl# -------------------------------------------------------------------------- |
53 | dnl# Supply default CXXLAGS, if not specified by `CXXLAGS=flags ./configure' |
64 | dnl# Supply default CXXFLAGS, if not specified by `CXXFLAGS=flags ./configure' |
54 | dnl# |
65 | dnl# |
55 | if test -z "$orig_CXXFLAGS"; then |
66 | if test -z "$orig_CXXFLAGS"; then |
56 | if test x$GCC = xyes && test "x$GXX" = xyes; then |
67 | if test x$GCC = xyes && test "x$GXX" = xyes; then |
57 | CXXFLAGS="-g -O3 -Os -fno-threadsafe-statics -fno-enforce-eh-specs" |
68 | CXXFLAGS="-g -O3 -fno-threadsafe-statics -fno-enforce-eh-specs" |
58 | AC_COMPILE_IFELSE([int i;], [echo didididid], [CXXFLAGS="-g -O3"]) |
69 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [], [CXXFLAGS="-g -O3"]) |
59 | else |
70 | else |
60 | CXXFLAGS="-O" |
71 | CXXFLAGS="-O" |
61 | fi |
72 | fi |
62 | CFLAGS="$CXXFLAGS" |
73 | CFLAGS="$CXXFLAGS" |
63 | fi |
74 | fi |
… | |
… | |
518 | dnl# -------------------------------------------------------------------------- |
529 | dnl# -------------------------------------------------------------------------- |
519 | AC_HEADER_SYS_WAIT |
530 | AC_HEADER_SYS_WAIT |
520 | AC_CHECK_HEADERS( \ |
531 | AC_CHECK_HEADERS( \ |
521 | assert.h \ |
532 | assert.h \ |
522 | fcntl.h \ |
533 | fcntl.h \ |
523 | grp.h \ |
|
|
524 | libc.h \ |
|
|
525 | lastlog.h \ |
|
|
526 | stdarg.h \ |
534 | stdarg.h \ |
527 | stdlib.h \ |
535 | stdlib.h \ |
528 | string.h \ |
536 | string.h \ |
529 | termios.h \ |
537 | termios.h \ |
530 | unistd.h \ |
538 | unistd.h \ |
531 | sys/byteorder.h \ |
539 | sys/byteorder.h \ |
532 | sys/ioctl.h \ |
540 | sys/ioctl.h \ |
533 | sys/select.h \ |
541 | sys/select.h \ |
534 | sys/sockio.h \ |
542 | sys/sockio.h \ |
535 | sys/strredir.h \ |
543 | sys/strredir.h \ |
536 | sys/stropts.h \ |
|
|
537 | sys/time.h \ |
544 | sys/time.h \ |
538 | utmp.h \ |
545 | stdint.h \ |
539 | utmpx.h \ |
546 | wchar.h \ |
540 | stdint.h \ |
547 | cwchar \ |
541 | pty.h \ |
548 | clocale \ |
542 | util.h \ |
|
|
543 | libutil.h \ |
|
|
544 | wchar.h \ |
|
|
545 | cwchar \ |
|
|
546 | clocale \ |
|
|
547 | ) |
549 | ) |
548 | |
550 | |
549 | AC_HEADER_TIME |
551 | AC_HEADER_TIME |
550 | |
552 | |
551 | dnl# check to allow both <termios.h> and <sys/ioctl.h> |
553 | dnl# check to allow both <termios.h> and <sys/ioctl.h> |
… | |
… | |
626 | dnl AC_CHECK_SIZEOF(long, 4) |
628 | dnl AC_CHECK_SIZEOF(long, 4) |
627 | AC_CHECK_SIZEOF(long long, 8) |
629 | AC_CHECK_SIZEOF(long long, 8) |
628 | AC_CHECK_SIZEOF(int *, 4) |
630 | AC_CHECK_SIZEOF(int *, 4) |
629 | |
631 | |
630 | dnl# see usage below |
632 | dnl# see usage below |
631 | AC_DEFUN(RXVT_CHECK_SIZE, |
633 | AC_DEFUN([RXVT_CHECK_SIZE], |
632 | [AC_CACHE_CHECK([for $2], $1, |
634 | [AC_CACHE_CHECK([for $2], $1, |
633 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl |
635 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdint.h>]], [[$2 dummy;]])],[$1=yes],[dnl |
634 | if test "$ac_cv_sizeof_char" -ge $3; then |
636 | if test "$ac_cv_sizeof_char" -ge $3; then |
635 | $1="$4 char" |
637 | $1="$4 char" |
636 | else |
638 | else |
… | |
… | |
705 | dnl# -------------------------------------------------------------------------- |
707 | dnl# -------------------------------------------------------------------------- |
706 | AC_TYPE_SIGNAL |
708 | AC_TYPE_SIGNAL |
707 | dnl> AC_FUNC_VPRINTF |
709 | dnl> AC_FUNC_VPRINTF |
708 | |
710 | |
709 | AC_CHECK_FUNCS( \ |
711 | AC_CHECK_FUNCS( \ |
710 | revoke \ |
|
|
711 | unsetenv \ |
712 | unsetenv \ |
712 | setutent \ |
713 | setutent \ |
713 | seteuid \ |
714 | seteuid \ |
714 | setresuid \ |
715 | setresuid \ |
715 | setreuid \ |
716 | setreuid \ |
716 | _getpty \ |
|
|
717 | getpt \ |
|
|
718 | posix_openpt \ |
|
|
719 | grantpt \ |
|
|
720 | unlockpt \ |
|
|
721 | isastream \ |
|
|
722 | on_exit \ |
717 | on_exit \ |
723 | nanosleep \ |
718 | nanosleep \ |
724 | updwtmp \ |
|
|
725 | updwtmpx \ |
|
|
726 | ttyslot \ |
|
|
727 | ) |
719 | ) |
728 | |
720 | |
729 | dnl# -------------------------------------------------------------------------- |
721 | UTMP_CHECK |
730 | dnl# DO ALL UTMP AND WTMP CHECKING |
|
|
731 | dnl# -------------------------------------------------------------------------- |
|
|
732 | dnl# check for host field in utmp structure |
|
|
733 | |
|
|
734 | dnl# -------------------------------------------- |
|
|
735 | AC_CHECK_HEADER(utmp.h, |
|
|
736 | [AC_CACHE_CHECK([for struct utmp], rxvt_cv_struct_utmp, |
|
|
737 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
738 | #include <utmp.h>]], [[struct utmp ut;]])],[rxvt_cv_struct_utmp=yes],[rxvt_cv_struct_utmp=no])]) |
|
|
739 | if test x$rxvt_cv_struct_utmp = xyes; then |
|
|
740 | AC_DEFINE(HAVE_STRUCT_UTMP, 1, Define if utmp.h has struct utmp) |
|
|
741 | fi |
|
|
742 | ] |
|
|
743 | |
|
|
744 | AC_CACHE_CHECK(for ut_host in utmp struct, rxvt_cv_struct_utmp_host, |
|
|
745 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
746 | #include <utmp.h>]], [[struct utmp ut; ut.ut_host;]])],[rxvt_cv_struct_utmp_host=yes],[rxvt_cv_struct_utmp_host=no])]) |
|
|
747 | if test x$rxvt_cv_struct_utmp_host = xyes; then |
|
|
748 | AC_DEFINE(HAVE_UTMP_HOST, 1, Define if struct utmp contains ut_host) |
|
|
749 | fi |
|
|
750 | |
|
|
751 | AC_CACHE_CHECK(for ut_pid in utmp struct, rxvt_cv_struct_utmp_pid, |
|
|
752 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
753 | #include <utmp.h>]], [[struct utmp ut; ut.ut_pid;]])],[rxvt_cv_struct_utmp_pid=yes],[rxvt_cv_struct_utmp_pid=no])]) |
|
|
754 | if test x$rxvt_cv_struct_utmp_pid = xyes; then |
|
|
755 | AC_DEFINE(HAVE_UTMP_PID, 1, Define if struct utmp contains ut_pid) |
|
|
756 | fi |
|
|
757 | ) dnl# AC_CHECK_HEADER(utmp.h |
|
|
758 | |
|
|
759 | dnl# -------------------------------------------- |
|
|
760 | |
|
|
761 | AC_CHECK_HEADER(utmpx.h, |
|
|
762 | [AC_CACHE_CHECK([for struct utmpx], rxvt_cv_struct_utmpx, |
|
|
763 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
764 | #include <utmpx.h>]], [[struct utmpx ut;]])],[rxvt_cv_struct_utmpx=yes],[rxvt_cv_struct_utmpx=no])]) |
|
|
765 | if test x$rxvt_cv_struct_utmpx = xyes; then |
|
|
766 | AC_DEFINE(HAVE_STRUCT_UTMPX, 1, Define if utmpx.h has struct utmpx) |
|
|
767 | fi |
|
|
768 | ] |
|
|
769 | |
|
|
770 | AC_CACHE_CHECK(for host in utmpx struct, rxvt_cv_struct_utmpx_host, |
|
|
771 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
772 | #include <utmpx.h>]], [[struct utmpx utx; utx.ut_host;]])],[rxvt_cv_struct_utmpx_host=yes],[rxvt_cv_struct_utmpx_host=no])]) |
|
|
773 | if test x$rxvt_cv_struct_utmpx_host = xyes; then |
|
|
774 | AC_DEFINE(HAVE_UTMPX_HOST, 1, Define if struct utmpx contains ut_host) |
|
|
775 | fi |
|
|
776 | |
|
|
777 | AC_CACHE_CHECK(for session in utmpx struct, rxvt_cv_struct_utmpx_session, |
|
|
778 | [AC_TRY_COMPILE([#include <sys/types.h> |
|
|
779 | #include <utmpx.h>], |
|
|
780 | [struct utmpx utx; utx.ut_session;], |
|
|
781 | rxvt_cv_struct_utmpx_session=yes, rxvt_cv_struct_utmpx_session=no)]) |
|
|
782 | if test x$rxvt_cv_struct_utmpx_session = xyes; then |
|
|
783 | AC_DEFINE(HAVE_UTMPX_SESSION, 1, Define if struct utmpx contains ut_session) |
|
|
784 | fi |
|
|
785 | ) dnl# AC_CHECK_HEADER(utmpx.h |
|
|
786 | |
|
|
787 | dnl# -------------------------------------------------------------------------- |
|
|
788 | dnl# check for struct lastlog |
|
|
789 | AC_CACHE_CHECK(for struct lastlog, rxvt_cv_struct_lastlog, |
|
|
790 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
791 | #include <utmp.h> |
|
|
792 | #ifdef HAVE_LASTLOG_H |
|
|
793 | #include <lastlog.h> |
|
|
794 | #endif |
|
|
795 | ]], [[struct lastlog ll;]])],[rxvt_cv_struct_lastlog=yes],[rxvt_cv_struct_lastlog=no])]) |
|
|
796 | if test x$rxvt_cv_struct_lastlog = xyes; then |
|
|
797 | AC_DEFINE(HAVE_STRUCT_LASTLOG, 1, Define if utmp.h or lastlog.h has struct lastlog) |
|
|
798 | fi |
|
|
799 | |
|
|
800 | dnl# check for struct lastlogx |
|
|
801 | AC_CACHE_CHECK(for struct lastlogx, rxvt_cv_struct_lastlogx, |
|
|
802 | [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h> |
|
|
803 | #include <utmpx.h> |
|
|
804 | #ifdef HAVE_LASTLOG_H |
|
|
805 | #include <lastlog.h> |
|
|
806 | #endif |
|
|
807 | ]], [[struct lastlogx ll;]])],[rxvt_cv_struct_lastlogx=yes],[rxvt_cv_struct_lastlogx=no])]) |
|
|
808 | if test x$rxvt_cv_struct_lastlogx = xyes; then |
|
|
809 | AC_DEFINE(HAVE_STRUCT_LASTLOGX, 1, Define if utmpx.h or lastlog.h has struct lastlogx) |
|
|
810 | fi |
|
|
811 | |
|
|
812 | dnl# -------------------------------------------------------------------------- |
|
|
813 | dnl# FIND FILES |
|
|
814 | dnl# -------------------------------------------------------------------------- |
|
|
815 | |
|
|
816 | dnl# find utmp |
|
|
817 | AC_CACHE_CHECK(where utmp is located, rxvt_cv_path_utmp, |
|
|
818 | [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h> |
|
|
819 | #include <sys/types.h> |
|
|
820 | #include <utmp.h> |
|
|
821 | #include <errno.h> |
|
|
822 | main() |
|
|
823 | { |
|
|
824 | char **u, *utmplist[] = { |
|
|
825 | "/var/run/utmp", "/var/adm/utmp", "/etc/utmp", "/usr/etc/utmp", "/usr/adm/utmp", NULL }; |
|
|
826 | FILE *a, *f=fopen("conftestval", "w"); |
|
|
827 | if (!f) exit(1); |
|
|
828 | #ifdef UTMP_FILE |
|
|
829 | fprintf(f, "%s\n", UTMP_FILE); |
|
|
830 | exit(0); |
|
|
831 | #endif |
|
|
832 | #ifdef _PATH_UTMP |
|
|
833 | fprintf(f, "%s\n", _PATH_UTMP); |
|
|
834 | exit(0); |
|
|
835 | #endif |
|
|
836 | for (u = utmplist; *u; u++) { |
|
|
837 | if ((a = fopen(*u, "r")) != NULL || errno == EACCES) { |
|
|
838 | fprintf(f, "%s\n", *u); |
|
|
839 | exit(0); |
|
|
840 | } |
|
|
841 | } |
|
|
842 | exit(0); |
|
|
843 | }]])],[rxvt_cv_path_utmp=`cat conftestval`],[rxvt_cv_path_utmp=],[dnl |
|
|
844 | AC_MSG_WARN(Define RXVT_UTMP_FILE in config.h manually)])]) |
|
|
845 | if test x$rxvt_cv_path_utmp != x; then |
|
|
846 | AC_DEFINE_UNQUOTED(RXVT_UTMP_FILE, "$rxvt_cv_path_utmp", Define location of utmp) |
|
|
847 | fi |
|
|
848 | |
|
|
849 | dnl# -------------------------------------------------------------------------- |
|
|
850 | |
|
|
851 | dnl# find utmpx - if a utmp file exists at the same location and is more than |
|
|
852 | dnl# a day newer, then dump the utmpx. People leave lots of junk around. |
|
|
853 | AC_CACHE_CHECK(where utmpx is located, rxvt_cv_path_utmpx, |
|
|
854 | [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h> |
|
|
855 | #include <sys/types.h> |
|
|
856 | #include <utmpx.h> |
|
|
857 | #include <errno.h> |
|
|
858 | #include <sys/stat.h> |
|
|
859 | #ifdef HAVE_STRING_H |
|
|
860 | #include <string.h> |
|
|
861 | #endif |
|
|
862 | main() |
|
|
863 | { |
|
|
864 | char **u, *p, *utmplist[] = { |
|
|
865 | #ifdef UTMPX_FILE |
|
|
866 | UTMPX_FILE, |
|
|
867 | #endif |
|
|
868 | #ifdef _PATH_UTMPX |
|
|
869 | _PATH_UTMPX, |
|
|
870 | #endif |
|
|
871 | "/var/adm/utmpx", "/etc/utmpx", NULL }; |
|
|
872 | FILE *a, *f=fopen("conftestval", "w"); |
|
|
873 | struct stat statu, statux; |
|
|
874 | if (!f) exit(1); |
|
|
875 | for (u = utmplist; *u; u++) { |
|
|
876 | if ((a = fopen(*u, "r")) != NULL || errno == EACCES) { |
|
|
877 | if (stat(*u, &statux) < 0) |
|
|
878 | continue; |
|
|
879 | p = strdup(*u); |
|
|
880 | p[strlen(p) - 1] = '\0'; |
|
|
881 | if (stat(p, &statu) >= 0 |
|
|
882 | && (statu.st_mtime - statux.st_mtime > 86400)) |
|
|
883 | continue; |
|
|
884 | fprintf(f, "%s\n", *u); |
|
|
885 | exit(0); |
|
|
886 | } |
|
|
887 | } |
|
|
888 | exit(0); |
|
|
889 | }]])],[rxvt_cv_path_utmpx=`cat conftestval`],[rxvt_cv_path_utmpx=],[dnl |
|
|
890 | AC_MSG_WARN(Define RXVT_UTMPX_FILE in config.h manually)])]) |
|
|
891 | if test x$rxvt_cv_path_utmpx != x; then |
|
|
892 | AC_DEFINE_UNQUOTED(RXVT_UTMPX_FILE, "$rxvt_cv_path_utmpx", Define location of utmpx) |
|
|
893 | fi |
|
|
894 | |
|
|
895 | dnl# -------------------------------------------------------------------------- |
|
|
896 | |
|
|
897 | dnl# find wtmp |
|
|
898 | AC_CACHE_CHECK(where wtmp is located, rxvt_cv_path_wtmp, |
|
|
899 | [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h> |
|
|
900 | #include <sys/types.h> |
|
|
901 | #ifdef HAVE_UTMP_H |
|
|
902 | #include <utmp.h> |
|
|
903 | #endif |
|
|
904 | #include <errno.h> |
|
|
905 | main() |
|
|
906 | { |
|
|
907 | char **w, *wtmplist[] = { |
|
|
908 | "/var/log/wtmp", "/var/adm/wtmp", "/etc/wtmp", "/usr/etc/wtmp", "/usr/adm/wtmp", NULL }; |
|
|
909 | FILE *a, *f=fopen("conftestval", "w"); |
|
|
910 | if (!f) exit(1); |
|
|
911 | #ifdef WTMP_FILE |
|
|
912 | fprintf(f, "%s\n", WTMP_FILE); |
|
|
913 | exit(0); |
|
|
914 | #endif |
|
|
915 | #ifdef _PATH_WTMP |
|
|
916 | fprintf(f, "%s\n", _PATH_WTMP); |
|
|
917 | exit(0); |
|
|
918 | #endif |
|
|
919 | for (w = wtmplist; *w; w++) { |
|
|
920 | if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { |
|
|
921 | fprintf(f, "%s\n", *w); |
|
|
922 | exit(0); |
|
|
923 | } |
|
|
924 | } |
|
|
925 | exit(0); |
|
|
926 | }]])],[rxvt_cv_path_wtmp=`cat conftestval`],[rxvt_cv_path_wtmp=],[dnl |
|
|
927 | AC_MSG_WARN(Define RXVT_WTMP_FILE in config.h manually)])]) |
|
|
928 | if test x$rxvt_cv_path_wtmp != x; then |
|
|
929 | AC_DEFINE_UNQUOTED(RXVT_WTMP_FILE, "$rxvt_cv_path_wtmp", Define location of wtmp) |
|
|
930 | fi |
|
|
931 | dnl# -------------------------------------------------------------------------- |
|
|
932 | |
|
|
933 | dnl# find wtmpx |
|
|
934 | AC_CACHE_CHECK(where wtmpx is located, rxvt_cv_path_wtmpx, |
|
|
935 | [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h> |
|
|
936 | #ifdef HAVE_UTMPX_H |
|
|
937 | #include <utmpx.h> |
|
|
938 | #endif |
|
|
939 | #include <errno.h> |
|
|
940 | main() |
|
|
941 | { |
|
|
942 | char **w, *wtmplist[] = { |
|
|
943 | "/var/log/wtmpx", "/var/adm/wtmpx", NULL }; |
|
|
944 | FILE *a, *f=fopen("conftestval", "w"); |
|
|
945 | if (!f) exit(1); |
|
|
946 | #ifdef WTMPX_FILE |
|
|
947 | fprintf(f, "%s\n", WTMPX_FILE); |
|
|
948 | exit(0); |
|
|
949 | #endif |
|
|
950 | #ifdef _PATH_WTMPX |
|
|
951 | fprintf(f, "%s\n", _PATH_WTMPX); |
|
|
952 | exit(0); |
|
|
953 | #endif |
|
|
954 | for (w = wtmplist; *w; w++) { |
|
|
955 | if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { |
|
|
956 | fprintf(f, "%s\n", *w); |
|
|
957 | exit(0); |
|
|
958 | } |
|
|
959 | } |
|
|
960 | exit(0); |
|
|
961 | }]])],[rxvt_cv_path_wtmpx=`cat conftestval`],[rxvt_cv_path_wtmpx=],[dnl |
|
|
962 | AC_MSG_WARN(Define RXVT_WTMPX_FILE in config.h manually)])]) |
|
|
963 | if test x$rxvt_cv_path_wtmpx != x; then |
|
|
964 | AC_DEFINE_UNQUOTED(RXVT_WTMPX_FILE, "$rxvt_cv_path_wtmpx", Define location of wtmpx) |
|
|
965 | fi |
|
|
966 | dnl# -------------------------------------------------------------------------- |
|
|
967 | |
|
|
968 | dnl# find lastlog |
|
|
969 | AC_CACHE_CHECK(where lastlog is located, rxvt_cv_path_lastlog, |
|
|
970 | [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h> |
|
|
971 | #include <sys/types.h> |
|
|
972 | #ifdef HAVE_UTMPX_H |
|
|
973 | #include <utmpx.h> |
|
|
974 | #elif defined(HAVE_UTMP_H) |
|
|
975 | #include <utmp.h> |
|
|
976 | #endif |
|
|
977 | #ifdef HAVE_LASTLOG_H |
|
|
978 | #include <lastlog.h> |
|
|
979 | #endif |
|
|
980 | #include <errno.h> |
|
|
981 | main() |
|
|
982 | { |
|
|
983 | char **w, *lastloglist[] = { "/var/log/lastlog", NULL }; |
|
|
984 | FILE *a, *f=fopen("conftestval", "w"); |
|
|
985 | if (!f) exit(1); |
|
|
986 | #ifdef LASTLOG_FILE |
|
|
987 | fprintf(f, "%s\n", LASTLOG_FILE); |
|
|
988 | exit(0); |
|
|
989 | #endif |
|
|
990 | #ifdef _PATH_LASTLOG |
|
|
991 | fprintf(f, "%s\n", _PATH_LASTLOG); |
|
|
992 | exit(0); |
|
|
993 | #endif |
|
|
994 | for (w = lastloglist; *w; w++) { |
|
|
995 | if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { |
|
|
996 | fprintf(f, "%s\n", *w); |
|
|
997 | exit(0); |
|
|
998 | } |
|
|
999 | } |
|
|
1000 | exit(0); |
|
|
1001 | }]])],[rxvt_cv_path_lastlog=`cat conftestval`],[rxvt_cv_path_lastlog=],[dnl |
|
|
1002 | AC_MSG_WARN(Define RXVT_LASTLOG_FILE in config.h manually)])]) |
|
|
1003 | if test x$rxvt_cv_path_lastlog != x; then |
|
|
1004 | AC_DEFINE_UNQUOTED(RXVT_LASTLOG_FILE, "$rxvt_cv_path_lastlog", Define location of lastlog) |
|
|
1005 | if test -d "$rxvt_cv_path_lastlog"; then |
|
|
1006 | AC_DEFINE(LASTLOG_IS_DIR, 1, Define if lastlog is provided via a directory) |
|
|
1007 | fi |
|
|
1008 | fi |
|
|
1009 | dnl# -------------------------------------------------------------------------- |
|
|
1010 | |
|
|
1011 | dnl# find lastlogx |
|
|
1012 | AC_CACHE_CHECK(where lastlogx is located, rxvt_cv_path_lastlogx, |
|
|
1013 | [AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h> |
|
|
1014 | #ifdef HAVE_UTMPX_H |
|
|
1015 | #include <utmpx.h> |
|
|
1016 | #endif |
|
|
1017 | #include <errno.h> |
|
|
1018 | main() |
|
|
1019 | { |
|
|
1020 | char **w, *wtmplist[] = { "/var/log/lastlogx", "/var/adm/lastlogx", NULL }; |
|
|
1021 | FILE *a, *f=fopen("conftestval", "w"); |
|
|
1022 | if (!f) exit(1); |
|
|
1023 | #ifdef LASTLOGX_FILE |
|
|
1024 | fprintf(f, "%s\n", LASTLOGX_FILE); |
|
|
1025 | exit(0); |
|
|
1026 | #endif |
|
|
1027 | #ifdef _PATH_LASTLOGX |
|
|
1028 | fprintf(f, "%s\n", _PATH_LASTLOGX); |
|
|
1029 | exit(0); |
|
|
1030 | #endif |
|
|
1031 | for (w = wtmplist; *w; w++) { |
|
|
1032 | if ((a = fopen(*w, "r")) != NULL || errno == EACCES) { |
|
|
1033 | fprintf(f, "%s\n", *w); |
|
|
1034 | exit(0); |
|
|
1035 | } |
|
|
1036 | } |
|
|
1037 | exit(0); |
|
|
1038 | }]])],[rxvt_cv_path_lastlogx=`cat conftestval`],[rxvt_cv_path_lastlogx=],[dnl |
|
|
1039 | AC_MSG_WARN(Define RXVT_LASTLOGX_FILE in config.h manually)])]) |
|
|
1040 | if test x$rxvt_cv_path_lastlogx != x; then |
|
|
1041 | AC_DEFINE_UNQUOTED(RXVT_LASTLOGX_FILE, "$rxvt_cv_path_lastlogx", Define location of lastlogx) |
|
|
1042 | fi |
|
|
1043 | |
722 | |
1044 | dnl# -------------------------------------------------------------------------- |
723 | dnl# -------------------------------------------------------------------------- |
1045 | |
724 | |
1046 | dnl# find ttys/ttytab |
725 | dnl# find ttys/ttytab |
1047 | AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab, |
726 | AC_CACHE_CHECK(where ttys/ttytab is located, rxvt_cv_path_ttytab, |
… | |
… | |
1104 | AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works) |
783 | AC_DEFINE(HAVE_NL_LANGINFO, 1, Define if nl_langinfo(CODESET) works) |
1105 | fi |
784 | fi |
1106 | |
785 | |
1107 | AC_CACHE_CHECK(for unix-compliant filehandle passing ability, rxvt_can_pass_fds, |
786 | AC_CACHE_CHECK(for unix-compliant filehandle passing ability, rxvt_can_pass_fds, |
1108 | [AC_TRY_LINK([ |
787 | [AC_TRY_LINK([ |
|
|
788 | #include <cstddef> // broken bsds (is that redundant) need this |
1109 | #include <sys/types.h> |
789 | #include <sys/types.h> |
1110 | #include <sys/socket.h> |
790 | #include <sys/socket.h> |
|
|
791 | #include <sys/uio.h> |
1111 | ],[ |
792 | ],[ |
1112 | { |
793 | { |
1113 | msghdr msg; |
794 | msghdr msg; |
1114 | iovec iov; |
795 | iovec iov; |
1115 | char buf [100]; |
796 | char buf [100]; |
… | |
… | |
1153 | |
834 | |
1154 | if test x$rxvt_broken_ximcb = xyes; then |
835 | if test x$rxvt_broken_ximcb = xyes; then |
1155 | AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.) |
836 | AC_DEFINE(XIMCB_PROTO_BROKEN, 1, Define if your XIMCallback specifies XIC as first type.) |
1156 | fi |
837 | fi |
1157 | |
838 | |
1158 | if test x$ac_cv_func_getpt = xno -a x$ac_cv_func_posix_openpt = xno; then |
839 | PTY_CHECK |
1159 | AC_CHECK_FUNC(openpty, [], [AC_CHECK_LIB(util, openpty, [LIBS="$LIBS -lutil"])]) |
|
|
1160 | fi |
|
|
1161 | |
|
|
1162 | dnl# if we don't guess right then it's up to the user |
|
|
1163 | AC_CACHE_CHECK(for pty/tty type, rxvt_cv_ptys, |
|
|
1164 | [if test x$ac_cv_func_openpty = xyes -o x$ac_cv_lib_util_openpty = xyes; then |
|
|
1165 | rxvt_cv_ptys=OPENPTY |
|
|
1166 | else if test x$ac_cv_func_getpt = xyes; then |
|
|
1167 | rxvt_cv_ptys=GLIBC |
|
|
1168 | else if test x$ac_cv_func_posix_openpt = xyes; then |
|
|
1169 | rxvt_cv_ptys=POSIX |
|
|
1170 | else if test x$ac_cv_func__getpty = xyes; then |
|
|
1171 | rxvt_cv_ptys=SGI4 |
|
|
1172 | else if test -c /dev/ttyp20; then |
|
|
1173 | rxvt_cv_ptys=SCO |
|
|
1174 | else if test -c /dev/ptym/clone; then |
|
|
1175 | rxvt_cv_ptys=HPUX |
|
|
1176 | else if test -c /dev/ptc -a -c /dev/pts; then |
|
|
1177 | rxvt_cv_ptys=PTC |
|
|
1178 | else if test -c /dev/ptc -a -d /dev/pts; then |
|
|
1179 | rxvt_cv_ptys=PTC |
|
|
1180 | else if test -c /dev/ptmx -a -c /dev/pts/0; then |
|
|
1181 | rxvt_cv_ptys=STREAMS |
|
|
1182 | else if test x$ac_cv_func_grantpt = xyes && test x$ac_cv_func_unlockpt = xyes; then |
|
|
1183 | dnl# catch CYGWIN |
|
|
1184 | rxvt_cv_ptys=STREAMS |
|
|
1185 | else |
|
|
1186 | rxvt_cv_ptys=BSD |
|
|
1187 | fi |
|
|
1188 | fi |
|
|
1189 | fi |
|
|
1190 | fi |
|
|
1191 | fi |
|
|
1192 | fi |
|
|
1193 | fi |
|
|
1194 | fi |
|
|
1195 | fi |
|
|
1196 | fi |
|
|
1197 | ]) |
|
|
1198 | |
|
|
1199 | if test x$rxvt_cv_ptys = xGLIBC; then |
|
|
1200 | AC_DEFINE(PTYS_ARE_GETPT, 1, Define for this pty type) |
|
|
1201 | fi |
|
|
1202 | if test x$rxvt_cv_ptys = xPOSIX; then |
|
|
1203 | AC_DEFINE(PTYS_ARE_POSIX, 1, Define for this pty type) |
|
|
1204 | fi |
|
|
1205 | if test x$rxvt_cv_ptys = xOPENPTY; then |
|
|
1206 | AC_DEFINE(PTYS_ARE_OPENPTY, 1, Define for this pty type) |
|
|
1207 | fi |
|
|
1208 | if test x$rxvt_cv_ptys = xSCO; then |
|
|
1209 | AC_DEFINE(PTYS_ARE_NUMERIC, 1, Define for this pty type) |
|
|
1210 | fi |
|
|
1211 | if test x$rxvt_cv_ptys = xSTREAMS; then |
|
|
1212 | AC_DEFINE(PTYS_ARE_PTMX, 1, Define for this pty type) |
|
|
1213 | fi |
|
|
1214 | if test x$rxvt_cv_ptys = xPTC; then |
|
|
1215 | AC_DEFINE(PTYS_ARE_PTC, 1, Define for this pty type) |
|
|
1216 | fi |
|
|
1217 | if test x$rxvt_cv_ptys = xSGI4; then |
|
|
1218 | AC_DEFINE(PTYS_ARE__GETPTY, 1, Define for this pty type) |
|
|
1219 | fi |
|
|
1220 | if test x$rxvt_cv_ptys = xHPUX; then |
|
|
1221 | AC_DEFINE(PTYS_ARE_CLONE, 1, Define for this pty type) |
|
|
1222 | fi |
|
|
1223 | if test x$rxvt_cv_ptys = xBSD -o x$rxvt_cv_ptys = xHPUX -o x$rxvt_cv_ptys = xPOSIX; then |
|
|
1224 | AC_DEFINE(PTYS_ARE_SEARCHED, 1, Define for this pty type) |
|
|
1225 | fi |
|
|
1226 | |
|
|
1227 | |
|
|
1228 | AS_MESSAGE(checking for pty ranges...) |
|
|
1229 | ptys=`echo /dev/pty??` |
|
|
1230 | pch1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'` |
|
|
1231 | pch2=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'` |
|
|
1232 | if test x$pch1 != x; then |
|
|
1233 | AC_DEFINE_UNQUOTED(PTYCHAR1, "$pch1", Define for first char in devptyXX) |
|
|
1234 | fi |
|
|
1235 | if test x$pch2 != x; then |
|
|
1236 | AC_DEFINE_UNQUOTED(PTYCHAR2, "$pch2", Define for second char in devptyXX) |
|
|
1237 | fi |
|
|
1238 | |
840 | |
1239 | dnl# -------------------------------------------------------------------------- |
841 | dnl# -------------------------------------------------------------------------- |
1240 | dnl# now add and remove other stuff |
842 | dnl# now add and remove other stuff |
1241 | dnl# -------------------------------------------------------------------------- |
843 | dnl# -------------------------------------------------------------------------- |
1242 | if test x$support_xft = xyes; then |
844 | if test x$support_xft = xyes; then |
1243 | LIBS="$LIBS `pkg-config xft --libs`" |
845 | AC_PATH_PROG(PKG_CONFIG, pkg-config, no) |
|
|
846 | AC_PATH_PROG(XFT_CONFIG, xft-config, no) |
|
|
847 | if test $PKG_CONFIG != no && $PKG_CONFIG --exists xft; then |
|
|
848 | LIBS="$LIBS `$PKG_CONFIG xft --libs`" |
1244 | CPPFLAGS="$CPPFLAGS `pkg-config xft --cflags`" |
849 | CPPFLAGS="$CPPFLAGS `$PKG_CONFIG xft --cflags`" |
|
|
850 | else |
|
|
851 | if test $XFT_CONFIG != no; then |
|
|
852 | LIBS="$LIBS `$XFT_CONFIG --libs`" |
|
|
853 | CPPFLAGS="$CPPFLAGS `$XFT_CONFIG --cflags`" |
|
|
854 | fi |
|
|
855 | fi |
1245 | |
856 | |
1246 | AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no]) |
857 | AC_CHECK_HEADERS(X11/Xft/Xft.h,,[support_xft=no]) |
1247 | AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no]) |
858 | AC_CHECK_LIB(Xft,XftDrawString32,,[support_xft=no]) |
1248 | |
859 | |
1249 | if test x$support_xft = xyes; then |
860 | if test x$support_xft = xyes; then |
… | |
… | |
1423 | AC_ARG_PROGRAM |
1034 | AC_ARG_PROGRAM |
1424 | |
1035 | |
1425 | dnl# test for "sun" or "__sun__" before include sys_ioctl |
1036 | dnl# test for "sun" or "__sun__" before include sys_ioctl |
1426 | |
1037 | |
1427 | dnl# revert HAVE_BLAH_H into a "#include <blah.h>" |
1038 | dnl# revert HAVE_BLAH_H into a "#include <blah.h>" |
1428 | AC_DEFUN(RXVT_DEFINE_TO_INCLUDE, dnl |
1039 | AC_DEFUN([RXVT_DEFINE_TO_INCLUDE], dnl |
1429 | [if test "$$3" = "$4" -o "$$5" = "$6"; then |
1040 | [if test "$$3" = "$4" -o "$$5" = "$6"; then |
1430 | $1="#include <$2>" |
1041 | $1="#include <$2>" |
1431 | else |
1042 | else |
1432 | $1="/* #include <$2> */" |
1043 | $1="/* #include <$2> */" |
1433 | fi dnl |
1044 | fi dnl |
… | |
… | |
1478 | fi |
1089 | fi |
1479 | |
1090 | |
1480 | echo " |
1091 | echo " |
1481 | The following are set in config.h |
1092 | The following are set in config.h |
1482 | " |
1093 | " |
1483 | echo " pty/tty type: "$rxvt_cv_ptys |
|
|
1484 | if test x$support_utmp != xyes; then |
1094 | if test x$support_utmp != xyes; then |
1485 | echo " utmp support: disabled" |
1095 | echo " utmp support: disabled" |
1486 | echo |
1096 | echo |
1487 | else |
1097 | else |
1488 | echo " utmp support: enabled |
1098 | echo " utmp support: enabled |
… | |
… | |
1505 | echo " resource class: $RESCLASS" |
1115 | echo " resource class: $RESCLASS" |
1506 | if test x$RESFALLBACK != x; then |
1116 | if test x$RESFALLBACK != x; then |
1507 | echo " resource class fallback: $RESFALLBACK" |
1117 | echo " resource class fallback: $RESFALLBACK" |
1508 | fi |
1118 | fi |
1509 | echo |
1119 | echo |
1510 | if test x$rxvt_cv_ptys = xUNKNOWN; then |
|
|
1511 | echo ".----------------------------------------------------------------." |
|
|
1512 | echo ". WARNING: could not determine pty/tty type. Do not build until ." |
|
|
1513 | echo ". the appropriate PTYS_ARE_* is defined in config.h ." |
|
|
1514 | echo ".----------------------------------------------------------------." |
|
|
1515 | fi |
|
|
1516 | if test x$support_xpm = xneedsmanualspecification; then |
1120 | if test x$support_xpm = xneedsmanualspecification; then |
1517 | echo ".----------------------------------------------------------------." |
1121 | echo ".----------------------------------------------------------------." |
1518 | echo ". WARNING: --enable-xpm-background was specified however the ." |
1122 | echo ". WARNING: --enable-xpm-background was specified however the ." |
1519 | echo ". XPM includes files and libraries could not be found. ." |
1123 | echo ". XPM includes files and libraries could not be found. ." |
1520 | echo ". XPM backgrounds are now being DISABLED! If you want ." |
1124 | echo ". XPM backgrounds are now being DISABLED! If you want ." |