[rtems-libbsd commit] Build System: Add option to disable IPV6 in orderly fashion

Joel Sherrill joel at rtems.org
Sat Sep 1 14:42:56 UTC 2012


Module:    rtems-libbsd
Branch:    master
Commit:    f333955d79cbcf03f011fb75d02fbe61237aff57
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=f333955d79cbcf03f011fb75d02fbe61237aff57

Author:    Joel Sherrill <joel.sherrill at oarcorp.com>
Date:      Fri Aug 31 18:50:17 2012 -0500

Build System: Add option to disable IPV6 in orderly fashion

If you define DISABLE_IPV6=yes to the config.inc, then the
rtems-bsd-config.h file will be modified accordingly and
the IPV6 kernel sources will not be built. This is easier
to manage and more correct than having a patch to do the same.

---

 .gitignore                                         |    1 +
 Makefile                                           |    9 ++++++++-
 config.inc                                         |    3 ++-
 freebsd-to-rtems.py                                |   16 +++++++++++++++-
 .../{rtems-bsd-config.h => rtems-bsd-config.h.in}  |    0
 5 files changed, 26 insertions(+), 3 deletions(-)

diff --git a/.gitignore b/.gitignore
index 4aefc12..9d84c59 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
 o-optimize
 copied
 libbsd.html
+rtemsbsd/freebsd/machine/rtems-bsd-config.h
 rtemsbsd/avr/avr/in_cksum.c
 rtemsbsd/avr/include/freebsd/machine/in_cksum.h
 rtemsbsd/bfin/bfin/in_cksum.c
diff --git a/Makefile b/Makefile
index e29df9a..bbd51ac 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,7 @@ CFLAGS += -std=gnu99
 CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d
 NEED_DUMMY_PIC_IRQ=yes
 
-GENERATED_FILES =
+GENERATED_FILES = rtemsbsd/freebsd/machine/rtems-bsd-config.h
 
 C_FILES =
 C_FILES += rtemsbsd/dev/usb/controller/ohci_lpc24xx.c
@@ -195,6 +195,7 @@ C_FILES += freebsd/netinet/libalias/alias_proxy.c
 C_FILES += freebsd/netinet/libalias/alias.c
 C_FILES += freebsd/netinet/libalias/alias_skinny.c
 C_FILES += freebsd/netinet/libalias/alias_sctp.c
+ifneq ($(DISABLE_IPV6),yes)
 C_FILES += freebsd/netinet6/dest6.c
 C_FILES += freebsd/netinet6/frag6.c
 C_FILES += freebsd/netinet6/icmp6.c
@@ -222,6 +223,9 @@ C_FILES += freebsd/netinet6/route6.c
 C_FILES += freebsd/netinet6/scope6.c
 C_FILES += freebsd/netinet6/sctp6_usrreq.c
 C_FILES += freebsd/netinet6/udp6_usrreq.c
+else
+SED_PATTERN += -e 's/^\#define INET6 1/\/\/ \#define INET6 1/'
+endif # DISABLE_IPV6
 C_FILES += freebsd/netipsec/ipsec.c
 C_FILES += freebsd/netipsec/ipsec_input.c
 C_FILES += freebsd/netipsec/ipsec_mbuf.c
@@ -651,6 +655,9 @@ lib_user: $(LIB) install_bsd
 	$(MAKE) -C freebsd-userspace
 
 # The following targets use the MIPS Generic in_cksum routine
+rtemsbsd/freebsd/machine/rtems-bsd-config.h: rtemsbsd/freebsd/machine/rtems-bsd-config.h.in
+	sed $(SED_PATTERN) <$< >$@
+
 copied/rtemsbsd/avr/avr/in_cksum.c: freebsd/mips/mips/in_cksum.c
 	test -d copied/rtemsbsd/avr/avr/ || mkdir -p copied/rtemsbsd/avr/avr/
 	cp $< $@
