home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / kaffe-0.5p4-src.tgz / tar.out / contrib / kaffe / configure.in < prev    next >
Text File  |  1996-10-03  |  9KB  |  361 lines

  1. dnl Process this file with autoconf to produce a configure script.
  2. AC_INIT(kaffe)
  3.  
  4. dnl Setup version number.
  5. KVER=0.5
  6.  
  7. dnl Find the machine type and setup the relevant links
  8. AC_CANONICAL_HOST
  9. changequote(<<, >>)dnl
  10. case "$host_cpu-$host_os" in
  11.  
  12. dnl =======================================================================
  13. dnl = Need a line here for each architecture we support.  This enables the
  14. dnl = configuration system to select the right files and fixup the bits
  15. dnl = it cant work out for itself.
  16. dnl =======================================================================
  17.  
  18. i[345]86-freebsd2*)
  19.     host_cpu=i386
  20.     host_os=freebsd2
  21.     PIC=-fPIC
  22.     LIBSHARE=-Bshareable
  23.     LIBEXT=.so
  24.     ;;
  25.  
  26. dnl -----------------------------------------------------------------------
  27. dnl This is an example configuration which doen't use shared libraries.
  28. dnl
  29. dnl i[345]86-freebsd2*)
  30. dnl    host_cpu=i386
  31. dnl    host_os=freebsd2
  32. dnl    KAFFEVMFLAGS=-DNO_SHARED_LIBRARIES
  33. dnl    NOSHAREDLIBS="-L../lib/native -L../lib/net -lkaffe_native -lkaffe_net"
  34. dnl    ;;
  35. dnl
  36. dnl -----------------------------------------------------------------------
  37.  
  38. i[345]86-linuxoldld)
  39.     AC_MSG_ERROR(This version of Linux is not supported)
  40.     ;;
  41.  
  42. i[345]86-linux*)
  43.     host_cpu=i386
  44.     host_os=linux
  45.     PIC=-fPIC
  46.     LIBSHARE=-shared
  47.     LIBEXT=.so
  48.     ;;
  49.  
  50. i[345]86-netbsd*)
  51.     host_cpu=i386
  52.     host_os=netbsd1
  53.     PIC=-fpic
  54.     LIBSHARE=-Bshareable
  55.     LIBEXT=.so
  56.     ;;
  57.  
  58. i[345]86-bsdi*)
  59.     host_cpu=i386
  60.     version=`echo $host_os | sed -e s/bsdi//`
  61.     host_os=bsdi
  62.     LIBSHARE=-r
  63.     CC=shlicc2
  64.     LDTAIL="-lc_s.$version -lm_s.$version"
  65.     ;;
  66.  
  67. i[345]86-solaris2*)
  68.     host_cpu=i386
  69.     host_os=solaris2
  70.     PIC=-fPIC
  71.     LIBSHARE=-G
  72.     LIBEXT=.so
  73.     ;;
  74.  
  75. i[345]86-sysv*)
  76.     host_cpu=i386
  77.     host_os=univel_svr4
  78.     PIC=-fPIC
  79.     LIBSHARE=-G
  80.     LIBEXT=.so
  81.     LDTAIL="-L/usr/ucblib -lucb -L/usr/local/lib/gcc-lib/i386-univel-sysv4.2MP/2.6.3 -Bstatic -lm -Bdynamic -lc -lgcc"
  82.     ;;
  83.  
  84. i[345]86-sco3.2v5*)
  85.     host_cpu=i386
  86.     host_os=sco3.2v5
  87.     PIC=-fPIC
  88.     LIBSHARE=-G
  89.     LIBEXT=.so
  90.     ;;
  91.  
  92. dnl -----------------------------------------------------------------------
  93. dnl Current use static kaffe version until I have time to fix NeXT config.
  94. dnl problems.
  95. dnl
  96. dnl i[345]86-nextstep3)
  97. dnl    host_cpu=i386 
  98. dnl    host_os=nextstep3
  99. dnl    LIBSHARE=-r
  100. dnl    KAFFEFLAGS="-seglinkedit -all_load"
  101. dnl    ;;
  102. dnl
  103. dnl -----------------------------------------------------------------------
  104.  
  105. i[345]86-nextstep3)
  106.     host_cpu=i386
  107.     host_os=nextstep3
  108.     KAFFEVMFLAGS=-DNO_SHARED_LIBRARIES
  109.     NOSHAREDLIBS="-L../lib/native -L../lib/net -lkaffe_native -lkaffe_net"
  110.     ;;
  111.  
  112. dnl -----------------------------------------------------------------------
  113. dnl This is the theoretical configurations for win32 Microsoft & Borland.
  114. dnl
  115.  
  116. i[345]86-win32bc)
  117.     host_cpu=i386
  118.     host_os=win32/bc
  119.     OBJEXT=.obj
  120.     LIBEXT=.dll
  121.     VPATHOPT=".c.path"
  122.     VPATHSEP=";"
  123.     ;;
  124.  
  125. i[345]86-win32msvc)
  126.     host_cpu=i386
  127.     host_os=win32/mscv
  128.     OBJEXT=.obj
  129.     LIBEXT=.dll
  130.     VPATHOPT="__VPATH_IGNORED"
  131.     ;;
  132. dnl 
  133. dnl -----------------------------------------------------------------------
  134.  
  135. sparc-netbsd*)
  136.     host_cpu=sparc
  137.     host_os=netbsd1
  138.     PIC=-fpic
  139.     LIBSHARE=-Bshareable
  140.     LIBEXT=.so
  141.     ;;
  142.  
  143. sparc-sunos4*)
  144.     host_cpu=sparc
  145.     host_os=sunos
  146.     PIC=-fPIC
  147.     LIBSHARE=-Bdynamic
  148.     LIBEXT=.so
  149.     ;;
  150.  
  151. sparc-solaris2*)
  152.     host_cpu=sparc
  153.     host_os=solaris2
  154.     PIC=-fPIC
  155.     LIBSHARE=-G
  156.     LIBEXT=.so
  157.     ;;
  158.  
  159. dnl -----------------------------------------------------------------------
  160. dnl Current use static kaffe version until I have time to fix NeXT config.
  161. dnl problems.
  162. dnl
  163. dnl sparc-nextstep3)
  164. dnl    host_cpu=sparc
  165. dnl    host_os=nextstep3
  166. dnl    LIBSHARE=-r
  167. dnl    KAFFEFLAGS="-seglinkedit -all_load"
  168. dnl    ;;
  169. dnl
  170. dnl -----------------------------------------------------------------------
  171.  
  172. sparc-nextstep3)
  173.     host_cpu=sparc
  174.     host_os=nextstep3
  175.     KAFFEVMFLAGS=-DNO_SHARED_LIBRARIES
  176.     NOSHAREDLIBS="-L../lib/native -L../lib/net -lkaffe_native -lkaffe_net"
  177.     ;;
  178.  
  179. powerpc-linux*)
  180.     host_cpu=powerpc
  181.     host_os=linux
  182.     CFLAGS=-fsigned-char
  183.     LDTAIL=-r
  184.     KAFFEVMFLAGS=-DNO_SHARED_LIBRARIES
  185.     NOSHAREDLIBS="-L../lib/native -L../lib/net -lkaffe_native -lkaffe_net"
  186.     ;;
  187.  
  188. m68k-amigaos*)
  189.     host_cpu=m68k
  190.     host_os=amigaos
  191.     CFLAGS="-g -O2 -fno-omit-frame-pointer"
  192.     KAFFEVMFLAGS=-DNO_SHARED_LIBRARIES
  193.     NOSHAREDLIBS="-L../lib/native -L../lib/net -lkaffe_native -lkaffe_net"
  194.     VPATHSEP=" "
  195.     ;;
  196.  
  197. dnl =======================================================================
  198. dnl = End of configurations
  199. dnl =======================================================================
  200.  
  201. *)
  202.     AC_MSG_ERROR(Configuration $host_cpu-$host_os not supported)
  203. esac
  204.  
  205. dnl =======================================================================
  206. dnl = Start of default configurations
  207. dnl =======================================================================
  208.  
  209. if test "$OBJEXT" = "" ; then
  210.     OBJEXT=".o"
  211. fi
  212. if test "$LIBEXT" = "" ; then
  213.     LIBEXT=".a"
  214. fi
  215. if test "$VPATHSEP" = "" ; then
  216.     VPATHSEP=":"
  217. fi
  218. if test "$VPATHOPT" = "" ; then
  219.     VPATHOPT="VPATH"
  220. fi
  221.  
  222. dnl =======================================================================
  223. dnl = End of default configurations
  224. dnl =======================================================================
  225.  
  226. changequote([, ])dnl
  227.  
  228. dnl Select either interpreter of just-in-time mode.
  229. AC_ARG_ENABLE(jit,--enable-jit,TYPE=jit)
  230. AC_ARG_ENABLE(interpreter,--enable-interpreter,TYPE=intrp)
  231.  
  232. if test -f $srcdir/config/$host_cpu/$host_os/jit-md.h ; then
  233.     jitsrc="config/$host_cpu/jit-$host_cpu.def config/$host_cpu/jit-icode.h"
  234.     jitdst="kaffevm/jit.def kaffevm/icode.h"
  235. else
  236.     jitsrc=""; jitdst=""
  237. fi
  238. dnl Make sure we support jit mode.
  239. if test "$jitsrc" = "" && test "$enable_jit" = "yes"; then
  240.     AC_MSG_ERROR(Configuration $host_cpu-$host_os does not support JIT mode)
  241. fi
  242. dnl If no mode specified, select jit if available otherwise use interpreter.
  243. if test "$TYPE" = ""; then
  244.     if test "$jitsrc" != "" ; then
  245.         TYPE=jit
  246.     else
  247.         TYPE=intrp
  248.     fi
  249. fi
  250. AC_MSG_CHECKING(machine modes)
  251. if test $TYPE = jit ; then
  252.     AC_MSG_RESULT(just-in-time)
  253. else
  254.     AC_MSG_RESULT(interpreting)
  255.     jitsrc=""; jitdst=""
  256. fi
  257.  
  258. AC_SUBST(KVER)
  259. AC_SUBST(LIBSHARE)
  260. AC_SUBST(PIC)
  261. AC_SUBST(LDTAIL)
  262. AC_SUBST(NOSHAREDLIBS)
  263. AC_SUBST(LDFLAGS)
  264. AC_SUBST(LIBEXT)
  265. AC_SUBST(OBJEXT)
  266. AC_SUBST(TYPE)
  267. AC_SUBST(KAFFEFLAGS)
  268. AC_SUBST(KAFFEVMFLAGS)
  269. AC_SUBST(VPATHSEP)
  270. AC_SUBST(VPATHOPT)
  271. AC_DEFINE_UNQUOTED(LIBRARYSUFFIX, "$LIBEXT")
  272. AC_DEFINE_UNQUOTED(KAFFEVERSION, "$KVER")
  273.  
  274. AC_LINK_FILES(config/$host_cpu/$host_os/md.h config/$host_cpu/$host_os/md.c $jitsrc, config/md.h kaffevm/md.c $jitdst)
  275.  
  276. dnl Checks for programs.
  277. AC_PROG_CC
  278. AC_PROG_LN_S
  279. AC_PROG_INSTALL
  280. AC_PROG_MAKE_SET
  281. AC_CHECK_TOOL(RANLIB, ranlib, :)
  282. AC_CHECK_TOOL(AR, ar)
  283.  
  284.  
  285. dnl Checks for types
  286. AC_CHECK_SIZEOF(short,0)
  287. AC_CHECK_SIZEOF(int,0)
  288. AC_CHECK_SIZEOF(long,0)
  289. AC_CHECK_SIZEOF(long long,0)
  290. AC_CHECK_SIZEOF(__int64,0)
  291. AC_CHECK_SIZEOF(void*,0)
  292.  
  293. dnl Checks for libraries.
  294. AC_CHECK_LIB(dl,dlopen)
  295. AC_CHECK_LIB(dl,_dlopen)
  296. AC_CHECK_LIB(dld,dld_init)
  297. AC_CHECK_LIB(socket,socket)
  298. AC_CHECK_LIB(nsl,dial)
  299. AC_CHECK_LIB(m,finite)
  300.  
  301. dnl Checks for header files.
  302. AC_HEADER_STDC
  303. AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/socket.h winsock.h dlfcn.h windows.h winbase.h wtypes.h sys/ioctl.h sys/filio.h malloc.h sys/param.h sys/utsname.h pwd.h dir.h asm/sigcontext.h mach-o/rld.h)
  304. AC_HEADER_DIRENT
  305.  
  306. dnl Checks for typedefs, structures, and compiler characteristics.
  307. AC_HEADER_TIME
  308. AC_STRUCT_TM
  309. AC_STRUCT_TIMEZONE
  310. AC_C_BIGENDIAN
  311.  
  312. dnl Checks for library functions.
  313. AC_TYPE_SIGNAL
  314. AC_FUNC_STRFTIME
  315. AC_CHECK_FUNCS(select socket getsockname)
  316. AC_CHECK_FUNCS(memcpy memmove)
  317. AC_CHECK_FUNCS(mkdir)
  318. AC_CHECK_FUNCS(getcwd getwd gettimeofday uname getuid getpagesize)
  319. AC_CHECK_FUNCS(remainder remainderf fmod rint floor finite isinf isnan strtod)
  320. AC_CHECK_FUNCS(strerror hstrerror)
  321. AC_CHECK_FUNCS(fcntl ioctl)
  322.  
  323. dnl Some dynamic library need an underscore on the loading name, some don't
  324. AC_CACHE_CHECK(for underscore in dlsym, ac_cv_underscore,
  325. echo "#define _LIBC_ \"`ls /lib/lib*c.so* /usr/lib/lib*c.so.* 2>/dev/null | head -1`\"" >> confdefs.h
  326. AC_TRY_RUN(main()
  327. {[void* lib = (void*)dlopen(_LIBC_);
  328.   if (dlsym(lib, "_printf") != 0) { exit(0); } else { exit(1); } }],
  329. ac_cv_underscore=yes, ac_cv_underscore=no, ac_cv_underscore=cross))
  330. if test "$ac_cv_underscore" = "yes"; then
  331.   AC_DEFINE(HAVE_DYN_UNDERSTORE)
  332. fi
  333.  
  334. changequote(<<, >>)dnl
  335. subdirs="kaffevm lib kaffe kaffeh man scripts config test"
  336. make_output="Makefile kaffevm/Makefile kaffe/Makefile kaffeh/Makefile man/Makefile scripts/Makefile test/Makefile config/Makefile lib/Makefile lib/support/Makefile lib/native/Makefile lib/net/Makefile"
  337. if test -d $srcdir/sun ; then
  338.     subdirs="$subdirs sun"
  339.     make_output="$make_output sun/Makefile"
  340. fi
  341. libsubdirs="native net support"
  342. changequote([, ])dnl
  343.  
  344. AC_SUBST(subdirs)
  345. AC_SUBST(libsubdirs)
  346.  
  347. AC_CONFIG_HEADER(config/config.h lib/support/jtypes.h)
  348. AC_OUTPUT($make_output)
  349.  
  350. dnl Generate example environment
  351. libdir=`eval echo $libdir` ; libdir=`eval echo $libdir`
  352. bindir=`eval echo $bindir` ; bindir=`eval echo $bindir`
  353. datadir=`eval echo $datadir`
  354. echo CLASSPATH=.:$datadir/kaffe/classes.zip > ENVIRONMENT
  355. echo KAFFEHOME=$datadir/kaffe >> ENVIRONMENT
  356. if test "$KAFFEVMFLAGS" != "-DNO_SHARED_LIBRARIES" ; then
  357.     echo LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$libdir >> ENVIRONMENT
  358. fi
  359. echo PATH=\$PATH:$bindir >> ENVIRONMENT
  360. echo export CLASSPATH KAFFEHOME LD_LIBRARY_PATH PATH >> ENVIRONMENT
  361.