aboutsummaryrefslogtreecommitdiffstats
path: root/packages/mikmod
AgeCommit message (Expand)Author
2004-12-31Merge bk://oe-devel.bkbits.net/openembeddednslu2-linux.adm@bkbits.net
2004-12-09Merge oe-devel@oe-devel.bkbits.net:openembeddedChris Larson
ref='#n42'>42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
#!/usr/bin/env python

# generate Python Manifest for the OpenEmbedded build system
# (C) 2002-2009 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
# (C) 2007 Jeremy Laine
# licensed under MIT, see COPYING.MIT

import os
import sys
import time

VERSION = "2.6.2"

__author__ = "Michael 'Mickey' Lauer <mlauer@vanille-media.de>"
__version__ = "20091004"

class MakefileMaker:

    def __init__( self, outfile ):
        """initialize"""
        self.packages = {}
        self.targetPrefix = "${libdir}/python%s/" % VERSION[:3]
        self.output = outfile
        self.out( """
# WARNING: This file is AUTO GENERATED: Manual edits will be lost next time I regenerate the file.
# Generator: '%s' Version %s (C) 2002-2009 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
# Visit the Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy
""" % ( sys.argv[0], __version__ ) )

    #
    # helper functions
    #

    def out( self, data ):
        """print a line to the output file"""
        self.output.write( "%s\n" % data )

    def setPrefix( self, targetPrefix ):
        """set a file prefix for addPackage files"""
        self.targetPrefix = targetPrefix

    def doProlog( self ):
        self.out( """ """ )
        self.out( "" )

    def addPackage( self, name, description, dependencies, filenames ):
        """add a package to the Makefile"""
        if type( filenames ) == type( "" ):
            filenames = filenames.split()
        fullFilenames = []
        for filename in filenames:
            if filename[0] != "$":
                fullFilenames.append( "%s%s" % ( self.targetPrefix, filename ) )
            else:
                fullFilenames.append( filename )
        self.packages[name] = description, dependencies, fullFilenames

    def doBody( self ):
        """generate body of Makefile"""

        global VERSION

        #
        # generate provides line
        # 
 
        provideLine = 'PROVIDES+="'
        for name in self.packages:
            provideLine += "%s " % name
        provideLine += '"'

        self.out( provideLine )
        self.out( "" )

        #
        # generate package line
        #

        packageLine = 'PACKAGES="python-core-dbg '
        for name in self.packages:
            if name != 'python-core-dbg':
                packageLine += "%s " % name
        packageLine += 'python-modules"'

        self.out( packageLine )
        self.out( "" )

        #
        # generate package variables
        #

        for name, data in self.packages.iteritems():
            desc, deps, files = data

            #
            # write out the description, revision and dependencies
            #
            self.out( 'DESCRIPTION_%s="%s"' % ( name, desc ) )
            self.out( 'RDEPENDS_%s="%s"' % ( name, deps ) )

            line = 'FILES_%s="' % name

            #
            # check which directories to make in the temporary directory
            #

            dirset = {} # if python had a set-datatype this would be sufficient. for now, we're using a dict instead.
            for target in files:
                dirset[os.path.dirname( target )] = True

            #
            # generate which files to copy for the target (-dfR because whole directories are also allowed)
            #

            for target in files:
                line += "%s " % target

            line += '"'
            self.out( line )
            self.out( "" )

        self.out( 'DESCRIPTION_python-modules="All Python modules"' )
        line = 'RDEPENDS_python-modules="'

        for name, data in self.packages.iteritems():
            if name != 'python-core-dbg':
                line += "%s " % name

        self.out( "%s \"" % line )
        self.out( 'ALLOW_EMPTY_python-modules = "1"' )

    def doEpilog( self ):
        self.out( """""" )
        self.out( "" )

    def make( self ):
        self.doProlog()
        self.doBody()
        self.doEpilog()