diff --git a/config.inc b/config.inc
index 7e975d5..63eddb1 100644
--- a/config.inc
+++ b/config.inc
@@ -1,3 +1,4 @@
-RTEMS_MAKEFILE_PATH = ${HOME}/newbsd/bsp-install/powerpc-rtems4.11/psim/
+RTEMS_MAKEFILE_PATH = ${HOME}/newbsd/bsp-install/mips-rtems4.11/jmr3904/
 INSTALL_BASE = ${HOME}/newbsd/install
+DISABLE_IPV6=yes
 
diff --git a/freebsd-to-rtems.py b/freebsd-to-rtems.py
index 7ff9042..8a7d88c 100755
--- a/freebsd-to-rtems.py
+++ b/freebsd-to-rtems.py
@@ -382,10 +382,13 @@ class ModuleManager:
 			'CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \
 			'NEED_DUMMY_PIC_IRQ=yes\n' \
 			'\n' \
-			'GENERATED_FILES =\n' \
+			'GENERATED_FILES = rtemsbsd/freebsd/machine/rtems-bsd-config.h\n' \
 			'\n'
 		data += 'C_FILES =\n'
 		for m in self.modules:
+			if m.conditionalOn != "none":
+				data += 'ifneq ($(' + m.conditionalOn + '),yes)\n'
+
 			for file in m.sourceFiles:
 				data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
 			for cpu, files in sorted(m.cpuDependentSourceFiles.items()):
@@ -395,6 +398,10 @@ class ModuleManager:
 				if cpu in ("arm", "i386", "lm32", "mips", "powerpc", "sparc"):
 					data += 'NEED_DUMMY_PIC_IRQ=no\n'
 				data += 'endif\n'
+			if m.conditionalOn != "none":
+				data += 'else\n'
+				data += 'SED_PATTERN += -e \'' + m.cppPattern +'\'\n'
+				data += 'endif # ' + m.conditionalOn +'\n'
 		for cpu in CPUsNeedingGenericIncksum:
 			data += 'ifeq ($(RTEMS_CPU), ' + cpu + ')\n' \
 				'GENERATED_FILES += copied/rtemsbsd/' + cpu + '/' + cpu + '/in_cksum.c\n' \
@@ -429,6 +436,9 @@ class ModuleManager:
 			'\t$(MAKE) -C freebsd-userspace\n' \
 			'\n' \
 			'# The following targets use the MIPS Generic in_cksum routine\n'
+		data += 'rtemsbsd/freebsd/machine/rtems-bsd-config.h: rtemsbsd/freebsd/machine/rtems-bsd-config.h.in\n'
+		data += '\tsed $(SED_PATTERN) <$< >$@\n'
+		data += '\n'
 		for cpu in CPUsNeedingGenericIncksum:
 			dDir = 'copied/rtemsbsd/' + cpu + '/' + cpu + '/'
 			sDir = 'freebsd/mips/mips/'
@@ -530,6 +540,8 @@ def assertSourceFile(path):
 class Module:
 	def __init__(self, name):
 		self.name = name
+		self.conditionalOn = "none"
+		self.cppPattern = "s///"
 		self.headerFiles = []
 		self.sourceFiles = []
 		self.cpuDependentSourceFiles = {}
@@ -1827,6 +1839,8 @@ netinet.addSourceFiles(
 )
 
 netinet6 = Module('netinet6')
+netinet6.conditionalOn = "DISABLE_IPV6"
+netinet6.cppPattern = 's/^\#define INET6 1/\/\/ \#define INET6 1/'
 netinet6.addHeaderFiles(
 	[
 		'netinet6/icmp6.h',
diff --git a/rtemsbsd/freebsd/machine/rtems-bsd-config.h b/rtemsbsd/freebsd/machine/rtems-bsd-config.h.in
similarity index 100%
rename from rtemsbsd/freebsd/machine/rtems-bsd-config.h
rename to rtemsbsd/freebsd/machine/rtems-bsd-config.h.in




More information about the vc mailing list