2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 18:08:23 +00:00

Kill VISUDO_LIBS and VISUDO_LDFLAGS. Add LIBS, NET_LIBS, and LDFLAGS.

Common libs go in LIBS, commong ld flags go in LDFLAGS and network libs
like -lsocket, -lnsl go in NET_LIBS.  This allows testsudoers to build
on Solaris and is a bit cleaner in general.
This commit is contained in:
Todd C. Miller 1999-08-26 13:16:06 +00:00
parent a80f9e0fbf
commit 3118b7f865
3 changed files with 442 additions and 422 deletions

View File

@ -53,8 +53,9 @@ NROFF = nroff
INSTALL = $(srcdir)/install-sh -c INSTALL = $(srcdir)/install-sh -c
# Libraries # Libraries
SUDO_LIBS = @SUDO_LIBS@ @AFS_LIBS@ LIBS = @LIBS@
VISUDO_LIBS = @VISUDO_LIBS@ NET_LIBS = @NET_LIBS@
SUDO_LIBS = @SUDO_LIBS@ @AFS_LIBS@ $(LIBS) $(NET_LIBS)
# C preprocessor flags # C preprocessor flags
CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@ CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@
@ -63,8 +64,8 @@ CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
# Flags to pass to the link stage # Flags to pass to the link stage
SUDO_LDFLAGS = @SUDO_LDFLAGS@ LDFLAGS = @LDFLAGS@
VISUDO_LDFLAGS = @VISUDO_LDFLAGS@ SUDO_LDFLAGS = @SUDO_LDFLAGS@ $(LDFLAGS)
# Where to install things... # Where to install things...
prefix = @prefix@ prefix = @prefix@
@ -170,10 +171,10 @@ sudo: $(SUDOBJS) $(LIBOBJS)
$(CC) -o $@ $(SUDOBJS) $(LIBOBJS) $(SUDO_LDFLAGS) $(SUDO_LIBS) $(CC) -o $@ $(SUDOBJS) $(LIBOBJS) $(SUDO_LDFLAGS) $(SUDO_LIBS)
visudo: $(VISUDOBJS) $(LIBOBJS) visudo: $(VISUDOBJS) $(LIBOBJS)
$(CC) -o $@ $(VISUDOBJS) $(LIBOBJS) $(VISUDO_LDFLAGS) $(VISUDO_LIBS) $(CC) -o $@ $(VISUDOBJS) $(LIBOBJS) $(LDFLAGS) $(LIBS)
testsudoers: $(TESTOBJS) $(LIBOBJS) testsudoers: $(TESTOBJS) $(LIBOBJS)
$(CC) -o $@ $(TESTOBJS) $(LIBOBJS) $(VISUDO_LDFLAGS) $(VISUDO_LIBS) $(CC) -o $@ $(TESTOBJS) $(LIBOBJS) $(LDFLAGS) $(LIBS) $(NET_LIBS)
# Uncomment the following if you want "make clean" to clean the parser # Uncomment the following if you want "make clean" to clean the parser
@DEV@PARSESRCS = sudo.tab.h sudo.tab.c lex.yy.c @DEV@PARSESRCS = sudo.tab.h sudo.tab.c lex.yy.c

