From 98821586155d36f5632a2973570fcbb173ddafbc Mon Sep 17 00:00:00 2001 From: "cls%seawood.org" Date: Mon, 23 Nov 1998 17:12:39 +0000 Subject: [PATCH] Check for libraries before functions and fixed detection of -c -o problem. Thanks to Tim Rice for pointing those out. Modified hcc & hcpp to work for any compiler that doesn't support -c -o, not just Unixware. They expect the real compiler to be the first argument now. git-svn-id: svn://10.0.0.236/trunk@15162 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/build/hcc | 27 +++------ mozilla/build/hcpp | 7 ++- mozilla/configure.in | 128 +++++++++++++++++++++++-------------------- 3 files changed, 81 insertions(+), 81 deletions(-) diff --git a/mozilla/build/hcc b/mozilla/build/hcc index 1b6297c58ac..ea33953948a 100755 --- a/mozilla/build/hcc +++ b/mozilla/build/hcc @@ -19,26 +19,16 @@ # # Fix brain-damaged compilers that don't understand -o and -c together # +CC=`echo $1 | sed -e "s|'||g" -e 's|"||g'` +shift DASH_C=0 DASH_O=0 for i in $* do [ "${CHECK_O}" = yes ] && { - case $i in - ./*.o) i="" ;; - *.o) if [ $i = `basename $i` ] - then - i="" - else - OPTS="${OPTS} -o" - DASH_O=1 - fi - ;; - *) OPTS="${OPTS} -o $i" - DASH_O=1 - i="" - ;; - esac + OBJECT=$i + OPTS="${OPTS} -o $i" + i="" CHECK_O=no } case $i in @@ -53,15 +43,12 @@ do *.s) S_SRC=$i OPTS="${OPTS} $i" ;; - *.o) OBJECT=$i - OPTS="${OPTS} $i" - ;; *) OPTS="${OPTS} $i" ;; esac done -cc ${OPTS} || exit $? +${CC} ${OPTS} || exit $? # if there was no -c and -o we're done [ $DASH_C = 1 -a $DASH_O = 1 ] || exit 0 @@ -71,4 +58,4 @@ cc ${OPTS} || exit $? # or the .o from the .s name [ $S_SRC ] && OBJ=`basename $S_SRC .s`.o -[ -f $OBJECT ] || [ -f $OBJ ] && mv -f $OBJ $OBJECT +[ -f $OBJECT ] || ( [ -f $OBJ ] && mv -f $OBJ $OBJECT ) diff --git a/mozilla/build/hcpp b/mozilla/build/hcpp index fe93cb06eba..61560135107 100755 --- a/mozilla/build/hcpp +++ b/mozilla/build/hcpp @@ -19,7 +19,8 @@ # # Wrapper for brain-damaged compilers that don't understand -o and -c together. # - +CXX=`echo $1 | sed -e "s|'||g" -e 's|"||g'` +shift DUMMY="XxxXxxX" DASH_C=0 DASH_O=0 @@ -61,7 +62,7 @@ do esac done -CC $* || exit $? +${CXX} $* || exit $? # LAME!!! if [ -f -O ]; then @@ -83,4 +84,4 @@ elif [ "${S_SRC}" != "${DUMMY}" ]; then OBJ=`basename ${S_SRC} .s`.o fi -[ -f ${OBJECT} ] || [ -f ${OBJ} ] && mv -f ${OBJ} ${OBJECT} +[ -f $OBJECT ] || ( [ -f $OBJ ] && mv -f $OBJ $OBJECT ) diff --git a/mozilla/configure.in b/mozilla/configure.in index 89e6bdd9cb2..34427b893d9 100644 --- a/mozilla/configure.in +++ b/mozilla/configure.in @@ -60,9 +60,12 @@ dnl ======================================================== AC_PROG_CC AC_PROG_CXX AC_PROG_CC_C_O -if test -n "$NO_MINUS_C_MINUS_O"; then - CC='${topsrcdir}/build/hcc' - CXX='${topsrcdir}/build/hcpp' +if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then + USING_HCC=1 + _OLDCC=$CC + _OLDCXX=$CXX + CC="${srcdir}/build/hcc '$CC'" + CXX="${srcdir}/build/hcpp '$CXX'" fi AC_PROG_CPP AC_PROG_CXXCPP @@ -87,12 +90,12 @@ if [ test "$no_x" != "yes" ]; then MOTIF_XINCS="-xif -I$x_includes" fi - MOTIF_VERSION=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS` - MOTIF_INCLUDES=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -if` - MOTIF_STATIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -sf` - MOTIF_DYNAMIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -df` - MOTIF_DYNAMIC_PATHS=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -dp` - MOTIF_REQUIRES_XPM=`${srcdir}/config/mkdetect/detect_motif.sh -cc $CC $MOTIF_XINCS -xpm` + MOTIF_VERSION=`${srcdir}/config/mkdetect/detect_motif.sh -cc '$CC' $MOTIF_XINCS` + MOTIF_INCLUDES=`${srcdir}/config/mkdetect/detect_motif.sh -cc '$CC' $MOTIF_XINCS -if` + MOTIF_STATIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc '$CC' $MOTIF_XINCS -sf` + MOTIF_DYNAMIC_FLAGS=`${srcdir}/config/mkdetect/detect_motif.sh -cc '$CC' $MOTIF_XINCS -df` + MOTIF_DYNAMIC_PATHS=`${srcdir}/config/mkdetect/detect_motif.sh -cc '$CC' $MOTIF_XINCS -dp` + MOTIF_REQUIRES_XPM=`${srcdir}/config/mkdetect/detect_motif.sh -cc '$CC' $MOTIF_XINCS -xpm` ${srcdir}/config/mkdetect/detect_motif.sh --cleanup fi @@ -183,6 +186,55 @@ AC_CHECK_HEADERS(fcntl.h limits.h malloc.h paths.h strings.h unistd.h) AC_CHECK_HEADERS(sys/bittypes.h sys/file.h sys/ioctl.h sys/time.h) AC_CHECK_HEADERS(getopt.h ioctl.h sys/cdefs.h filio.h systeminfo.h) +dnl Checks for libraries. +dnl ======================================================== +AC_CHECK_LIB(c_r, gethostbyname_r,, + AC_CHECK_LIB(c, strcpy)) +AC_CHECK_LIB(m, atan) +AC_CHECK_LIB(dl, dlopen) +if [ test -z "$GNU_CXX" ]; then + AC_CHECK_LIB(C, demangle) +fi +AC_CHECK_LIB(resolv, res_gethostbyaddr) +AC_CHECK_LIB(socket, getnetbyaddr) +AC_CHECK_LIB(util, login) +AC_CHECK_LIB(nsl, xdr_string) +AC_CHECK_LIB(elf, elf_rawdata) +AC_CHECK_LIB(intl, textdomain) +AC_CHECK_LIB(posix4, shm_open) +AC_CHECK_LIB(w, iswupper) +AC_CHECK_LIB(l, yywrap,, + AC_CHECK_LIB(fl, yywrap)) + +dnl Replace `main' with a function in -lC_r: +dnl AC_CHECK_LIB(C_r, main) +dnl Replace `main' with a function in -lSgm: +dnl AC_CHECK_LIB(Sgm, main) +dnl Replace `main' with a function in -laudio: +dnl AC_CHECK_LIB(audio, main) +dnl Replace `main' with a function in -ldld: +dnl AC_CHECK_LIB(dld, main) +dnl Replace `main' with a function in -ldnet_stub: +dnl AC_CHECK_LIB(dnet_stub, main) +dnl Replace `main' with a function in -lgen: +dnl AC_CHECK_LIB(gen, main) +dnl Replace `main' with a function in -lhash: +dnl AC_CHECK_LIB(hash, main) +dnl Replace `main' with a function in -lip6: +dnl AC_CHECK_LIB(ip6, main) +dnl Replace `main' with a function in -lipc: +dnl AC_CHECK_LIB(ipc, main) +dnl Replace `main' with a function in -lmalloc_cv: +dnl AC_CHECK_LIB(malloc_cv, main) +dnl Replace `main' with a function in -lPW: +dnl AC_CHECK_LIB(PW, main) +dnl Replace `main' with a function in -lots: +dnl AC_CHECK_LIB(ots, main) +dnl Replace `main' with a function in -lrt: +dnl AC_CHECK_LIB(rt, main) +dnl Replace `main' with a function in -lsvld: +dnl AC_CHECK_LIB(svld, main) + dnl Checks for library functions. dnl ======================================================== AC_FUNC_ALLOCA @@ -286,55 +338,6 @@ else fi CC=$_SAVE_CC -dnl Checks for libraries. -dnl ======================================================== -AC_CHECK_LIB(c_r, gethostbyname_r) -AC_CHECK_LIB(c, strcpy) -AC_CHECK_LIB(m, atan) -AC_CHECK_LIB(dl, dlopen) -if [ test -z "$GNU_CXX" ]; then - AC_CHECK_LIB(C, demangle) -fi -AC_CHECK_LIB(resolv, res_gethostbyaddr) -AC_CHECK_LIB(socket, getnetbyaddr) -AC_CHECK_LIB(util, login) -AC_CHECK_LIB(nsl, xdr_string) -AC_CHECK_LIB(elf, elf_rawdata) -AC_CHECK_LIB(intl, textdomain) -AC_CHECK_LIB(posix4, shm_open) -AC_CHECK_LIB(w, iswupper) -AC_CHECK_LIB(l, yywrap,, - AC_CHECK_LIB(fl, yywrap)) - -dnl Replace `main' with a function in -lC_r: -dnl AC_CHECK_LIB(C_r, main) -dnl Replace `main' with a function in -lSgm: -dnl AC_CHECK_LIB(Sgm, main) -dnl Replace `main' with a function in -laudio: -dnl AC_CHECK_LIB(audio, main) -dnl Replace `main' with a function in -ldld: -dnl AC_CHECK_LIB(dld, main) -dnl Replace `main' with a function in -ldnet_stub: -dnl AC_CHECK_LIB(dnet_stub, main) -dnl Replace `main' with a function in -lgen: -dnl AC_CHECK_LIB(gen, main) -dnl Replace `main' with a function in -lhash: -dnl AC_CHECK_LIB(hash, main) -dnl Replace `main' with a function in -lip6: -dnl AC_CHECK_LIB(ip6, main) -dnl Replace `main' with a function in -lipc: -dnl AC_CHECK_LIB(ipc, main) -dnl Replace `main' with a function in -lmalloc_cv: -dnl AC_CHECK_LIB(malloc_cv, main) -dnl Replace `main' with a function in -lPW: -dnl AC_CHECK_LIB(PW, main) -dnl Replace `main' with a function in -lots: -dnl AC_CHECK_LIB(ots, main) -dnl Replace `main' with a function in -lrt: -dnl AC_CHECK_LIB(rt, main) -dnl Replace `main' with a function in -lsvld: -dnl AC_CHECK_LIB(svld, main) - dnl Mozilla specific options dnl ======================================================== dnl nglayout only supports building with one toolkit @@ -864,6 +867,15 @@ AC_SUBST(DSO_CFLAGS) AC_SUBST(DSO_LDOPTS) AC_SUBST(DLL_SUFFIX) +if test "$USING_HCC"; then + CC='${topsrcdir}/build/hcc' + CC="$CC '$_OLDCC'" + CXX='${topsrcdir}/build/hcpp' + CXX="$CXX '$_OLDCXX'" + AC_SUBST(CC) + AC_SUBST(CXX) +fi + dnl Check for missing components if [ test "$no_x" != "yes" ]; then if [ test -n "$MISSING_X" ]; then