Changeset edd344a in rtems-libbsd for freebsd-to-rtems.py


Ignore:
Timestamp:
Apr 17, 2012, 9:54:31 AM (8 years ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
4.11, afaeccc05a556f6aa25ba044a7e49d6aa634a59e, freebsd-9.3, master
Children:
4794481
Parents:
e4b9989
git-author:
Sebastian Huber <sebastian.huber@…> (04/17/12 09:54:31)
git-committer:
Sebastian Huber <sebastian.huber@…> (04/17/12 10:03:19)
Message:

Simplify

File:
1 edited

Legend:

Unmodified
Added
Removed
  • freebsd-to-rtems.py

    re4b9989 redd344a  
    11#! /usr/bin/python
    22#
    3 #  Copyright (c) 2009-2011 embedded brains GmbH.  All rights reserved.
     3#  Copyright (c) 2009-2012 embedded brains GmbH.  All rights reserved.
    44#
    55#   embedded brains GmbH
     
    166166# compare and process file only if different
    167167#  + copy or diff depending on execution mode
    168 def processIfDifferent(new, old, desc, src):
     168def processIfDifferent(new, old, src):
    169169  global filesProcessed
    170170  global isVerbose, isDryRun, isEarlyExit
    171   # print new + " " + old + " X" + desc + "X "  + src
    172171  if not os.path.exists(old) or \
    173172     filecmp.cmp(new, old, shallow=False) == False:
     
    186185        sys.stdout.write(line)
    187186
    188 # generate an empty file as a place holder
    189 def installEmptyFile(src):
    190         global tempFile
    191         dst = RTEMS_DIR + '/' + PREFIX + '/' + src.replace('rtems/', '')
    192         try:
    193                 if isDryRun == False:
    194                         os.makedirs(os.path.dirname(dst))
    195         except OSError:
    196                 pass
    197         out = open(tempFile, 'w')
    198         out.write('/* EMPTY */\n')
    199         out.close()
    200         processIfDifferent(tempFile, dst, "empty file ", "empty file" )
    201 
    202187# fix include paths inside a C or .h file
    203188def fixIncludes(data):
     
    216201        return data
    217202
    218 # Copy a header file from FreeBSD to the RTEMS BSD tree
    219 def installHeaderFile(org, target):
    220         global tempFile
    221         src = FreeBSD_DIR + '/' + org
    222         dst = RTEMS_DIR + '/' + PREFIX + '/' + org
    223         dst = mapContribPath(dst)
    224         if target != "generic":
    225                 dst = mapCPUDependentPath(dst)
    226         try:
    227                 if isDryRun == False:
    228                         os.makedirs(os.path.dirname(dst))
    229         except OSError:
    230                 pass
    231         data = open(src).read()
    232         out = open(tempFile, 'w')
    233         if org.find('rtems') == -1:
     203class Converter(object):
     204        def convert(self, src):
     205                return open(src).read()
     206
     207        def isConvertible(self):
     208                return True
     209
     210class NoConverter(object):
     211        def convert(self, src):
     212                raise
     213
     214        def isConvertible(self):
     215                return False
     216
     217class EmptyConverter(Converter):
     218        def convert(self, src):
     219                return '/* EMPTY */\n'
     220
     221class FromFreeBSDToRTEMSHeaderConverter(Converter):
     222        def convert(self, src):
     223                data = super(FromFreeBSDToRTEMSHeaderConverter, self).convert(src)
     224                return fixIncludes(data)
     225
     226class FromRTEMSToFreeBSDHeaderConverter(Converter):
     227        def convert(self, src):
     228                data = super(FromRTEMSToFreeBSDHeaderConverter, self).convert(src)
     229                return revertFixIncludes(data)
     230
     231class FromFreeBSDToRTEMSSourceConverter(Converter):
     232        def convert(self, src):
     233                data = super(FromFreeBSDToRTEMSSourceConverter, self).convert(src)
    234234                data = fixIncludes(data)
    235         out.write(data)
    236         out.close()
    237         processIfDifferent(tempFile, dst, "Header ", src)
    238 
    239 
    240 # Copy a source file from FreeBSD to the RTEMS BSD tree
    241 def installSourceFile(org):
    242         global tempFile
    243         src = FreeBSD_DIR + '/' + org
    244         dst = RTEMS_DIR + '/' + PREFIX + '/' + org
    245         dst = mapContribPath(dst)
    246         try:
    247                 if isDryRun == False:
    248                         os.makedirs(os.path.dirname(dst))
    249         except OSError:
    250                 pass
    251         data = open(src).read()
    252         out = open(tempFile, 'w')
    253         if org.find('rtems') == -1:
    254                 data = fixIncludes(data)
    255                 out.write('#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n')
    256         out.write(data)
    257         out.close()
    258         processIfDifferent(tempFile, dst, "Source ", src)
    259 
    260 # Revert a header file from the RTEMS BSD tree to the FreeBSD tree
    261 def revertHeaderFile(org, target):
    262         global tempFile
    263         src = RTEMS_DIR + '/' + PREFIX + '/' + org.replace('rtems/', '')
    264         src = mapContribPath(src)
    265         if target != "generic":
    266                 src = mapCPUDependentPath(src)
    267         dst = FreeBSD_DIR + '/' + org
    268         try:
    269                 if isDryRun == False:
    270                         os.makedirs(os.path.dirname(dst))
    271         except OSError:
    272                 pass
    273         data = open(src).read()
    274         out = open(tempFile, 'w')
    275         if org.find('rtems') == -1:
    276                 data = revertFixIncludes(data)
    277         out.write(data)
    278         out.close()
    279         processIfDifferent(tempFile, dst, "Header ", src)
    280 
    281 # Revert a source file from the RTEMS BSD tree to the FreeBSD tree
    282 def revertSourceFile(org, target):
    283         src = RTEMS_DIR + '/' + PREFIX + '/' + org
    284         src = mapContribPath(src)
    285         dst = FreeBSD_DIR + '/' + org
    286         if target != "generic":
    287                 src = mapCPUDependentPath(src)
    288         try:
    289                 if isDryRun == False:
    290                         os.makedirs(os.path.dirname(dst))
    291         except OSError:
    292                 pass
    293         data = open(src).read()
    294         out = open(tempFile, 'w')
    295         if org.find('rtems') == -1:
     235                data = '#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n' + data
     236                return data
     237
     238class FromRTEMSToFreeBSDSourceConverter(Converter):
     239        def convert(self, src):
     240                data = super(FromRTEMSToFreeBSDSourceConverter, self).convert(src)
    296241                data = re.sub('#include <' + PREFIX + '/machine/rtems-bsd-config.h>\n\n', '', data)
    297242                data = revertFixIncludes(data)
    298         out.write(data)
    299         out.close()
    300         processIfDifferent(tempFile, dst, "Source ", src)
     243                return data
     244
     245class PathComposer(object):
     246        def composeFreeBSDPath(self, path):
     247                return FreeBSD_DIR + '/' + path
     248
     249        def composeRTEMSPath(self, path, prefix):
     250                path = prefix + PREFIX + '/' + path
     251                path = mapContribPath(path)
     252                return path
     253
     254class RTEMSPathComposer(object):
     255        def composeFreeBSDPath(self, path):
     256                return path
     257
     258        def composeRTEMSPath(self, path, prefix):
     259                path = prefix + 'rtemsbsd/' + path
     260                return path
     261
     262class CPUDependentPathComposer(PathComposer):
     263        def composeRTEMSPath(self, path, prefix):
     264                path = super(CPUDependentPathComposer, self).composeRTEMSPath(path, prefix)
     265                path = mapCPUDependentPath(path)
     266                return path
     267
     268class File(object):
     269        def __init__(self, path, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter):
     270                self.path = path
     271                self.pathComposer = pathComposer
     272                self.fromFreeBSDToRTEMSConverter = fromFreeBSDToRTEMSConverter
     273                self.fromRTEMSToFreeBSDConverter = fromRTEMSToFreeBSDConverter
     274
     275        def copy(self, dst, src, converter):
     276                if converter.isConvertible():
     277                        global tempFile
     278                        try:
     279                                if isDryRun == False:
     280                                        os.makedirs(os.path.dirname(dst))
     281                        except OSError:
     282                                pass
     283                        data = converter.convert(src)
     284                        out = open(tempFile, 'w')
     285                        out.write(data)
     286                        out.close()
     287                        processIfDifferent(tempFile, dst, src)
     288
     289        def copyFromFreeBSDToRTEMS(self):
     290                src = self.pathComposer.composeFreeBSDPath(self.path)
     291                dst = self.pathComposer.composeRTEMSPath(self.path, RTEMS_DIR + '/')
     292                self.copy(dst, src, self.fromFreeBSDToRTEMSConverter)
     293
     294        def copyFromRTEMSToFreeBSD(self):
     295                src = self.pathComposer.composeRTEMSPath(self.path, RTEMS_DIR + '/')
     296                dst = self.pathComposer.composeFreeBSDPath(self.path)
     297                self.copy(dst, src, self.fromRTEMSToFreeBSDConverter)
     298
     299        def getMakefileFragment(self):
     300                return self.pathComposer.composeRTEMSPath(self.path, '')
    301301
    302302# Remove the output directory
     
    318318        def __init__(self):
    319319                self.modules = []
    320                 self.emptyFiles = []
    321320
    322321        def addModule(self, module):
    323322                self.modules.append(module)
    324323
    325         def addEmptyFiles(self, emptyFiles):
    326                 self.emptyFiles.extend(emptyFiles)
    327 
    328         def copyFiles(self):
    329                 for f in self.emptyFiles:
    330                         installEmptyFile(f)
     324        def copyFromFreeBSDToRTEMS(self):
    331325                for m in self.modules:
    332                         for f in m.headerFiles:
    333                                 installHeaderFile(f, m.target)
    334                         for f in m.sourceFiles:
    335                                 installSourceFile(f)
    336 
    337         def revertFiles(self):
     326                        m.copyFromFreeBSDToRTEMS()
     327
     328        def copyFromRTEMSToFreeBSD(self):
    338329                for m in self.modules:
    339                         for f in m.headerFiles:
    340                                 revertHeaderFile(f, m.target)
    341                         for f in m.sourceFiles:
    342                                 revertSourceFile(f, m.target)
     330                        m.copyFromRTEMSToFreeBSD()
    343331
    344332        def createMakefile(self):
     
    353341                        'CFLAGS += -I . \n' \
    354342                        'CFLAGS += -I rtemsbsd \n' \
     343                        'CFLAGS += -I rtemsbsd/$(RTEMS_CPU)/include \n' \
    355344                        'CFLAGS += -I freebsd/$(RTEMS_CPU)/include \n' \
    356345                        'CFLAGS += -I contrib/altq \n' \
     
    360349                        'CFLAGS += -std=gnu99\n' \
    361350                        '\n'
    362                 data += 'C_FILES ='
     351                data += 'C_FILES =\n'
    363352                for m in self.modules:
    364                         if m.target == "generic":
    365                                 for f in m.sourceFiles:
    366                                         f = PREFIX + '/' + f
    367                                         f = mapContribPath(f)
    368                                         data += ' \\\n\t' + f
    369                 data += '\n'
    370                 data += '# RTEMS Project Owned Files\n'
    371                 data += 'C_FILES +='
    372                 for f in rtems_sourceFiles:
    373                         data += ' \\\n\trtemsbsd/' + f
    374                 data += '\n'
    375                 data += '\n'
    376                 for m in self.modules:
    377                         if m.target != "generic":
    378                                 data += "ifeq ($(RTEMS_CPU)," + m.target + ")\n"
    379                                 data += "C_FILES +="
    380                                 for f in m.sourceFiles:
    381                                         f = PREFIX + '/' + f
    382                                         f = mapContribPath(f)
    383                                         data += ' \\\n\t' + f
    384                                 data += '\n'
     353                        for file in m.sourceFiles:
     354                                data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
     355                        for cpu, files in sorted(m.cpuDependentSourceFiles.items()):
     356                                data += 'ifeq ($(RTEMS_CPU), ' + cpu + ')\n'
     357                                for file in files:
     358                                        data += 'C_FILES += ' + file.getMakefileFragment() + '\n'
    385359                                data += 'endif\n'
    386                        
    387 
    388360                data += '\n' \
    389361                        'C_O_FILES = $(C_FILES:%.c=%.o)\n' \
     
    401373                        '\n' \
    402374                        'install: $(LIB)\n' \
    403             '\tinstall -d $(INSTALL_BASE)/include\n' \
    404             '\tinstall -c -m 644 $(LIB) $(INSTALL_BASE)\n' \
    405             '\tcd rtemsbsd; for i in `find . -name \'*.h\'` ; do \\\n' \
    406             '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
    407             '\tfor i in `find contrib freebsd -name \'*.h\'` ; do \\\n' \
    408             '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
     375                        '\tinstall -d $(INSTALL_BASE)/include\n' \
     376                        '\tinstall -c -m 644 $(LIB) $(INSTALL_BASE)\n' \
     377                        '\tcd rtemsbsd; for i in `find . -name \'*.h\'` ; do \\\n' \
     378                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
     379                        '\tfor i in `find contrib freebsd -name \'*.h\'` ; do \\\n' \
     380                        '\t  install -c -m 644 -D "$$i" "$(INSTALL_BASE)/include/$$i" ; done\n' \
    409381                        '\n' \
    410382                        'clean:\n' \
     
    414386                        '\n' \
    415387                        '-include $(C_DEP_FILES)\n' \
    416                 '\n' \
    417                 'doc: libbsd.html\n' \
    418                 '\n' \
    419                 'libbsd.html: libbsd.txt\n' \
    420                 '\tasciidoc -o libbsd.html libbsd.txt\n'
     388                        '\n' \
     389                        'doc: libbsd.html\n' \
     390                        '\n' \
     391                        'libbsd.html: libbsd.txt\n' \
     392                        '\tasciidoc -o libbsd.html libbsd.txt\n'
    421393 
    422394                out = open(tempFile, 'w')
     
    424396                out.close()
    425397                makefile = RTEMS_DIR + '/Makefile'
    426                 processIfDifferent(tempFile, makefile, "Makefile ", "Makefile")
     398                processIfDifferent(tempFile, makefile, "Makefile")
     399
     400def assertHeaderFile(path):
     401        if path[-2] != '.' or path[-1] != 'h':
     402                print "*** " + path + " does not end in .h"
     403                print "*** Move it to a C source file list"
     404                sys.exit(2)
     405
     406def assertSourceFile(path):
     407        if path[-2] != '.' or (path[-1] != 'c' and path[-1] != 'S'):
     408                print "*** " + path + " does not end in .c"
     409                print "*** Move it to a header file list"
     410                sys.exit(2)
    427411
    428412# Module - logical group of related files we can perform actions on
     
    430414        def __init__(self, name):
    431415                self.name = name
    432                 self.target = "generic"
    433416                self.headerFiles = []
    434417                self.sourceFiles = []
     418                self.cpuDependentSourceFiles = {}
    435419                self.dependencies = []
    436420
    437         def setTarget(self, value):
    438                 self.target = value
    439                
     421        def copyFromFreeBSDToRTEMS(self):
     422                for file in self.headerFiles:
     423                        file.copyFromFreeBSDToRTEMS()
     424                for file in self.sourceFiles:
     425                        file.copyFromFreeBSDToRTEMS()
     426                for cpu, files in self.cpuDependentSourceFiles.items():
     427                        for file in files:
     428                                file.copyFromFreeBSDToRTEMS()
     429
     430        def copyFromRTEMSToFreeBSD(self):
     431                for file in self.headerFiles:
     432                        file.copyFromRTEMSToFreeBSD()
     433                for file in self.sourceFiles:
     434                        file.copyFromRTEMSToFreeBSD()
     435                for cpu, files in self.cpuDependentSourceFiles.items():
     436                        for file in files:
     437                                file.copyFromRTEMSToFreeBSD()
     438
     439        def addFiles(self, currentFiles, newFiles, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter, assertFile):
     440                for file in newFiles:
     441                        assertFile(file)
     442                        currentFiles.append(File(file, pathComposer, fromFreeBSDToRTEMSConverter, fromRTEMSToFreeBSDConverter))
     443                return currentFiles
     444
    440445        def addHeaderFiles(self, files):
    441                 self.headerFiles.extend(files)
    442                 for file in files:
    443                         if file[-2] != '.' or file[-1] != 'h':
    444                                 print "*** " + file + " does not end in .h"
    445                                 print "*** Move it to a C source file list"
    446                                 sys.exit(2)
     446                self.headerFiles = self.addFiles(self.headerFiles, files, PathComposer(), FromFreeBSDToRTEMSHeaderConverter(), FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
     447
     448        def addEmptyHeaderFiles(self, files):
     449                self.headerFiles = self.addFiles(self.headerFiles, files, PathComposer(), EmptyConverter(), NoConverter(), assertHeaderFile)
     450
     451        def addRTEMSHeaderFiles(self, files):
     452                self.headerFiles = self.addFiles(self.headerFiles, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertHeaderFile)
     453
     454        def addCPUDependentHeaderFiles(self, files):
     455                self.headerFiles = self.addFiles(self.headerFiles, files, CPUDependentPathComposer(), FromFreeBSDToRTEMSHeaderConverter(), FromRTEMSToFreeBSDHeaderConverter(), assertHeaderFile)
    447456
    448457        def addSourceFiles(self, files):
    449                 self.sourceFiles.extend(files)
    450                 for file in files:
    451                         if file[-2] != '.' or \
    452                            (file[-1] != 'c' and file[-1] != 'S'):
    453                                 print "*** " + file + " does not end in .c"
    454                                 print "*** Move it to a header file list"
    455                                 sys.exit(2)
    456 
     458                self.sourceFiles = self.addFiles(self.sourceFiles, files, PathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile)
     459
     460        def addRTEMSSourceFiles(self, files):
     461                self.sourceFiles = self.addFiles(self.sourceFiles, files, RTEMSPathComposer(), NoConverter(), NoConverter(), assertSourceFile)
     462
     463        def addCPUDependentSourceFiles(self, cpu, files):
     464                if not self.cpuDependentSourceFiles.has_key(cpu):
     465                        self.cpuDependentSourceFiles [cpu] = []
     466                self.cpuDependentSourceFiles [cpu] = self.addFiles(self.cpuDependentSourceFiles [cpu], files, CPUDependentPathComposer(), FromFreeBSDToRTEMSSourceConverter(), FromRTEMSToFreeBSDSourceConverter(), assertSourceFile)
    457467
    458468        def addDependency(self, dep):
     
    463473mm = ModuleManager()
    464474
    465 rtems_headerFiles = [
    466         'rtems/machine/atomic.h',
    467         'rtems/machine/_bus.h',
    468         'rtems/machine/bus.h',
    469         'rtems/machine/bus_dma.h',
    470         'rtems/machine/rtems-bsd-config.h',
    471         'rtems/machine/clock.h',
    472         'rtems/machine/cpufunc.h',
    473         'rtems/machine/endian.h',
    474         'rtems/machine/_limits.h',
    475         'rtems/machine/_align.h',
    476         'rtems/machine/mutex.h',
    477         'rtems/machine/param.h',
    478         'rtems/machine/pcpu.h',
    479         'rtems/machine/pmap.h',
    480         'rtems/machine/proc.h',
    481         'rtems/machine/resource.h',
    482         'rtems/machine/runq.h',
    483         'rtems/machine/signal.h',
    484         'rtems/machine/stdarg.h',
    485         'rtems/machine/_stdint.h',
    486         'rtems/machine/_types.h',
    487         'rtems/machine/ucontext.h',
    488         'rtems/machine/rtems-bsd-symbols.h',
    489         'rtems/machine/rtems-bsd-cache.h',
    490         'rtems/machine/rtems-bsd-sysinit.h',
    491         'rtems/machine/rtems-bsd-select.h',
    492         'rtems/machine/rtems-bsd-taskqueue.h',
    493         'bsd.h',
    494         ]
    495 rtems_sourceFiles = [
    496         'dev/usb/controller/ohci_lpc24xx.c',
    497         'dev/usb/controller/ohci_lpc32xx.c',
    498         'dev/usb/controller/ehci_mpc83xx.c',
    499         'src/rtems-bsd-cam.c',
    500         'src/rtems-bsd-nexus.c',
    501         'src/rtems-bsd-autoconf.c',
    502         'src/rtems-bsd-delay.c',
    503         'src/rtems-bsd-mutex.c',
    504         'src/rtems-bsd-thread.c',
    505         'src/rtems-bsd-condvar.c',
    506         'src/rtems-bsd-lock.c',
    507         'src/rtems-bsd-log.c',
    508         'src/rtems-bsd-sx.c',
    509         'src/rtems-bsd-rwlock.c',
    510         'src/rtems-bsd-generic.c',
    511         'src/rtems-bsd-panic.c',
    512         'src/rtems-bsd-synch.c',
    513         'src/rtems-bsd-signal.c',
    514         'src/rtems-bsd-callout.c',
    515         'src/rtems-bsd-init.c',
    516         'src/rtems-bsd-init-with-irq.c',
    517         'src/rtems-bsd-assert.c',
    518         'src/rtems-bsd-prot.c',
    519         'src/rtems-bsd-resource.c',
    520         'src/rtems-bsd-jail.c',
    521         'src/rtems-bsd-shell.c',
    522         'src/rtems-bsd-syscalls.c',
    523         'src/rtems-bsd-smp.c',
    524         #'src/rtems-bsd-socket.c',
    525         #'src/rtems-bsd-mbuf.c',
    526         'src/rtems-bsd-malloc.c',
    527         'src/rtems-bsd-support.c',
    528         'src/rtems-bsd-bus-dma.c',
    529         'src/rtems-bsd-sysctl.c',
    530         'src/rtems-bsd-sysctlbyname.c',
    531         'src/rtems-bsd-sysctlnametomib.c',
    532         'src/rtems-bsd-uma.c',
    533         'src/rtems-bsd-taskqueue.c',
    534         'src/rtems-bsd-timesupport.c',
    535         'src/rtems-bsd-timeout.c',
    536         'src/rtems-bsd-newproc.c',
    537         'src/rtems-bsd-vm_glue.c',
    538         'src/rtems-bsd-cyclecount.c',
    539         ]
    540 # RTEMS files handled separately from modules
    541 # rtems = Module('rtems')
    542 # rtems.addHeaderFiles( rtems_headerFiles )
    543 # rtems.addSourceFiles( rtems_sourceFiles )
     475rtems = Module('rtems')
     476rtems.addRTEMSHeaderFiles(
     477        [
     478                'rtems/machine/atomic.h',
     479                'rtems/machine/_bus.h',
     480                'rtems/machine/bus.h',
     481                'rtems/machine/bus_dma.h',
     482                'rtems/machine/rtems-bsd-config.h',
     483                'rtems/machine/clock.h',
     484                'rtems/machine/cpufunc.h',
     485                'rtems/machine/endian.h',
     486                'rtems/machine/_limits.h',
     487                'rtems/machine/_align.h',
     488                'rtems/machine/mutex.h',
     489                'rtems/machine/param.h',
     490                'rtems/machine/pcpu.h',
     491                'rtems/machine/pmap.h',
     492                'rtems/machine/proc.h',
     493                'rtems/machine/resource.h',
     494                'rtems/machine/runq.h',
     495                'rtems/machine/signal.h',
     496                'rtems/machine/stdarg.h',
     497                'rtems/machine/_stdint.h',
     498                'rtems/machine/_types.h',
     499                'rtems/machine/ucontext.h',
     500                'rtems/machine/rtems-bsd-symbols.h',
     501                'rtems/machine/rtems-bsd-cache.h',
     502                'rtems/machine/rtems-bsd-sysinit.h',
     503                'rtems/machine/rtems-bsd-select.h',
     504                'rtems/machine/rtems-bsd-taskqueue.h',
     505                'bsd.h',
     506        ]
     507)
     508rtems.addRTEMSSourceFiles(
     509        [
     510                'dev/usb/controller/ohci_lpc24xx.c',
     511                'dev/usb/controller/ohci_lpc32xx.c',
     512                'dev/usb/controller/ehci_mpc83xx.c',
     513                'src/rtems-bsd-cam.c',
     514                'src/rtems-bsd-nexus.c',
     515                'src/rtems-bsd-autoconf.c',
     516                'src/rtems-bsd-delay.c',
     517                'src/rtems-bsd-mutex.c',
     518                'src/rtems-bsd-thread.c',
     519                'src/rtems-bsd-condvar.c',
     520                'src/rtems-bsd-lock.c',
     521                'src/rtems-bsd-log.c',
     522                'src/rtems-bsd-sx.c',
     523                'src/rtems-bsd-rwlock.c',
     524                'src/rtems-bsd-generic.c',
     525                'src/rtems-bsd-panic.c',
     526                'src/rtems-bsd-synch.c',
     527                'src/rtems-bsd-signal.c',
     528                'src/rtems-bsd-callout.c',
     529                'src/rtems-bsd-init.c',
     530                'src/rtems-bsd-init-with-irq.c',
     531                'src/rtems-bsd-assert.c',
     532                'src/rtems-bsd-prot.c',
     533                'src/rtems-bsd-resource.c',
     534                'src/rtems-bsd-jail.c',
     535                'src/rtems-bsd-shell.c',
     536                'src/rtems-bsd-syscalls.c',
     537                'src/rtems-bsd-smp.c',
     538                #'src/rtems-bsd-socket.c',
     539                #'src/rtems-bsd-mbuf.c',
     540                'src/rtems-bsd-malloc.c',
     541                'src/rtems-bsd-support.c',
     542                'src/rtems-bsd-bus-dma.c',
     543                'src/rtems-bsd-sysctl.c',
     544                'src/rtems-bsd-sysctlbyname.c',
     545                'src/rtems-bsd-sysctlnametomib.c',
     546                'src/rtems-bsd-uma.c',
     547                'src/rtems-bsd-taskqueue.c',
     548                'src/rtems-bsd-timesupport.c',
     549                'src/rtems-bsd-newproc.c',
     550                'src/rtems-bsd-vm_glue.c',
     551        ]
     552)
     553rtems.addEmptyHeaderFiles(
     554        [
     555                'cam/cam_queue.h',
     556                'ddb/db_sym.h',
     557                'ddb/ddb.h',
     558                'machine/cpu.h',
     559                'machine/elf.h',
     560                'machine/sf_buf.h',
     561                'machine/smp.h',
     562                'machine/vm.h',
     563                #'machine/vmparam.h',
     564                'local/opt_bce.h',
     565                'local/opt_ntp.h',
     566                'local/pci_if.h',
     567                'security/audit/audit.h',
     568                'sys/bio.h',
     569                'sys/copyright.h',
     570                'sys/cpuset.h',
     571                'sys/exec.h',
     572                'sys/fail.h',
     573                'sys/limits.h',
     574                'sys/namei.h',
     575                'sys/_pthreadtypes.h',
     576                #'sys/resourcevar.h',
     577                'sys/sched.h',
     578                'sys/select.h',
     579                'sys/syscallsubr.h',
     580                'sys/sysent.h',
     581                'sys/syslimits.h',
     582                'sys/sysproto.h',
     583                'sys/stat.h',
     584                #'sys/time.h',
     585                'time.h',
     586                'sys/timespec.h',
     587                'sys/_timeval.h',
     588                #'sys/vmmeter.h',
     589                #'sys/vnode.h',
     590                'vm/pmap.h',
     591                #'vm/uma_int.h',
     592                #'vm/uma_dbg.h',
     593                #'vm/vm_extern.h',
     594                #'vm/vm_map.h',
     595                #'vm/vm_object.h',
     596                #'vm/vm_page.h',
     597                #'vm/vm_param.h',
     598                #'vm/vm_kern.h',
     599                'geom/geom_disk.h',
     600                #'sys/kdb.h',
     601                #'libkern/jenkins.h',
     602                'machine/pcb.h',
     603                #'net80211/ieee80211_freebsd.h',
     604                'netgraph/ng_ipfw.h',
     605                #'sys/sf_buf.h',
     606        ]
     607)
    544608
    545609local = Module('local')
     
    570634                'local/opt_carp.h',
    571635                'local/opt_compat.h',
    572                 'local/opt_config.h',
     636                'local/opt_config.h',
    573637                'local/opt_cpu.h',
    574638                'local/opt_ddb.h',
     
    596660                'local/opt_netgraph.h',
    597661                'local/opt_param.h',
    598                 'local/opt_posix.h',
    599                 'local/opt_pf.h',
     662                'local/opt_posix.h',
     663                'local/opt_pf.h',
    600664                'local/opt_printf.h',
    601665                'local/opt_route.h',
     
    607671                'local/opt_vlan.h',
    608672                'local/opt_wlan.h',
    609                 'local/opt_zero.h',
     673                'local/opt_zero.h',
    610674                'local/usbdevs_data.h',
    611675                'local/usbdevs.h',
     
    18971961)
    18981962
    1899 # ARM Architecture Specific Files Module
    1900 armDependent = Module('armDependent')
    1901 armDependent.setTarget("arm")
    1902 armDependent.addHeaderFiles(
     1963# in_chksum Module
     1964in_cksum = Module('in_cksum')
     1965in_cksum.addCPUDependentHeaderFiles(
    19031966        [
    19041967                'arm/include/in_cksum.h',
    1905         ]
    1906 )
    1907 armDependent.addSourceFiles(
    1908         [
     1968                'i386/include/in_cksum.h',
     1969                'mips/include/in_cksum.h',
     1970                'powerpc/include/in_cksum.h',
     1971                'sparc64/include/in_cksum.h',
     1972        ]
     1973)
     1974in_cksum.addCPUDependentSourceFiles(
     1975        'arm',
     1976        [
     1977                'arm/arm/in_cksum_arm.S',
    19091978                'arm/arm/in_cksum.c',
    1910                 'arm/arm/in_cksum_arm.S',
    1911         ]
    1912 )
    1913 
    1914 # i386 Architecture Specific Files Module
    1915 i386Dependent = Module('i386Dependent')
    1916 i386Dependent.setTarget("i386")
    1917 i386Dependent.addHeaderFiles(
    1918         [
    1919                 'i386/include/in_cksum.h',
    1920         ]
    1921 )
    1922 i386Dependent.addSourceFiles(
     1979        ]
     1980)
     1981in_cksum.addCPUDependentSourceFiles(
     1982        'i386',
    19231983        [
    19241984                'i386/i386/in_cksum.c',
    19251985        ]
    19261986)
    1927 
    1928 # MIPS Architecture Specific Files Module
    1929 mipsDependent = Module('mipsDependent')
    1930 mipsDependent.setTarget("mips")
    1931 mipsDependent.addHeaderFiles(
    1932         [
    1933                 'mips/include/in_cksum.h',
    1934         ]
    1935 )
    1936 mipsDependent.addSourceFiles(
     1987in_cksum.addCPUDependentSourceFiles(
     1988        'mips',
    19371989        [
    19381990                'mips/mips/in_cksum.c',
    19391991        ]
    19401992)
    1941 
    1942 # PowerPC Architecture Specific Files Module
    1943 powerpcDependent = Module('powerpcDependent')
    1944 powerpcDependent.setTarget("powerpc")
    1945 powerpcDependent.addHeaderFiles(
    1946         [
    1947                 'powerpc/include/in_cksum.h',
    1948         ]
    1949 )
    1950 powerpcDependent.addSourceFiles(
     1993in_cksum.addCPUDependentSourceFiles(
     1994        'powerpc',
    19511995        [
    19521996                'powerpc/powerpc/in_cksum.c',
    19531997        ]
    19541998)
    1955 
    1956 # SPARC64 Architecture Specific Files Module
    1957 sparc64Dependent = Module('cpu_dependent')
    1958 sparc64Dependent.setTarget("sparc64")
    1959 sparc64Dependent.addHeaderFiles(
    1960         [
    1961                 'sparc64/include/in_cksum.h',
    1962         ]
    1963 )
    1964 sparc64Dependent.addSourceFiles(
     1999in_cksum.addCPUDependentSourceFiles(
     2000        'sparc64',
    19652001        [
    19662002                'sparc64/sparc64/in_cksum.c',
     
    19682004)
    19692005
    1970 # Add Empty Files
    1971 mm.addEmptyFiles(
    1972         [
    1973                 'cam/cam_queue.h',
    1974                 'ddb/db_sym.h',
    1975                 'ddb/ddb.h',
    1976                 'machine/cpu.h',
    1977                 'machine/elf.h',
    1978                 'machine/sf_buf.h',
    1979                 'machine/smp.h',
    1980                 'machine/vm.h',
    1981                 #'machine/vmparam.h',
    1982                 'local/opt_bce.h',
    1983                 'local/opt_ntp.h',
    1984                 'local/pci_if.h',
    1985                 'security/audit/audit.h',
    1986                 'sys/bio.h',
    1987                 'sys/copyright.h',
    1988                 'sys/cpuset.h',
    1989                 'sys/exec.h',
    1990                 'sys/fail.h',
    1991                 'sys/limits.h',
    1992                 'sys/namei.h',
    1993                 'sys/_pthreadtypes.h',
    1994                 #'sys/resourcevar.h',
    1995                 'sys/sched.h',
    1996                 'sys/select.h',
    1997                 'sys/syscallsubr.h',
    1998                 'sys/sysent.h',
    1999                 'sys/syslimits.h',
    2000                 'sys/sysproto.h',
    2001                 'sys/stat.h',
    2002                 #'sys/time.h',
    2003                 'time.h',
    2004                 'sys/timespec.h',
    2005                 'sys/_timeval.h',
    2006                 #'sys/vmmeter.h',
    2007                 #'sys/vnode.h',
    2008                 'vm/pmap.h',
    2009                 #'vm/uma_int.h',
    2010                 #'vm/uma_dbg.h',
    2011                 #'vm/vm_extern.h',
    2012                 #'vm/vm_map.h',
    2013                 #'vm/vm_object.h',
    2014                 #'vm/vm_page.h',
    2015                 #'vm/vm_param.h',
    2016                 #'vm/vm_kern.h',
    2017                 'geom/geom_disk.h',
    2018                 #'sys/kdb.h',
    2019                 #'libkern/jenkins.h',
    2020                 'machine/pcb.h',
    2021                 #'net80211/ieee80211_freebsd.h',
    2022                 'netgraph/ng_ipfw.h',
    2023                 #'sys/sf_buf.h',
    2024         ]
    2025 )
    2026 
    20272006# Register all the Module instances with the Module Manager
     2007mm.addModule(rtems)
    20282008mm.addModule(netDeps)
    20292009mm.addModule(net)
     
    20622042# mm.addModule(devNic_cs)
    20632043
    2064 # Now add CPU Architecture Dependent Modules
    2065 mm.addModule(armDependent)
    2066 mm.addModule(i386Dependent)
    2067 mm.addModule(mipsDependent)
    2068 mm.addModule(powerpcDependent)
    2069 mm.addModule(sparc64Dependent)
     2044# Add in_chksum
     2045mm.addModule(in_cksum)
    20702046
    20712047# XXX TODO Check that no file is also listed in empty
     
    20752051if isForward == True:
    20762052  if isOnlyMakefile == False:
    2077     mm.copyFiles()
     2053    mm.copyFromFreeBSDToRTEMS()
    20782054  mm.createMakefile()
    20792055else:
    2080   mm.revertFiles()
     2056  mm.copyFromRTEMSToFreeBSD()
    20812057
    20822058# Print a summary if changing files
Note: See TracChangeset for help on using the changeset viewer.