1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

configure: add some more error checking/reporting for required programs

A list of major things like ksh, cpp, etc are saved in a list if they
are not found.  If this list is non-empty when configure is nearly
done, an error message is displayed listing the missing programs.
This is less annoying than stopping after every missing programs.

Also, removed the X11/Xm header checks for now.  Those need to take
into account X_CFLAGS in some way since these files are located in
dirfferent areas on different OS's (obsd puts them in
/usr/X11R6/include for example).
This commit is contained in:
Jon Trulson 2020-01-02 18:28:02 -07:00
parent f634c682df
commit 3b1a54ca81

View file

@ -223,6 +223,14 @@ AC_SUBST(CDE_CONFIGURATION_TOP)
AC_SUBST(CDE_LOGFILES_TOP) AC_SUBST(CDE_LOGFILES_TOP)
AC_SUBST(CDE_USER_TOP) AC_SUBST(CDE_USER_TOP)
dnl This variable will contain a list of programs that were not found,
dnl but are required to build CDE. At the end, if the variable is
dnl non-empty, an error message will be printed, listing the missing
dnl programs. We don't bother with the simple expected commands like
dnl ln, cp, etc...
MISSING_PROGS=""
AC_PROG_CPP AC_PROG_CPP
dnl we need a real preprocessor, not gcc -E. We will call it GENCPP. dnl we need a real preprocessor, not gcc -E. We will call it GENCPP.
@ -233,16 +241,18 @@ dnl software such as tt_type_comp.
AC_SUBST(GENCPP, '$(top_builddir)/util/tradcpp/tradcpp') AC_SUBST(GENCPP, '$(top_builddir)/util/tradcpp/tradcpp')
AM_PROG_LIBTOOL AM_PROG_LIBTOOL
AC_PROG_YACC
dnl the above YACC macro sets YACC variable to 'yacc' even if no program
dnl is found, it's pants, so check it really exists here
dnl this doesn't quite work yet, as when YACC is set to 'bison -y' this dnl make sure it's installed
dnl goes wrong AC_PROG_YACC
dnl AC_CHECK_PROG(YACC_CHECK,YACC,yes) if test -z "$ac_cv_prog_YACC"; then
dnl AS_IF([test x"$YACC_CHECK" != x"yes"], [AC_MSG_ERROR([yacc/bison/byacc program not found])]) AC_MSG_ERROR([please install bison or yacc])
fi
AM_PROG_LEX AM_PROG_LEX
if test -z "$ac_cv_prog_LEX"; then
AC_MSG_ERROR([please install flex or lex])
fi
AC_PROG_INSTALL AC_PROG_INSTALL
AC_PROG_LN_S AC_PROG_LN_S
AC_PROG_MAKE_SET AC_PROG_MAKE_SET
@ -272,10 +282,16 @@ AC_FUNC_FORK
dnl programs with full paths dnl programs with full paths
AC_CHECK_PROG(KSH_CHECK, ksh, yes)
AS_IF([test x"$KSH_CHECK" != x"yes"], [AC_MSG_ERROR([ksh not found])])
AC_PATH_PROG(KSH, ksh) AC_PATH_PROG(KSH, ksh)
if test -z "$ac_cv_path_KSH"; then
MISSING_PROGS="ksh ${MISSING_PROGS}"
fi
AC_PATH_PROG(XRDB, xrdb) AC_PATH_PROG(XRDB, xrdb)
if test -z "$ac_cv_path_XRDB"; then
MISSING_PROGS="xrdb ${MISSING_PROGS}"
fi
dnl we need to use cpp for some things, like tooltalk and other dnl we need to use cpp for some things, like tooltalk and other
dnl runtime uses. So look for the system's cpp. NOTE: this is NOT dnl runtime uses. So look for the system's cpp. NOTE: this is NOT
dnl the CPP (gcc -E) set by AC_PROG_CPP. At this point I don't know dnl the CPP (gcc -E) set by AC_PROG_CPP. At this point I don't know
@ -283,22 +299,39 @@ dnl if we should even bother looking for that as we can't really use
dnl it. dnl it.
AC_PATH_PROG(CPP_PROGRAM, cpp, , AC_PATH_PROG(CPP_PROGRAM, cpp, ,
[/lib:/usr/bin:/usr/ccs/lib/:/usr/lib:/usr/libexec:/opt/langtools/lbin:$PATH]) [/lib:/usr/bin:/usr/ccs/lib/:/usr/lib:/usr/libexec:/opt/langtools/lbin:$PATH])
if test -z "$ac_cv_path_CPP_PROGRAM"; then
MISSING_PROGS="cpp ${MISSING_PROGS}"
fi
dnl programs dnl major external program dependencies
AC_CHECK_PROGS(BDFTOPCF, bdftopcf) AC_CHECK_PROGS(BDFTOPCF, bdftopcf)
if test -z "$ac_cv_prog_BDFTOPCF"; then
MISSING_PROGS="bdftopcf ${MISSING_PROGS}"
fi
AC_CHECK_PROGS(MKFONTDIR, mkfontdir) AC_CHECK_PROGS(MKFONTDIR, mkfontdir)
if test -z "$ac_cv_prog_MKFONTDIR"; then
MISSING_PROGS="mkfontdir ${MISSING_PROGS}"
fi
AC_CHECK_PROGS(GZIP, gzip) AC_CHECK_PROGS(GZIP, gzip)
if test -z "$ac_cv_prog_GZIP"; then
MISSING_PROGS="gzip ${MISSING_PROGS}"
fi
AC_CHECK_PROGS(M4, m4) AC_CHECK_PROGS(M4, m4)
if test -z "$ac_cv_prog_M4"; then
MISSING_PROGS="m4 ${MISSING_PROGS}"
fi
AC_CHECK_PROGS(RPCGEN, rpcgen) AC_CHECK_PROGS(RPCGEN, rpcgen)
if test -z "$ac_cv_prog_RPCGEN"; then
MISSING_PROGS="rpcgen ${MISSING_PROGS}"
fi
AC_CHECK_PROGS(GENCAT, gencat) AC_CHECK_PROGS(GENCAT, gencat)
if test -z "$ac_cv_prog_GENCAT"; then
MISSING_PROGS="gencat ${MISSING_PROGS}"
fi
dnl headers dnl headers
AC_HEADER_STDC AC_HEADER_STDC
AC_CHECK_HEADERS([locale.h]) AC_CHECK_HEADERS([locale.h])
AC_CHECK_HEADERS([Xm/Xm.h], ,[AC_MSG_ERROR([libxm headers not found])])
AC_CHECK_HEADERS([X11/Intrinsic.h], ,[AC_MSG_ERROR([libxt headers not found])])
AC_CHECK_HEADERS([X11/Xmu/Xmu.h], ,[AC_MSG_ERROR([libxmu headers not found])])
AC_CHECK_HEADERS([X11/extensions/scrnsaver.h], ,[AC_MSG_ERROR([libxss headers not found])])
AC_CHECK_HEADERS([jpeglib.h], ,[AC_MSG_ERROR([libjpeg headers not found])]) AC_CHECK_HEADERS([jpeglib.h], ,[AC_MSG_ERROR([libjpeg headers not found])])
dnl libraries dnl libraries
@ -328,6 +361,14 @@ AC_CHECK_LIB(Xm, XmTextSetString, [XTOOLLIB="-lXm ${XTOOLLIB}"], , [$MOTIF_LIB $
XTOOLLIB="${X_LIBS} ${MOTIF_LIB} ${X_EXTRA_LIBS} ${X_PRE_LIBS} ${XTOOLLIB}" XTOOLLIB="${X_LIBS} ${MOTIF_LIB} ${X_EXTRA_LIBS} ${X_PRE_LIBS} ${XTOOLLIB}"
AC_SUBST([XTOOLLIB]) AC_SUBST([XTOOLLIB])
dnl check MISSING_PROGS - error out here if there's stuff in it.
if test -n "$MISSING_PROGS"; then
AC_MSG_ERROR([Please install the following REQUIRED programs: ${MISSING_PROGS}])
fi
dnl set CPPFLAGS, CFLAGS, and CXXFLAGS. dnl set CPPFLAGS, CFLAGS, and CXXFLAGS.
dnl The Autoconf manual says that these are user variables and dnl The Autoconf manual says that these are user variables and
dnl shouldn't be modified. It suggests that you create a special dnl shouldn't be modified. It suggests that you create a special