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.
This commit is contained in:
Joel Sherrill 2012-08-31 18:50:17 -05:00
parent 01099752a6
commit f333955d79
5 changed files with 26 additions and 3 deletions

1
.gitignore vendored
View File

@ -2,6 +2,7 @@
o-optimize o-optimize
copied copied
libbsd.html libbsd.html
rtemsbsd/freebsd/machine/rtems-bsd-config.h
rtemsbsd/avr/avr/in_cksum.c rtemsbsd/avr/avr/in_cksum.c
rtemsbsd/avr/include/freebsd/machine/in_cksum.h rtemsbsd/avr/include/freebsd/machine/in_cksum.h
rtemsbsd/bfin/bfin/in_cksum.c rtemsbsd/bfin/bfin/in_cksum.c

View File

@ -17,7 +17,7 @@ CFLAGS += -std=gnu99
CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d
NEED_DUMMY_PIC_IRQ=yes NEED_DUMMY_PIC_IRQ=yes
GENERATED_FILES = GENERATED_FILES = rtemsbsd/freebsd/machine/rtems-bsd-config.h
C_FILES = C_FILES =
C_FILES += rtemsbsd/dev/usb/controller/ohci_lpc24xx.c 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.c
C_FILES += freebsd/netinet/libalias/alias_skinny.c C_FILES += freebsd/netinet/libalias/alias_skinny.c
C_FILES += freebsd/netinet/libalias/alias_sctp.c C_FILES += freebsd/netinet/libalias/alias_sctp.c
ifneq ($(DISABLE_IPV6),yes)
C_FILES += freebsd/netinet6/dest6.c C_FILES += freebsd/netinet6/dest6.c
C_FILES += freebsd/netinet6/frag6.c C_FILES += freebsd/netinet6/frag6.c
C_FILES += freebsd/netinet6/icmp6.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/scope6.c
C_FILES += freebsd/netinet6/sctp6_usrreq.c C_FILES += freebsd/netinet6/sctp6_usrreq.c
C_FILES += freebsd/netinet6/udp6_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.c
C_FILES += freebsd/netipsec/ipsec_input.c C_FILES += freebsd/netipsec/ipsec_input.c
C_FILES += freebsd/netipsec/ipsec_mbuf.c C_FILES += freebsd/netipsec/ipsec_mbuf.c
@ -651,6 +655,9 @@ lib_user: $(LIB) install_bsd
$(MAKE) -C freebsd-userspace $(MAKE) -C freebsd-userspace
# The following targets use the MIPS Generic in_cksum routine # 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 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/ test -d copied/rtemsbsd/avr/avr/ || mkdir -p copied/rtemsbsd/avr/avr/
cp $< $@ cp $< $@

View File

@ -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 INSTALL_BASE = ${HOME}/newbsd/install
DISABLE_IPV6=yes

View File

@ -382,10 +382,13 @@ class ModuleManager:
'CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \ 'CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \
'NEED_DUMMY_PIC_IRQ=yes\n' \ 'NEED_DUMMY_PIC_IRQ=yes\n' \
'\n' \ '\n' \
'GENERATED_FILES =\n' \ 'GENERATED_FILES = rtemsbsd/freebsd/machine/rtems-bsd-config.h\n' \
'\n' '\n'
data += 'C_FILES =\n' data += 'C_FILES =\n'
for m in self.modules: for m in self.modules:
if m.conditionalOn != "none":
data += 'ifneq ($(' + m.conditionalOn + '),yes)\n'
for file in m.sourceFiles: for file in m.sourceFiles:
data += 'C_FILES += ' + file.getMakefileFragment() + '\n' data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
for cpu, files in sorted(m.cpuDependentSourceFiles.items()): for cpu, files in sorted(m.cpuDependentSourceFiles.items()):
@ -395,6 +398,10 @@ class ModuleManager:
if cpu in ("arm", "i386", "lm32", "mips", "powerpc", "sparc"): if cpu in ("arm", "i386", "lm32", "mips", "powerpc", "sparc"):
data += 'NEED_DUMMY_PIC_IRQ=no\n' data += 'NEED_DUMMY_PIC_IRQ=no\n'
data += 'endif\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: for cpu in CPUsNeedingGenericIncksum:
data += 'ifeq ($(RTEMS_CPU), ' + cpu + ')\n' \ data += 'ifeq ($(RTEMS_CPU), ' + cpu + ')\n' \
'GENERATED_FILES += copied/rtemsbsd/' + cpu + '/' + cpu + '/in_cksum.c\n' \ 'GENERATED_FILES += copied/rtemsbsd/' + cpu + '/' + cpu + '/in_cksum.c\n' \
@ -429,6 +436,9 @@ class ModuleManager:
'\t$(MAKE) -C freebsd-userspace\n' \ '\t$(MAKE) -C freebsd-userspace\n' \
'\n' \ '\n' \
'# The following targets use the MIPS Generic in_cksum routine\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: for cpu in CPUsNeedingGenericIncksum:
dDir = 'copied/rtemsbsd/' + cpu + '/' + cpu + '/' dDir = 'copied/rtemsbsd/' + cpu + '/' + cpu + '/'
sDir = 'freebsd/mips/mips/' sDir = 'freebsd/mips/mips/'
@ -530,6 +540,8 @@ def assertSourceFile(path):
class Module: class Module:
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
self.conditionalOn = "none"
self.cppPattern = "s///"
self.headerFiles = [] self.headerFiles = []
self.sourceFiles = [] self.sourceFiles = []
self.cpuDependentSourceFiles = {} self.cpuDependentSourceFiles = {}
@ -1827,6 +1839,8 @@ netinet.addSourceFiles(
) )
netinet6 = Module('netinet6') netinet6 = Module('netinet6')
netinet6.conditionalOn = "DISABLE_IPV6"
netinet6.cppPattern = 's/^\#define INET6 1/\/\/ \#define INET6 1/'
netinet6.addHeaderFiles( netinet6.addHeaderFiles(
[ [
'netinet6/icmp6.h', 'netinet6/icmp6.h',