blob: 2f3fa3d85510b4cf56dd8b68e9f1c2dc9f59d4d3 [file] [log] [blame] [raw]
gord791601f1999-03-01 19:12:32 +00001dnl Configure script for GRUB.
okujieb5d4d62005-01-30 01:09:34 +00002dnl Copyright 1999,2000,2001,2002,2003,2004,2005 Free Software Foundation, Inc.
gord791601f1999-03-01 19:12:32 +00003
4dnl Permission to use, copy, modify and distribute this software and its
5dnl documentation is hereby granted, provided that both the copyright
6dnl notice and this permission notice appear in all copies of the
7dnl software, derivative works or modified versions, and any portions
8dnl thereof, and that both notices appear in supporting documentation.
9dnl
10dnl THE FREE SOFTWARE FOUNDATION ALLOWS FREE USE OF THIS SOFTWARE IN ITS
11dnl "AS IS" CONDITION. THE FREE SOFTWARE FOUNDATION DISCLAIMS ANY
12dnl LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
13dnl USE OF THIS SOFTWARE.
14
okuji49597fd2003-10-19 17:38:43 +000015AC_PREREQ(2.57)
okuji2b556112005-05-08 02:51:53 +000016AC_INIT([GRUB], [0.97], [bug-grub@gnu.org])
okuji49597fd2003-10-19 17:38:43 +000017AC_CONFIG_SRCDIR([stage2/stage2.c])
18AC_CONFIG_HEADER([config.h])
19AM_INIT_AUTOMAKE
gord791601f1999-03-01 19:12:32 +000020
Bean8a3dc312007-03-10 16:55:02 +000021dnl Generate stage2/grub4dos_version.h
22echo "#define GRUB4DOS_VERSION \"`cat grub4dos_version` `date -u +%Y-%m-%d`\"" > stage2/grub4dos_version.h
23
gord791601f1999-03-01 19:12:32 +000024AC_CANONICAL_HOST
25
26case "$host_cpu" in
gord90ed71c1999-03-08 06:28:20 +000027i[[3456]]86) host_cpu=i386 ;;
okuji7c1993f2003-01-02 14:51:37 +000028x86_64) host_cpu=x86_64 ;;
gord791601f1999-03-01 19:12:32 +000029*) AC_MSG_ERROR([unsupported CPU type]) ;;
30esac
gord90ed71c1999-03-08 06:28:20 +000031
32AC_SUBST(host_cpu)
33AC_SUBST(host_vendor)
gord791601f1999-03-01 19:12:32 +000034
35#
36# Options
37#
okujia0ca5d01999-06-23 00:00:54 +000038
okuji694616c1999-09-13 13:32:31 +000039AM_MAINTAINER_MODE
40if test "x$enable_maintainer_mode" = xyes; then
41 AC_PATH_PROG(PERL,perl)
42 if test -z "$PERL"; then
43 AC_MSG_ERROR([perl not found])
44 fi
45fi
gord791601f1999-03-01 19:12:32 +000046
okujibdd07e31999-06-27 06:18:02 +000047# This should be checked before AC_PROG_CC
48if test "x$CFLAGS" = x; then
49 default_CFLAGS=yes
okuji7c1993f2003-01-02 14:51:37 +000050fi
51
52if test "x$host_cpu" = xx86_64; then
53 CFLAGS="-m32 $CFLAGS"
okujibdd07e31999-06-27 06:18:02 +000054fi
55
gord791601f1999-03-01 19:12:32 +000056#
57# Programs
58#
59
gord791601f1999-03-01 19:12:32 +000060AC_CHECK_TOOL(CC, gcc)
gordab6e2831999-03-15 02:08:13 +000061AC_PROG_CC
gorde5fd53e2001-10-15 04:49:50 +000062# We need this for older versions of Autoconf.
63_AM_DEPENDENCIES(CC)
okujibd47df81999-10-08 00:34:30 +000064
okuji60415d22001-07-04 07:33:48 +000065dnl Because recent automake complains about AS, set it here.
okuji49597fd2003-10-19 17:38:43 +000066CCAS="$CC"
67AC_SUBST(CCAS)
okuji60415d22001-07-04 07:33:48 +000068
okujibd47df81999-10-08 00:34:30 +000069AC_ARG_WITH(binutils,
70 [ --with-binutils=DIR search the directory DIR to find binutils])
71
72if test "x$with_binutils" != x; then
okujicf37f792000-04-12 03:10:07 +000073dnl AC_PATH_TOOL is not seen in autoconf 2.13, so use AC_PATH_PROG
74dnl instead for now. It is preferable when you cross-compile GRUB.
75dnl AC_PATH_TOOL(RANLIB, ranlib, :, "$with_binutils:$PATH")
76 AC_PATH_PROG(RANLIB, ranlib, :, "$with_binutils:$PATH")
okujibd47df81999-10-08 00:34:30 +000077else
78 AC_PROG_RANLIB
79fi
gordab6e2831999-03-15 02:08:13 +000080
okuji63366791999-06-27 07:32:43 +000081# optimization flags
okujibdd07e31999-06-27 06:18:02 +000082if test "x$ac_cv_prog_gcc" = xyes; then
83 if test "x$default_CFLAGS" = xyes; then
okujie60b85f2003-01-04 23:22:42 +000084 # Autoconf may set CFLAGS to -O2 and/or -g. So eliminate them.
okujida7278f2003-01-29 09:13:56 +000085 CFLAGS="`echo $CFLAGS | sed -e 's/-g//g' -e 's/-O[[0-9]]//g'` -g"
okujibd47df81999-10-08 00:34:30 +000086 # If the user specify the directory for binutils, add the option `-B'.
87 if test "x$with_binutils" != x; then
88 CFLAGS="-B$with_binutils/ $CFLAGS"
89 fi
okuji63366791999-06-27 07:32:43 +000090 STAGE1_CFLAGS="-O2"
91 GRUB_CFLAGS="-O2"
okujibdd07e31999-06-27 06:18:02 +000092 AC_CACHE_CHECK([whether optimization for size works], size_flag, [
okuji63366791999-06-27 07:32:43 +000093 saved_CFLAGS=$CFLAGS
okujibdd07e31999-06-27 06:18:02 +000094 CFLAGS="-Os -g"
95 AC_TRY_COMPILE(, , size_flag=yes, size_flag=no)
okuji63366791999-06-27 07:32:43 +000096 CFLAGS=$saved_CFLAGS
okujibdd07e31999-06-27 06:18:02 +000097 ])
98 if test "x$size_flag" = xyes; then
okuji63366791999-06-27 07:32:43 +000099 STAGE2_CFLAGS="-Os"
okujibdd07e31999-06-27 06:18:02 +0000100 else
okuji63366791999-06-27 07:32:43 +0000101 STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
okujibdd07e31999-06-27 06:18:02 +0000102 fi
okuji0accb2c2004-04-04 09:15:43 +0000103 # OpenBSD has a GCC extension for protecting applications from
104 # stack smashing attacks, but GRUB doesn't want this feature.
105 AC_CACHE_CHECK([whether gcc has -fno-stack-protector],
106 no_stack_protector_flag, [
107 saved_CFLAGS=$CFLAGS
108 CFLAGS="-fno-stack-protector"
109 AC_TRY_COMPILE(,
110 ,
111 no_stack_protector_flag=yes,
112 no_stack_protector_flag=no)
113 CFLAGS=$saved_CFLAGS
114 ])
115 if test "x$no_stack_protector_flag" = xyes; then
116 STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector"
117 fi
okujibdd07e31999-06-27 06:18:02 +0000118 fi
119fi
120
okuji63366791999-06-27 07:32:43 +0000121AC_SUBST(STAGE1_CFLAGS)
122AC_SUBST(STAGE2_CFLAGS)
123AC_SUBST(GRUB_CFLAGS)
124
gordab6e2831999-03-15 02:08:13 +0000125# Enforce coding standards.
okuji952982d2000-07-28 16:51:16 +0000126CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
okuji454e2662000-08-30 07:00:16 +0000127CPPFLAGS="$CPPFLAGS -Wpointer-arith"
128
129AC_CACHE_CHECK([whether -Wundef works], undef_flag, [
okujif891c6f2002-10-05 23:20:15 +0000130 saved_CPPFLAGS="$CPPFLAGS"
okuji454e2662000-08-30 07:00:16 +0000131 CPPFLAGS="-Wundef"
132 AC_TRY_COMPILE(, , undef_flag=yes, undef_flag=no)
okujif891c6f2002-10-05 23:20:15 +0000133 CPPFLAGS="$saved_CPPFLAGS"
134])
135
136# The options `-falign-*' are supported by gcc 3.0 or later.
137# Probably it is sufficient to only check for -falign-loops.
138AC_CACHE_CHECK([whether -falign-loops works], [falign_loop_flag], [
139 saved_CPPFLAGS="$CPPFLAGS"
140 CPPFLAGS="-falign-loops=1"
141 AC_TRY_COMPILE(, , [falign_loop_flag=yes], [falign_loop_flag=no])
142 CPPFLAGS="$saved_CPPFLAGS"
okuji454e2662000-08-30 07:00:16 +0000143])
144
okuji4a1f0662000-09-08 21:30:17 +0000145# Force no alignment to save space.
okujif891c6f2002-10-05 23:20:15 +0000146if test "x$falign_loop_flag" = xyes; then
147 CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
148else
149 CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
150fi
okuji4a1f0662000-09-08 21:30:17 +0000151
okuji454e2662000-08-30 07:00:16 +0000152if test "x$undef_flag" = xyes; then
153 CPPFLAGS="$CPPFLAGS -Wundef"
154fi
gordab6e2831999-03-15 02:08:13 +0000155
okujibd47df81999-10-08 00:34:30 +0000156if test "x$with_binutils" != x; then
okujicf37f792000-04-12 03:10:07 +0000157dnl AC_PATH_TOOL(OBJCOPY, objcopy, , "$with_binutils:$PATH")
158 AC_PATH_PROG(OBJCOPY, objcopy, , "$with_binutils:$PATH")
okujibd47df81999-10-08 00:34:30 +0000159else
160 AC_CHECK_TOOL(OBJCOPY, objcopy)
161fi
gord791601f1999-03-01 19:12:32 +0000162
163# Defined in acinclude.m4.
okuji8d969f61999-09-13 04:31:52 +0000164grub_ASM_USCORE
gord4b55a251999-03-01 21:49:59 +0000165grub_PROG_OBJCOPY_ABSOLUTE
166if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
167 AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
168fi
169
okujidc267a71999-09-18 16:23:07 +0000170grub_ASM_PREFIX_REQUIREMENT
171
gord4b55a251999-03-01 21:49:59 +0000172grub_ASM_ADDR32
173if test "x$grub_cv_asm_addr32" != xyes; then
174 AC_MSG_ERROR([GRUB requires GAS .code16 addr32 support; upgrade your binutils])
okujice03b571999-08-05 09:42:15 +0000175fi
176
okujibec90502000-05-31 02:15:13 +0000177grub_ASM_ABSOLUTE_WITHOUT_ASTERISK
178
okuji84bf7c71999-09-17 18:35:23 +0000179grub_CHECK_START_SYMBOL
180grub_CHECK_USCORE_START_SYMBOL
181if test "x$grub_cv_check_start_symbol" != "xyes" \
182 -a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then
183 AC_MSG_ERROR([Neither start nor _start is defined])
184fi
185
okuji1f6d4221999-10-22 17:32:23 +0000186grub_CHECK_USCORE_USCORE_BSS_START_SYMBOL
187grub_CHECK_USCORE_EDATA_SYMBOL
188grub_CHECK_EDATA_SYMBOL
189if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \
190 -a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \
191 -a "x$grub_cv_check_edata_symbol" != "xyes"; then
192 AC_MSG_ERROR([None of __bss_start, _edata, edata defined])
193fi
194
okuji84bf7c71999-09-17 18:35:23 +0000195grub_CHECK_END_SYMBOL
196grub_CHECK_USCORE_END_SYMBOL
197if test "x$grub_cv_check_end_symbol" != "xyes" \
198 -a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then
199 AC_MSG_ERROR([Neither end nor _end is defined])
200fi
201
okujia0ca5d01999-06-23 00:00:54 +0000202# Check for curses libraries.
okujic7b7ecb1999-10-01 04:51:01 +0000203AC_ARG_WITH(curses,
204 [ --without-curses do not use curses])
205
okujif0932cb1999-10-15 10:01:17 +0000206# Get the filename or the whole disk and open it.
207# Known to work on NetBSD.
208AC_CHECK_LIB(util, opendisk, [GRUB_LIBS="$GRUB_LIBS -lutil"
209 AC_DEFINE(HAVE_OPENDISK, 1, [Define if opendisk() in -lutil can be used])])
210
okujic7b7ecb1999-10-01 04:51:01 +0000211# Unless the user specify --without-curses, check for curses.
212if test "x$with_curses" != "xno"; then
213 AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
jeroenb9d0cc92004-04-23 13:43:40 +0000214 AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
okujic7b7ecb1999-10-01 04:51:01 +0000215 [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
jeroenb9d0cc92004-04-23 13:43:40 +0000216 AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
okujic7b7ecb1999-10-01 04:51:01 +0000217fi
218
okuji9350d461999-06-24 00:03:29 +0000219AC_SUBST(GRUB_LIBS)
gordb0016b81999-03-14 03:32:01 +0000220
okujic19c1a51999-07-30 17:02:52 +0000221# Check for headers.
okuji8d969f61999-09-13 04:31:52 +0000222AC_CHECK_HEADERS(string.h strings.h ncurses/curses.h ncurses.h curses.h)
okujic19c1a51999-07-30 17:02:52 +0000223
okuji25de0c41999-08-13 14:52:37 +0000224# Check for user options.
225
226# filesystems support.
227AC_ARG_ENABLE(ext2fs,
228 [ --disable-ext2fs disable ext2fs support in Stage 2])
229
230if test x"$enable_ext2fs" != xno; then
231 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1"
232fi
233
234AC_ARG_ENABLE(fat,
235 [ --disable-fat disable FAT support in Stage 2])
236
237if test x"$enable_fat" != xno; then
238 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1"
239fi
240
Bean4aa8c5f2007-03-02 20:11:17 +0000241AC_ARG_ENABLE(ntfs,
242 [ --disable-ntfs disable NTFS support in Stage 2])
243
244if test x"$enable_ntfs" != xno; then
245 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_NTFS=1"
246fi
247
okuji25de0c41999-08-13 14:52:37 +0000248AC_ARG_ENABLE(ffs,
249 [ --disable-ffs disable FFS support in Stage 2])
250
251if test x"$enable_ffs" != xno; then
252 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1"
253fi
254
okujidc8bf1d2004-05-14 20:16:55 +0000255AC_ARG_ENABLE(ufs2,
256 [ --disable-ufs2 disable UFS2 support in Stage 2])
257
258if test x"$enable_ufs2" != xno; then
259 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_UFS2=1"
260fi
261
okuji434d8601999-08-26 09:42:57 +0000262AC_ARG_ENABLE(minix,
263 [ --disable-minix disable Minix fs support in Stage 2])
264
265if test x"$enable_minix" != xno; then
266 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1"
267fi
268
okuji3792b0a2000-04-15 13:39:38 +0000269AC_ARG_ENABLE(reiserfs,
270 [ --disable-reiserfs disable ReiserFS support in Stage 2])
271
272if test x"$enable_reiserfs" != xno; then
273 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
274fi
275
okuji2f97c782001-06-22 02:32:56 +0000276AC_ARG_ENABLE(vstafs,
277 [ --disable-vstafs disable VSTa FS support in Stage 2])
278
279if test x"$enable_vstafs" != xno; then
280 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_VSTAFS=1"
281fi
282
okujid6198612001-10-27 16:04:25 +0000283AC_ARG_ENABLE(jfs,
284 [ --disable-jfs disable IBM JFS support in Stage 2])
285
286if test x"$enable_jfs" != xno; then
287 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
288fi
289
290AC_ARG_ENABLE(xfs,
291 [ --disable-xfs disable SGI XFS support in Stage 2])
292
293if test x"$enable_xfs" != xno; then
294 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
295fi
296
okuji4f29a8a2004-03-27 17:02:54 +0000297AC_ARG_ENABLE(iso9660,
298 [ --disable-iso9660 disable ISO9660 support in Stage 2])
299
300if test x"$enable_iso9660" != xno; then
301 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1"
302fi
303
Bean9e194e52007-04-22 04:34:29 +0000304AC_ARG_ENABLE(pxe,
305 [ --disable-pxe disable PXE support in Stage 2])
306
307if test x"$enable_pxe" != xno; then
Beanc1917052007-05-09 03:45:03 +0000308 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_PXE=1 -I../netboot"
Bean9e194e52007-04-22 04:34:29 +0000309fi
310
okuji9fe04492000-02-07 06:26:45 +0000311dnl AC_ARG_ENABLE(tftp,
312dnl [ --enable-tftp enable TFTP support in Stage 2])
313dnl
314dnl #if test x"$enable_tftp" = xyes; then
315dnl FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1"
316dnl fi
okujibe514991999-09-14 06:55:57 +0000317
okuji20d2c3d1999-09-04 03:19:11 +0000318AC_ARG_ENABLE(gunzip,
319 [ --disable-gunzip disable decompression in Stage 2])
320
321if test x"$enable_gunzip" = xno; then
322 FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1"
323fi
324
okujia2622ee2000-10-17 14:39:15 +0000325AC_ARG_ENABLE(md5-password,
326 [ --disable-md5-password disable MD5 password support in Stage 2])
327if test "x$enable_md5_password" != xno; then
okuji60415d22001-07-04 07:33:48 +0000328 FSYS_CFLAGS="$FSYS_CFLAGS -DUSE_MD5_PASSWORDS=1"
jochen2315cb42000-10-17 13:37:27 +0000329fi
okuji25de0c41999-08-13 14:52:37 +0000330
okuji9fe04492000-02-07 06:26:45 +0000331dnl The netboot support.
332dnl General options.
333AC_ARG_ENABLE(packet-retransmission,
okuji687f54b2000-02-12 07:00:47 +0000334 [ --disable-packet-retransmission
335 turn off packet retransmission])
336if test "x$enable_packet_retransmission" != xno; then
okuji9fe04492000-02-07 06:26:45 +0000337 NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1"
okujibe514991999-09-14 06:55:57 +0000338fi
339
okuji9fe04492000-02-07 06:26:45 +0000340AC_ARG_ENABLE(pci-direct,
341 [ --enable-pci-direct access PCI directly instead of using BIOS])
342if test "x$enable_pci_direct" = xyes; then
343 NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1"
okujibe514991999-09-14 06:55:57 +0000344fi
345
okuji9fe04492000-02-07 06:26:45 +0000346dnl Device drivers.
347AC_ARG_ENABLE(3c509,
348 [ --enable-3c509 enable 3Com509 driver])
349if test "x$enable_3c509" = xyes; then
350 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509"
351 NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o"
okujibe514991999-09-14 06:55:57 +0000352fi
353
okuji9fe04492000-02-07 06:26:45 +0000354AC_ARG_ENABLE(3c529,
355 [ --enable-3c529 enable 3Com529 driver])
356if test "x$enable_3c529" = xyes; then
357 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1"
358 NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o"
okujibe514991999-09-14 06:55:57 +0000359fi
360
okuji5ff25f92000-04-22 01:17:09 +0000361AC_ARG_ENABLE(3c595,
362 [ --enable-3c595 enable 3Com595 driver])
363if test "x$enable_3c595" = xyes; then
364 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C595=1"
365 NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c595.o"
366fi
okujibe514991999-09-14 06:55:57 +0000367
okuji9fe04492000-02-07 06:26:45 +0000368AC_ARG_ENABLE(3c90x,
369 [ --enable-3c90x enable 3Com90x driver])
370if test "x$enable_3c90x" = xyes; then
okuji85c66cb2000-02-18 04:34:42 +0000371 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1"
okuji9fe04492000-02-07 06:26:45 +0000372 NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o"
okujibe514991999-09-14 06:55:57 +0000373fi
374
okuji9fe04492000-02-07 06:26:45 +0000375AC_ARG_ENABLE(cs89x0,
376 [ --enable-cs89x0 enable CS89x0 driver])
377if test "x$enable_cs89x0" = xyes; then
378 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1"
379 NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o"
okuji5ff25f92000-04-22 01:17:09 +0000380fi
381
okuji973e6f42002-01-02 21:56:40 +0000382AC_ARG_ENABLE(davicom,
383 [ --enable-davicom enable Davicom driver])
384if test "x$enable_davicom" = xyes; then
385 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DAVICOM=1"
386 NETBOOT_DRIVERS="$NETBOOT_DRIVERS davicom.o"
387fi
388
okuji5ff25f92000-04-22 01:17:09 +0000389AC_ARG_ENABLE(depca,
390 [ --enable-depca enable DEPCA and EtherWORKS driver])
391if test "x$enable_depca" = xyes; then
392 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DEPCA=1"
393 NETBOOT_DRIVERS="$NETBOOT_DRIVERS depca.o"
okuji973e6f42002-01-02 21:56:40 +0000394fi
395
396AC_ARG_ENABLE(eepro,
397 [ --enable-eepro enable Etherexpress Pro/10 driver])
398if test "x$enable_eepro" = xyes; then
399 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO=1"
400 NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro.o"
okujibe514991999-09-14 06:55:57 +0000401fi
402
403AC_ARG_ENABLE(eepro100,
okuji9fe04492000-02-07 06:26:45 +0000404 [ --enable-eepro100 enable Etherexpress Pro/100 driver])
405if test "x$enable_eepro100" = xyes; then
okujibe514991999-09-14 06:55:57 +0000406 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1"
okuji9fe04492000-02-07 06:26:45 +0000407 NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o"
okujibe514991999-09-14 06:55:57 +0000408fi
409
okuji9fe04492000-02-07 06:26:45 +0000410AC_ARG_ENABLE(epic100,
411 [ --enable-epic100 enable SMC 83c170 EPIC/100 driver])
412if test "x$enable_epic100" = xyes; then
413 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1"
414 NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o"
415fi
okujibe514991999-09-14 06:55:57 +0000416
okuji9fe04492000-02-07 06:26:45 +0000417AC_ARG_ENABLE(3c507,
418 [ --enable-3c507 enable 3Com507 driver])
419if test "x$enable_3c507" = xyes; then
420 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1"
421 NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o"
422fi
423
424AC_ARG_ENABLE(exos205,
425 [ --enable-exos205 enable EXOS205 driver])
426if test "x$enable_exos205" = xyes; then
427 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1"
428 NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o"
429fi
430
431AC_ARG_ENABLE(ni5210,
432 [ --enable-ni5210 enable Racal-Interlan NI5210 driver])
433if test "x$enable_ni5210" = xyes; then
434 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1"
435 NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o"
436fi
437
okuji5ff25f92000-04-22 01:17:09 +0000438AC_ARG_ENABLE(lance,
439 [ --enable-lance enable Lance PCI PCNet/32 driver])
440if test "x$enable_lance" = xyes; then
441 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCE=1"
442 NETBOOT_DRIVERS="$NETBOOT_DRIVERS lance.o"
okuji9fe04492000-02-07 06:26:45 +0000443fi
444
445AC_ARG_ENABLE(ne2100,
446 [ --enable-ne2100 enable Novell NE2100 driver])
447if test "x$enable_ne2100" = xyes; then
448 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1"
449 NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o"
450fi
451
452AC_ARG_ENABLE(ni6510,
453 [ --enable-ni6510 enable Racal-Interlan NI6510 driver])
454if test "x$enable_ni6510" = xyes; then
455 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1"
456 NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o"
457fi
458
okuji973e6f42002-01-02 21:56:40 +0000459AC_ARG_ENABLE(natsemi,
460 [ --enable-natsemi enable NatSemi DP8381x driver])
461if test "x$enable_natsemi" = xyes; then
462 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NATSEMI=1"
463 NETBOOT_DRIVERS="$NETBOOT_DRIVERS natsemi.o"
464fi
465
466AC_ARG_ENABLE(ni5010,
467 [ --enable-ni5010 enable Racal-Interlan NI5010 driver])
468if test "x$enable_ni5010" = xyes; then
469 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5010=1"
470 NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5010.o"
471fi
472
okuji9fe04492000-02-07 06:26:45 +0000473AC_ARG_ENABLE(3c503,
474 [ --enable-3c503 enable 3Com503 driver])
475if test "x$enable_3c503" = xyes; then
476 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1"
477 NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o"
478fi
479
480AC_ARG_ENABLE(ne,
481 [ --enable-ne enable NE1000/2000 ISA driver])
482if test "x$enable_ne" = xyes; then
483 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1"
484 NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o"
485fi
486
okuji5ff25f92000-04-22 01:17:09 +0000487AC_ARG_ENABLE(ns8390,
488 [ --enable-ns8390 enable NE2000 PCI driver])
489if test "x$enable_ns8390" = xyes; then
490 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NS8390=1"
491 NETBOOT_DRIVERS="$NETBOOT_DRIVERS ns8390.o"
okuji9fe04492000-02-07 06:26:45 +0000492fi
493
494AC_ARG_ENABLE(wd,
495 [ --enable-wd enable WD8003/8013, SMC8216/8416 driver])
496if test "x$enable_wd" = xyes; then
497 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1"
498 NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o"
499fi
500
okuji5ff25f92000-04-22 01:17:09 +0000501AC_ARG_ENABLE(otulip,
502 [ --enable-otulip enable old Tulip driver])
503if test "x$enable_otulip" = xyes; then
504 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_OTULIP=1"
505 NETBOOT_DRIVERS="$NETBOOT_DRIVERS otulip.o"
okuji9fe04492000-02-07 06:26:45 +0000506fi
507
508AC_ARG_ENABLE(rtl8139,
509 [ --enable-rtl8139 enable Realtek 8139 driver])
510if test "x$enable_rtl8139" = xyes; then
511 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1"
512 NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o"
513fi
514
okuji973e6f42002-01-02 21:56:40 +0000515AC_ARG_ENABLE(sis900,
516 [ --enable-sis900 enable SIS 900 and SIS 7016 driver])
517if test "x$enable_sis900" = xyes; then
518 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SIS900=1"
519 NETBOOT_DRIVERS="$NETBOOT_DRIVERS sis900.o"
520fi
521
okuji9fe04492000-02-07 06:26:45 +0000522AC_ARG_ENABLE(sk-g16,
523 [ --enable-sk-g16 enable Schneider and Koch G16 driver])
524if test "x$enable_sk_g16" = xyes; then
525 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1"
526 NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o"
527fi
528
529AC_ARG_ENABLE(smc9000,
530 [ --enable-smc9000 enable SMC9000 driver])
531if test "x$enable_smc9000" = xyes; then
532 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1"
533 NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o"
534fi
535
536AC_ARG_ENABLE(tiara,
537 [ --enable-tiara enable Tiara driver])
538if test "x$enable_tiara" = xyes; then
539 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1"
540 NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o"
541fi
542
543AC_ARG_ENABLE(tulip,
okuji5ff25f92000-04-22 01:17:09 +0000544 [ --enable-tulip enable Tulip driver])
okuji9fe04492000-02-07 06:26:45 +0000545if test "x$enable_tulip" = xyes; then
546 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1"
547 NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o"
548fi
549
550AC_ARG_ENABLE(via-rhine,
551 [ --enable-via-rhine enable Rhine-I/II driver])
552if test "x$enable_via_rhine" = xyes; then
553 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1"
554 NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o"
555fi
556
okuji973e6f42002-01-02 21:56:40 +0000557AC_ARG_ENABLE(w89c840,
558 [ --enable-w89c840 enable Winbond W89c840, Compex RL100-ATX driver])
559if test "x$enable_w89c840" = xyes; then
560 NET_CFLAGS="$NET_CFLAGS -DINCLUDE_W89C840=1"
561 NETBOOT_DRIVERS="$NETBOOT_DRIVERS w89c840.o"
562fi
563
okuji899a2752000-02-09 21:14:33 +0000564dnl Check if the netboot support is turned on.
okuji9fe04492000-02-07 06:26:45 +0000565AM_CONDITIONAL(NETBOOT_SUPPORT, test "x$NET_CFLAGS" != x)
566if test "x$NET_CFLAGS" != x; then
567 FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1"
568fi
569
570dnl Extra options.
571AC_ARG_ENABLE(3c503-shmem,
572 [ --enable-3c503-shmem use 3c503 shared memory mode])
573if test "x$enable_3c503_shmem" = xyes; then
574 NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1"
575fi
576
577AC_ARG_ENABLE(3c503-aui,
578 [ --enable-3c503-aui use AUI by default on 3c503 cards])
579if test "x$enable_3c503_aui" = xyes; then
580 NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1"
581fi
582
okuji9fe04492000-02-07 06:26:45 +0000583AC_ARG_ENABLE(compex-rl2000-fix,
584 [ --enable-compex-rl2000-fix
585 specify this if you have a Compex RL2000 PCI])
586if test "x$enable_compex_rl2000_fix" = xyes; then
587 NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1"
okuji558f2f12000-07-29 19:22:54 +0000588fi
589
okuji5ff25f92000-04-22 01:17:09 +0000590AC_ARG_ENABLE(smc9000-scan,
okuji9fe04492000-02-07 06:26:45 +0000591 [ --enable-smc9000-scan=LIST
592 probe for SMC9000 I/O addresses using LIST],
593 [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan"])
okujibe514991999-09-14 06:55:57 +0000594
595AC_ARG_ENABLE(ne-scan,
okuji9fe04492000-02-07 06:26:45 +0000596 [ --enable-ne-scan=LIST probe for NE base address using LIST],
597 [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan"],
598 [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340"])
okujibe514991999-09-14 06:55:57 +0000599
600AC_ARG_ENABLE(wd-default-mem,
okuji9fe04492000-02-07 06:26:45 +0000601 [ --enable-wd-default-mem=MEM
602 set the default memory location for WD/SMC],
603 [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem"],
604 [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000"])
okujibe514991999-09-14 06:55:57 +0000605
606AC_ARG_ENABLE(cs-scan,
okuji9fe04492000-02-07 06:26:45 +0000607 [ --enable-cs-scan=LIST probe for CS89x0 base address using LIST],
608 [NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan"])
okujibe514991999-09-14 06:55:57 +0000609
okujif85b90a2000-05-27 07:40:53 +0000610dnl Diskless
611AC_ARG_ENABLE(diskless,
612 [ --enable-diskless enable diskless support])
613AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
614
Bean4aa8c5f2007-03-02 20:11:17 +0000615dnl Graphical splashscreen support
616AC_ARG_ENABLE(graphics,
617 [ --disable-graphics disable graphics terminal support])
618AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
619
okujie85272f2001-02-27 12:59:00 +0000620dnl Hercules terminal
621AC_ARG_ENABLE(hercules,
622 [ --disable-hercules disable hercules terminal support])
623AM_CONDITIONAL(HERCULES_SUPPORT, test "x$enable_hercules" != xno)
624
okuji2455b652000-08-20 12:14:14 +0000625dnl Serial terminal
626AC_ARG_ENABLE(serial,
okujic97b7d22002-09-08 02:01:14 +0000627 [ --disable-serial disable serial terminal support])
okuji11f52a02000-09-26 19:52:29 +0000628AM_CONDITIONAL(SERIAL_SUPPORT, test "x$enable_serial" != xno)
okuji2455b652000-08-20 12:14:14 +0000629
okujid91146e2000-08-21 06:30:14 +0000630dnl Simulation of the slowness of a serial device.
631AC_ARG_ENABLE(serial-speed-simulation,
632 [ --enable-serial-speed-simulation
okuji11f52a02000-09-26 19:52:29 +0000633 simulate the slowness of a serial device])
okujid91146e2000-08-21 06:30:14 +0000634AM_CONDITIONAL(SERIAL_SPEED_SIMULATION,
635 test "x$enable_serial_speed_simulation" = xyes)
636
okujif85b90a2000-05-27 07:40:53 +0000637# Sanity check.
638if test "x$enable_diskless" = xyes; then
639 if test "x$NET_CFLAGS" = x; then
640 AC_MSG_ERROR([You must enable at least one network driver])
641 fi
642fi
okuji9fe04492000-02-07 06:26:45 +0000643
okuji45579582000-11-15 04:30:23 +0000644dnl Embed a menu string in GRUB itself.
645AC_ARG_ENABLE(preset-menu,
646 [ --enable-preset-menu=FILE
647 preset a menu file FILE in Stage 2])
648if test "x$enable_preset_menu" = x; then
Bean9e194e52007-04-22 04:34:29 +0000649 if test "x$NET_CFLAGS" = x; then
650 rm -f preset_menu_used
651 else
652 AC_DEFINE(PRESET_MENU_STRING, "bootp\n", [if there is user specified preset menu string])
653 echo -n -e "bootp\n\0" > preset_menu_used
654 fi
okuji45579582000-11-15 04:30:23 +0000655else
656 if test -r $enable_preset_menu; then
jeroenb9d0cc92004-04-23 13:43:40 +0000657 grub_DEFINE_FILE(PRESET_MENU_STRING, [$enable_preset_menu],
658 [Define if there is user specified preset menu string])
Bean9e194e52007-04-22 04:34:29 +0000659 cp $enable_preset_menu preset_menu_used
660 echo -n -e "\0" >> preset_menu_used
okuji45579582000-11-15 04:30:23 +0000661 else
Tinybit5597b392007-04-03 10:02:49 +0000662 rm -f preset_menu_used
okuji45579582000-11-15 04:30:23 +0000663 AC_MSG_ERROR([Cannot read the preset menu file $enable_preset_menu])
664 fi
665fi
666
okuji1b976312001-01-11 07:28:16 +0000667dnl Build the example Multiboot kernel.
668AC_ARG_ENABLE(example-kernel,
669 [ --enable-example-kernel
670 build the example Multiboot kernel])
671AM_CONDITIONAL(BUILD_EXAMPLE_KERNEL, test "x$enable_example_kernel" = xyes)
672
okuji4b1637c2001-02-27 15:24:48 +0000673dnl Automatic Linux mem= option.
674AC_ARG_ENABLE(auto-linux-mem-opt,
675 [ --disable-auto-linux-mem-opt
676 don't pass Linux mem= option automatically])
677if test "x$enable_auto_linux_mem_opt" = xno; then
678 :
679else
jeroenb9d0cc92004-04-23 13:43:40 +0000680 AC_DEFINE(AUTO_LINUX_MEM_OPT, 1, [Define if you don't want to pass the mem= option to Linux])
okuji4b1637c2001-02-27 15:24:48 +0000681fi
okuji1b976312001-01-11 07:28:16 +0000682
okuji9fe04492000-02-07 06:26:45 +0000683dnl Now substitute the variables.
684AC_SUBST(FSYS_CFLAGS)
685AC_SUBST(NET_CFLAGS)
okujibe514991999-09-14 06:55:57 +0000686AC_SUBST(NET_EXTRAFLAGS)
okuji9fe04492000-02-07 06:26:45 +0000687AC_SUBST(NETBOOT_DRIVERS)
okujibe514991999-09-14 06:55:57 +0000688
okuji49597fd2003-10-19 17:38:43 +0000689dnl Because recent automake complains about CCASFLAGS, set it here.
690CCASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
691AC_SUBST(CCASFLAGS)
okuji60415d22001-07-04 07:33:48 +0000692
okuji25de0c41999-08-13 14:52:37 +0000693
okuji9fe04492000-02-07 06:26:45 +0000694dnl Output.
okuji49597fd2003-10-19 17:38:43 +0000695AC_CONFIG_FILES([Makefile stage1/Makefile stage2/Makefile \
696 docs/Makefile lib/Makefile util/Makefile \
697 grub/Makefile netboot/Makefile util/grub-image \
698 util/grub-install util/grub-md5-crypt \
okuji5b5f6dc2004-06-20 13:48:47 +0000699 util/grub-terminfo util/grub-set-default])
okuji49597fd2003-10-19 17:38:43 +0000700AC_OUTPUT