Annotation of tme/configure.in, revision 1.1.1.1

1.1       root        1: dnl Process this file with autoconf to produce a configure script.
                      2: 
                      3: dnl $Id: configure.in,v 1.6 2003/05/18 00:04:39 fredette Exp $
                      4: 
                      5: dnl acinclude.m4 - additional tme autoconf macros:
                      6: 
                      7: dnl Copyright (c) 2001, 2003 Matt Fredette
                      8: dnl All rights reserved.
                      9: dnl
                     10: dnl Redistribution and use in source and binary forms, with or without
                     11: dnl modification, are permitted provided that the following conditions
                     12: dnl are met:
                     13: dnl 1. Redistributions of source code must retain the above copyright
                     14: dnl    notice, this list of conditions and the following disclaimer.
                     15: dnl 2. Redistributions in binary form must reproduce the above copyright
                     16: dnl    notice, this list of conditions and the following disclaimer in the
                     17: dnl    documentation and/or other materials provided with the distribution.
                     18: dnl 3. All advertising materials mentioning features or use of this software
                     19: dnl    must display the following acknowledgement:
                     20: dnl      This product includes software developed by Matt Fredette.
                     21: dnl 4. The name of the author may not be used to endorse or promote products
                     22: dnl    derived from this software without specific prior written permission.
                     23: dnl
                     24: dnl THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     25: dnl IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
                     26: dnl WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
                     27: dnl DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
                     28: dnl INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
                     29: dnl (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
                     30: dnl SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     31: dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
                     32: dnl STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
                     33: dnl ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     34: dnl POSSIBILITY OF SUCH DAMAGE.
                     35: 
                     36: dnl Checks that we are given a good source directory.
                     37: AC_INIT(ic/m68k/m68k-impl.h)
                     38: AC_CANONICAL_SYSTEM
                     39: AM_INIT_AUTOMAKE(tme, 0.0)
                     40: 
                     41: dnl Write configuration out to config.h through config.h.in.
                     42: AM_CONFIG_HEADER(config.h)
                     43: 
                     44: dnl Checks for programs.
                     45: AC_PROG_CC
                     46: AC_PROG_CPP
                     47: AC_PROG_YACC
                     48: AC_PROG_INSTALL
                     49: AC_PROG_MAKE_SET
                     50: 
                     51: dnl Checks for header files.
                     52: AC_HEADER_STDC
                     53: AC_CHECK_HEADERS(unistd.h stdio.h memory.h stdarg.h)
                     54: AC_CHECK_HEADERS(sys/ioctl.h sys/sockio.h sys/socketio.h net/if_dl.h ioctls.h)
                     55: 
                     56: dnl Checks for typedefs, structures, and compiler characteristics.
                     57: AC_C_BIGENDIAN
                     58: AC_C_CONST
                     59: AC_C_INLINE
                     60: AC_CHECK_SIZEOF(long, 4)
                     61: AC_CHECK_SIZEOF(int, 4)
                     62: AC_CHECK_SIZEOF(short, 2)
                     63: if test $ac_cv_sizeof_int != 4 && test $ac_cv_sizeof_long != 4; then
                     64:   AC_MSG_ERROR([can't find a 32-bit type])
                     65: fi
                     66: if test $ac_cv_sizeof_int != 2 && test $ac_cv_sizeof_short != 2; then
                     67:   AC_MSG_ERROR([can't find a 16-bit type])
                     68: fi
                     69: AC_CHECK_ALIGNOF(32)
                     70: AC_CHECK_ALIGNOF(16)
                     71: AC_CHECK_SHIFTMAX(8)
                     72: AC_CHECK_SHIFTMAX(16)
                     73: AC_CHECK_SHIFTMAX(32)
                     74: AC_SYS_SOCKADDR_SA_LEN
                     75: 
                     76: dnl Checks for library functions and prototypes.
                     77: AC_PROG_GCC_TRADITIONAL
                     78: AC_FUNC_MEMCMP
                     79: AC_FUNC_MMAP
                     80: 
                     81: dnl Checks for perl.
                     82: AC_PATH_PROGS(PERL, perl4.036 perl4 perl perl5, no)
                     83: AC_SUBST(PERL)
                     84: 
                     85: dnl Checks for AF_LINK.
                     86: AC_MSG_CHECKING([for AF_LINK support])
                     87: AC_EGREP_CPP(_tme_has_af_link,
                     88: [
                     89: #include <sys/socket.h>
                     90: #ifdef AF_LINK
                     91: _tme_has_af_link
                     92: #endif
                     93: ], [ 
                     94: AC_MSG_RESULT(yes)
                     95: AC_DEFINE(HAVE_AF_LINK, [], [Define if you have AF_LINK.])
                     96: ], [
                     97: AC_MSG_RESULT(no)
                     98: ])
                     99: 
                    100: dnl Checks for BPF.
                    101: tme_raw_type=
                    102: AC_CHECK_HEADER(net/bpf.h, [tme_raw_type=bpf])
                    103: AC_MSG_CHECKING([for raw Ethernet access method])
                    104: if test x$tme_raw_type = x; then
                    105:   AC_MSG_ERROR([can't find any raw Ethernet access method])
                    106: fi
                    107: AC_MSG_RESULT($tme_raw_type)
                    108: 
                    109: dnl Configures for the system(s) to emulate.
                    110: systems=all
                    111: if echo " ${systems} " | grep ' all ' > /dev/null 2>&1; then
                    112:   systems="sun2"
                    113: fi
                    114: TME_MACHINE_SUBDIRS=
                    115: TME_IC_SUBDIRS=
                    116: TME_ICS=
                    117: TME_BUS_SUBDIRS=
                    118: for system in $systems; do
                    119: 
                    120:     # dispatch on the machine type to get more machines, ICs, and
                    121:     # buses to compile:
                    122:     case ${system} in
                    123: 
                    124:     # the sun2:
                    125:     sun2)
                    126:        machines="sun sun2"
                    127:        ics="m68k am9513 mm58167 z8530"
                    128:        buses="multibus"
                    129:        ;;
                    130: 
                    131:     *)
                    132:        AC_MSG_ERROR([don't know how to emulate ${machine}])
                    133:        ;;
                    134:     esac
                    135: 
                    136:     # add in the new machines, ICs, and buses to compile:
                    137:     for machine in $machines; do
                    138:        if echo " ${TME_MACHINE_SUBDIRS} " | grep " ${machine} " > /dev/null 2>&1; then :; else
                    139:            TME_MACHINE_SUBDIRS="${TME_MACHINE_SUBDIRS} ${machine}"
                    140:        fi
                    141:     done
                    142:     for ic in $ics; do
                    143:        if test -d ic/$ic; then
                    144:            if echo " ${TME_IC_SUBDIRS} " | grep " ${ic} " > /dev/null 2>&1; then :; else
                    145:                TME_IC_SUBDIRS="${TME_IC_SUBDIRS} ${ic}"
                    146:            fi
                    147:        else
                    148:            ic="tme_ic_${ic}.la"
                    149:            if echo " ${TME_ICS} " | grep " ${ic} " > /dev/null 2>&1; then :; else
                    150:                TME_ICS="${TME_ICS} ${ic}"
                    151:            fi
                    152:        fi
                    153:     done
                    154:     for bus in $buses; do
                    155:        if echo " ${TME_BUS_SUBDIRS} " | grep " ${bus} " > /dev/null 2>&1; then :; else
                    156:            TME_BUS_SUBDIRS="${TME_BUS_SUBDIRS} ${bus}"
                    157:        fi
                    158:     done
                    159: done
                    160: TME_HOSTS="posix bsd"
                    161: AC_SUBST(TME_MACHINE_SUBDIRS)
                    162: AC_SUBST(TME_IC_SUBDIRS)
                    163: AC_SUBST(TME_ICS)
                    164: AC_SUBST(TME_BUS_SUBDIRS)
                    165: AC_SUBST(TME_HOSTS)
                    166: 
                    167: dnl Configure for libtool.
                    168: AC_LIBLTDL_INSTALLABLE
                    169: AC_SUBST(INCLTDL)
                    170: AC_SUBST(LIBLTDL)
                    171: AC_LIBTOOL_DLOPEN
                    172: AM_PROG_LIBTOOL
                    173: AC_SUBST(LTLIBOBJS)
                    174: AC_CONFIG_SUBDIRS(libltdl)
                    175: TME_PREOPEN=
                    176: if test $enable_shared = no; then
                    177:   TME_PREOPEN='`sort -u $(top_builddir)/tme-preopen.txt`'
                    178: fi
                    179: AC_SUBST(TME_PREOPEN)
                    180: 
                    181: dnl Configure debugging and/or warnings.
                    182: AC_ARG_ENABLE(debug,
                    183: [  --disable-debug         don't compile debuggable libraries and programs (default=do)],
                    184: [ ], [enable_debug=yes])
                    185: if test "x$enable_debug" = "xyes"; then
                    186:   CFLAGS="${CFLAGS-} -g -O0"
                    187:   CXXFLAGS="${CXXFLAGS-} -g3 -O0"
                    188: fi
                    189: AC_ARG_ENABLE(warnings,
                    190: [  --disable-warnings      don't compile with warnings turned on (default=do)],
                    191: [ ], [enable_warnings=yes])
                    192: if test "x$enable_warnings" = "xyes" -a "x$GCC" = "xyes"; then
                    193:   CFLAGS="${CFLAGS-} -Wall -Werror"
                    194:   CXXFLAGS="${CXXFLAGS-} -W"
                    195: fi
                    196: 
                    197: dnl Generate tmeconfig.h.  The whether-to-generate logic is cribbed 
                    198: dnl from glib-1.2.1's configure.in.
                    199: dnl See that file for an explanation.
                    200: AC_OUTPUT_COMMANDS([
                    201:           
                    202: ## Generate our configure-time sources in two 
                    203: ## cases:
                    204: ## 1. `config.status' is run either explicitly, or via configure.
                    205: ##     Esp. not when it is run in `Makefile' to generate makefiles and
                    206: ##     config.h
                    207: ## 2. CONFIG_OTHER is set explicitly
                    208: ##
                    209: ## Case 1 is difficult.  We know that `automake' sets one of
                    210: ## CONFIG_FILES or CONFIG_HEADERS to empty.  This heuristic works
                    211: ## only when AM_CONFIG_HEADER is set, however.
                    212: 
                    213: case "x$CONFIG_OTHER" in
                    214: *tmeconfig.h) gen_tmeconfig_h=yes
                    215: ;;
                    216: esac
                    217: if test -n "${CONFIG_FILES}" && test -n "${CONFIG_HEADERS}"; then
                    218:   # Both CONFIG_FILES and CONFIG_HEADERS are non-empty ==> Case 1
                    219:   if test "x${CONFIG_OTHER}" = x; then
                    220:     gen_tmeconfig_h=yes
                    221:   fi
                    222: fi
                    223: 
                    224: ## If we're generating tmeconfig.h:
                    225: if test "x$gen_tmeconfig_h" = xyes; then
                    226:   outfile=tmeconfig.h
                    227:   echo "$as_me: creating $outfile"
                    228:   cat <<TMEEOF > ${outfile}-tmp
                    229: /* tmeconfig.h
                    230:  * 
                    231:  * This is an automatically generated file - please modify 'configure.in'.
                    232:  */
                    233: 
                    234: #ifndef _TMECONFIG_H
                    235: #define _TMECONFIG_H
                    236: 
                    237: TMEEOF
                    238:   (for word in HAVE_ TIME_ PROTO_ ALIGNOF_ WORDS_BIGENDIAN; do \
                    239:     grep $word config.h | sed 's/#define[      ]\{1,\}/&_TME_/' ; \
                    240:   done) | sort | uniq >> ${outfile}-tmp
                    241:   echo '#define TME_RELEASE_MAJOR (' \
                    242:     `echo $VERSION | sed -e 's,^\([0-9][0-9]*\)\.[0-9][0-9]*$,\1,'` ')' >> ${outfile}-tmp
                    243:   echo '#define TME_RELEASE_MINOR (' \
                    244:     `echo $VERSION | sed -e 's,^[0-9][0-9]*\.\([0-9][0-9]*\)$,\1,'` ')' >> ${outfile}-tmp
                    245:   echo '#define TME_BUILD_TARGET "'$target'"' >> ${outfile}-tmp
                    246:   if test $ac_cv_sizeof_int = 4; then
                    247:     echo 'typedef signed int tme_int32_t;' >> ${outfile}-tmp
                    248:     echo 'typedef unsigned int tme_uint32_t;' >> ${outfile}-tmp
                    249:   elif test $ac_cv_sizeof_long = 4; then
                    250:     echo 'typedef signed long tme_int32_t;' >> ${outfile}-tmp
                    251:     echo 'typedef unsigned long tme_uint32_t;' >> ${outfile}-tmp
                    252:   fi
                    253:   if test $ac_cv_sizeof_int = 2; then
                    254:     echo 'typedef signed int tme_int16_t;' >> ${outfile}-tmp
                    255:     echo 'typedef unsigned int tme_uint16_t;' >> ${outfile}-tmp
                    256:   elif test $ac_cv_sizeof_short = 2; then
                    257:     echo 'typedef signed short tme_int16_t;' >> ${outfile}-tmp
                    258:     echo 'typedef unsigned short tme_uint16_t;' >> ${outfile}-tmp
                    259:   fi
                    260:   echo 'typedef signed char tme_int8_t;' >> ${outfile}-tmp
                    261:   echo 'typedef unsigned char tme_uint8_t;' >> ${outfile}-tmp
                    262:   cat <<TMEEOF >> ${outfile}-tmp
                    263: 
                    264: /* features that aren't currently controlled by a configure option: */
                    265: #define TME_THREADS_SJLJ
                    266: 
                    267: #endif /* !_TMECONFIG_H */
                    268: TMEEOF
                    269:   if cmp -s ${outfile}-tmp $outfile; then
                    270:     echo "$as_me: $outfile is unchanged"
                    271:     rm -f ${outfile}-tmp
                    272:   else
                    273:     mv ${outfile}-tmp ${outfile}
                    274:   fi
                    275: fi
                    276: ], [
                    277: PACKAGE="$PACKAGE"
                    278: VERSION="$VERSION"
                    279: target="$target"
                    280: ac_cv_sizeof_int="$ac_cv_sizeof_int"
                    281: ac_cv_sizeof_long="$ac_cv_sizeof_long"
                    282: ac_cv_sizeof_short="$ac_cv_sizeof_short"
                    283: ])
                    284: 
                    285: dnl Writes files.
                    286: AC_OUTPUT(Makefile
                    287:          tme/Makefile
                    288:          tme/ic/Makefile
                    289:          tme/machine/Makefile
                    290:          tme/generic/Makefile
                    291:          libtme/Makefile
                    292:          ic/Makefile
                    293:          ic/m68k/Makefile
                    294:          machine/Makefile
                    295:          machine/sun/Makefile
                    296:          machine/sun2/Makefile
                    297:           host/Makefile
                    298:           host/posix/Makefile
                    299:           host/bsd/Makefile
                    300:           bus/Makefile
                    301:           bus/multibus/Makefile
                    302:           generic/Makefile
                    303:          tmesh/Makefile)
                    304: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.