diff options
author | Joel Sherrill <joel.sherrill@oarcorp.com> | 2012-08-31 18:50:17 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2012-08-31 18:50:17 -0500 |
commit | f333955d79cbcf03f011fb75d02fbe61237aff57 (patch) | |
tree | 261c96e1685b3af0c87cace7f85d40da1ae91ea3 | |
parent | yp_prot.h: Further disable bool definition (diff) | |
download | rtems-libbsd-f333955d79cbcf03f011fb75d02fbe61237aff57.tar.bz2 |
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.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | config.inc | 3 | ||||
-rwxr-xr-x | freebsd-to-rtems.py | 16 | ||||
-rw-r--r-- | rtemsbsd/freebsd/machine/rtems-bsd-config.h.in (renamed from rtemsbsd/freebsd/machine/rtems-bsd-config.h) | 0 |
5 files changed, 26 insertions, 3 deletions
@@ -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 @@ -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 $< $@ @@ -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 7ff90424..8a7d88ca 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 index 79a09de0..79a09de0 100644 --- a/rtemsbsd/freebsd/machine/rtems-bsd-config.h +++ b/rtemsbsd/freebsd/machine/rtems-bsd-config.h.in |