if __name__ == "__main__":

    if len( sys.argv ) > 1:
        os.popen( "rm -f ./%s" % sys.argv[1] )
        outfile = file( sys.argv[1], "w" )
    else:
        outfile = sys.stdout

    m = MakefileMaker( outfile )

    # Add packages here. Only specify dlopen-style library dependencies here, no ldd-style dependencies!
    # Parameters: revision, name, description, dependencies, filenames
    #

    m.addPackage( "python-core", "Python Interpreter and core modules (needed!)", "",
    "__future__.* _abcoll.* abc.* copy.* copy_reg.* ConfigParser.* " +
    "genericpath.* getopt.* linecache.* new.* " +
    "os.* posixpath.* struct.* " +
    "warnings.* site.* stat.* " +
    "UserDict.* UserList.* UserString.* " +
    "lib-dynload/binascii.so lib-dynload/_struct.so lib-dynload/time.so " +
    "lib-dynload/xreadlines.so types.* ${bindir}/python*" )

    m.addPackage( "python-core-dbg", "Python core module debug information", "python-core",
    "config/.debug lib-dynload/.debug ${bindir}/.debug ${libdir}/.debug" )

    m.addPackage( "python-devel", "Python Development Package", "python-core",
    "${includedir} ${libdir}/libpython2.6.so config" ) # package

    m.addPackage( "python-idle", "Python Integrated Development Environment", "python-core python-tkinter",
    "${bindir}/idle idlelib" ) # package

    m.addPackage( "python-pydoc", "Python Interactive Help Support", "python-core python-lang python-stringold python-re",
    "${bindir}/pydoc pydoc.*" )

    m.addPackage( "python-smtpd", "Python Simple Mail Transport Daemon", "python-core python-netserver python-email python-mime",
    "${bindir}/smtpd.*" )

    m.addPackage( "python-audio", "Python Audio Handling", "python-core",
    "wave.* chunk.* sndhdr.* lib-dynload/ossaudiodev.so lib-dynload/audioop.so" )

    m.addPackage( "python-bsddb", "Python Berkeley Database Bindings", "python-core",
    "bsddb lib-dynload/_bsddb.so" ) # package

    m.addPackage( "python-codecs", "Python Codecs, Encodings & i18n Support", "python-core python-lang",
    "codecs.* encodings gettext.* locale.* lib-dynload/_locale.so lib-dynload/unicodedata.so stringprep.* xdrlib.*" )

    m.addPackage( "python-compile", "Python Bytecode Compilation Support", "python-core",
    "py_compile.* compileall.*" )

    m.addPackage( "python-compiler", "Python Compiler Support", "python-core",
    "compiler" ) # package

    m.addPackage( "python-compression", "Python High Level Compression Support", "python-core python-zlib",
    "gzip.* zipfile.* tarfile.* lib-dynload/bz2.so" )

    m.addPackage( "python-crypt", "Python Basic Cryptographic and Hashing Support", "python-core",
    "hashlib.* md5.* sha.* lib-dynload/crypt.so lib-dynload/_hashlib.so lib-dynload/_sha256.so lib-dynload/_sha512.so" )

    m.addPackage( "python-textutils", "Python Option Parsing, Text Wrapping and Comma-Separated-Value Support", "python-core python-io python-re python-stringold",
    "lib-dynload/_csv.so csv.* optparse.* textwrap.*" )

    m.addPackage( "python-curses", "Python Curses Support", "python-core",
    "curses lib-dynload/_curses.so lib-dynload/_curses_panel.so" ) # directory + low level module

    m.addPackage( "python-ctypes", "Python C Types Support", "python-core",
    "ctypes lib-dynload/_ctypes.so" ) # directory + low level module

    m.addPackage( "python-datetime", "Python Calendar and Time support", "python-core python-codecs",
    "_strptime.* calendar.* lib-dynload/datetime.so" )

    m.addPackage( "python-db", "Python File-Based Database Support", "python-core",
    "anydbm.* dumbdbm.* whichdb.* " )

    m.addPackage( "python-debugger", "Python Debugger", "python-core python-io python-lang python-re python-stringold python-shell python-pprint",
    "bdb.* pdb.*" )

    m.addPackage( "python-difflib", "Python helpers for computing deltas between objects.", "python-lang python-re",
    "difflib.*" )

    m.addPackage( "python-distutils", "Python Distribution Utilities", "python-core",
    "config distutils" ) # package

    m.addPackage( "python-doctest", "Python framework for running examples in docstrings.", "python-core python-lang python-io python-re python-unittest python-debugger python-difflib",
    "doctest.*" )

    # FIXME consider adding to some higher level package
    m.addPackage( "python-elementtree", "Python elementree", "python-core",
    "lib-dynload/_elementtree.so" )

    m.addPackage( "python-email", "Python Email Support", "python-core python-io python-re python-mime python-audio python-image python-netclient",
    "imaplib.* email" ) # package

    m.addPackage( "python-fcntl", "Python's fcntl Interface", "python-core",
    "lib-dynload/fcntl.so" )

    m.addPackage( "python-hotshot", "Python Hotshot Profiler", "python-core",
    "hotshot lib-dynload/_hotshot.so" )

    m.addPackage( "python-html", "Python HTML Processing", "python-core",
    "formatter.* htmlentitydefs.* htmllib.* markupbase.* sgmllib.* " )

    m.addPackage( "python-gdbm", "Python GNU Database Support", "python-core",
    "lib-dynload/gdbm.so" )

    m.addPackage( "python-image", "Python Graphical Image Handling", "python-core",
    "colorsys.* imghdr.* lib-dynload/imageop.so lib-dynload/rgbimg.so" )

    m.addPackage( "python-io", "Python Low-Level I/O", "python-core python-math",
    "lib-dynload/_socket.so lib-dynload/_ssl.so lib-dynload/select.so lib-dynload/termios.so lib-dynload/cStringIO.so " +
    "pipes.* socket.* tempfile.* StringIO.* " )

    m.addPackage( "python-json", "Python JSON Support", "python-core python-math python-re",
    "json" ) # package

    m.addPackage( "python-lang", "Python Low-Level Language Support", "python-core",
    "lib-dynload/_bisect.so lib-dynload/_collections.so lib-dynload/_heapq.so lib-dynload/_weakref.so lib-dynload/_functools.so " +
    "lib-dynload/array.so lib-dynload/itertools.so lib-dynload/operator.so lib-dynload/parser.so " +
    "atexit.* bisect.* code.* codeop.* collections.* dis.* functools.* heapq.* inspect.* keyword.* opcode.* symbol.* repr.* token.* " +
    "tokenize.* traceback.* linecache.* weakref.*" )

    m.addPackage( "python-logging", "Python Logging Support", "python-core python-io python-lang python-pickle python-stringold",
    "logging" ) # package

    m.addPackage( "python-mailbox", "Python Mailbox Format Support", "python-core python-mime",
    "mailbox.*" )

    m.addPackage( "python-math", "Python Math Support", "python-core",
    "lib-dynload/cmath.so lib-dynload/math.so lib-dynload/_random.so random.* sets.*" )

    m.addPackage( "python-mime", "Python MIME Handling APIs", "python-core python-io",
    "mimetools.* uu.* quopri.* rfc822.*" )

    m.addPackage( "python-mmap", "Python Memory-Mapped-File Support", "python-core python-io",
    "lib-dynload/mmap.so " )
    
    m.addPackage( "python-multiprocessing", "Python Multiprocessing Support", "python-core python-io python-lang",
    "lib-dynload/_multiprocessing.so multiprocessing" ) # package   

    m.addPackage( "python-netclient", "Python Internet Protocol Clients", "python-core python-crypt python-datetime python-io python-lang python-logging python-mime",
    "*Cookie*.* " + 
    "base64.* cookielib.* ftplib.* gopherlib.* hmac.* httplib.* mimetypes.* nntplib.* poplib.* smtplib.* telnetlib.* urllib.* urllib2.* urlparse.* uuid.* rfc822.* mimetools.*" )

    m.addPackage( "python-netserver", "Python Internet Protocol Servers", "python-core python-netclient",
    "cgi.* *HTTPServer.* SocketServer.*" )

    m.addPackage( "python-pickle", "Python Persistence Support", "python-core python-codecs python-io python-re",
    "pickle.* shelve.* lib-dynload/cPickle.so" )

    m.addPackage( "python-pkgutil", "Python Package Extension Utility Support", "python-core",
    "pkgutil.*")

    m.addPackage( "python-pprint", "Python Pretty-Print Support", "python-core",
    "pprint.*" )

    m.addPackage( "python-profile", "Python Basic Profiling Support", "python-core python-textutils",
    "profile.* pstats.* cProfile.* lib-dynload/_lsprof.so" )

    m.addPackage( "python-re", "Python Regular Expression APIs", "python-core",
    "re.* sre.* sre_compile.* sre_constants* sre_parse.*" ) # _sre is builtin

    m.addPackage( "python-readline", "Python Readline Support", "python-core",
    "lib-dynload/readline.so rlcompleter.*" )

    m.addPackage( "python-resource", "Python Resource Control Interface", "python-core",
    "lib-dynload/resource.so" )

    m.addPackage( "python-shell", "Python Shell-Like Functionality", "python-core python-re",
    "cmd.* commands.* dircache.* fnmatch.* glob.* popen2.* shlex.* shutil.*" )

    m.addPackage( "python-robotparser", "Python robots.txt parser", "python-core python-netclient",
    "robotparser.*")

    m.addPackage( "python-subprocess", "Python Subprocess Support", "python-core python-io python-re python-fcntl python-pickle",
    "subprocess.*" )

    m.addPackage( "python-sqlite3", "Python Sqlite3 Database Support", "python-core python-datetime python-lang python-crypt python-io python-threading python-zlib",
    "lib-dynload/_sqlite3.so sqlite3/dbapi2.* sqlite3/__init__.* sqlite3/dump.*" )

    m.addPackage( "python-sqlite3-tests", "Python Sqlite3 Database Support Tests", "python-core python-sqlite3",
    "sqlite3/test" )

    m.addPackage( "python-stringold", "Python String APIs [deprecated]", "python-core python-re",
    "lib-dynload/strop.so string.*" )

    m.addPackage( "python-syslog", "Python Syslog Interface", "python-core",
    "lib-dynload/syslog.so" )

    m.addPackage( "python-terminal", "Python Terminal Controlling Support", "python-core python-io",
    "pty.* tty.*" )

    m.addPackage( "python-tests", "Python Tests", "python-core",
    "test" ) # package

    m.addPackage( "python-threading", "Python Threading & Synchronization Support", "python-core python-lang",
    "_threading_local.* dummy_thread.* dummy_threading.* mutex.* threading.* Queue.*" )
    
    m.addPackage( "python-tkinter", "Python Tcl/Tk Bindings", "python-core",
    "lib-dynload/_tkinter.so lib-tk" ) # package
    
    m.addPackage( "python-unittest", "Python Unit Testing Framework", "python-core python-stringold python-lang",
    "unittest.*" )

    m.addPackage( "python-unixadmin", "Python Unix Administration Support", "python-core",
    "lib-dynload/nis.so lib-dynload/grp.so lib-dynload/pwd.so getpass.*" )
        
    m.addPackage( "python-xml", "Python basic XML support.", "python-core python-re",
    "lib-dynload/pyexpat.so xml xmllib.*" ) # package

    m.addPackage( "python-xmlrpc", "Python XMLRPC Support", "python-core python-xml python-netserver python-lang",
    "xmlrpclib.* SimpleXMLRPCServer.*" )

    m.addPackage( "python-zlib", "Python zlib Support.", "python-core",
    "lib-dynload/zlib.so" )

    m.addPackage( "python-mailbox", "Python Mailbox Format Support", "python-core python-mime",
    "mailbox.*" )

    m.make()