Exemple #1
0
    def setDependencies( self ):
        if not utils.envAsBool('EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES'):
            self.buildDependencies['gnuwin32/wget']       = 'default'
            self.buildDependencies['dev-util/7zip']       = 'default'
            self.buildDependencies['gnuwin32/patch']      = 'default'
            self.buildDependencies['gnuwin32/sed']        = 'default'
            self.buildDependencies['dev-util/cmake']      = 'default'
            self.buildDependencies['dev-util/subversion'] = 'default'
            self.buildDependencies['dev-util/git']        = 'default'

        # for creating combined packages
        self.buildDependencies['dev-util/pexports']   = 'default'

        #add c++ runtime if we xcompile
        if emergePlatform.isCrossCompilingEnabled():
            self.dependencies['win32libs-bin/runtime-ce']   = 'default'

        if not utils.envAsBool('EMERGE_ENABLE_IMPLICID_BUILDTIME_DEPENDENCIES'):
            if os.getenv( "SVN_SSH" ) == "plink" or \
                    os.getenv( "GIT_SSH" ) == "plink":
                self.buildDependencies['dev-util/putty']      = 'default'

            if compiler.isMinGW():
                if compiler.isMinGW_W64():
                    self.buildDependencies['dev-util/mingw-w64']    = 'default'
                elif emergePlatform.buildArchitecture() == 'arm-wince':
                    self.buildDependencies['dev-util/cegcc-arm-wince'] = 'default'
                else:
                    if compiler.isMinGW32():
                        self.buildDependencies['dev-util/mingw4']    = 'default'
                    else:
                        self.buildDependencies['dev-util/mingw-w32']    = 'default'
            if os.getenv( "EMERGE_MAKE_PROGRAM" ) != "":
                self.buildDependencies['dev-util/jom']        = 'default'
