Fix BUILD_SERIAL.
authorMichael Brown <mcb30@etherboot.org>
Mon, 18 Apr 2005 12:43:18 +0000 (12:43 +0000)
committerMichael Brown <mcb30@etherboot.org>
Mon, 18 Apr 2005 12:43:18 +0000 (12:43 +0000)
Change from using #if to #ifdef, since #if can't cope with string
constants.

src/Config
src/Makefile.housekeeping
src/config.h
src/core/config.c
src/drivers/bus/isa.c

index 2fc9683..9ac46c2 100644 (file)
 #                      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
index 1dfc34d..dd4bd08 100644 (file)
@@ -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
 #
index 50a4945..879d025 100644 (file)
  *
  */
 
-#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 */
 
  *
  */
 
-#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 */
index ebf9d25..62ad62a 100644 (file)
 
 #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
index 99784cc..1afb1aa 100644 (file)
@@ -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] ) )