803
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -18,14 +18,16 @@ PROGS="sudo visudo"
AC_SUBST(PROGS)dnl AC_SUBST(PROGS)dnl
CPPFLAGS="" CPPFLAGS=""
AC_SUBST(CPPFLAGS)dnl AC_SUBST(CPPFLAGS)dnl
LDFLAGS=""
AC_SUBST(LDFLAGS)dnl
SUDO_LDFLAGS="" SUDO_LDFLAGS=""
AC_SUBST(SUDO_LDFLAGS)dnl AC_SUBST(SUDO_LDFLAGS)dnl
VISUDO_LDFLAGS="" LIBS=""
AC_SUBST(VISUDO_LDFLAGS)dnl AC_SUBST(LIBS)dnl
SUDO_LIBS="" SUDO_LIBS=""
AC_SUBST(SUDO_LIBS)dnl AC_SUBST(SUDO_LIBS)dnl
VISUDO_LIBS="" NET_LIBS=""
AC_SUBST(VISUDO_LIBS)dnl AC_SUBST(NET_LIBS)dnl
AFS_LIBS="" AFS_LIBS=""
AC_SUBST(AFS_LIBS)dnl AC_SUBST(AFS_LIBS)dnl
OSDEFS="" OSDEFS=""
@ -108,11 +110,9 @@ AC_ARG_WITH(libpath, [ --with-libpath additional places to look for li
no) echo "Sorry, --without-libpath not supported." no) echo "Sorry, --without-libpath not supported."
exit 1 exit 1
;; ;;
*) echo "Adding ${with_libpath} to SUDO_LDFLAGS and VISUDO_LDFLAGS" *) echo "Adding ${with_libpath} to LDFLAGS"
for i in ${with_libpath}; do for i in ${with_libpath}; do
LDFLAGS="${LDFLAGS} -L${i}" LDFLAGS="${LDFLAGS} -L${i}"
SUDO_LDFLAGS="${SUDO_LDFLAGS} -L${i}"
VISUDO_LDFLAGS="${VISUDO_LDFLAGS} -L${i}"
done done
;; ;;
esac]) esac])
@ -125,7 +125,7 @@ AC_ARG_WITH(libraries, [ --with-libraries additional libraries to link w
no) echo "Sorry, --without-libraries not supported." no) echo "Sorry, --without-libraries not supported."
exit 1 exit 1
;; ;;
*) echo "Adding ${with_libraries} to SUDO_LIBS and VISUDO_LIBS" *) echo "Adding ${with_libraries} to LIBS"
for i in ${with_libraries}; do for i in ${with_libraries}; do
case $i in case $i in
-l*) ;; -l*) ;;
@ -134,8 +134,6 @@ AC_ARG_WITH(libraries, [ --with-libraries additional libraries to link w
*) i="-l${i}";; *) i="-l${i}";;
esac esac
LIBS="${LIBS} ${i}" LIBS="${LIBS} ${i}"
SUDO_LIBS="${SUDO_LIBS} ${i}"
VISUDO_LIBS="${VISUDO_LIBS} ${i}"
done done
;; ;;
esac]) esac])
@ -1265,7 +1263,7 @@ case "$host" in
fi fi
# IRIX <= 4 needs -lsun # IRIX <= 4 needs -lsun
if test "$OSREV" -le 4; then if test "$OSREV" -le 4; then
AC_CHECK_LIB(sun, getpwnam, [SUDO_LIBS="${SUDO_LIBS} -lsun"; VISUDO_LIBS="${VISUDO_LIBS} -lsun"; LIBS="${LIBS} -lsun"]) AC_CHECK_LIB(sun, getpwnam, [LIBS="${LIBS} -lsun"])
fi fi
;; ;;
*-*-linux*) *-*-linux*)
@ -1294,7 +1292,6 @@ case "$host" in
fi fi
;; ;;
*-*-riscos*) *-*-riscos*)
SUDO_LIBS="${SUDO_LIBS} -lsun -lbsd"
LIBS="${LIBS} -lsun -lbsd" LIBS="${LIBS} -lsun -lbsd"
CPPFLAGS="${CPPFLAGS} -I/usr/include -I/usr/include/bsd" CPPFLAGS="${CPPFLAGS} -I/usr/include -I/usr/include/bsd"
OSDEFS="${OSDEFS} -D_MIPS" OSDEFS="${OSDEFS} -D_MIPS"
@ -1420,7 +1417,7 @@ fi
AC_CHECK_FUNC(lockf, AC_DEFINE(HAVE_LOCKF), AC_CHECK_FUNCS(flock)) AC_CHECK_FUNC(lockf, AC_DEFINE(HAVE_LOCKF), AC_CHECK_FUNCS(flock))
AC_CHECK_FUNC(waitpid, AC_DEFINE(HAVE_WAITPID), AC_CHECK_FUNCS(wait3)) AC_CHECK_FUNC(waitpid, AC_DEFINE(HAVE_WAITPID), AC_CHECK_FUNCS(wait3))
AC_CHECK_FUNC(innetgr, AC_DEFINE(HAVE_INNETGR) AC_CHECK_FUNCS(getdomainname)) AC_CHECK_FUNC(innetgr, AC_DEFINE(HAVE_INNETGR) AC_CHECK_FUNCS(getdomainname))
AC_CHECK_FUNC(lsearch, AC_DEFINE(HAVE_LSEARCH), AC_CHECK_LIB(compat, lsearch, AC_CHECK_HEADER(search.h, AC_DEFINE(HAVE_LSEARCH) [SUDO_LIBS="${SUDO_LIBS} -lcompat"; VISUDO_LIBS="${VISUDO_LIBS} -lcompat"; LIBS="${LIBS} -lcompat"], LIBOBJS="$LIBOBJS lsearch.o"), LIBOBJS="$LIBOBJS lsearch.o")) AC_CHECK_FUNC(lsearch, AC_DEFINE(HAVE_LSEARCH), AC_CHECK_LIB(compat, lsearch, AC_CHECK_HEADER(search.h, AC_DEFINE(HAVE_LSEARCH) [LIBS="${LIBS} -lcompat"], LIBOBJS="$LIBOBJS lsearch.o"), LIBOBJS="$LIBOBJS lsearch.o"))
AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV), AC_FUNC_CHECK(putenv, AC_DEFINE(HAVE_PUTENV), LIBOBJS="$LIBOBJS putenv.o")) AC_CHECK_FUNC(setenv, AC_DEFINE(HAVE_SETENV), AC_FUNC_CHECK(putenv, AC_DEFINE(HAVE_PUTENV), LIBOBJS="$LIBOBJS putenv.o"))
AC_CHECK_FUNC(utime, AC_DEFINE(HAVE_UTIME) AC_CHECK_FUNC(utime, AC_DEFINE(HAVE_UTIME)
SUDO_FUNC_UTIME_POSIX, LIBOBJS="$LIBOBJS utime.o") SUDO_FUNC_UTIME_POSIX, LIBOBJS="$LIBOBJS utime.o")
@ -1448,18 +1445,18 @@ dnl If socket(2) not in libc, check -lsocket and -linet
dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols
dnl In this case we look for main(), not socket() to avoid using a cached value dnl In this case we look for main(), not socket() to avoid using a cached value
dnl dnl
AC_CHECK_FUNC(socket, ,AC_CHECK_LIB(socket, socket, [SUDO_LIBS="${SUDO_LIBS} -lsocket"; LIBS="${LIBS} -lsocket"], AC_CHECK_LIB(inet, socket, [SUDO_LIBS="${SUDO_LIBS} -linet"; LIBS="${LIBS} -linet"], AC_MSG_WARN(unable to find socket() trying -lsocket -lnsl) AC_CHECK_FUNC(socket, ,AC_CHECK_LIB(socket, socket, [NET_LIBS="${NET_LIBS} -lsocket"; LIBS="${LIBS} -lsocket"], AC_CHECK_LIB(inet, socket, [NET_LIBS="${NET_LIBS} -linet"; LIBS="${LIBS} -linet"], AC_MSG_WARN(unable to find socket() trying -lsocket -lnsl)
AC_CHECK_LIB(socket, socket, [SUDO_LIBS="${SUDO_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"], , -lnsl)))) AC_CHECK_LIB(socket, socket, [NET_LIBS="${NET_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"], , -lnsl))))
dnl dnl
dnl If inet_addr(3) not in libc, check -lnsl and -linet dnl If inet_addr(3) not in libc, check -lnsl and -linet
dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols dnl May need to link with *both* -lnsl and -lsocket due to unresolved symbols
dnl dnl
AC_CHECK_FUNC(inet_addr, ,AC_CHECK_LIB(nsl, inet_addr, [SUDO_LIBS="${SUDO_LIBS} -lnsl"; LIBS="${LIBS} -lnsl"], AC_CHECK_LIB(inet, inet_addr, [SUDO_LIBS="${SUDO_LIBS} -linet"; LIBS="${LIBS} -linet"], AC_MSG_WARN(unable to find socket() trying -lsocket -lnsl) AC_CHECK_FUNC(inet_addr, ,AC_CHECK_LIB(nsl, inet_addr, [NET_LIBS="${NET_LIBS} -lnsl"; LIBS="${LIBS} -lnsl"], AC_CHECK_LIB(inet, inet_addr, [NET_LIBS="${NET_LIBS} -linet"; LIBS="${LIBS} -linet"], AC_MSG_WARN(unable to find socket() trying -lsocket -lnsl)
AC_CHECK_LIB(socket, inet_addr, [SUDO_LIBS="${SUDO_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"], , -lnsl)))) AC_CHECK_LIB(socket, inet_addr, [NET_LIBS="${NET_LIBS} -lsocket -lnsl"; LIBS="${LIBS} -lsocket -lnsl"], , -lnsl))))
dnl dnl
dnl If syslog(3) not in libc, check -lsocket, -lnsl and -linet dnl If syslog(3) not in libc, check -lsocket, -lnsl and -linet
dnl dnl
AC_CHECK_FUNC(syslog, ,AC_CHECK_LIB(socket, syslog, [SUDO_LIBS="${SUDO_LIBS} -lsocket"; LIBS="${LIBS} -lsocket"], AC_CHECK_LIB(nsl, syslog, [SUDO_LIBS="${SUDO_LIBS} -lnsl"; LIBS="${LIBS} -lnsl"], AC_CHECK_LIB(inet, syslog, [SUDO_LIBS="${SUDO_LIBS} -linet"; LIBS="${LIBS} -linet"])))) AC_CHECK_FUNC(syslog, ,AC_CHECK_LIB(socket, syslog, [NET_LIBS="${NET_LIBS} -lsocket"; LIBS="${LIBS} -lsocket"], AC_CHECK_LIB(nsl, syslog, [NET_LIBS="${NET_LIBS} -lnsl"; LIBS="${LIBS} -lnsl"], AC_CHECK_LIB(inet, syslog, [NET_LIBS="${NET_LIBS} -linet"; LIBS="${LIBS} -linet"]))))
dnl dnl
dnl Bison and DCE use alloca(3), if not in libc, use the sudo one (from gcc) dnl Bison and DCE use alloca(3), if not in libc, use the sudo one (from gcc)
dnl (gcc includes its own alloca(3) but other compilers may not) dnl (gcc includes its own alloca(3) but other compilers may not)
@ -1671,6 +1668,21 @@ else
fi fi
fi fi
dnl
dnl LIBS may contain duplicates from SUDO_LIBS or NET_LIBS so prune it.
dnl
if test -n "$LIBS"; then
L="$LIBS"
LIBS=
for l in ${L}; do
dupe=0
for sl in ${SUDO_LIBS} ${NET_LIBS}; do
test $l = $sl && dupe=1
done
test $dupe = 0 && LIBS="${LIBS} $l"
done
fi
dnl dnl
dnl Set exec_prefix dnl Set exec_prefix
dnl dnl