X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=configure.in;h=d6e62aeeeda6e5211a7fe5a278adc0c0a2a0e53c;hb=b5ff45729d9dbce2566667882062489176f23bb7;hp=c350b347de05ec957d39e2d0f65a4b8e1be4b070;hpb=4d5a2476af14d92fdefdf379ad61be43b070f0c5;p=pf3gnuchains%2Fgcc-fork.git diff --git a/configure.in b/configure.in index c350b347de0..d6e62aeeeda 100644 --- a/configure.in +++ b/configure.in @@ -48,15 +48,9 @@ if [ "${enable_gdbgui}" = "yes" ] ; then host_libs="${host_libs} libgui" fi -# Set up configure/Makefile variables if libstdc++-v3 is to be built. -if [ "${enable_libstdcxx_v3}" = "yes" ] && test -d $srcdir/libstdc++-v3; then - libstdcxx_version="target-libstdc++-v3" - # Don't use libstdc++-v3's flags to configure/build itself. - libstdcxx_flags='`case $$dir in libstdc++-v3) ;; *) cat $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/libstdc++.INC 2>/dev/null || : ;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' -else - libstdcxx_version="target-libio target-libstdc++" - libstdcxx_flags='-isystem $$s/libstdc++ -isystem $$s/libstdc++/std -isystem $$s/libstdc++/stl -isystem $$s/libio -isystem $$r/$(TARGET_SUBDIR)/libio -L$$r/$(TARGET_SUBDIR)/libstdc++' -fi +libstdcxx_version="target-libstdc++-v3" +# Don't use libstdc++-v3's flags to configure/build itself. +libstdcxx_flags='`case $$dir in libstdc++-v3) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' # these tools are built for the host environment # Note, the powerpc-eabi build depends on sim occurring before gdb in order to @@ -78,7 +72,6 @@ target_libs="target-libiberty \ target-newlib \ target-librx \ ${libstdcxx_version} \ - target-libg++ \ target-libf2c \ target-libchill \ ${libgcj} @@ -311,7 +304,7 @@ if [ x${shared} = xyes ]; then arm*-*-*) host_makefile_frag="${host_makefile_frag} config/mh-armpic" ;; - hppa*-*-*) + parisc*-*-* | hppa*-*-*) host_makefile_frag="${host_makefile_frag} config/mh-papic" ;; i[3456]86-*-cygwin*) @@ -364,6 +357,13 @@ case "${target}" in powerpc-*-netware*) target_makefile_frag="${target_makefile_frag} config/mt-netware" ;; + alpha*-*-linux*) + target_makefile_frag="${target_makefile_frag} config/mt-linux" + target_makefile_frag="${target_makefile_frag} config/mt-alphaieee" + ;; + alpha*-*-*) + target_makefile_frag="${target_makefile_frag} config/mt-alphaieee" + ;; *-*-linux*) target_makefile_frag="${target_makefile_frag} config/mt-linux" ;; @@ -562,7 +562,7 @@ case "${host}" in noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext" ;; i[3456]86-*-go32* | i[3456]86-*-msdosdjgpp*) - noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv gettext libffi" + noconfigdirs="tcl tk expect dejagnu send-pr uudecode guile apache inet itcl tix db snavigator gnuserv libffi" ;; i[3456]86-*-mingw32*) # noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr uudecode dejagnu diff guile perl apache inet itcl tix db snavigator gnuserv" @@ -572,7 +572,7 @@ case "${host}" in noconfigdirs="$noconfigdirs tk itcl tix libgui gdb" ;; *-*-cygwin*) - noconfigdirs="autoconf automake send-pr rcs guile perl texinfo apache inet" + noconfigdirs="autoconf automake send-pr rcs guile perl apache inet" ;; *-*-netbsd*) noconfigdirs="rcs" @@ -585,9 +585,28 @@ case "${host}" in ;; esac +# Save it here so that, even in case of --enable-libgcj, if the Java +# front-end isn't enabled, we still get libgcj disabled. +libgcj_saved=$libgcj +case $enable_libgcj in +yes) + # If we reset it here, it won't get added to noconfigdirs in the + # target-specific build rules, so it will be forcibly enabled + # (unless the Java language itself isn't enabled). + libgcj= + ;; +no) + # Make sure we get it printed in the list of not supported target libs. + noconfigdirs="$noconfigdirs ${libgcj}" + ;; +esac + case "${target}" in + *-*-chorusos) + noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" + ;; *-*-netware) - noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-newlib target-libiberty target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-newlib target-libiberty target-libgloss ${libgcj}" ;; *-*-rtems*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -614,6 +633,11 @@ case "${target}" in # newlib is not 64 bit ready noconfigdirs="$noconfigdirs target-newlib target-libgloss ${libgcj}" ;; + sh-*-linux*) + noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss" + # linux has rx in libc + skipdirs="$skipdirs target-librx" + ;; sh*-*-pe|mips*-*-pe|*arm-wince-pe) noconfigdirs="$noconfigdirs ${libgcj}" noconfigdirs="$noconfigdirs target-examples" @@ -651,7 +675,7 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; c4x-*-*) - noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}" ;; c54x*-*-* | tic54x-*-*) noconfigdirs="$noconfigdirs ${libstdcxx_version} target-libgloss ${libgcj} gcc gdb newlib" @@ -695,27 +719,36 @@ case "${target}" in arm-*-riscix*) noconfigdirs="$noconfigdirs ld target-libgloss ${libgcj}" ;; + cris-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; d10v-*-*) - noconfigdirs="$noconfigdirs target-librx target-libg++ ${libstdcxx_version} target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-librx ${libstdcxx_version} target-libgloss ${libgcj}" ;; d30v-*-*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; fr30-*-elf*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi ;; h8300*-*-* | \ h8500-*-*) - noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}" + ;; + hppa*64*-*-linux* | parisc*64*-*-linux*) + # In this case, it's because the hppa64-linux target is for + # the kernel only at this point and has no libc, and thus no + # headers, crt*.o, etc., all of which are needed by these. + noconfigdirs="$noconfigdirs target-zlib" ;; hppa*-*-*elf* | \ - hppa*-*-linux* | \ + parisc*-*-linux* | hppa*-*-linux* | \ hppa*-*-lites* | \ hppa*64*-*-*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" # Do configure ld/binutils/gas for this case. ;; hppa*-*-*) @@ -726,6 +759,8 @@ case "${target}" in "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;; *) ;; esac + # According to Alexandre Oliva , libjava won't + # build on HP-UX 10.20. noconfigdirs="$noconfigdirs ld shellutils ${libgcj}" ;; ia64*-*-elf*) @@ -733,21 +768,13 @@ case "${target}" in noconfigdirs="$noconfigdirs tix readline mmalloc libgui itcl gdb" ;; i[3456]86-*-coff | i[3456]86-*-elf) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" fi ;; - i[3456]86-*-go32* | i[3456]-*-msdosdjgpp*) - # but don't build gdb - noconfigdirs="$noconfigdirs gdb target-libg++ ${libstdcxx_version} target-librx ${libgcj}" - ;; - i[3456]86-*-linux*) - # linux has rx in libc - skipdirs="$skipdirs target-librx" - ;; *-*-linux*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs target-newlib target-libgloss" # linux has rx in libc skipdirs="$skipdirs target-librx" ;; @@ -776,7 +803,7 @@ case "${target}" in esac ;; i[3456]86-*-pe) - noconfigdirs="$noconfigdirs target-libg++ ${libstdcxx_version} target-librx target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs ${libstdcxx_version} target-librx target-libgloss ${libgcj}" ;; i[3456]86-*-sco3.2v5*) # The linker does not yet know about weak symbols in COFF, @@ -787,7 +814,7 @@ case "${target}" in noconfigdirs="$noconfigdirs gprof target-libgloss ${libgcj}" ;; i[3456]86-*-solaris2*) - noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs target-libgloss" ;; i[3456]86-*-sysv4*) # The SYSV4 C compiler doesn't handle Emacs correctly @@ -801,18 +828,24 @@ case "${target}" in i[3456]86-*-beos*) noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; + m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*) + noconfigdirs="$noconfigdirs target-libiberty ${libstdcxx_version} ${libgcj}" + ;; m68k-*-elf*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; m68k-*-coff*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-cygmon" fi ;; + mmix-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; mn10200-*-*) noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then @@ -848,7 +881,7 @@ case "${target}" in noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" ;; powerpc-*-eabi) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi @@ -879,6 +912,10 @@ case "${target}" in mips*-*-irix6*) # The GNU assembler does not support IRIX 6. # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work) + # Linking libjava exceeds command-line length limits on at least + # IRIX 6.2, but not on IRIX 6.5. + # Also, boehm-gc won't build on IRIX 6.5, according to Jeffrey Oldham + # noconfigdirs="$noconfigdirs gas gprof emacs target-libgloss ${libgcj}" ;; mips*-dec-bsd*) @@ -907,7 +944,6 @@ case "${target}" in noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" ;; sparc-*-elf*) - noconfigdirs="${libgcj}" if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" fi @@ -916,24 +952,34 @@ case "${target}" in if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-libstub target-cygmon" fi - noconfigdirs="${libgcj}" ;; sparclite-*-*) if [ x${is_cross_compiler} != xno ] ; then target_configdirs="${target_configdirs} target-bsp target-libstub target-cygmon" fi - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; sparc-*-sunos4*) - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" if [ x${is_cross_compiler} != xno ] ; then noconfigdirs="$noconfigdirs gdb gdbtest target-newlib target-libgloss" else use_gnu_ld=no fi ;; + sparc-*-solaris*) + case "${host}" in + sparc-*-solaris2.8) + # According to Gerald Pfeifer , libjava + # won't build correctly on Solaris 8 if there's a + # previously-installed version of GCC in the configured prefix. + # This problem does not show up on earlier versions of Solaris. + noconfigdirs="$noconfigdirs ${libgcj}" + ;; + esac + ;; v810-*-*) - noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libg++ ${libstdcxx_version} opcodes target-libgloss ${libgcj}" + noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld ${libstdcxx_version} opcodes target-libgloss ${libgcj}" ;; v850-*-*) noconfigdirs="$noconfigdirs target-libgloss ${libgcj}" @@ -957,8 +1003,11 @@ case "${target}" in *-*-mpw*) # Macs want a resource compiler. configdirs="$configdirs grez" - noconfigdirs="${libgcj}" + noconfigdirs="$noconfigdirs ${libgcj}" ;; + *-*-*) + noconfigdirs="$noconfigdirs ${libgcj}" + ;; esac # If we aren't building newlib, then don't build libgloss, since libgloss @@ -980,6 +1029,93 @@ if [ x$with_gnu_as = xno ]; then noconfigdirs="$noconfigdirs gas" fi +# Figure out what language subdirectories are present. +# Look if the user specified --enable-languages="..."; if not, use +# the environment variable $LANGUAGES if defined. $LANGUAGES might +# go away some day. +# NB: embedded tabs in this IF block -- do not untabify +if test x"${enable_languages+set}" != xset; then + if test x"${LANGUAGES+set}" = xset; then + enable_languages="${LANGUAGES}" + echo configure.in: warning: setting LANGUAGES is deprecated, use --enable-languages instead 1>&2 + else + enable_languages=all + fi +else + if test x"${enable_languages}" = x || + test x"${enable_languages}" = xyes; + then + echo configure.in: --enable-languages needs at least one language argument 1>&2 + exit 1 + fi +fi +enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'` + +# First scan to see if an enabled language requires some other language. +# We assume that a given config-lang.in will list all the language +# front ends it requires, even if some are required indirectly. +for lang in ${srcdir}/gcc/*/config-lang.in .. +do + case $lang in + ..) + ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[*]/config-lang.in) + ;; + *) + lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` + this_lang_requires=`sed -n -e 's,^lang_requires=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_requires=\([^ ]*\).*$,\1,p' $lang` + for other in $this_lang_requires + do + case ,${enable_languages}, in + *,$other,*) + ;; + *,all,*) + ;; + *,$lang_alias,*) + echo " \`$other' language required by \`$lang_alias'; enabling" 1>&2 + enable_languages="$enable_languages,$other" + ;; + esac + done + ;; + esac +done + +subdirs= +for lang in ${srcdir}/gcc/*/config-lang.in .. +do + case $lang in + ..) ;; + # The odd quoting in the next line works around + # an apparent bug in bash 1.12 on linux. + ${srcdir}/gcc/[*]/config-lang.in) ;; + *) + lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang` + this_lang_libs=`sed -n -e 's,^target_libs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^target_libs=\([^ ]*\).*$,\1,p' $lang` + this_lang_dirs=`sed -n -e 's,^lang_dirs=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^lang_dirs=\([^ ]*\).*$,\1,p' $lang` + build_by_default=`sed -n -e 's,^build_by_default=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^build_by_default=\([^ ]*\).*$,\1,p' $lang` + if test "x$lang_alias" = x + then + echo "$lang doesn't set \$language." 1>&2 + exit 1 + fi + case ${build_by_default},${enable_languages}, in + *,$lang_alias,*) add_this_lang=yes ;; + no,*) add_this_lang=no ;; + *,all,*) add_this_lang=yes ;; + *) add_this_lang=no ;; + esac + if test x"${add_this_lang}" = xyes; then + eval target_libs='"$target_libs "'\"$this_lang_libs\" + else + eval noconfigdirs='"$noconfigdirs "'\"$this_lang_libs $this_lang_dirs\" + fi + ;; + esac +done + # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and # $target_configdirs. # If we have the source for $noconfigdirs entries, add them to $notsupp. @@ -1114,7 +1250,7 @@ fi if [ x${shared} = xyes ]; then case "${target}" in - hppa*) + hppa* | parisc*) target_makefile_frag="${target_makefile_frag} config/mt-papic" ;; i[3456]86-*) @@ -1171,7 +1307,7 @@ rm -f conftest* case "${host}" in sparc-sun-solaris2*) CCBASE="`echo ${CC-cc} | sed 's/ .*$//'`" - if [ "`/usr/bin/which $CCBASE`" = "/usr/ucb/cc" ] ; then + if [ "`type $CCBASE | sed 's/^[^/]*//'`" = "/usr/ucb/cc" ] ; then could_use= [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin" if [ -d /opt/cygnus/bin ] ; then @@ -1244,7 +1380,7 @@ fi # provide a proper gxx_include_dir. # Note, if you change the default, make sure to fix both here and in -# the gcc, libio, libstdc++ and libg++ subdirectories. +# the gcc and libstdc++-v3 subdirectories. # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given. gxx_include_dir= if test -n "${with_gxx_include_dir}"; then @@ -1265,7 +1401,7 @@ if test x${gxx_include_dir} = x; then gxx_include_dir='${libsubdir}/include/g++' else . ${topsrcdir}/config.if - gxx_include_dir='${prefix}/include/g++'-${libstdcxx_interface} + gxx_include_dir='${prefix}/include/${libstdcxx_incdir}' fi else gxx_include_dir=${gxx_include_dir} @@ -1364,10 +1500,20 @@ case $CHILL_FOR_TARGET in *) CHILL_FOR_TARGET=$CHILL_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; esac +if test "x${GCJ_FOR_TARGET+set}" = xset; then + : +elif test -d ${topsrcdir}/gcc; then + GCJ_FOR_TARGET='$$r/gcc/gcj -B$$r/gcc/' +elif test "$host" = "$target"; then + GCJ_FOR_TARGET='gcj' +else + GCJ_FOR_TARGET=`echo gcj | sed -e 's/x/x/' ${program_transform_name}` +fi + if test "x${CXX_FOR_TARGET+set}" = xset; then : elif test -d ${topsrcdir}/gcc; then - CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3) echo xgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags elif test "$host" = "$target"; then CXX_FOR_TARGET='$(CXX)' else @@ -1377,7 +1523,15 @@ case $CXX_FOR_TARGET in *' $(FLAGS_FOR_TARGET)') ;; *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; esac -qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,&,\\\&,g'` +qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` + +# We want to defer the evaluation of `cmd`s and shell variables in +# CXX_FOR_TARGET when recursing in the top-level Makefile, such as for +# bootstrap. We'll enclose CXX_FOR_TARGET_FOR_RECURSIVE_MAKE in single +# quotes, but we still have to duplicate `$'s so that shell variables +# can be expanded by the nested make as shell variables, not as make +# macros. +qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}" sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \ @@ -1385,7 +1539,9 @@ sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" -e "s%^FLAGS_FOR_TARGET[ ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \ -e "s%^CC_FOR_TARGET[ ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \ -e "s%^CHILL_FOR_TARGET[ ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \ + -e "s%^GCJ_FOR_TARGET[ ]*=.*$%GCJ_FOR_TARGET = ${GCJ_FOR_TARGET}%" \ -e "s%^CXX_FOR_TARGET[ ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%" \ + -e "s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[ ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%" \ -e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \ -e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \ Makefile > Makefile.tem