# 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@
# 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
# 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
#
*
*/
-#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 */
#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();
*
*/
-#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
*
*/
-#if RELOCATE
+#ifdef RELOCATE
REQUIRE_OBJECT ( relocate );
#endif
* 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] ) )