Exemple #2
0
 def setTargets( self ):
     if emergePlatform.buildArchitecture() == 'x64':
        self.targets['1.1.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.1.0-win64.zip"
     else:
        self.targets['1.1.0'] = "http://www.tortall.net/projects/yasm/releases/vsyasm-1.1.0-win32.zip"
     self.shortDescription = "The Yasm Modular Assembler Project"
     self.defaultTarget = '1.1.0'
Exemple #3
0
 def setTargets( self ):
     arch = "x86"
     if emergePlatform.buildArchitecture() == "x64":
         arch = "x64"
     self.targets['2.2'] = 'http://www.dependencywalker.com/depends22_'+arch+'.zip'
     self.defaultTarget = '2.2'
     # the zip file does not have a bin dir, so we have to create it
     # This attribute is in prelimary state
     self.targetInstallPath['2.2'] = "bin"
 def setTargets( self ):
     arch = 'win32'
     if emergePlatform.buildArchitecture() == 'x64':
       arch = 'win64'
     self.targets[ '20100330' ] =  'http://downloads.sourceforge.net/project/virtuoso/virtuoso/6.1.1/vos6-' + arch + '-20100330.zip'
     self.targetInstSrc[ '20100330' ] = "virtuoso-opensource"
     self.targetDigests['20100330'] = 'f93f7606a636beefa4c669e8fc5d0100217d85c4'
     self.shortDescription = "a middleware and database engine hybrid for RDBMS, ORDBMS, virtual database, RDF, XML, free-text, web application server and file server functionality"
     self.defaultTarget = '20100330'
    def compile( self ):
        os.chdir( self.sourceDir() )
        cmd = ""
        if self.isTargetBuild():
            """WinCE cross-building environment setup"""
            config = "VC-CE"
            os.environ["WCECOMPAT"] = self.mergeDestinationDir()
            os.environ["TARGETCPU"] = self.buildArchitecture()
            os.environ["PLATFORM"] = self.buildPlatform()
            if self.buildPlatform() == "WM50":
                os.environ["OSVERSION"] = "WCE501"
            elif self.buildPlatform() == "WM60" or self.buildPlatform() == "WM65":
                os.environ["OSVERSION"] = "WCE502"
        elif emergePlatform.buildArchitecture() == "x64":
            config = "VC-WIN64A"
        else:
            config = "VC-WIN32"

        if not self.system( "perl Configure %s" % config, "configure" ):
            return False

        if emergePlatform.buildArchitecture() == "x64":
            if not self.system( "ms\do_win64a.bat", "configure" ):
                return False
        else:
            if not self.system( "ms\do_ms.bat", "configure" ):
                return False

        if self.isTargetBuild():
            self.setupTargetToolchain()
            # Set the include path for the wcecompat files (e.g. errno.h). Setting it through
            # the Configure script generates errors due to the the backslashes in the path
            wcecompatincdir = os.path.join( os.path.join( self.mergeDestinationDir(), "include" ), "wcecompat" )
            os.putenv( "INCLUDE", wcecompatincdir + ";" + os.getenv("INCLUDE") )
            cmd = r"nmake -f ms\ce.mak"
        else:
            if self.staticBuild:
                cmd = r"nmake -f ms\nt.mak"
            else:
                cmd = r"nmake -f ms\ntdll.mak"

        return self.system( cmd )
 def setTargets( self ):
     self.baseURL = "http://downloads.mysql.com/archives/mysql-5.1/"
     if( emergePlatform.buildArchitecture() == 'x64' ):
       self.targets[ '5.1.56'] = self.baseURL+"mysql-noinstall-5.1.56-winx64.zip"
       self.targetInstSrc[ '5.1.56' ] = "mysql-5.1.56-winx64"
     else:
       self.targets[ '5.1.56'] = self.baseURL+"mysql-noinstall-5.1.56-win32.zip"
       self.targetInstSrc[ '5.1.56' ] = "mysql-5.1.56-win32"
       self.targetDigests['5.1.56'] = 'a4bbe414bdcc76aaef7e46b40d3a6da16a91f592'
     self.shortDescription = "MySql database server and embedded library"
     self.defaultTarget = '5.1.56'
    def setTargets( self ):
        for ver in [ '0.9.8k' , '0.9.8m' ,'1.0.0', '1.0.0a', '1.0.0b', '1.0.0c' ]:
            self.targets[ ver ] = 'http://www.openssl.org/source/openssl-' + ver + '.tar.gz'
            self.targetInstSrc[ ver ] = 'openssl-' + ver
            if ver != '1.0.0a':
              self.patchToApply[ ver ] = ('openssl-'+ver+'.diff', 1)
            self.targetDigestUrls[ ver ] = 'http://www.openssl.org/source/openssl-' + ver + '.tar.gz.sha1'
        self.targets[ '1.0.1-snapshot' ] = 'ftp://ftp.openssl.org/snapshot/openssl-1.0.1-stable-SNAP-20101028.tar.gz'
        self.shortDescription = "The OpenSSL runtime environment"
        if emergePlatform.isCrossCompilingEnabled():
            self.defaultTarget = '1.0.0'
        else:
            self.defaultTarget = '1.0.0b'

        if compiler.isMinGW() and emergePlatform.buildArchitecture() == "x64":
            self.patchToApply[ '1.0.0' ] = ('openssl-1.0.0a-mingw64-asm.diff', 1)
            self.patchToApply[ '1.0.0a' ] = ('openssl-1.0.0a-mingw64-asm.diff', 1)
            self.patchToApply[ '1.0.0b' ] = ('openssl-1.0.0a-mingw64-asm.diff', 1)
 def setTargets( self ):
     self.targets['5.8.8'] = "http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.822-MSWin32-x86-280952.zip"
     self.targetMergeSourcePath['5.8.8'] = "ActivePerl-5.8.8.822-MSWin32-x86-280952\\perl"
     if emergePlatform.buildArchitecture() == 'x64':
        self.targets['5.10.1'] = "http://downloads.activestate.com/ActivePerl/releases/5.10.1.1007/ActivePerl-5.10.1.1007-MSWin32-x64-291969.zip"
        self.targetDigests['5.10.1'] = 'b5e9ab83d14e1c3311e280a96d355d491d4d55f5'
        self.targetMergeSourcePath['5.10.1'] = "ActivePerl-5.10.1.1007-MSWin32-x64-291969\\perl"
        self.targets['5.12.2'] = "http://downloads.activestate.com/ActivePerl/releases/5.12.2.1203/ActivePerl-5.12.2.1203-MSWin32-x64-294165.zip"
        #self.targetDigests['5.12.2'] = 'b5e9ab83d14e1c3311e280a96d355d491d4d55f5'
        self.targetMergeSourcePath['5.12.2'] = "ActivePerl-5.12.2.1203-MSWin32-x64-294165\\perl"
     else:
        self.targets['5.10.1'] = "http://downloads.activestate.com/ActivePerl/releases/5.10.1.1007/ActivePerl-5.10.1.1007-MSWin32-x86-291969.zip"
        self.targetDigests['5.10.1'] = '9122a828b32d8b8499c73b61972eaec303698961'
        self.targetMergeSourcePath['5.10.1'] = "ActivePerl-5.10.1.1007-MSWin32-x86-291969\\perl"
        self.targets['5.12.2'] = "http://downloads.activestate.com/ActivePerl/releases/5.12.2.1203/ActivePerl-5.12.2.1203-MSWin32-x86-294165.zip"
        self.targetDigests['5.12.2'] = 'f87d1ab5867a38a46a68f82f5a35d2d2526c1420'
        self.targetMergeSourcePath['5.12.2'] = "ActivePerl-5.12.2.1203-MSWin32-x86-294165\\perl"
        self.targets['5.12.4'] = "http://downloads.activestate.com/ActivePerl/releases/5.12.4.1205/ActivePerl-5.12.4.1205-MSWin32-x86-294981.zip"
        self.targetDigests['5.12.4'] = '14dc84b576a1004d8c71ca3309534c7952215182'
        self.targetMergeSourcePath['5.12.4'] = "ActivePerl-5.12.4.1205-MSWin32-x86-294981\\perl"
     self.defaultTarget = '5.12.4'
def isMinGW_ARM():
    return isMinGW() and emergePlatform.buildArchitecture() == 'arm-wince'
def isMinGW_W64():
    return isMinGW() and emergePlatform.buildArchitecture() == "x64"
    def configure( self, unused1=None, unused2=""):
        self.enterBuildDir()
        self.setPathes()

        xplatform = ""
        if self.isTargetBuild():
            if self.buildPlatform() == "WM60":
                xplatform = "wincewm60professional-%s" % self.compiler()
            elif self.buildPlatform() == "WM65":
                xplatform = "wincewm65professional-%s" % self.compiler()
            elif self.buildPlatform() == "WM50":
                xplatform = "wincewm50pocket-%s" % self.compiler()
            else:
                exit( 1 )

        os.environ[ "USERIN" ] = "y"
        userin = "y"

        incdirs = " -I \"" + os.path.join( self.dbus.installDir(), "include" ) + "\""
        libdirs = " -L \"" + os.path.join( self.dbus.installDir(), "lib" ) + "\""
        incdirs += " -I \"" + os.path.join( self.openssl.installDir(), "include" ) + "\""
        libdirs += " -L \"" + os.path.join( self.openssl.installDir(), "lib" ) + "\""
        if self.isTargetBuild():
            incdirs += " -I \"" + os.path.join( self.wcecompat.installDir(), "include" ) + "\""
            libdirs += " -L \"" + os.path.join( self.wcecompat.installDir(), "lib" ) + "\""
        if not emergePlatform.isCrossCompilingEnabled():
            incdirs += " -I \"" + os.path.join( self.mysql_server.installDir(), "include" ) + "\""
            libdirs += " -L \"" + os.path.join( self.mysql_server.installDir(), "lib" ) + "\""
            libdirs += " -l libmysql "
        else:
            utils.copyFile( os.path.join( self.packageDir(), "sources", "qconfig-kde-wince.h" ),
                    os.path.join( self.sourceDir(), "src", "corelib" , "global", "qconfig-kde-wince.h" ) )
            utils.copyFile( os.path.join( self.packageDir(), "sources", "new.cpp" ),
                    os.path.join( self.sourceDir(), "src", "corelib" , "global", "new.cpp" ) )
            utils.copyFile( os.path.join( self.packageDir(), "sources", "gpglogger_wince.cpp" ),
                    os.path.join( self.sourceDir(), "src", "corelib" , "global", "gpglogger_wince.cpp" ) )
            utils.copyFile( os.path.join( self.packageDir(), "sources", "gpglogger_wince.h" ),
                    os.path.join( self.sourceDir(), "src", "corelib" , "global", "gpglogger_wince.h" ) )

        configure = os.path.join( self.sourceDir(), "configure.exe" ).replace( "/", "\\" )
        command = r"echo %s | %s -opensource -prefix %s -platform %s " % ( userin, configure, self.installDir(), self.platform )
        if emergePlatform.isCrossCompilingEnabled():
            if self.isTargetBuild():
                command += "-xplatform %s -qconfig kde-wince " % xplatform
                command += "-no-exceptions -no-stl -no-rtti "
            if self.isHostBuild():
                command += "-no-xmlpatterns -no-declarative -no-opengl "
            command += "-no-qt3support -no-multimedia -no-scripttools -no-accessibility -no-libmng -no-libtiff -no-gif -no-webkit "

        if not emergePlatform.isCrossCompilingEnabled():
            # non-cc builds only
            command += "-plugin-sql-odbc -plugin-sql-mysql "
            command += "-qt-style-windowsxp -qt-style-windowsvista "
            command += "-qt-libpng -qt-libjpeg -qt-libtiff "

        # WebKit won't link properly with LTCG in a 32-bit MSVC environment
        if emergePlatform.buildArchitecture() == "x86" and compiler.isMSVC2008():
            command += "-no-ltcg "
        else:
            command += "-ltcg "

        # all builds
        command += "-no-phonon "
        command += "-qdbus -dbus-linked -openssl-linked "
        command += "-fast -no-vcproj -no-dsp "
        command += "-nomake demos -nomake examples "
        command += "%s %s" % ( incdirs, libdirs )

        if self.buildType() == "Debug":
          command += " -debug "
        else:
          command += " -release "
        print "command: ", command
        utils.system( command )
        return True