|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.