| dnl Configure script for GRUB. |
| dnl Copyright 1999 Free Software Foundation, Inc. |
| |
| dnl Permission to use, copy, modify and distribute this software and its |
| dnl documentation is hereby granted, provided that both the copyright |
| dnl notice and this permission notice appear in all copies of the |
| dnl software, derivative works or modified versions, and any portions |
| dnl thereof, and that both notices appear in supporting documentation. |
| dnl |
| dnl THE FREE SOFTWARE FOUNDATION ALLOWS FREE USE OF THIS SOFTWARE IN ITS |
| dnl "AS IS" CONDITION. THE FREE SOFTWARE FOUNDATION DISCLAIMS ANY |
| dnl LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE |
| dnl USE OF THIS SOFTWARE. |
| |
| AC_INIT(stage2/stage2.c) |
| dnl Grab the package and version from the top debian/changelog entry. |
| AM_INIT_AUTOMAKE(grub, 0.5.95) |
| AM_CONFIG_HEADER(config.h) |
| AC_PREREQ(2.13) |
| |
| AC_CANONICAL_HOST |
| |
| case "$host_cpu" in |
| i[[3456]]86) host_cpu=i386 ;; |
| *) AC_MSG_ERROR([unsupported CPU type]) ;; |
| esac |
| |
| AC_SUBST(host_cpu) |
| AC_SUBST(host_vendor) |
| |
| # |
| # Options |
| # |
| |
| AM_MAINTAINER_MODE |
| if test "x$enable_maintainer_mode" = xyes; then |
| AC_PATH_PROG(PERL,perl) |
| if test -z "$PERL"; then |
| AC_MSG_ERROR([perl not found]) |
| fi |
| fi |
| |
| # This should be checked before AC_PROG_CC |
| if test "x$CFLAGS" = x; then |
| default_CFLAGS=yes |
| fi |
| |
| # |
| # Programs |
| # |
| |
| AC_CHECK_TOOL(CC, gcc) |
| AC_PROG_CC |
| |
| AC_ARG_WITH(binutils, |
| [ --with-binutils=DIR search the directory DIR to find binutils]) |
| |
| if test "x$with_binutils" != x; then |
| AC_PATH_TOOL(RANLIB, ranlib, :, "$with_binutils:$PATH") |
| else |
| AC_PROG_RANLIB |
| fi |
| |
| # optimization flags |
| if test "x$ac_cv_prog_gcc" = xyes; then |
| if test "x$default_CFLAGS" = xyes; then |
| CFLAGS="-g" |
| # If the user specify the directory for binutils, add the option `-B'. |
| if test "x$with_binutils" != x; then |
| CFLAGS="-B$with_binutils/ $CFLAGS" |
| fi |
| STAGE1_CFLAGS="-O2" |
| GRUB_CFLAGS="-O2" |
| AC_CACHE_CHECK([whether optimization for size works], size_flag, [ |
| saved_CFLAGS=$CFLAGS |
| CFLAGS="-Os -g" |
| AC_TRY_COMPILE(, , size_flag=yes, size_flag=no) |
| CFLAGS=$saved_CFLAGS |
| ]) |
| if test "x$size_flag" = xyes; then |
| STAGE2_CFLAGS="-Os" |
| else |
| STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops" |
| fi |
| fi |
| fi |
| |
| AC_SUBST(STAGE1_CFLAGS) |
| AC_SUBST(STAGE2_CFLAGS) |
| AC_SUBST(GRUB_CFLAGS) |
| |
| # Enforce coding standards. |
| CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused" |
| |
| if test "x$with_binutils" != x; then |
| AC_PATH_TOOL(OBJCOPY, objcopy, , "$with_binutils:$PATH") |
| else |
| AC_CHECK_TOOL(OBJCOPY, objcopy) |
| fi |
| |
| # Defined in acinclude.m4. |
| grub_ASM_USCORE |
| grub_PROG_OBJCOPY_ABSOLUTE |
| if test "x$grub_cv_prog_objcopy_absolute" != xyes; then |
| AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils]) |
| fi |
| |
| grub_ASM_PREFIX_REQUIREMENT |
| |
| grub_ASM_ADDR32 |
| if test "x$grub_cv_asm_addr32" != xyes; then |
| AC_MSG_ERROR([GRUB requires GAS .code16 addr32 support; upgrade your binutils]) |
| fi |
| |
| grub_CHECK_START_SYMBOL |
| grub_CHECK_USCORE_START_SYMBOL |
| if test "x$grub_cv_check_start_symbol" != "xyes" \ |
| -a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then |
| AC_MSG_ERROR([Neither start nor _start is defined]) |
| fi |
| |
| grub_CHECK_USCORE_USCORE_BSS_START_SYMBOL |
| grub_CHECK_USCORE_EDATA_SYMBOL |
| grub_CHECK_EDATA_SYMBOL |
| if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \ |
| -a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \ |
| -a "x$grub_cv_check_edata_symbol" != "xyes"; then |
| AC_MSG_ERROR([None of __bss_start, _edata, edata defined]) |
| fi |
| |
| grub_CHECK_END_SYMBOL |
| grub_CHECK_USCORE_END_SYMBOL |
| if test "x$grub_cv_check_end_symbol" != "xyes" \ |
| -a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then |
| AC_MSG_ERROR([Neither end nor _end is defined]) |
| fi |
| |
| # Check for curses libraries. |
| AC_ARG_WITH(curses, |
| [ --without-curses do not use curses]) |
| |
| # Get the filename or the whole disk and open it. |
| # Known to work on NetBSD. |
| AC_CHECK_LIB(util, opendisk, [GRUB_LIBS="$GRUB_LIBS -lutil" |
| AC_DEFINE(HAVE_OPENDISK, 1, [Define if opendisk() in -lutil can be used])]) |
| |
| # Unless the user specify --without-curses, check for curses. |
| if test "x$with_curses" != "xno"; then |
| AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses" |
| AC_DEFINE(HAVE_LIBCURSES)], |
| [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses" |
| AC_DEFINE(HAVE_LIBCURSES)])]) |
| fi |
| |
| AC_SUBST(GRUB_LIBS) |
| |
| # Check for headers. |
| AC_CHECK_HEADERS(string.h strings.h ncurses/curses.h ncurses.h curses.h) |
| |
| # Check for user options. |
| |
| # some compile-time options. |
| AC_ARG_ENABLE(lba-support-bitmap-check, |
| [ --disable-lba-support-bitmap-check |
| disable a check for LBA support bitmap]) |
| |
| if test "x$enable_lba_support_bitmap_check" != xno; then |
| AC_DEFINE(CHECK_LBA_SUPPORT_BITMAP) |
| fi |
| |
| # filesystems support. |
| AC_ARG_ENABLE(ext2fs, |
| [ --disable-ext2fs disable ext2fs support in Stage 2]) |
| |
| if test x"$enable_ext2fs" != xno; then |
| FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1" |
| fi |
| |
| AC_ARG_ENABLE(fat, |
| [ --disable-fat disable FAT support in Stage 2]) |
| |
| if test x"$enable_fat" != xno; then |
| FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1" |
| fi |
| |
| AC_ARG_ENABLE(ffs, |
| [ --disable-ffs disable FFS support in Stage 2]) |
| |
| if test x"$enable_ffs" != xno; then |
| FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1" |
| fi |
| |
| AC_ARG_ENABLE(minix, |
| [ --disable-minix disable Minix fs support in Stage 2]) |
| |
| if test x"$enable_minix" != xno; then |
| FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1" |
| fi |
| |
| dnl AC_ARG_ENABLE(tftp, |
| dnl [ --enable-tftp enable TFTP support in Stage 2]) |
| dnl |
| dnl #if test x"$enable_tftp" = xyes; then |
| dnl FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1" |
| dnl fi |
| |
| AC_ARG_ENABLE(gunzip, |
| [ --disable-gunzip disable decompression in Stage 2]) |
| |
| if test x"$enable_gunzip" = xno; then |
| FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1" |
| fi |
| |
| |
| dnl The netboot support. |
| dnl General options. |
| AC_ARG_ENABLE(packet-retransmission, |
| [ --disable-packet-retransmission |
| turn off packet retransmission]) |
| if test "x$enable_packet_retransmission" != xno; then |
| NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1" |
| fi |
| |
| AC_ARG_ENABLE(pci-direct, |
| [ --enable-pci-direct access PCI directly instead of using BIOS]) |
| if test "x$enable_pci_direct" = xyes; then |
| NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1" |
| fi |
| |
| dnl Device drivers. |
| AC_ARG_ENABLE(3c509, |
| [ --enable-3c509 enable 3Com509 driver]) |
| if test "x$enable_3c509" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o" |
| fi |
| |
| AC_ARG_ENABLE(3c529, |
| [ --enable-3c529 enable 3Com529 driver]) |
| if test "x$enable_3c529" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o" |
| fi |
| |
| dnl AC_ARG_ENABLE(3c59x, |
| dnl [ --enable-3c59x enable 3Com59x driver]) |
| dnl if test "x$enable_3c59x" = xyes; then |
| dnl NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C59x=1" |
| dnl NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c59x.o" |
| dnl fi |
| |
| AC_ARG_ENABLE(3c90x, |
| [ --enable-3c90x enable 3Com90x driver]) |
| if test "x$enable_3c90x" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o" |
| fi |
| |
| AC_ARG_ENABLE(cs89x0, |
| [ --enable-cs89x0 enable CS89x0 driver]) |
| if test "x$enable_cs89x0" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o" |
| fi |
| |
| AC_ARG_ENABLE(eepro100, |
| [ --enable-eepro100 enable Etherexpress Pro/100 driver]) |
| if test "x$enable_eepro100" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o" |
| fi |
| |
| AC_ARG_ENABLE(epic100, |
| [ --enable-epic100 enable SMC 83c170 EPIC/100 driver]) |
| if test "x$enable_epic100" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o" |
| fi |
| |
| AC_ARG_ENABLE(3c507, |
| [ --enable-3c507 enable 3Com507 driver]) |
| if test "x$enable_3c507" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o" |
| fi |
| |
| AC_ARG_ENABLE(exos205, |
| [ --enable-exos205 enable EXOS205 driver]) |
| if test "x$enable_exos205" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o" |
| fi |
| |
| AC_ARG_ENABLE(ni5210, |
| [ --enable-ni5210 enable Racal-Interlan NI5210 driver]) |
| if test "x$enable_ni5210" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o" |
| fi |
| |
| AC_ARG_ENABLE(lancepci, |
| [ --enable-lancepci enable Lance PCI PCNet/32 driver]) |
| if test "x$enable_lancepci" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCEPCI=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS lancepci.o" |
| fi |
| |
| AC_ARG_ENABLE(ne2100, |
| [ --enable-ne2100 enable Novell NE2100 driver]) |
| if test "x$enable_ne2100" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o" |
| fi |
| |
| AC_ARG_ENABLE(ni6510, |
| [ --enable-ni6510 enable Racal-Interlan NI6510 driver]) |
| if test "x$enable_ni6510" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o" |
| fi |
| |
| AC_ARG_ENABLE(3c503, |
| [ --enable-3c503 enable 3Com503 driver]) |
| if test "x$enable_3c503" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o" |
| fi |
| |
| AC_ARG_ENABLE(ne, |
| [ --enable-ne enable NE1000/2000 ISA driver]) |
| if test "x$enable_ne" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o" |
| fi |
| |
| AC_ARG_ENABLE(nepci, |
| [ --enable-nepci enable NE2000 PCI driver]) |
| if test "x$enable_nepci" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NEPCI=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS nepci.o" |
| fi |
| |
| AC_ARG_ENABLE(wd, |
| [ --enable-wd enable WD8003/8013, SMC8216/8416 driver]) |
| if test "x$enable_wd" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o" |
| fi |
| |
| AC_ARG_ENABLE(ntulip, |
| [ --enable-ntulip enable Tulip driver]) |
| if test "x$enable_ntulip" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NTULIP=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS ntulip.o" |
| fi |
| |
| AC_ARG_ENABLE(rtl8139, |
| [ --enable-rtl8139 enable Realtek 8139 driver]) |
| if test "x$enable_rtl8139" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o" |
| fi |
| |
| AC_ARG_ENABLE(sk-g16, |
| [ --enable-sk-g16 enable Schneider and Koch G16 driver]) |
| if test "x$enable_sk_g16" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o" |
| fi |
| |
| AC_ARG_ENABLE(smc9000, |
| [ --enable-smc9000 enable SMC9000 driver]) |
| if test "x$enable_smc9000" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o" |
| fi |
| |
| AC_ARG_ENABLE(tiara, |
| [ --enable-tiara enable Tiara driver]) |
| if test "x$enable_tiara" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o" |
| fi |
| |
| AC_ARG_ENABLE(tulip, |
| [ --enable-tulip enable old Tulip driver]) |
| if test "x$enable_tulip" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o" |
| fi |
| |
| AC_ARG_ENABLE(via-rhine, |
| [ --enable-via-rhine enable Rhine-I/II driver]) |
| if test "x$enable_via_rhine" = xyes; then |
| NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1" |
| NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o" |
| fi |
| |
| dnl Check if the netboot support is turned on. |
| AM_CONDITIONAL(NETBOOT_SUPPORT, test "x$NET_CFLAGS" != x) |
| if test "x$NET_CFLAGS" != x; then |
| FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1" |
| fi |
| |
| dnl Extra options. |
| AC_ARG_ENABLE(3c503-shmem, |
| [ --enable-3c503-shmem use 3c503 shared memory mode]) |
| if test "x$enable_3c503_shmem" = xyes; then |
| NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1" |
| fi |
| |
| AC_ARG_ENABLE(3c503-aui, |
| [ --enable-3c503-aui use AUI by default on 3c503 cards]) |
| if test "x$enable_3c503_aui" = xyes; then |
| NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1" |
| fi |
| |
| AC_ARG_ENABLE(3c509-hack, |
| [ --enable-3c509-hack make a 3c509 do bootp quicker]) |
| if test "x$enable_3c509_hack" = xyes; then |
| NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT509HACK=1" |
| fi |
| |
| AC_ARG_ENABLE(compex-rl2000-fix, |
| [ --enable-compex-rl2000-fix |
| specify this if you have a Compex RL2000 PCI]) |
| if test "x$enable_compex_rl2000_fix" = xyes; then |
| NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1" |
| fi |
| |
| AC_ARG_ENABLE(smc9000, |
| [ --enable-smc9000-scan=LIST |
| probe for SMC9000 I/O addresses using LIST], |
| [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan"]) |
| |
| AC_ARG_ENABLE(ne-scan, |
| [ --enable-ne-scan=LIST probe for NE base address using LIST], |
| [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan"], |
| [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340"]) |
| |
| AC_ARG_ENABLE(wd-default-mem, |
| [ --enable-wd-default-mem=MEM |
| set the default memory location for WD/SMC], |
| [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem"], |
| [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000"]) |
| |
| AC_ARG_ENABLE(cs-scan, |
| [ --enable-cs-scan=LIST probe for CS89x0 base address using LIST], |
| [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan"]) |
| |
| |
| dnl Now substitute the variables. |
| AC_SUBST(FSYS_CFLAGS) |
| AC_SUBST(NET_CFLAGS) |
| AC_SUBST(NET_EXTRAFLAGS) |
| AC_SUBST(NETBOOT_DRIVERS) |
| |
| |
| dnl Output. |
| AC_OUTPUT([Makefile stage1/Makefile stage2/Makefile docs/Makefile \ |
| debian/Makefile lib/Makefile util/Makefile grub/Makefile \ |
| netboot/Makefile util/grub-install]) |