source: rtems-libbsd/freebsd-to-rtems.py @ 6d78dca

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since 6d78dca was 6d78dca, checked in by Jennifer Averett <jennifer.averett@…>, on 07/11/12 at 19:39:41

Makefile: Fix clean and install of user space

  • Property mode set to 100755
File size: 50.4 KB
Line 
1#! /usr/bin/python
2#
3#  Copyright (c) 2009-2012 embedded brains GmbH.  All rights reserved.
4#
5#   embedded brains GmbH
6#   Obere Lagerstr. 30
7#   82178 Puchheim
8#   Germany
9#   <info@embedded-brains.de>
10#
11#  Copyright (c) 2012 OAR Corporation. All rights reserved.
12#
13#  Redistribution and use in source and binary forms, with or without
14#  modification, are permitted provided that the following conditions
15#  are met:
16#  1. Redistributions of source code must retain the above copyright
17#     notice, this list of conditions and the following disclaimer.
18#  2. Redistributions in binary form must reproduce the above copyright
19#     notice, this list of conditions and the following disclaimer in the
20#     documentation and/or other materials provided with the distribution.
21#
22#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
34# FreeBSD: http://svn.freebsd.org/base/releng/8.2/sys (revision 222485)
35
36import shutil
37import os
38import re
39import sys
40import getopt
41import filecmp
42import difflib
43
44RTEMS_DIR = "not_set"
45FreeBSD_DIR = "not_set"
46isVerbose = False
47isForward = True
48isDryRun = False
49isDiffMode = False
50isEarlyExit = False
51isOnlyMakefile = False
52tempFile = "/tmp/tmp_FBRT"
53filesProcessed = 0
54
55def usage():
56  print "freebsd-to-rtems.py [args]"
57  print "  -?|-h|--help     print this and exit"
58  print "  -d|--dry-run     run program but no modifications"
59  print "  -D|--diff        provide diff of files between trees"
60  print "  -e|--early-exit  evaluate arguments, print results, and exit"
61  print "  -m|--makefile    just generate Makefile"
62  print "  -R|--reverse     default FreeBSD -> RTEMS, reverse that"
63  print "  -r|--rtems       RTEMS Libbsd directory"
64  print "  -f|--freebsd     FreeBSD SVN directory"
65  print "  -v|--verbose     enable verbose output mode"
66
67# Parse the arguments
68def parseArguments():
69  global RTEMS_DIR, FreeBSD_DIR
70  global isVerbose, isForward, isDryRun, isEarlyExit
71  global isOnlyMakefile, isDiffMode
72  try:
73    opts, args = getopt.getopt(sys.argv[1:], "?hdDemRr:f:v",
74                 ["help",
75                  "help",
76                  "dry-run"
77                  "diff"
78                  "early-exit"
79                  "makefile"
80                  "reverse"
81                  "rtems="
82                  "freebsd="
83                  "verbose"
84                 ]
85                )
86  except getopt.GetoptError, err:
87    # print help information and exit:
88    print str(err) # will print something like "option -a not recognized"
89    usage()
90    sys.exit(2)
91  for o, a in opts:
92    if o in ("-v", "--verbose"):
93      isVerbose = True
94    elif o in ("-h", "--help", "-?"):
95      usage()
96      sys.exit()
97    elif o in ("-d", "--dry-run"):
98      isDryRun = True
99    elif o in ("-D", "--diff"):
100      isDiffMode = True
101    elif o in ("-e", "--early-exit"):
102      isEarlyExit = True
103    elif o in ("-m", "--makefile"):
104      isOnlyMakefile = True
105    elif o in ("-R", "--reverse"):
106      isForward = False
107    elif o in ("-r", "--rtems"):
108      RTEMS_DIR = a
109    elif o in ("-f", "--freebsd"):
110      FreeBSD_DIR = a
111    else:
112       assert False, "unhandled option"
113
114parseArguments()
115print "Verbose:                " + ("no", "yes")[isVerbose]
116print "Dry Run:                " + ("no", "yes")[isDryRun]
117print "Diff Mode Enabled:      " + ("no", "yes")[isDiffMode]
118print "Only Generate Makefile: " + ("no", "yes")[isOnlyMakefile]
119print "RTEMS Libbsd Directory: " + RTEMS_DIR
120print "FreeBSD SVN Directory:  " + FreeBSD_DIR
121print "Direction:              " + ("reverse", "forward")[isForward]
122
123# Check directory argument was set and exist
124def wasDirectorySet(desc, path):
125    if path == "not_set":
126        print desc + " Directory was not specified on command line"
127        sys.exit(2)
128
129    if os.path.isdir( path ) != True:
130        print desc + " Directory (" + path + ") does not exist"
131        sys.exit(2)
132
133# Were RTEMS and FreeBSD directories specified
134wasDirectorySet( "RTEMS", RTEMS_DIR )
135wasDirectorySet( "FreeBSD", FreeBSD_DIR )
136 
137# Are we generating or reverting?
138if isForward == True:
139    print "Forward from FreeBSD SVN into ", RTEMS_DIR
140else:
141    print "Reverting from ", RTEMS_DIR
142    if isOnlyMakefile == True:
143        print "Only Makefile Mode and Reverse are contradictory"
144        sys.exit(2)
145
146if isEarlyExit == True:
147    print "Early exit at user request"
148    sys.exit(0)
149 
150# Prefix added to FreeBSD files as they are copied into the RTEMS
151# build tree.
152PREFIX = 'freebsd'
153
154def mapContribPath(path):
155        m = re.match('(.*)(' + PREFIX + '/)(contrib/\\w+/)(.*)', path)
156        if m:
157                path = m.group(1) + m.group(3) + m.group(2) + m.group(4)
158        return path
159
160# Move target dependent files under a machine directory
161def mapCPUDependentPath(path):
162        return path.replace("include/", "include/freebsd/machine/")
163
164# compare and process file only if different
165#  + copy or diff depending on execution mode
166def processIfDifferent(new, old, src):
167  global filesProcessed
168  global isVerbose, isDryRun, isEarlyExit
169  if not os.path.exists(old) or \
170     filecmp.cmp(new, old, shallow=False) == False:
171    filesProcessed += 1
172    if isDiffMode == False:
173      if isVerbose == True:
174        print "Move " + src + " to " + old
175      if isDryRun == False:
176        shutil.move(new, old)
177    else:
178      #print "Diff " + src
179      old_contents = open(old).readlines()
180      new_contents = open(new).readlines()
181      for line in difflib.unified_diff( \
182          old_contents, new_contents, fromfile=src, tofile=new, n=5):
183        sys.stdout.write(line)
184
185# fix include paths inside a C or .h file
186def fixIncludes(data):
187        data = re.sub('#([ \t]*)include <', '#\\1include <' + PREFIX + '/', data)
188        data = re.sub('#include <' + PREFIX + '/rtems', '#include <rtems', data)
189        data = re.sub('#include <' + PREFIX + '/bsp', '#include <bsp', data)
190        data = re.sub('#include "([^"]*)"', '#include <' + PREFIX + '/local/\\1>', data)
191        data = re.sub('_H_', '_HH_', data)
192        return data
193
194# revert fixing the include paths inside a C or .h file
195def revertFixIncludes(data):
196        data = re.sub('_HH_', '_H_', data)
197        data = re.sub('#include <' + PREFIX + '/local/([^>]*)>', '#include "\\1"', data)
198        data = re.sub('#([ \t]*)include <' + PREFIX + '/', '#\\1include <', data)
199        return data
200
201class Converter(object):
202        def convert(self, src):
203                return open(src).read()
204
205        def isConvertible(self):
206                return True
207
208class NoConverter(Converter):
209        def convert(self, src):
210                raise
211
212        def isConvertible(self):
213                return False
214
215class EmptyConverter(Converter):
216        def convert(self, src):
217                return '/* EMPTY */\n'
218
219class FromFreeBSDToRTEMSHeaderConverter(Converter):
220        def convert(self, src):
221                data = super(FromFreeBSDToRTEMSHeaderConverter, self).convert(src)
222                return fixIncludes(data)
223
224class FromRTEMSToFreeBSDHeaderConverter(Converter):
225        def convert(self, src):
226                data = super(FromRTEMSToFreeBSDHeaderConverter, self).convert(src)
227                return revertFixIncludes(data)
228
229class FromFreeBSDToRTEMSSourceConverter(Converter):
230        def convert(self, src):
231                data = super(FromFreeBSDToRTEMSSourceConverter, self).convert(src)
232                data = fixIncludes(data)
233                data = '#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n' + data
234                return data
235
236class FromRTEMSToFreeBSDSourceConverter(Converter):
237        def convert(self, src):
238                data = super(FromRTEMSToFreeBSDSourceConverter, self).convert(src)
239                data = re.sub('#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n', '', data)
240                data = revertFixIncludes(data)
241                return data
242
243class PathComposer(object):
244        def composeFreeBSDPath(self, path):
245                return FreeBSD_DIR + '/' + path
246
247        def composeRTEMSPath(self, path, prefix):
248                path = prefix + PREFIX + '/' + path
249                path = mapContribPath(path)
250                return path
251
252class RTEMSPathComposer(object):
253        def composeFreeBSDPath(self, path):
254                return path
255
256        def composeRTEMSPath(self, path, prefix):
257                path = prefix + 'rtemsbsd/' + path
258                return path
259
260class CPUDependentPathComposer(PathComposer):
261        def composeRTEMSPath(self, path, prefix):
262                path = super(CPUDependentPathComposer, self).composeRTEMSPath(path, prefix)
263                path = mapCPUDependentPath(path)
264                return path
265
266class File(object):
267        def __init__(self, path, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter):
268                self.path = path
269                self.pathComposer = pathComposer
270                self.fromFreeBSDToRTEMSConverter = fromFreeBSDToRTEMSConverter
271                self.fromRTEMSToFreeBSDConverter = fromRTEMSToFreeBSDConverter
272
273        def copy(self, dst, src, converter):
274                if converter.isConvertible():
275                        global tempFile
276                        try:
277                                if isDryRun == False:
278                                        os.makedirs(os.path.dirname(dst))
279                        except OSError:
280                                pass
281                        data = converter.convert(src)
282                        out = open(tempFile, 'w')
283                        out.write(data)
284                        out.close()
285                        processIfDifferent(tempFile, dst, src)
286
287        def copyFromFreeBSDToRTEMS(self):
288                src = self.pathComposer.composeFreeBSDPath(self.path)
289                dst = self.pathComposer.composeRTEMSPath(self.path, RTEMS_DIR + '/')
290                self.copy(dst, src, self.fromFreeBSDToRTEMSConverter)
291
292        def copyFromRTEMSToFreeBSD(self):
293                src = self.pathComposer.composeRTEMSPath(self.path, RTEMS_DIR + '/')
294                dst = self.pathComposer.composeFreeBSDPath(self.path)
295                self.copy(dst, src, self.fromRTEMSToFreeBSDConverter)
296
297        def getMakefileFragment(self):
298                return self.pathComposer.composeRTEMSPath(self.path, '')
299
300# Remove the output directory
301def deleteOutputDirectory():
302        try:
303                if isVerbose == True:
304                        print "Delete Directory - " + RTEMS_DIR + "/freebsd"
305                if isVerbose == True:
306                        print "Delete Directory - " + RTEMS_DIR + "/contrib"
307                if isDryRun == True:
308                        return
309                shutil.rmtree(RTEMS_DIR + "/freebsd" )
310                shutil.rmtree(RTEMS_DIR + "/contrib" )
311        except OSError:
312            pass
313
314# Module Manager - Collection of Modules
315class ModuleManager:
316        def __init__(self):
317                self.modules = []
318
319        def addModule(self, module):
320                self.modules.append(module)
321
322        def copyFromFreeBSDToRTEMS(self):
323                for m in self.modules:
324                        m.copyFromFreeBSDToRTEMS()
325
326        def copyFromRTEMSToFreeBSD(self):
327                for m in self.modules:
328                        m.copyFromRTEMSToFreeBSD()
329
330        def createMakefile(self):
331                global tempFile
332                data = 'include config.inc\n' \
333                        '\n' \
334                        'include $(RTEMS_MAKEFILE_PATH)/Makefile.inc\n' \
335                        'include $(RTEMS_CUSTOM)\n' \
336                        'include $(PROJECT_ROOT)/make/leaf.cfg\n' \
337                        '\n' \
338                        'CFLAGS += -ffreestanding \n' \
339                        'CFLAGS += -I . \n' \
340                        'CFLAGS += -I rtemsbsd \n' \
341                        'CFLAGS += -I rtemsbsd/$(RTEMS_CPU)/include \n' \
342                        'CFLAGS += -I freebsd/$(RTEMS_CPU)/include \n' \
343                        'CFLAGS += -I contrib/altq \n' \
344                        'CFLAGS += -I contrib/pf \n' \
345                        'CFLAGS += -B $(INSTALL_BASE) \n' \
346                        'CFLAGS += -w \n' \
347                        'CFLAGS += -std=gnu99\n' \
348                        'CFLAGS += -MT $@ -MD -MP -MF $(basename $@).d\n' \
349                        '\n'
350                data += 'C_FILES =\n'
351                for m in self.modules:
352                        for file in m.sourceFiles:
353                                data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
354                        for cpu, files in sorted(m.cpuDependentSourceFiles.items()):
355                                data += 'ifeq ($(RTEMS_CPU), ' + cpu + ')\n'
356                                for file in files:
357                                        data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
358                                data += 'endif\n'
359                data += '\n' \
360                        'C_O_FILES = $(C_FILES:%.c=%.o)\n' \
361                        'C_D_FILES = $(C_FILES:%.c=%.d)\n' \
362                        '\n' \
363                        'LIB = libbsd.a\n' \
364                        '\n' \
365                        'all: lib_bsd lib_user\n' \
366                        '\n' \
367                        '$(LIB): $(C_O_FILES)\n' \
368                        '\t$(AR) rcu $@ $^\n' \
369                        '\n' \
370                        'lib_bsd:\n' \
371                        '\t$(MAKE) $(LIB)\n' \
372                        '\n' \
373                        'lib_user:\n' \
374                        '\t$(MAKE) -C freebsd-userspace\n' \
375                        '\n' \
376                        'CPU_SED  = sed\n' \
377                        'CPU_SED += -e \'/arm/d\'\n' \
378                        'CPU_SED += -e \'/i386/d\'\n' \
379                        'CPU_SED += -e \'/powerpc/d\'\n' \
380                        'CPU_SED += -e \'/mips/d\'\n' \
381                        'CPU_SED += -e \'/sparc/d\'\n' \
382                        'CPU_SED += -e \'/sparc64/d\'\n' \
383                        '\n' \
384                        'install: $(LIB)\n' \
385                        '\tinstall -d $(INSTALL_BASE)/include\n' \
386                        '\tinstall -c -m 644 $(LIB) $(INSTALL_BASE)\n' \
387                        '\tcd rtemsbsd; for i in `find . -name \'*.h\' | $(CPU_SED)` ; do \\\n' \
388                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
389                        '\tfor i in `find freebsd -name \'*.h\' | $(CPU_SED)` ; do \\\n' \
390                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
391                        '\tcd freebsd/$(RTEMS_CPU)/include ; for i in `find . -name \'*.h\'` ; do \\\n' \
392                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
393                        '\t$(MAKE) -C freebsd-userspace install\n' \
394                        '\n' \
395                        'clean:\n' \
396                        '\trm -f -r $(PROJECT_INCLUDE)/rtems/freebsd\n' \
397                        '\trm -f $(LIB) $(C_O_FILES) $(C_D_FILES)\n' \
398                        '\trm -f libbsd.html\n' \
399                        '\t$(MAKE) -C freebsd-userspace clean\n' \
400                        '\n' \
401                        '-include $(C_D_FILES)\n' \
402                        '\n' \
403                        'doc: libbsd.html\n' \
404                        '\n' \
405                        'libbsd.html: libbsd.txt\n' \
406                        '\tasciidoc -o libbsd.html libbsd.txt\n'
407 
408                out = open(tempFile, 'w')
409                out.write(data)
410                out.close()
411                makefile = RTEMS_DIR + '/Makefile'
412                processIfDifferent(tempFile, makefile, "Makefile")
413
414def assertHeaderFile(path):
415        if path[-2] != '.' or path[-1] != 'h':
416                print "*** " + path + " does not end in .h"
417                print "*** Move it to a C source file list"
418                sys.exit(2)
419
420def assertSourceFile(path):
421        if path[-2] != '.' or (path[-1] != 'c' and path[-1] != 'S'):
422                print "*** " + path + " does not end in .c"
423                print "*** Move it to a header file list"
424                sys.exit(2)
425
426# Module - logical group of related files we can perform actions on
427class Module:
428        def __init__(self, name):
429                self.name = name
430                self.headerFiles = []
431                self.sourceFiles = []
432                self.cpuDependentSourceFiles = {}
433                self.dependencies = []
434
435        def copyFromFreeBSDToRTEMS(self):
436                for file in self.headerFiles:
437                        file.copyFromFreeBSDToRTEMS()
438                for file in self.sourceFiles:
439                        file.copyFromFreeBSDToRTEMS()
440                for cpu, files in self.cpuDependentSourceFiles.items():
441                        for file in files:
442                                file.copyFromFreeBSDToRTEMS()
443
444        def copyFromRTEMSToFreeBSD(self):
445                for file in self.headerFiles:
446                        file.copyFromRTEMSToFreeBSD()
447                for file in self.sourceFiles:
448                        file.copyFromRTEMSToFreeBSD()
449                for cpu, files in self.cpuDependentSourceFiles.items():
450                        for file in files:
451                                file.copyFromRTEMSToFreeBSD()
452
453        def addFiles(self, currentFiles, newFiles, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter, assertFile):
454                for file in newFiles:
455                        assertFile(file)
456                        currentFiles.append(File(file, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter))
457                return currentFiles
458
459        def addHeaderFiles(self, files):
460                self.headerFiles = self.addFiles(self.headerFiles, files, PathComposer(), FromFreeBSDToRTEMSHeaderConverter(), FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
461
462        def addEmptyHeaderFiles(self, files):
463                self.headerFiles = self.addFiles(self.headerFiles, files, PathComposer(), EmptyConverter(), NoConverter(), assertHeaderFile)
464
465        def addRTEMSHeaderFiles(self, files):
466                self.headerFiles = self.addFiles(self.headerFiles, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertHeaderFile)
467
468        def addCPUDependentHeaderFiles(self, files):
469                self.headerFiles = self.addFiles(self.headerFiles, files, CPUDependentPathComposer(), FromFreeBSDToRTEMSHeaderConverter(), FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
470
471        def addSourceFiles(self, files):
472                self.sourceFiles = self.addFiles(self.sourceFiles, files, PathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile)
473
474        def addRTEMSSourceFiles(self, files):
475                self.sourceFiles = self.addFiles(self.sourceFiles, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertSourceFile)
476
477        def addCPUDependentSourceFiles(self, cpu, files):
478                if not self.cpuDependentSourceFiles.has_key(cpu):
479                        self.cpuDependentSourceFiles [cpu] = []
480                self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, CPUDependentPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile)
481
482        def addDependency(self, dep):
483                self.dependencies.append(dep)
484
485# Create Module Manager and supporting Modules
486#  - initialize each module with set of files associated
487mm = ModuleManager()
488
489rtems = Module('rtems')
490rtems.addRTEMSHeaderFiles(
491        [
492                'rtems/machine/atomic.h',
493                'rtems/machine/_bus.h',
494                'rtems/machine/bus.h',
495                'rtems/machine/bus_dma.h',
496                'rtems/machine/rtems-bsd-config.h',
497                'rtems/machine/clock.h',
498                'rtems/machine/endian.h',
499                'rtems/macpue/_limits.h',
500                'rtems/machine/_align.h',
501                'rtems/machine/mutex.h',
502                'rtems/machine/param.h',
503                'rtems/machine/pcpu.h',
504                'rtems/machine/pmap.h',
505                'rtems/machine/proc.h',
506                'rtems/machine/resource.h',
507                'rtems/machine/runq.h',
508                'rtems/machine/signal.h',
509                'rtems/machine/stdarg.h',
510                'rtems/machine/_stdint.h',
511                'rtems/machine/_types.h',
512                'rtems/machine/ucontext.h',
513                'rtems/machine/cpu.h',
514                'rtems/machine/rtems-bsd-symbols.h',
515                'rtems/machine/rtems-bsd-cache.h',
516                'rtems/machine/rtems-bsd-sysinit.h',
517                'rtems/machine/rtems-bsd-select.h',
518                'rtems/machine/rtems-bsd-taskqueue.h',
519                'rtems/machine/rtems-bsd-bus-dma.h',
520                'rtems/machine/rtems-bsd-bus-devicet.h',
521                'bsd.h',
522        ]
523)
524rtems.addRTEMSSourceFiles(
525        [
526                'dev/usb/controller/ohci_lpc24xx.c',
527                'dev/usb/controller/ohci_lpc32xx.c',
528                'dev/usb/controller/ehci_mpc83xx.c',
529                'src/rtems-bsd-thread0-ucred.c',
530                'src/rtems-bsd-cam.c',
531                'src/rtems-bsd-nexus.c',
532                'src/rtems-bsd-autoconf.c',
533                'src/rtems-bsd-delay.c',
534                'src/rtems-bsd-mutex.c',
535                'src/rtems-bsd-thread.c',
536                'src/rtems-bsd-condvar.c',
537                'src/rtems-bsd-lock.c',
538                'src/rtems-bsd-log.c',
539                'src/rtems-bsd-sx.c',
540                'src/rtems-bsd-rwlock.c',
541                'src/rtems-bsd-generic.c',
542                'src/rtems-bsd-panic.c',
543                'src/rtems-bsd-synch.c',
544                'src/rtems-bsd-signal.c',
545                'src/rtems-bsd-init.c',
546                'src/rtems-bsd-init-with-irq.c',
547                'src/rtems-bsd-assert.c',
548                'src/rtems-bsd-jail.c',
549                'src/rtems-bsd-shell.c',
550                'src/rtems-bsd-syscalls.c',
551                'src/rtems-bsd-smp.c',
552                #'src/rtems-bsd-socket.c',
553                #'src/rtems-bsd-mbuf.c',
554                'src/rtems-bsd-malloc.c',
555                'src/rtems-bsd-support.c',
556                'src/rtems-bsd-bus-dma.c',
557                'src/rtems-bsd-bus-dma-mbuf.c',
558                'src/rtems-bsd-sysctl.c',
559                'src/rtems-bsd-sysctlbyname.c',
560                'src/rtems-bsd-sysctlnametomib.c',
561                'src/rtems-bsd-taskqueue.c',
562                'src/rtems-bsd-timesupport.c',
563                'src/rtems-bsd-newproc.c',
564                'src/rtems-bsd-vm_glue.c',
565                'src/rtems-bsd-copyinout.c',
566                'src/rtems-bsd-descrip.c',
567                'src/rtems-bsd-conf.c',
568                'src/rtems-bsd-subr_param.c',
569                'src/rtems-bsd-pci_cfgreg.c',
570                'src/rtems-bsd-pci_bus.c',
571        ]
572)
573rtems.addEmptyHeaderFiles(
574        [
575                'cam/cam_queue.h',
576                'ddb/db_sym.h',
577                'ddb/ddb.h',
578                'machine/elf.h',
579                'machine/sf_buf.h',
580                'machine/smp.h',
581                'machine/vm.h',
582                #'machine/vmparam.h',
583                'local/linker_if.h',
584                'local/opt_bce.h',
585                'local/opt_ntp.h',
586                'security/audit/audit.h',
587                'sys/bio.h',
588                'sys/copyright.h',
589                'sys/cpuset.h',
590                'sys/exec.h',
591                'sys/fail.h',
592                'sys/limits.h',
593                'sys/sleepqueue.h',
594                'sys/namei.h',
595                'sys/_pthreadtypes.h',
596                #'sys/resourcevar.h',
597                'sys/sched.h',
598                'sys/select.h',
599                'sys/syscallsubr.h',
600                'sys/sysent.h',
601                'sys/syslimits.h',
602                'sys/sysproto.h',
603                'sys/stat.h',
604                #'sys/time.h',
605                'time.h',
606                'sys/timespec.h',
607                'sys/_timeval.h',
608                #'sys/vmmeter.h',
609                #'sys/vnode.h',
610                'vm/pmap.h',
611                #'vm/uma_int.h',
612                #'vm/uma_dbg.h',
613                #'vm/vm_extern.h',
614                'vm/vm_map.h',
615                #'vm/vm_object.h',
616                #'vm/vm_page.h',
617                'vm/vm_param.h',
618                #'vm/vm_kern.h',
619                'geom/geom_disk.h',
620                #'sys/kdb.h',
621                #'libkern/jenkins.h',
622                'machine/pcb.h',
623                #'net80211/ieee80211_freebsd.h',
624                'netgraph/ng_ipfw.h',
625                #'sys/sf_buf.h',
626        ]
627)
628
629local = Module('local')
630# RTEMS has its own local/pmap.h
631local.addHeaderFiles(
632        [
633                'local/bus_if.h',
634                'local/device_if.h',
635                'local/opt_bus.h',
636                'local/opt_cam.h',
637                'local/opt_compat.h',
638                'local/opt_ddb.h',
639                'local/opt_hwpmc_hooks.h',
640                'local/opt_init_path.h',
641                'local/opt_ktrace.h',
642                'local/opt_printf.h',
643                'local/opt_scsi.h',
644                'local/opt_usb.h',
645                'local/opt_inet.h',
646                'local/opt_inet6.h',
647                'local/opt_altq.h',
648                'local/opt_atalk.h',
649                'local/opt_bootp.h',
650                'local/opt_bpf.h',
651                'local/opt_bus.h',
652                'local/opt_cam.h',
653                'local/opt_carp.h',
654                'local/opt_compat.h',
655                'local/opt_config.h',
656                'local/opt_cpu.h',
657                'local/opt_ddb.h',
658                'local/opt_device_polling.h',
659                'local/opt_ef.h',
660                'local/opt_enc.h',
661                'local/opt_hwpmc_hooks.h',
662                'local/opt_inet6.h',
663                'local/opt_inet.h',
664                'local/opt_init_path.h',
665                'local/opt_ipdivert.h',
666                'local/opt_ipdn.h',
667                'local/opt_ipfw.h',
668                'local/opt_ipsec.h',
669                'local/opt_ipstealth.h',
670                'local/opt_ipx.h',
671                'local/opt_kdb.h',
672                'local/opt_kdtrace.h',
673                'local/opt_ktrace.h',
674                'local/opt_mbuf_profiling.h',
675                'local/opt_mbuf_stress_test.h',
676                'local/opt_mpath.h',
677                'local/opt_mrouting.h',
678                'local/opt_natm.h',
679                'local/opt_netgraph.h',
680                'local/opt_param.h',
681                'local/opt_posix.h',
682                'local/opt_pf.h',
683                'local/opt_printf.h',
684                'local/opt_route.h',
685                'local/opt_scsi.h',
686                'local/opt_sctp.h',
687                'local/opt_tcpdebug.h',
688                'local/opt_tdma.h',
689                'local/opt_usb.h',
690                'local/opt_vlan.h',
691                'local/opt_wlan.h',
692                'local/opt_zero.h',
693                'local/usbdevs_data.h',
694                'local/usbdevs.h',
695                'local/usb_if.h',
696                'local/vnode_if.h',
697                'local/vnode_if_newproto.h',
698                'local/vnode_if_typedef.h',
699                'local/cryptodev_if.h',
700                'local/miibus_if.h',
701                'local/miidevs.h',
702                'local/pci_if.h',
703                'local/pcib_if.h',
704        ]
705)
706local.addSourceFiles(
707        [
708                'local/usb_if.c',
709                'local/bus_if.c',
710                'local/device_if.c',
711                'local/cryptodev_if.c',
712                'local/miibus_if.c',
713                'local/pci_if.c',
714                'local/pcib_if.c',
715        ]
716)
717
718devUsb = Module('dev_usb')
719devUsb.addHeaderFiles(
720        [
721                'dev/usb/ufm_ioctl.h',
722                'dev/usb/usb_busdma.h',
723                'dev/usb/usb_bus.h',
724                'dev/usb/usb_cdc.h',
725                'dev/usb/usb_controller.h',
726                'dev/usb/usb_core.h',
727                'dev/usb/usb_debug.h',
728                'dev/usb/usb_dev.h',
729                'dev/usb/usb_device.h',
730                'dev/usb/usbdi.h',
731                'dev/usb/usbdi_util.h',
732                'dev/usb/usb_dynamic.h',
733                'dev/usb/usb_endian.h',
734                'dev/usb/usb_freebsd.h',
735                'dev/usb/usb_generic.h',
736                'dev/usb/usb.h',
737                'dev/usb/usbhid.h',
738                'dev/usb/usb_hub.h',
739                'dev/usb/usb_ioctl.h',
740                'dev/usb/usb_mbuf.h',
741                'dev/usb/usb_msctest.h',
742                'dev/usb/usb_process.h',
743                'dev/usb/usb_request.h',
744                'dev/usb/usb_transfer.h',
745                'dev/usb/usb_util.h',
746        ]
747)
748devUsb.addSourceFiles(
749        [
750                'dev/usb/usb_busdma.c',
751                'dev/usb/usb_core.c',
752                'dev/usb/usb_debug.c',
753                'dev/usb/usb_dev.c',
754                'dev/usb/usb_device.c',
755                'dev/usb/usb_dynamic.c',
756                'dev/usb/usb_error.c',
757                'dev/usb/usb_generic.c',
758                'dev/usb/usb_handle_request.c',
759                'dev/usb/usb_hid.c',
760                'dev/usb/usb_hub.c',
761                'dev/usb/usb_lookup.c',
762                'dev/usb/usb_mbuf.c',
763                'dev/usb/usb_msctest.c',
764                'dev/usb/usb_parse.c',
765                'dev/usb/usb_process.c',
766                'dev/usb/usb_request.c',
767                'dev/usb/usb_transfer.c',
768                'dev/usb/usb_util.c',
769        ]
770)
771
772devUsbAddOn = Module('dev_usb_add_on')
773devUsbAddOn.addHeaderFiles(
774        [
775                'dev/usb/usb_pci.h',
776                'dev/usb/usb_compat_linux.h',
777        ]
778)
779devUsbAddOn.addSourceFiles(
780        [
781                'dev/usb/usb_compat_linux.c',
782        ]
783)
784
785devUsbBluetooth = Module('dev_usb_bluetooth')
786devUsbBluetooth.addDependency(devUsb)
787devUsbBluetooth.addHeaderFiles(
788        [
789                'dev/usb/bluetooth/ng_ubt_var.h',
790        ]
791)
792devUsbBluetooth.addSourceFiles(
793        [
794                'dev/usb/bluetooth/ng_ubt.c',
795                'dev/usb/bluetooth/ubtbcmfw.c',
796        ]
797)
798
799devUsbController = Module('dev_usb_controller')
800devUsbController.addDependency(devUsb)
801devUsbController.addHeaderFiles(
802        [
803                'dev/usb/controller/ohci.h',
804                'dev/usb/controller/ohcireg.h',
805                'dev/usb/controller/ehci.h',
806                'dev/usb/controller/ehcireg.h',
807        ]
808)
809devUsbController.addSourceFiles(
810        [
811                'dev/usb/controller/ohci.c',
812                'dev/usb/controller/ehci.c',
813                'dev/usb/controller/usb_controller.c',
814        ]
815)
816
817devUsbControllerAddOn = Module('dev_usb_controller_add_on')
818devUsbControllerAddOn.addDependency(devUsb)
819devUsbControllerAddOn.addHeaderFiles(
820        [
821                'dev/usb/controller/at91dci.h',
822                'dev/usb/controller/atmegadci.h',
823                'dev/usb/controller/musb_otg.h',
824                'dev/usb/controller/uss820dci.h',
825        ]
826)
827devUsbControllerAddOn.addSourceFiles(
828        [
829                'dev/usb/controller/at91dci_atmelarm.c',
830                'dev/usb/controller/at91dci.c',
831                'dev/usb/controller/atmegadci_atmelarm.c',
832                'dev/usb/controller/atmegadci.c',
833                'dev/usb/controller/ehci_ixp4xx.c',
834                'dev/usb/controller/ehci_pci.c',
835                'dev/usb/controller/musb_otg.c',
836                'dev/usb/controller/ehci_mbus.c',
837                'dev/usb/controller/musb_otg_atmelarm.c',
838                'dev/usb/controller/ohci_atmelarm.c',
839                'dev/usb/controller/ohci_pci.c',
840                'dev/usb/controller/uhci_pci.c',
841                'dev/usb/controller/uss820dci_atmelarm.c',
842                'dev/usb/controller/uss820dci.c',
843        ]
844)
845
846devUsbInput = Module('dev_usb_input')
847devUsbInput.addDependency(devUsb)
848devUsbInput.addHeaderFiles(
849        [
850                'dev/usb/input/usb_rdesc.h',
851        ]
852)
853devUsbInput.addSourceFiles(
854        [
855                'dev/usb/input/uhid.c',
856                'dev/usb/input/ukbd.c',
857        ]
858)
859
860devUsbInputMouse = Module('dev_usb_mouse')
861devUsbInputMouse.addDependency(devUsb)
862devUsbInputMouse.addHeaderFiles(
863        [
864                'sys/tty.h',
865                'sys/mouse.h',
866                'sys/ttyqueue.h',
867                'sys/ttydefaults.h',
868                'sys/ttydisc.h',
869                'sys/ttydevsw.h',
870                'sys/ttyhook.h',
871        ]
872)
873devUsbInputMouse.addSourceFiles(
874        [
875                'dev/usb/input/ums.c',
876        ]
877)
878
879devUsbMisc = Module('dev_usb_misc')
880devUsbMisc.addDependency(devUsb)
881devUsbMisc.addHeaderFiles(
882        [
883                'dev/usb/misc/udbp.h',
884        ]
885)
886devUsbMisc.addSourceFiles(
887        [
888                'dev/usb/misc/udbp.c',
889                'dev/usb/misc/ufm.c',
890        ]
891)
892
893devUsbNet = Module('dev_usb_net')
894devUsbNet.addDependency(devUsb)
895devUsbNet.addHeaderFiles(
896        [
897                'dev/mii/mii.h',
898                'dev/mii/miivar.h',
899                'net/bpf.h',
900                'net/ethernet.h',
901                'net/if_arp.h',
902                'net/if_dl.h',
903                'net/if.h',
904                'net/if_media.h',
905                'net/if_types.h',
906                'net/if_var.h',
907                'net/vnet.h',
908                'dev/usb/net/if_cdcereg.h',
909                'dev/usb/net/usb_ethernet.h',
910        ]
911)
912devUsbNet.addSourceFiles(
913        [
914                'dev/usb/net/if_cdce.c',
915                'dev/usb/net/usb_ethernet.c',
916        ]
917)
918
919devUsbQuirk = Module('dev_usb_quirk')
920devUsbQuirk.addDependency(devUsb)
921devUsbQuirk.addHeaderFiles(
922        [
923                'dev/usb/quirk/usb_quirk.h',
924        ]
925)
926devUsbQuirk.addSourceFiles(
927        [
928                'dev/usb/quirk/usb_quirk.c',
929        ]
930)
931
932devUsbSerial = Module('dev_usb_serial')
933devUsbSerial.addDependency(devUsb)
934devUsbSerial.addHeaderFiles(
935        [
936                'dev/usb/serial/uftdi_reg.h',
937                'dev/usb/serial/usb_serial.h',
938        ]
939)
940devUsbSerial.addSourceFiles(
941        [
942                'dev/usb/serial/u3g.c',
943                'dev/usb/serial/uark.c',
944                'dev/usb/serial/ubsa.c',
945                'dev/usb/serial/ubser.c',
946                'dev/usb/serial/uchcom.c',
947                'dev/usb/serial/ucycom.c',
948                'dev/usb/serial/ufoma.c',
949                'dev/usb/serial/uftdi.c',
950                'dev/usb/serial/ugensa.c',
951                'dev/usb/serial/uipaq.c',
952                'dev/usb/serial/ulpt.c',
953                'dev/usb/serial/umct.c',
954                'dev/usb/serial/umodem.c',
955                'dev/usb/serial/umoscom.c',
956                'dev/usb/serial/uplcom.c',
957                'dev/usb/serial/usb_serial.c',
958                'dev/usb/serial/uslcom.c',
959                'dev/usb/serial/uvisor.c',
960                'dev/usb/serial/uvscom.c',
961        ]
962)
963
964devUsbStorage = Module('dev_usb_storage')
965devUsbStorage.addDependency(devUsb)
966devUsbStorage.addSourceFiles(
967        [
968                'dev/usb/storage/umass.c',
969        ]
970)
971
972devUsbStorageAddOn = Module('dev_usb_storage_add_on')
973devUsbStorageAddOn.addDependency(devUsb)
974devUsbStorageAddOn.addHeaderFiles(
975        [
976                'dev/usb/storage/rio500_usb.h',
977        ]
978)
979devUsbStorageAddOn.addSourceFiles(
980        [
981                'dev/usb/storage/urio.c',
982                'dev/usb/storage/ustorage_fs.c',
983        ]
984)
985
986devUsbTemplate = Module('dev_usb_template')
987devUsbTemplate.addDependency(devUsb)
988devUsbTemplate.addHeaderFiles(
989        [
990                'dev/usb/template/usb_template.h',
991        ]
992)
993devUsbTemplate.addSourceFiles(
994        [
995                'dev/usb/template/usb_template.c',
996                'dev/usb/template/usb_template_cdce.c',
997                'dev/usb/template/usb_template_msc.c',
998                'dev/usb/template/usb_template_mtp.c',
999        ]
1000)
1001
1002devUsbWlan = Module('dev_usb_wlan')
1003devUsbWlan.addDependency(devUsb)
1004devUsbWlan.addHeaderFiles(
1005        [
1006                'dev/usb/wlan/if_rumfw.h',
1007                'dev/usb/wlan/if_rumreg.h',
1008                'dev/usb/wlan/if_rumvar.h',
1009                'dev/usb/wlan/if_uathreg.h',
1010                'dev/usb/wlan/if_uathvar.h',
1011                'dev/usb/wlan/if_upgtvar.h',
1012                'dev/usb/wlan/if_uralreg.h',
1013                'dev/usb/wlan/if_uralvar.h',
1014                'dev/usb/wlan/if_zydfw.h',
1015                'dev/usb/wlan/if_zydreg.h',
1016        ]
1017)
1018devUsbWlan.addSourceFiles(
1019        [
1020                'dev/usb/wlan/if_rum.c',
1021                'dev/usb/wlan/if_uath.c',
1022                'dev/usb/wlan/if_upgt.c',
1023                'dev/usb/wlan/if_ural.c',
1024                'dev/usb/wlan/if_zyd.c',
1025        ]
1026)
1027
1028devPci = Module('dev_pci')
1029devPci.addHeaderFiles(
1030        [
1031                'dev/pci/pcireg.h',
1032                'dev/pci/pcivar.h',
1033        ]
1034)
1035
1036devUsbBase = Module('dev_usb_base')
1037devUsbBase.addHeaderFiles(
1038        [
1039                'bsm/audit.h',
1040                'bsm/audit_kevents.h',
1041                'sys/acl.h',
1042                'sys/bufobj.h',
1043                'sys/_bus_dma.h',
1044                'sys/bus_dma.h',
1045                'sys/bus.h',
1046                'sys/callout.h',
1047                'sys/cdefs.h',
1048                'sys/condvar.h',
1049                'sys/conf.h',
1050                #'sys/cpuset.h',
1051                'sys/ctype.h',
1052                'sys/endian.h',
1053                'sys/errno.h',
1054                'sys/event.h',
1055                'sys/eventhandler.h',
1056                'sys/fcntl.h',
1057                'sys/filedesc.h',
1058                'sys/file.h',
1059                'sys/filio.h',
1060                'sys/ioccom.h',
1061                'sys/_iovec.h',
1062                'sys/kernel.h',
1063                'sys/kobj.h',
1064                'sys/kthread.h',
1065                'sys/ktr.h',
1066                'sys/libkern.h',
1067                'sys/linker_set.h',
1068                'sys/_lock.h',
1069                'sys/lock.h',
1070                'sys/_lockmgr.h',
1071                'sys/lockmgr.h',
1072                'sys/lock_profile.h',
1073                'sys/lockstat.h',
1074                'sys/mac.h',
1075                'sys/malloc.h',
1076                'sys/mbuf.h',
1077                'sys/module.h',
1078                'sys/mount.h',
1079                'sys/_mutex.h',
1080                'sys/mutex.h',
1081                'sys/_null.h',
1082                'sys/osd.h',
1083                'sys/param.h',
1084                'sys/pcpu.h',
1085                'sys/poll.h',
1086                'sys/priority.h',
1087                'sys/priv.h',
1088                'sys/proc.h',
1089                'sys/queue.h',
1090                'sys/refcount.h',
1091                'sys/resource.h',
1092                'sys/resourcevar.h',
1093                'sys/rtprio.h',
1094                'sys/runq.h',
1095                'sys/_rwlock.h',
1096                'sys/rwlock.h',
1097                'sys/_semaphore.h',
1098                'sys/selinfo.h',
1099                'sys/sigio.h',
1100                'sys/signal.h',
1101                'sys/signalvar.h',
1102                'sys/_sigset.h',
1103                #'sys/sleepqueue.h',
1104                'sys/socket.h',
1105                'sys/stddef.h',
1106                'sys/stdint.h',
1107                'sys/_sx.h',
1108                'sys/sx.h',
1109                'sys/sysctl.h',
1110                'sys/systm.h',
1111                'sys/ttycom.h',
1112                'sys/_types.h',
1113                'sys/types.h',
1114                'sys/ucontext.h',
1115                'sys/ucred.h',
1116                'sys/uio.h',
1117                'sys/aio.h',
1118                'sys/unistd.h',
1119                'sys/vmmeter.h',
1120                #'sys/vnode.h',
1121                'sys/rman.h',
1122                'sys/reboot.h',
1123                'sys/bitstring.h',
1124                'sys/linker.h',
1125                'vm/uma.h',
1126                'vm/uma_int.h',
1127                'vm/uma_dbg.h',
1128                'vm/vm.h',
1129                #'vm/vm_page.h',
1130                'fs/devfs/devfs_int.h',
1131        ]
1132)
1133devUsbBase.addSourceFiles(
1134        [
1135                'kern/init_main.c',
1136                'kern/kern_linker.c',
1137                'kern/kern_mib.c',
1138                'kern/kern_timeout.c',
1139                'kern/kern_mbuf.c',
1140                'kern/kern_module.c',
1141                'kern/kern_sysctl.c',
1142                'kern/subr_bus.c',
1143                'kern/subr_kobj.c',
1144                #'kern/subr_sleepqueue.c',
1145                'kern/uipc_mbuf.c',
1146                'kern/uipc_mbuf2.c',
1147                'kern/uipc_socket.c',
1148                'kern/uipc_sockbuf.c',
1149                'kern/uipc_domain.c',
1150                #'kern/uipc_syscalls.c',
1151                'vm/uma_core.c',
1152        ]
1153)
1154
1155cam = Module('cam')
1156cam.addHeaderFiles(
1157        [
1158                'sys/ata.h',
1159                'cam/cam.h',
1160                'cam/cam_ccb.h',
1161                'cam/cam_sim.h',
1162                'cam/cam_xpt_sim.h',
1163                'cam/scsi/scsi_all.h',
1164                'cam/scsi/scsi_da.h',
1165                'cam/ata/ata_all.h',
1166                'cam/cam_periph.h',
1167                'cam/cam_debug.h',
1168                'cam/cam_xpt.h',
1169        ]
1170)
1171cam.addSourceFiles(
1172        [
1173                'cam/cam.c',
1174                'cam/scsi/scsi_all.c',
1175        ]
1176)
1177
1178devNet = Module('dev_net')
1179devNet.addHeaderFiles(
1180        [
1181                'dev/mii/mii.h',
1182                'dev/mii/miivar.h',
1183                'dev/mii/brgphyreg.h',
1184                'dev/mii/icsphyreg.h',
1185                'dev/led/led.h',
1186                'net/bpf.h',
1187                'net/ethernet.h',
1188                'net/if_arp.h',
1189                'net/if_dl.h',
1190                'net/if.h',
1191                'net/if_media.h',
1192                'net/if_types.h',
1193                'net/if_var.h',
1194                'net/vnet.h',
1195        ]
1196)
1197devNet.addSourceFiles(
1198        [
1199                'dev/mii/mii.c',
1200                'dev/mii/mii_physubr.c',
1201                'dev/mii/icsphy.c',
1202                'dev/mii/brgphy.c',
1203        ]
1204)
1205
1206devNic = Module('dev_nic')
1207devNic.addHeaderFiles(
1208        [
1209        #       'sys/taskqueue.h',
1210                'sys/pciio.h',
1211                'dev/random/randomdev_soft.h',
1212                'sys/eventvar.h',
1213                'sys/kenv.h',
1214                'dev/pci/pci_private.h',
1215                'dev/pci/pcib_private.h',
1216                'isa/isavar.h',
1217                'isa/pnpvar.h',
1218        ]
1219)
1220
1221devNic.addCPUDependentHeaderFiles(
1222        [
1223                'i386/include/specialreg.h',
1224                'i386/include/md_var.h',
1225                'i386/include/intr_machdep.h',
1226                'i386/include/legacyvar.h',
1227                'i386/include/pci_cfgreg.h',
1228                'i386/include/cpufunc.h',
1229        ]
1230)
1231devNic.addCPUDependentSourceFiles(
1232        'i386',
1233        [
1234                'i386/pci/pci_bus.c',
1235                'i386/i386/legacy.c',
1236        ]
1237)
1238devNic.addSourceFiles(
1239        [
1240        #       'kern/subr_taskqueue.c',
1241                'kern/subr_hints.c',
1242                'dev/random/harvest.c',
1243                'libkern/random.c',
1244                'libkern/arc4random.c',
1245                'kern/subr_pcpu.c',
1246                'kern/subr_sbuf.c',
1247                'kern/subr_rman.c',
1248                'kern/subr_module.c',
1249                'libkern/inet_ntoa.c',
1250                'kern/kern_prot.c',
1251                'kern/kern_proc.c',
1252                'kern/kern_time.c',
1253                'kern/kern_event.c',
1254                'netinet/tcp_hostcache.c',
1255                'dev/pci/pci.c',
1256                'dev/pci/pci_user.c',
1257                'kern/uipc_accf.c',
1258                'kern/kern_ntptime.c',
1259                'kern/kern_environment.c',
1260                'kern/kern_intr.c',
1261                'kern/kern_resource.c',
1262                'kern/subr_bufring.c',
1263                'dev/led/led.c',
1264                'kern/subr_unit.c',
1265                'dev/pci/pci_pci.c',
1266        ]
1267)
1268
1269devNic_re = Module('dev_nic_re')
1270devNic_re.addHeaderFiles(
1271        [
1272                'pci/if_rlreg.h',
1273        ]
1274)
1275devNic_re.addSourceFiles(
1276        [
1277                'dev/re/if_re.c',
1278        ]
1279)
1280
1281devNic_fxp = Module('dev_nic_fxp')
1282devNic_fxp.addHeaderFiles(
1283        [
1284                'dev/fxp/if_fxpreg.h',
1285                'dev/fxp/if_fxpvar.h',
1286                'dev/fxp/rcvbundl.h',
1287        ]
1288)
1289devNic_fxp.addSourceFiles(
1290        [
1291                'dev/fxp/if_fxp.c',
1292        ]
1293)
1294
1295devNic_e1000 = Module('dev_nic_e1000')
1296devNic_e1000.addHeaderFiles(
1297        [
1298                'dev/e1000/e1000_80003es2lan.h',
1299                'dev/e1000/e1000_82571.h',
1300                'dev/e1000/e1000_defines.h',
1301                'dev/e1000/e1000_mac.h',
1302                'dev/e1000/e1000_nvm.h',
1303                'dev/e1000/e1000_regs.h',
1304                'dev/e1000/if_igb.h',
1305                'dev/e1000/e1000_82541.h',
1306                'dev/e1000/e1000_82575.h',
1307                'dev/e1000/e1000_hw.h',
1308                'dev/e1000/e1000_manage.h',
1309                'dev/e1000/e1000_osdep.h',
1310                'dev/e1000/e1000_vf.h',
1311                'dev/e1000/if_lem.h',
1312                'dev/e1000/e1000_82543.h',
1313                'dev/e1000/e1000_api.h',
1314                'dev/e1000/e1000_ich8lan.h',
1315                'dev/e1000/e1000_mbx.h',
1316                'dev/e1000/e1000_phy.h',
1317                'dev/e1000/if_em.h',
1318        ]
1319)
1320devNic_e1000.addSourceFiles(
1321        [
1322                'dev/e1000/e1000_80003es2lan.c',
1323                'dev/e1000/e1000_82542.c',
1324                'dev/e1000/e1000_82575.c',
1325                'dev/e1000/e1000_mac.c',
1326                'dev/e1000/e1000_nvm.c',
1327                'dev/e1000/e1000_vf.c',
1328                'dev/e1000/if_lem.c',
1329                'dev/e1000/e1000_82540.c',
1330                'dev/e1000/e1000_82543.c',
1331                'dev/e1000/e1000_api.c',
1332                'dev/e1000/e1000_manage.c',
1333                'dev/e1000/e1000_osdep.c',
1334                'dev/e1000/if_em.c',
1335                'dev/e1000/e1000_82541.c',
1336                'dev/e1000/e1000_82571.c',
1337                'dev/e1000/e1000_ich8lan.c',
1338                'dev/e1000/e1000_mbx.c',
1339                'dev/e1000/e1000_phy.c',
1340                'dev/e1000/if_igb.c',
1341        ]
1342)
1343
1344# DEC Tulip aka Intel 21143
1345devNic_dc = Module('dev_nic_dc')
1346devNic_dc.addHeaderFiles(
1347        [
1348                'dev/dc/if_dcreg.h',
1349        ]
1350)
1351devNic_dc.addSourceFiles(
1352        [
1353                'dev/dc/dcphy.c',
1354                'dev/dc/if_dc.c',
1355                'dev/dc/pnphy.c',
1356        ]
1357)
1358
1359# SMC9111x
1360devNic_smc = Module('dev_nic_smc')
1361devNic_smc.addHeaderFiles(
1362        [
1363                'dev/smc/if_smcreg.h',
1364                'dev/smc/if_smcvar.h',
1365        ]
1366)
1367devNic_smc.addSourceFiles(
1368        [
1369                'dev/smc/if_smc.c',
1370        ]
1371)
1372
1373# Crystal Semiconductor CS8900
1374devNic_cs = Module('dev_nic_cs')
1375devNic_cs.addHeaderFiles(
1376        [
1377                'dev/cs/if_csreg.h',
1378                'dev/cs/if_csvar.h',
1379        ]
1380)
1381devNic_cs.addSourceFiles(
1382        [
1383                'dev/cs/if_cs.c',
1384                'dev/cs/if_cs_isa.c',
1385                'dev/cs/if_cs_pccard.c',
1386        ]
1387)
1388
1389# Broadcomm BCE, BFE, BGE - MII is intertwined
1390devNic_broadcomm = Module('dev_nic_broadcomm')
1391devNic_broadcomm.addHeaderFiles(
1392        [
1393                'dev/bce/if_bcefw.h',
1394                'dev/bce/if_bcereg.h',
1395                'dev/bfe/if_bfereg.h',
1396                'dev/bge/if_bgereg.h',
1397        ]
1398)
1399devNic_broadcomm.addSourceFiles(
1400        [
1401                'dev/bce/if_bce.c',
1402                'dev/bfe/if_bfe.c',
1403                'dev/bge/if_bge.c',
1404        ]
1405)
1406
1407netDeps = Module('netDeps')
1408netDeps.addHeaderFiles(
1409        [
1410                'security/mac/mac_framework.h',
1411                'sys/cpu.h',
1412                'sys/interrupt.h',
1413                'sys/fnv_hash.h',
1414                'sys/tree.h',
1415                'sys/buf_ring.h',
1416                'sys/rwlock.h',
1417                'sys/_rmlock.h',
1418                'sys/sockio.h',
1419                'sys/sdt.h',
1420                'sys/_task.h',
1421                'sys/sbuf.h',
1422                'sys/smp.h',
1423                'sys/syslog.h',
1424                'sys/jail.h',
1425                'sys/protosw.h',
1426                'sys/random.h',
1427                'sys/rmlock.h',
1428                'sys/hash.h',
1429                #'sys/select.h',
1430                'sys/sf_buf.h',
1431                'sys/socketvar.h',
1432                'sys/sockbuf.h',
1433                #'sys/sysproto.h',
1434                'sys/sockstate.h',
1435                'sys/sockopt.h',
1436                'sys/domain.h',
1437                'sys/time.h',
1438        ]
1439)
1440
1441net = Module('net')
1442net.addHeaderFiles(
1443        [
1444                'net/bpf_buffer.h',
1445                'net/bpfdesc.h',
1446                'net/bpf.h',
1447                'net/bpf_jitter.h',
1448                'net/bpf_zerocopy.h',
1449                'net/bridgestp.h',
1450                'net/ethernet.h',
1451                'net/fddi.h',
1452                'net/firewire.h',
1453                'net/flowtable.h',
1454                'net/ieee8023ad_lacp.h',
1455                'net/if_arc.h',
1456                'net/if_arp.h',
1457                'net/if_atm.h',
1458                'net/if_bridgevar.h',
1459                'net/if_clone.h',
1460                'net/if_dl.h',
1461                'net/if_enc.h',
1462                'net/if_gif.h',
1463                'net/if_gre.h',
1464                'net/if.h',
1465                'net/if_lagg.h',
1466                'net/if_llatbl.h',
1467                'net/if_llc.h',
1468                'net/if_media.h',
1469                'net/if_mib.h',
1470                'net/if_sppp.h',
1471                'net/if_stf.h',
1472                'net/if_tap.h',
1473                'net/if_tapvar.h',
1474                'net/if_tun.h',
1475                'net/if_types.h',
1476                'net/if_var.h',
1477                'net/if_vlan_var.h',
1478                'net/iso88025.h',
1479                'net/netisr.h',
1480                'net/pfil.h',
1481                'net/pfkeyv2.h',
1482                'net/ppp_defs.h',
1483                'net/radix.h',
1484                'net/radix_mpath.h',
1485                'net/raw_cb.h',
1486                'net/route.h',
1487                'net/slcompress.h',
1488                'net/vnet.h',
1489                'net/zlib.h',
1490                'sys/timepps.h',
1491                'sys/timetc.h',
1492                'sys/timex.h',
1493        ]
1494)
1495net.addSourceFiles(
1496        [
1497                'kern/subr_eventhandler.c',
1498                'kern/kern_subr.c',
1499                'kern/kern_tc.c',
1500                'libkern/fls.c',
1501                'net/bridgestp.c',
1502                'net/ieee8023ad_lacp.c',
1503                'net/if_atmsubr.c',
1504                'net/if.c',
1505                'net/if_clone.c',
1506                'net/if_dead.c',
1507                'net/if_disc.c',
1508                'net/if_edsc.c',
1509                'net/if_ef.c',
1510                'net/if_enc.c',
1511                'net/if_epair.c',
1512                'net/if_faith.c',
1513                'net/if_fddisubr.c',
1514                'net/if_fwsubr.c',
1515                'net/if_gif.c',
1516                'net/if_gre.c',
1517                'net/if_iso88025subr.c',
1518                'net/if_lagg.c',
1519                'net/if_llatbl.c',
1520                'net/if_loop.c',
1521                'net/if_media.c',
1522                'net/if_mib.c',
1523                'net/if_spppfr.c',
1524                'net/if_spppsubr.c',
1525                'net/if_stf.c',
1526                'net/if_tap.c',
1527                'net/if_tun.c',
1528                'net/if_vlan.c',
1529                'net/pfil.c',
1530                'net/radix.c',
1531                'net/radix_mpath.c',
1532                'net/raw_cb.c',
1533                'net/raw_usrreq.c',
1534                'net/route.c',
1535                'net/rtsock.c',
1536                'net/slcompress.c',
1537                'net/zlib.c',
1538                'net/bpf_buffer.c',
1539                'net/bpf.c',
1540                'net/bpf_filter.c',
1541                'net/bpf_jitter.c',
1542                'net/if_arcsubr.c',
1543                'net/if_bridge.c',
1544                'net/if_ethersubr.c',
1545                'net/netisr.c',
1546        ]
1547)
1548
1549netinet = Module('netinet')
1550netinet.addHeaderFiles(
1551        [
1552                'netinet/icmp6.h',
1553                'netinet/icmp_var.h',
1554                'netinet/if_atm.h',
1555                'netinet/if_ether.h',
1556                'netinet/igmp.h',
1557                'netinet/igmp_var.h',
1558                'netinet/in_gif.h',
1559                'netinet/in.h',
1560                'netinet/in_pcb.h',
1561                'netinet/in_systm.h',
1562                'netinet/in_var.h',
1563                'netinet/ip6.h',
1564                'netinet/ip_carp.h',
1565                'netinet/ip_divert.h',
1566                'netinet/ip_dummynet.h',
1567                'netinet/ip_ecn.h',
1568                'netinet/ip_encap.h',
1569                'netinet/ip_fw.h',
1570                'netinet/ip_gre.h',
1571                'netinet/ip.h',
1572                'netinet/ip_icmp.h',
1573                'netinet/ip_ipsec.h',
1574                'netinet/ip_mroute.h',
1575                'netinet/ip_options.h',
1576                'netinet/ip_var.h',
1577                'netinet/ipfw/ip_dn_private.h',
1578                'netinet/ipfw/ip_fw_private.h',
1579                'netinet/ipfw/dn_sched.h',
1580                'netinet/ipfw/dn_heap.h',
1581                'netinet/pim.h',
1582                'netinet/pim_var.h',
1583                'netinet/sctp_asconf.h',
1584                'netinet/sctp_auth.h',
1585                'netinet/sctp_bsd_addr.h',
1586                'netinet/sctp_cc_functions.h',
1587                'netinet/sctp_constants.h',
1588                'netinet/sctp_crc32.h',
1589                'netinet/sctp.h',
1590                'netinet/sctp_header.h',
1591                'netinet/sctp_indata.h',
1592                'netinet/sctp_input.h',
1593                'netinet/sctp_lock_bsd.h',
1594                'netinet/sctp_os_bsd.h',
1595                'netinet/sctp_os.h',
1596                'netinet/sctp_output.h',
1597                'netinet/sctp_pcb.h',
1598                'netinet/sctp_peeloff.h',
1599                'netinet/sctp_structs.h',
1600                'netinet/sctp_sysctl.h',
1601                'netinet/sctp_timer.h',
1602                'netinet/sctp_uio.h',
1603                'netinet/sctputil.h',
1604                'netinet/sctp_var.h',
1605                'netinet/tcp_debug.h',
1606                'netinet/tcp_fsm.h',
1607                'netinet/tcp.h',
1608                'netinet/tcp_hostcache.h',
1609                'netinet/tcpip.h',
1610                'netinet/tcp_lro.h',
1611                'netinet/tcp_offload.h',
1612                'netinet/tcp_seq.h',
1613                'netinet/tcp_syncache.h',
1614                'netinet/tcp_timer.h',
1615                'netinet/tcp_var.h',
1616                'netinet/toedev.h',
1617                'netinet/udp.h',
1618                'netinet/udp_var.h',
1619                'netinet/libalias/alias_local.h',
1620                'netinet/libalias/alias.h',
1621                'netinet/libalias/alias_mod.h',
1622                'netinet/libalias/alias_sctp.h',
1623        ]
1624)
1625# in_cksum.c is architecture dependent
1626netinet.addSourceFiles(
1627        [
1628                'netinet/accf_data.c',
1629                'netinet/accf_dns.c',
1630                'netinet/accf_http.c',
1631                'netinet/if_atm.c',
1632                'netinet/if_ether.c',
1633                'netinet/igmp.c',
1634                'netinet/in.c',
1635                'netinet/in_gif.c',
1636                'netinet/in_mcast.c',
1637                'netinet/in_pcb.c',
1638                'netinet/in_proto.c',
1639                'netinet/in_rmx.c',
1640                'netinet/ip_carp.c',
1641                'netinet/ip_divert.c',
1642                'netinet/ip_ecn.c',
1643                'netinet/ip_encap.c',
1644                'netinet/ip_fastfwd.c',
1645                'netinet/ip_gre.c',
1646                'netinet/ip_icmp.c',
1647                'netinet/ip_id.c',
1648                'netinet/ip_input.c',
1649                'netinet/ip_ipsec.c',
1650                'netinet/ip_mroute.c',
1651                'netinet/ip_options.c',
1652                'netinet/ip_output.c',
1653                'netinet/raw_ip.c',
1654                'netinet/sctp_asconf.c',
1655                'netinet/sctp_auth.c',
1656                'netinet/sctp_bsd_addr.c',
1657                'netinet/sctp_cc_functions.c',
1658                'netinet/sctp_crc32.c',
1659                'netinet/sctp_indata.c',
1660                'netinet/sctp_input.c',
1661                'netinet/sctp_output.c',
1662                'netinet/sctp_pcb.c',
1663                'netinet/sctp_peeloff.c',
1664                'netinet/sctp_sysctl.c',
1665                'netinet/sctp_timer.c',
1666                'netinet/sctp_usrreq.c',
1667                'netinet/sctputil.c',
1668                'netinet/tcp_debug.c',
1669                #'netinet/tcp_hostcache.c',
1670                'netinet/tcp_input.c',
1671                'netinet/tcp_lro.c',
1672                'netinet/tcp_offload.c',
1673                'netinet/tcp_output.c',
1674                'netinet/tcp_reass.c',
1675                'netinet/tcp_sack.c',
1676                'netinet/tcp_subr.c',
1677                'netinet/tcp_syncache.c',
1678                'netinet/tcp_timer.c',
1679                'netinet/tcp_timewait.c',
1680                'netinet/tcp_usrreq.c',
1681                'netinet/udp_usrreq.c',
1682                'netinet/ipfw/dn_sched_fifo.c',
1683                'netinet/ipfw/dn_sched_rr.c',
1684                'netinet/ipfw/ip_fw_log.c',
1685                'netinet/ipfw/dn_sched_qfq.c',
1686                'netinet/ipfw/dn_sched_prio.c',
1687                #'netinet/ipfw/ip_fw_dynamic.c',
1688                'netinet/ipfw/ip_dn_glue.c',
1689                'netinet/ipfw/ip_fw2.c',
1690                'netinet/ipfw/dn_heap.c',
1691                'netinet/ipfw/ip_dummynet.c',
1692                'netinet/ipfw/ip_fw_sockopt.c',
1693                'netinet/ipfw/dn_sched_wf2q.c',
1694                'netinet/ipfw/ip_fw_nat.c',
1695                'netinet/ipfw/ip_fw_pfil.c',
1696                'netinet/ipfw/ip_dn_io.c',
1697                'netinet/ipfw/ip_fw_table.c',
1698                'netinet/libalias/alias_dummy.c',
1699                'netinet/libalias/alias_pptp.c',
1700                'netinet/libalias/alias_smedia.c',
1701                'netinet/libalias/alias_mod.c',
1702                'netinet/libalias/alias_cuseeme.c',
1703                'netinet/libalias/alias_nbt.c',
1704                'netinet/libalias/alias_irc.c',
1705                'netinet/libalias/alias_util.c',
1706                'netinet/libalias/alias_db.c',
1707                'netinet/libalias/alias_ftp.c',
1708                'netinet/libalias/alias_proxy.c',
1709                'netinet/libalias/alias.c',
1710                'netinet/libalias/alias_skinny.c',
1711                'netinet/libalias/alias_sctp.c',
1712        ]
1713)
1714
1715netinet6 = Module('netinet6')
1716netinet6.addHeaderFiles(
1717        [
1718                'netinet6/icmp6.h',
1719                'netinet6/in6_gif.h',
1720                'netinet6/in6.h',
1721                'netinet6/in6_ifattach.h',
1722                'netinet6/in6_pcb.h',
1723                'netinet6/in6_var.h',
1724                'netinet6/ip6_ecn.h',
1725                'netinet6/ip6.h',
1726                'netinet6/ip6_ipsec.h',
1727                'netinet6/ip6_mroute.h',
1728                'netinet6/ip6protosw.h',
1729                'netinet6/ip6_var.h',
1730                'netinet6/mld6.h',
1731                'netinet6/mld6_var.h',
1732                'netinet6/nd6.h',
1733                'netinet6/pim6.h',
1734                'netinet6/pim6_var.h',
1735                'netinet6/raw_ip6.h',
1736                'netinet6/scope6_var.h',
1737                'netinet6/sctp6_var.h',
1738                'netinet6/tcp6_var.h',
1739                'netinet6/udp6_var.h',
1740        ]
1741)
1742netinet6.addSourceFiles(
1743        [
1744                'netinet6/dest6.c',
1745                'netinet6/frag6.c',
1746                'netinet6/icmp6.c',
1747                'netinet6/in6.c',
1748                'netinet6/in6_cksum.c',
1749                'netinet6/in6_gif.c',
1750                'netinet6/in6_ifattach.c',
1751                'netinet6/in6_mcast.c',
1752                'netinet6/in6_pcb.c',
1753                'netinet6/in6_proto.c',
1754                'netinet6/in6_rmx.c',
1755                'netinet6/in6_src.c',
1756                'netinet6/ip6_forward.c',
1757                'netinet6/ip6_id.c',
1758                'netinet6/ip6_input.c',
1759                'netinet6/ip6_ipsec.c',
1760                'netinet6/ip6_mroute.c',
1761                'netinet6/ip6_output.c',
1762                'netinet6/mld6.c',
1763                'netinet6/nd6.c',
1764                'netinet6/nd6_nbr.c',
1765                'netinet6/nd6_rtr.c',
1766                'netinet6/raw_ip6.c',
1767                'netinet6/route6.c',
1768                'netinet6/scope6.c',
1769                'netinet6/sctp6_usrreq.c',
1770                'netinet6/udp6_usrreq.c',
1771        ]
1772)
1773
1774netipsec = Module('netipsec')
1775netipsec.addHeaderFiles(
1776        [
1777                'netipsec/ah.h',
1778                'netipsec/ah_var.h',
1779                'netipsec/esp.h',
1780                'netipsec/esp_var.h',
1781                'netipsec/ipcomp.h',
1782                'netipsec/ipcomp_var.h',
1783                'netipsec/ipip_var.h',
1784                'netipsec/ipsec6.h',
1785                'netipsec/ipsec.h',
1786                'netipsec/keydb.h',
1787                'netipsec/key_debug.h',
1788                'netipsec/key.h',
1789                'netipsec/keysock.h',
1790                'netipsec/key_var.h',
1791                'netipsec/xform.h',
1792        ]
1793)
1794netipsec.addSourceFiles(
1795        [
1796                'netipsec/ipsec.c',
1797                'netipsec/ipsec_input.c',
1798                'netipsec/ipsec_mbuf.c',
1799                'netipsec/ipsec_output.c',
1800                'netipsec/key.c',
1801                'netipsec/key_debug.c',
1802                'netipsec/keysock.c',
1803                'netipsec/xform_ah.c',
1804                'netipsec/xform_esp.c',
1805                'netipsec/xform_ipcomp.c',
1806                'netipsec/xform_ipip.c',
1807                'netipsec/xform_tcp.c',
1808        ]
1809)
1810
1811net80211 = Module('net80211')
1812net80211.addHeaderFiles(
1813        [
1814                'net80211/ieee80211_action.h',
1815                'net80211/ieee80211_adhoc.h',
1816                'net80211/ieee80211_ageq.h',
1817                'net80211/ieee80211_amrr.h',
1818                'net80211/ieee80211_crypto.h',
1819                'net80211/ieee80211_dfs.h',
1820                'net80211/ieee80211_freebsd.h',
1821                'net80211/_ieee80211.h',
1822                'net80211/ieee80211.h',
1823                'net80211/ieee80211_hostap.h',
1824                'net80211/ieee80211_ht.h',
1825                'net80211/ieee80211_input.h',
1826                'net80211/ieee80211_ioctl.h',
1827                'net80211/ieee80211_mesh.h',
1828                'net80211/ieee80211_monitor.h',
1829                'net80211/ieee80211_node.h',
1830                'net80211/ieee80211_phy.h',
1831                'net80211/ieee80211_power.h',
1832                'net80211/ieee80211_proto.h',
1833                'net80211/ieee80211_radiotap.h',
1834                'net80211/ieee80211_ratectl.h',
1835                'net80211/ieee80211_regdomain.h',
1836                'net80211/ieee80211_rssadapt.h',
1837                'net80211/ieee80211_scan.h',
1838                'net80211/ieee80211_sta.h',
1839                'net80211/ieee80211_superg.h',
1840                'net80211/ieee80211_tdma.h',
1841                'net80211/ieee80211_var.h',
1842                'net80211/ieee80211_wds.h',
1843        ]
1844)
1845netipsec.addSourceFiles(
1846        [
1847                'net80211/ieee80211_acl.c',
1848                'net80211/ieee80211_action.c',
1849                'net80211/ieee80211_adhoc.c',
1850                'net80211/ieee80211_ageq.c',
1851                'net80211/ieee80211_amrr.c',
1852                'net80211/ieee80211.c',
1853                'net80211/ieee80211_crypto.c',
1854                'net80211/ieee80211_crypto_ccmp.c',
1855                'net80211/ieee80211_crypto_none.c',
1856                'net80211/ieee80211_crypto_tkip.c',
1857                'net80211/ieee80211_crypto_wep.c',
1858                'net80211/ieee80211_ddb.c',
1859                'net80211/ieee80211_dfs.c',
1860                'net80211/ieee80211_freebsd.c',
1861                'net80211/ieee80211_hostap.c',
1862                'net80211/ieee80211_ht.c',
1863                'net80211/ieee80211_hwmp.c',
1864                'net80211/ieee80211_input.c',
1865                'net80211/ieee80211_ioctl.c',
1866                'net80211/ieee80211_mesh.c',
1867                'net80211/ieee80211_monitor.c',
1868                'net80211/ieee80211_node.c',
1869                'net80211/ieee80211_output.c',
1870                'net80211/ieee80211_phy.c',
1871                'net80211/ieee80211_power.c',
1872                'net80211/ieee80211_proto.c',
1873                'net80211/ieee80211_radiotap.c',
1874                'net80211/ieee80211_ratectl.c',
1875                'net80211/ieee80211_ratectl_none.c',
1876                'net80211/ieee80211_regdomain.c',
1877                'net80211/ieee80211_rssadapt.c',
1878                'net80211/ieee80211_scan.c',
1879                'net80211/ieee80211_scan_sta.c',
1880                'net80211/ieee80211_sta.c',
1881                'net80211/ieee80211_superg.c',
1882                'net80211/ieee80211_tdma.c',
1883                'net80211/ieee80211_wds.c',
1884                'net80211/ieee80211_xauth.c',
1885        ]
1886)
1887
1888opencrypto = Module('opencrypto')
1889opencrypto.addHeaderFiles(
1890        [
1891                'sys/md5.h',
1892                'opencrypto/deflate.h',
1893                'opencrypto/xform.h',
1894                'opencrypto/cryptosoft.h',
1895                'opencrypto/rmd160.h',
1896                'opencrypto/cryptodev.h',
1897                'opencrypto/castsb.h',
1898                'opencrypto/skipjack.h',
1899                'opencrypto/cast.h',
1900        ]
1901)
1902opencrypto.addSourceFiles(
1903        [
1904                'opencrypto/crypto.c',
1905                'opencrypto/deflate.c',
1906                'opencrypto/cryptosoft.c',
1907                'opencrypto/criov.c',
1908                'opencrypto/rmd160.c',
1909                'opencrypto/xform.c',
1910                'opencrypto/skipjack.c',
1911                'opencrypto/cast.c',
1912                'opencrypto/cryptodev.c',
1913        ]
1914)
1915
1916crypto = Module('crypto')
1917crypto.addHeaderFiles(
1918        [
1919                #'crypto/aesni/aesni.h',
1920                'crypto/sha1.h',
1921                'crypto/sha2/sha2.h',
1922                'crypto/rijndael/rijndael.h',
1923                'crypto/rijndael/rijndael_local.h',
1924                'crypto/rijndael/rijndael-api-fst.h',
1925                'crypto/des/des.h',
1926                'crypto/des/spr.h',
1927                'crypto/des/podd.h',
1928                'crypto/des/sk.h',
1929                'crypto/des/des_locl.h',
1930                'crypto/blowfish/bf_pi.h',
1931                'crypto/blowfish/bf_locl.h',
1932                'crypto/blowfish/blowfish.h',
1933                'crypto/rc4/rc4.h',
1934                #'crypto/via/padlock.h',
1935                'crypto/camellia/camellia.h',
1936        ]
1937)
1938crypto.addSourceFiles(
1939        [
1940                #'crypto/aesni/aesni.c',
1941                #'crypto/aesni/aesni_wrap.c',
1942                'crypto/sha1.c',
1943                'crypto/sha2/sha2.c',
1944                'crypto/rijndael/rijndael-alg-fst.c',
1945                'crypto/rijndael/rijndael-api.c',
1946                'crypto/rijndael/rijndael-api-fst.c',
1947                'crypto/des/des_setkey.c',
1948                'crypto/des/des_enc.c',
1949                'crypto/des/des_ecb.c',
1950                'crypto/blowfish/bf_enc.c',
1951                'crypto/blowfish/bf_skey.c',
1952                'crypto/blowfish/bf_ecb.c',
1953                'crypto/rc4/rc4.c',
1954                #'crypto/via/padlock.c',
1955                #'crypto/via/padlock_cipher.c',
1956                #'crypto/via/padlock_hash.c',
1957                'crypto/camellia/camellia-api.c',
1958                'crypto/camellia/camellia.c',
1959        ]
1960)
1961
1962altq = Module('altq')
1963altq.addHeaderFiles(
1964        [
1965                'contrib/altq/altq/altq_rmclass.h',
1966                'contrib/altq/altq/altq_cbq.h',
1967                'contrib/altq/altq/altq_var.h',
1968                'contrib/altq/altq/altqconf.h',
1969                'contrib/altq/altq/altq.h',
1970                'contrib/altq/altq/altq_hfsc.h',
1971                'contrib/altq/altq/altq_red.h',
1972                'contrib/altq/altq/altq_classq.h',
1973                'contrib/altq/altq/altq_priq.h',
1974                'contrib/altq/altq/altq_rmclass_debug.h',
1975                'contrib/altq/altq/altq_cdnr.h',
1976                'contrib/altq/altq/altq_rio.h',
1977                'contrib/altq/altq/if_altq.h',
1978        ]
1979)
1980altq.addSourceFiles(
1981        [
1982                'contrib/altq/altq/altq_rmclass.c',
1983                'contrib/altq/altq/altq_rio.c',
1984                'contrib/altq/altq/altq_subr.c',
1985                'contrib/altq/altq/altq_cdnr.c',
1986                'contrib/altq/altq/altq_priq.c',
1987                'contrib/altq/altq/altq_cbq.c',
1988                'contrib/altq/altq/altq_hfsc.c',
1989                'contrib/altq/altq/altq_red.c',
1990        ]
1991)
1992
1993# contrib/pf Module
1994pf = Module('pf')
1995pf.addHeaderFiles(
1996        [
1997                'contrib/pf/net/pf_mtag.h',
1998                'contrib/pf/net/if_pfsync.h',
1999                'contrib/pf/net/pfvar.h',
2000                'contrib/pf/net/if_pflog.h',
2001        ]
2002)
2003pf.addSourceFiles(
2004        [
2005                'contrib/pf/netinet/in4_cksum.c',
2006                'contrib/pf/net/pf.c',
2007                'contrib/pf/net/if_pflog.c',
2008                'contrib/pf/net/pf_subr.c',
2009                'contrib/pf/net/pf_ioctl.c',
2010                'contrib/pf/net/pf_table.c',
2011                'contrib/pf/net/pf_if.c',
2012                'contrib/pf/net/pf_osfp.c',
2013                'contrib/pf/net/pf_norm.c',
2014                'contrib/pf/net/pf_ruleset.c',
2015                'contrib/pf/net/if_pfsync.c',
2016        ]
2017)
2018
2019# in_chksum Module
2020in_cksum = Module('in_cksum')
2021in_cksum.addRTEMSHeaderFiles(
2022        [
2023                'sparc/include/freebsd/machine/in_cksum.h',
2024        ]
2025)
2026in_cksum.addCPUDependentHeaderFiles(
2027        [
2028                'arm/include/in_cksum.h',
2029                'i386/include/in_cksum.h',
2030                'mips/include/in_cksum.h',
2031                'powerpc/include/in_cksum.h',
2032                'sparc64/include/in_cksum.h',
2033        ]
2034)
2035in_cksum.addCPUDependentSourceFiles(
2036        'arm',
2037        [
2038                'arm/arm/in_cksum.c',
2039        ]
2040)
2041in_cksum.addCPUDependentSourceFiles(
2042        'i386',
2043        [
2044                'i386/i386/in_cksum.c',
2045        ]
2046)
2047in_cksum.addCPUDependentSourceFiles(
2048        'mips',
2049        [
2050                'mips/mips/in_cksum.c',
2051        ]
2052)
2053in_cksum.addCPUDependentSourceFiles(
2054        'powerpc',
2055        [
2056                'powerpc/powerpc/in_cksum.c',
2057        ]
2058)
2059in_cksum.addCPUDependentSourceFiles(
2060        'sparc',
2061        [
2062                'mips/mips/in_cksum.c',
2063        ]
2064)
2065in_cksum.addCPUDependentSourceFiles(
2066        'sparc64',
2067        [
2068                'sparc64/sparc64/in_cksum.c',
2069        ]
2070)
2071
2072# Register all the Module instances with the Module Manager
2073mm.addModule(rtems)
2074mm.addModule(netDeps)
2075mm.addModule(net)
2076mm.addModule(netinet)
2077mm.addModule(netinet6)
2078mm.addModule(netipsec)
2079mm.addModule(net80211)
2080mm.addModule(opencrypto)
2081mm.addModule(crypto)
2082mm.addModule(altq)
2083mm.addModule(pf)
2084mm.addModule(devNet)
2085
2086mm.addModule(local)
2087mm.addModule(devUsbBase)
2088mm.addModule(devUsb)
2089mm.addModule(devUsbQuirk)
2090mm.addModule(devUsbController)
2091
2092mm.addModule(cam)
2093mm.addModule(devUsbStorage)
2094#mm.addModule(devUsbNet)
2095
2096# Add PCI
2097mm.addModule(devPci)
2098
2099# Add NIC devices
2100mm.addModule(devNic)
2101mm.addModule(devNic_re)
2102mm.addModule(devNic_fxp)
2103mm.addModule(devNic_e1000)
2104mm.addModule(devNic_dc)
2105mm.addModule(devNic_smc)
2106mm.addModule(devNic_broadcomm)
2107# TBD Requires ISA and PCCard Support to be pulled in.
2108# mm.addModule(devNic_cs)
2109
2110# Add in_chksum
2111mm.addModule(in_cksum)
2112
2113# XXX TODO Check that no file is also listed in empty
2114# XXX TODO Check that no file in in two modules
2115
2116# Perform the actual file manipulation
2117if isForward == True:
2118  if isOnlyMakefile == False:
2119    mm.copyFromFreeBSDToRTEMS()
2120  mm.createMakefile()
2121else:
2122  mm.copyFromRTEMSToFreeBSD()
2123
2124# Print a summary if changing files
2125if isDiffMode == False:
2126  if filesProcessed == 1:
2127    print str(filesProcessed) + " file was changed."
2128  else:
2129    print str(filesProcessed) + " files were changed."
Note: See TracBrowser for help on using the repository browser.