aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2005-04-18 12:43:18 +0000
committerMichael Brown <mcb30@etherboot.org>2005-04-18 12:43:18 +0000
commitcf79681b80f2fe4c1d70f02f3ee1bf07a902698f (patch)
tree9b9016729db119e4261490f175715de405bb24a3 /src
parent85b00c4b72a03d10bf8b57636446a1c053934c8a (diff)
downloadipxe-cf79681b80f2fe4c1d70f02f3ee1bf07a902698f.tar.gz
Fix BUILD_SERIAL.
Change from using #if to #ifdef, since #if can't cope with string constants.
Diffstat (limited to 'src')
-rw-r--r--src/Config18
-rw-r--r--src/Makefile.housekeeping26
-rw-r--r--src/config.h55
-rw-r--r--src/core/config.c59
-rw-r--r--src/drivers/bus/isa.c18
5 files changed, 111 insertions, 65 deletions
diff --git a/src/Config b/src/Config
index 2fc9683c..9ac46c2e 100644
--- a/src/Config
+++ b/src/Config
@@ -221,18 +221,6 @@
# which saves power while waiting for user interaction.
# Good for compute clusters and VMware emulation.
# But may not work for all CPUs.
-# -DBUILD_SERIAL
-# Include an auto-incrementing build number in
-# the Etherboot welcome message. Useful when
-# developing, to be sure that the file you
-# compiled is the one you're currently testing.
-# -DBUILD_ID
-# Include a build ID string in the Etherboot
-# welcome message. Useful when developing, if
-# you have multiple builds with different
-# configurations and want to check you're
-# running the one you think you are. Requires
-# -DBUILD_SERIAL.
#
# @/OptionDescription@
@@ -365,12 +353,6 @@ CFLAGS+= -DPXE_IMAGE -DPXE_EXPORT
# via pxeboot, use only with DOWNLOAD_PROTO_NFS
# CFLAGS+= -DFREEBSD_PXEEMU
-# Include an auto-incrementing build serial number and optional build
-# ID string
-# CFLAGS+= -DBUILD_SERIAL
-# CFLAGS+= -DBUILD_SERIAL -DBUILD_ID=\"testing\"
-
-
# Garbage from Makefile.main temporarily placed here until a home can
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
index 1dfc34d1..dd4bd084 100644
--- a/src/Makefile.housekeeping
+++ b/src/Makefile.housekeeping
@@ -359,26 +359,24 @@ CLEANUP += $(NRV2B)
# build targets to get a serial number printed at the end of the
# build. Enable -DBUILD_SERIAL in order to see it when the code runs.
#
-BUILDSERIAL_H = include/.buildserial.h
+BUILDSERIAL_H = config/.buildserial.h
+BUILDSERIAL_NOW = config/.buildserial.now
+BUILDSERIAL_NEXT = config/.buildserial.next
-$(BUILDSERIAL_H) :
- @if [ ! -s $@ ]; then echo '#define BUILD_SERIAL_NUM 0' > $@; fi
- @perl -pi -e 's/(BUILD_SERIAL_NUM)\s+(\d+)/"$${1} ".($${2}+1)/e' $@
+$(BUILDSERIAL_NOW) $(BUILDSERIAL_NEXT) :
+ echo 1 > $@
-bs : $(BUILDSERIAL_H)
- @perl -n -e '/BUILD_SERIAL_NUM\s+(\d+)/ && ' \
- -e 'print "Build serial number is $$1\n";' $<
+$(BUILDSERIAL_H) : $(BUILDSERIAL_NOW) $(BUILDSERIAL_NEXT)
+ echo '#define BUILD_SERIAL_NUM $(shell cat $<)' > $@
ifeq ($(filter bs,$(MAKECMDGOALS)),bs)
-.PHONY : $(BUILDSERIAL_H)
+$(shell diff -q $(BUILDSERIAL_NOW) $(BUILDSERIAL_NEXT) > /dev/null || \
+ cp -f $(BUILDSERIAL_NEXT) $(BUILDSERIAL_NOW))
endif
-# Ensure that include/.buildserial.h always exists, to solve the
-# problem of bootstrapping a BUILD_SERIAL-enabled build.
-#
-ifeq ($(wildcard $(BUILDSERIAL_H)),)
-$(shell $(TOUCH) $(BUILDSERIAL_H))
-endif
+bs : $(BUILDSERIAL_NOW)
+ @echo $$(( $(shell cat $<) + 1 )) > $(BUILDSERIAL_NEXT)
+ @echo "Build serial number is $(shell cat $<)"
# List of available architectures
#
diff --git a/src/config.h b/src/config.h
index 50a49457..879d0255 100644
--- a/src/config.h
+++ b/src/config.h
@@ -17,11 +17,11 @@
*
*/
-#define CONSOLE_FIRMWARE 1 /* Default BIOS console */
-#define CONSOLE_SERIAL 0 /* Serial port */
-#define CONSOLE_DIRECT_VGA 0 /* Direct access to VGA card */
-#define CONSOLE_BTEXT 0 /* Who knows what this does? */
-#define CONSOLE_PC_KBD 0 /* Direct access to PC keyboard */
+#define CONSOLE_FIRMWARE /* Default BIOS console */
+#undef CONSOLE_SERIAL /* Serial port */
+#undef CONSOLE_DIRECT_VGA /* Direct access to VGA card */
+#undef CONSOLE_BTEXT /* Who knows what this does? */
+#undef CONSOLE_PC_KBD /* Direct access to PC keyboard */
/* @END general.h */
@@ -35,18 +35,49 @@
*
*/
-#define COMCONSOLE 0x3f8 /* I/O port address */
+#define COMCONSOLE 0x3f8 /* I/O port address */
/* Keep settings from a previous user of the serial port (e.g. lilo or
* LinuxBIOS), ignoring COMSPEED, COMDATA, COMPARITY and COMSTOP.
*/
-#define COMPRESERVE 0
+#undef COMPRESERVE
-#if ! COMPRESERVE
-#define COMSPEED 9600 /* Baud rate */
-#define COMDATA 8 /* Data bits */
-#define COMPARITY 0 /* Parity: 0=None, 1=Odd, 2=Even */
-#define COMSTOP 1 /* Stop bits */
+#ifdef COMPRESERVE
+#define COMSPEED 9600 /* Baud rate */
+#define COMDATA 8 /* Data bits */
+#define COMPARITY 0 /* Parity: 0=None, 1=Odd, 2=Even */
+#define COMSTOP 1 /* Stop bits */
#endif
/* @END serial.h */
+
+/* @BEGIN isa.h
+ *
+ * ISA probe address configuration
+ *
+ * You can override the list of addresses that will be probed by any
+ * ISA drivers.
+ *
+ */
+#undef ISA_PROBE_ADDRS /* e.g. 0x200, 0x300 */
+#undef ISA_PROBE_ONLY /* Do not probe any other addresses */
+
+/* @END isa.h */
+
+/* @BEGIN general.h
+ *
+ * Obscure configuration options
+ *
+ * You probably don't need to touch these.
+ *
+ */
+
+#define RELOCATE /* Relocate to high memory */
+#undef BUILD_SERIAL /* Include an automatic build serial
+ * number. Add "bs" to the list of
+ * make targets. For example:
+ * "make bin/rtl8139.dsk bs" */
+#undef BUILD_ID /* Include a custom build ID string,
+ * e.g "test-foo" */
+
+/* @END general.h */
diff --git a/src/core/config.c b/src/core/config.c
index ebf9d256..62ad62af 100644
--- a/src/core/config.c
+++ b/src/core/config.c
@@ -11,21 +11,46 @@
#include "config/general.h"
+/*
+ * Build ID string calculations
+ *
+ */
+#undef XSTR
+#undef STR
+#define XSTR(s) STR(s)
+#define STR(s) #s
+
#ifdef BUILD_SERIAL
-#include ".buildserial.h"
-#define xstr(s) str(s)
-#define str(s) #s
+#include "config/.buildserial.h"
+#define BUILD_SERIAL_STR "#" XSTR(BUILD_SERIAL_NUM)
+#else
+#define BUILD_SERIAL_STR ""
#endif
-void print_config ( void ) {
- printf( "Etherboot " VERSION
-#ifdef BUILD_SERIAL
- " [build "
#ifdef BUILD_ID
- BUILD_ID " "
+#define BUILD_ID_STR BUILD_ID
+#else
+#define BUILD_ID_STR ""
#endif
- "#" xstr(BUILD_SERIAL_NUM) "]"
-#endif /* BUILD_SERIAL */
+
+#if defined(BUILD_ID) && defined(BUILD_SERIAL)
+#define BUILD_SPACER " "
+#else
+#define BUILD_SPACER ""
+#endif
+
+#if defined(BUILD_ID) || defined(BUILD_SERIAL)
+#define BUILD_STRING " [build " BUILD_ID_STR BUILD_SPACER BUILD_SERIAL_STR "]"
+#else
+#define BUILD_STRING ""
+#endif
+
+/*
+ * Print out configuration
+ *
+ */
+void print_config ( void ) {
+ printf( "Etherboot " VERSION BUILD_STRING
" (GPL) http://etherboot.org\n"
"Drivers: " );
print_drivers();
@@ -115,30 +140,30 @@ void print_config ( void ) {
*
*/
-#if CONSOLE_DUAL
+#ifdef CONSOLE_DUAL
#undef CONSOLE_FIRMWARE
#define CONSOLE_FIRMWARE 1
#undef CONSOLE_SERIAL
#define CONSOLE_SERIAL 1
#endif
-#if CONSOLE_FIRMWARE
+#ifdef CONSOLE_FIRMWARE
REQUIRE_OBJECT ( bios_console );
#endif
-#if CONSOLE_SERIAL
+#ifdef CONSOLE_SERIAL
REQUIRE_OBJECT ( serial );
#endif
-#if CONSOLE_DIRECT_VGA
+#ifdef CONSOLE_DIRECT_VGA
REQUIRE_OBJECT ( video_subr );
#endif
-#if CONSOLE_BTEXT
+#ifdef CONSOLE_BTEXT
REQUIRE_OBJECT ( btext );
#endif
-#if CONSOLE_PC_KBD
+#ifdef CONSOLE_PC_KBD
REQUIRE_OBJECT ( pc_kbd );
#endif
@@ -147,6 +172,6 @@ REQUIRE_OBJECT ( pc_kbd );
*
*/
-#if RELOCATE
+#ifdef RELOCATE
REQUIRE_OBJECT ( relocate );
#endif
diff --git a/src/drivers/bus/isa.c b/src/drivers/bus/isa.c
index 99784cc0..1afb1aa1 100644
--- a/src/drivers/bus/isa.c
+++ b/src/drivers/bus/isa.c
@@ -32,11 +32,21 @@ static char isa_magic[0]; /* guaranteed unique symbol */
* User-supplied probe address list
*
*/
-static isa_probe_addr_t isa_extra_probe_addrs[] = {
- ISA_PROBE_ADDRS
-#if ISA_PROBE_ONLY
- , 0
+#ifdef ISA_PROBE_ADDRS
+# ifdef ISA_PROBE_ONLY
+# define HAVE_ISA_PROBE_ADDRS 1
+# define ISA_PROBE_ADDR_LIST ISA_PROBE_ADDRS, 0
+# else
+# define HAVE_ISA_PROBE_ADDRS 1
+# define ISA_PROBE_ADDR_LIST ISA_PROBE_ADDRS
+# endif
+#else
+# define HAVE_ISA_PROBE_ADDRS 0
+# define ISA_PROBE_ADDR_LIST
#endif
+
+static isa_probe_addr_t isa_extra_probe_addrs[] = {
+ ISA_PROBE_ADDR_LIST
};
#define isa_extra_probe_addr_count \
( sizeof ( isa_extra_probe_addrs ) / sizeof ( isa_extra_probe_addrs[0] ) )