source: rtems-libbsd/freebsd-to-rtems.py @ cd07c7a

4.115-freebsd-12freebsd-9.3
Last change on this file since cd07c7a was cd07c7a, checked in by Jennifer Averett <jennifer.averett@…>, on Mar 21, 2012 at 4:47:01 PM

Added Nic E1000 files without processing
The file processing highlights an issue with the construction of
the include file path. This has to be changed in the script before
adding the line to process the files.

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