Пример #1
0
def libcSetup(cfg):
    set_variables(cfg)

    if not os.path.exists(cfg["builddir"]):
        shelltools.makedirs(cfg["builddir"])

    shelltools.cd(cfg["builddir"])

    cmd = "../configure \
           --with-tls \
           --with-__thread \
           --enable-add-ons=nptl,libidn,ports \
           --enable-kernel=2.6.31 \
           --without-cvs \
           --without-selinux \
           --prefix=/usr \
           --mandir=/usr/share/man \
           --infodir=/usr/share/info \
           --libexecdir=/usr/lib/misc \
           --enable-stackguard-randomization \
           --enable-bind-now \
           --without-gd \
           --disable-profile \
           %s " % cfg["extraconfig"]

    # if arch is arm, use scratchbox for cross-build
    if get.ARCH() == "arm":
        cmd = "AUTOCONF=false sb2 %s \
               --with-abi=aapcs-linux \
               --with-headers=%s/usr/include \
               --build=%s \
               --host=%s \
               --target=%s" % (cmd, get.sysroot(), get.HOST(), get.HOST(), get.HOST())

    shelltools.system(cmd)
Пример #2
0
def setup():
    exportFlags()
    shelltools.export("CPPFLAGS", "")
    # Maintainer mode off, do not force recreation of generated files
    # shelltools.system("contrib/gcc_update --touch")

    shelltools.makedirs("build")
    shelltools.cd("build")

    cmd = '../configure \
           --prefix=/usr \
           --bindir=/usr/bin \
           --libdir=/usr/lib \
           --libexecdir=/usr/lib \
           --includedir=/usr/include \
           --mandir=/usr/share/man \
           --infodir=/usr/share/info \
           --build=%s \
           --host=%s \
           --target=%s \
           --disable-libgcj \
           --disable-nls \
           --disable-mudflap \
           --disable-libmudflap \
           --disable-libunwind-exceptions \
           --enable-checking=release \
           --enable-clocale=gnu \
           --enable-__cxa_atexit \
           --enable-languages=c,c++,fortran,objc,obj-c++,lto \
           --enable-libstdcxx-allocator=new \
           --disable-libstdcxx-pch \
           --enable-shared \
           --enable-ssp \
           --disable-libssp \
           --enable-plugin \
           --enable-threads=posix \
           --without-included-gettext \
           %s \
           %s \
           %s \
           --with-system-zlib \
           --with-pkgversion="Pardus Linux" \
           --with-bugurl=http://bugs.pardus.org.tr' % (
        get.HOST(), get.HOST(), get.HOST(), opt_arch, opt_unwind, opt_multilib)
    # FIXME: this is supposed to be detected automatically
    #--enable-long-long \
    # --enable-gnu-unique-object \  enable with binutils > 2.20.51.0.2
    # --disable-libunwind-exceptions  # experiment with libunwind >= 0.99

    if get.ARCH() == "arm":
        cmd = "sb2 %s --with-gxx-include-dir=%s/usr/include/c++" % (
            cmd, get.sysroot())
    else:
        cmd += "--with-gxx-include-dir=/usr/include/c++"

    shelltools.system(cmd)
Пример #3
0
def configure(projectfile='', parameters='', installPrefix=prefix):
    if projectfile != '' and not shelltools.can_access_file(projectfile):
        raise ConfigureError(_("Project file '%s' not found.") % projectfile)

    profiles = glob.glob("*.pro")
    if len(profiles) > 1 and projectfile == '':
        raise ConfigureError(_("It seems there are more than one .pro file, you must specify one. (Possible .pro files: %s)") % ", ".join(profiles))

    shelltools.system("%s -makefile %s PREFIX='%s' %s %s" % (qmake, projectfile, installPrefix, get_qmake_environment(), parameters ))
    if crosscompiling:
        pisitools.dosed('Makefile', r'\-(L|I)\/usr(\S*)', '-\\1%s/usr\\2' % get.sysroot())
Пример #4
0
def setup():
    exportFlags()
    shelltools.export("CPPFLAGS", "")
    # Maintainer mode off, do not force recreation of generated files
    # shelltools.system("contrib/gcc_update --touch")

    shelltools.makedirs("build")
    shelltools.cd("build")

    cmd = '../configure \
           --prefix=/usr \
           --bindir=/usr/bin \
           --libdir=/usr/lib \
           --libexecdir=/usr/lib \
           --includedir=/usr/include \
           --mandir=/usr/share/man \
           --infodir=/usr/share/info \
           --build=%s \
           --host=%s \
           --target=%s \
           --disable-libgcj \
           --disable-nls \
           --disable-mudflap \
           --disable-libmudflap \
           --disable-libunwind-exceptions \
           --enable-checking=release \
           --enable-clocale=gnu \
           --enable-__cxa_atexit \
           --enable-languages=c,c++,fortran,objc,obj-c++,lto \
           --enable-libstdcxx-allocator=new \
           --disable-libstdcxx-pch \
           --enable-shared \
           --enable-ssp \
           --disable-libssp \
           --enable-plugin \
           --enable-threads=posix \
           --without-included-gettext \
           %s \
           %s \
           %s \
           --with-system-zlib \
           --with-pkgversion="Pardus Linux" \
           --with-bugurl=http://bugs.pardus.org.tr' % (get.HOST(), get.HOST(), get.HOST(), opt_arch, opt_unwind, opt_multilib)
           # FIXME: this is supposed to be detected automatically
           #--enable-long-long \
           # --enable-gnu-unique-object \  enable with binutils > 2.20.51.0.2
           # --disable-libunwind-exceptions  # experiment with libunwind >= 0.99

    if get.ARCH() == "arm":
        cmd = "sb2 %s --with-gxx-include-dir=%s/usr/include/c++" % (cmd, get.sysroot())
    else:
        cmd += "--with-gxx-include-dir=/usr/include/c++"

    shelltools.system(cmd)
Пример #5
0
def configure(projectfile='', parameters='', installPrefix=prefix):
    if projectfile != '' and not shelltools.can_access_file(projectfile):
        raise ConfigureError(_("Project file '%s' not found.") % projectfile)

    profiles = glob.glob("*.pro")
    if len(profiles) > 1 and projectfile == '':
        raise ConfigureError(
            _("It seems there are more than one .pro file, you must specify one. (Possible .pro files: %s)"
              ) % ", ".join(profiles))

    shelltools.system("%s -makefile %s PREFIX='%s' %s %s" %
                      (qmake, projectfile, installPrefix,
                       get_qmake_environment(), parameters))
    if crosscompiling:
        pisitools.dosed('Makefile', r'\-(L|I)\/usr(\S*)',
                        '-\\1%s/usr\\2' % get.sysroot())
Пример #6
0
def libcSetup(cfg):
    set_variables(cfg)

    if not os.path.exists(cfg["builddir"]):
        shelltools.makedirs(cfg["builddir"])

    shelltools.cd(cfg["builddir"])

    cmd = "../configure \
           --with-tls \
           --with-__thread \
           --enable-add-ons=nptl,libidn,ports \
           --enable-kernel=2.6.31 \
           --without-cvs \
           --without-selinux \
           --prefix=/usr \
           --mandir=/usr/share/man \
           --infodir=/usr/share/info \
           --libexecdir=/usr/lib/misc \
           --enable-stackguard-randomization \
           --enable-bind-now \
           --without-gd \
           --disable-profile \
           %s " % cfg["extraconfig"]

    # if arch is arm, use scratchbox for cross-build
    if get.ARCH() == "arm":
        cmd = "AUTOCONF=false sb2 %s \
               --with-abi=aapcs-linux \
               --with-headers=%s/usr/include \
               --build=%s \
               --host=%s \
               --target=%s" % (cmd, get.sysroot(), get.HOST(), get.HOST(),
                               get.HOST())

    shelltools.system(cmd)
Пример #7
0
from pisi.util import join_path

# ActionsAPI Modules
import pisi.actionsapi
import pisi.actionsapi.get as get
from pisi.actionsapi.shelltools import system
from pisi.actionsapi.shelltools import export
from pisi.actionsapi.shelltools import can_access_file
from pisi.actionsapi.shelltools import unlink

arch = get.ARCH()

crosscompiling = ctx.config.values.build.crosscompiling
if crosscompiling:
    ctx.ui.info(_("cross compiling"))
    export("QTDIR", "%s/usr/qt/4" % get.sysroot())

    export("QMAKE_PLATFORM", "linux-g++")
    export("QMAKESPEC", "%s/usr/qt/4/mkspecs/linux-g++" % get.sysroot())

    export("QMAKE_CC", get.CC())
    export("QMAKE_AR", get.AR())
    export("QMAKE_CXX", get.CXX())
    export("QMAKE_LINK", get.CXX())
    export("QMAKE_LINK_SHLIB", get.CXX())

    export("QMAKE_CFLAGS", "%s %s -Wno-psabi -I%s/usr/qt/4/include" % (get.CPPFLAGS(), get.CFLAGS(), get.sysroot()))
    export(
        "QMAKE_CXXFLAGS",
        "%s %s -Wno-psabi -fno-exceptions -fno-rtti -I%s/usr/qt/4/include"
        % (get.CPPFLAGS(), get.CXXFLAGS(), get.sysroot()),
Пример #8
0
# Please read the COPYING file.


# Pisi Modules
import pisi.context as ctx

import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __trans.ugettext

# ActionsAPI Modules
import pisi.actionsapi
import pisi.actionsapi.get as get
from pisi.actionsapi.shelltools import system

scons_cmd = "scons" if not get.ARCH().startswith('arm') else "sb2 %s/usr/bin/scons" % get.sysroot()

class MakeError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)

class InstallError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)

def make(parameters = ''):
    if system('%s %s %s' % (scons_cmd, get.makeJOBS(), parameters)):
Пример #9
0
datadir = "%s/share/%s" % (prefix, basename)
includedir = "%s/include" % prefix
docdir = "/%s/%s" % (get.docDIR(), basename)
examplesdir = "%s/%s/examples" % (libdir, basename)
demosdir = "%s/%s/demos" % (libdir, basename)
importdir = "%s/%s/imports" % (libdir, basename)
plugindir = "%s/%s/plugins" % (libdir, basename)
translationdir = "%s/translations" % datadir
sysconfdir= "/etc"
qmake = "%s/qmake-qt4" % bindir

crosscompiling = ctx.config.values.build.crosscompiling
if crosscompiling:
    ctx.ui.info(_("cross compiling qt4 application"))
    qmake_environment = {
            'QTDIR'          : "%s/usr/qt/4" % get.sysroot(),
            'QMAKESPEC'      : "%s/usr/qt/4/mkspecs/linux-g++" % get.sysroot(),
            'QMAKE_PLATFORM' : "linux-g++",

            'QMAKE_CC'       : get.CC(),
            'QMAKE_AR'       : get.AR(),
            'QMAKE_CXX'      : get.CXX(),
            'QMAKE_LINK'     : get.CXX(),
            'QMAKE_LINK_SHLIB' : get.CXX(),

            'QMAKE_CFLAGS'   : "%s %s -Wno-psabi -I%s/usr/qt/4/include" % (get.CPPFLAGS(), get.CFLAGS(), get.sysroot()),
            'QMAKE_CXXFLAGS' : "%s %s -Wno-psabi -fno-exceptions -fno-rtti -I%s/usr/qt/4/include" % (get.CPPFLAGS(), get.CXXFLAGS(), get.sysroot()),
            'QMAKE_LDFLAGS'  : "%s" % get.LDFLAGS(),
            'QMAKE_RPATH'    : "-Wl,-rpath-link,",

            'QMAKE_INCDIR'     : "%s/usr/qt/4/include" % get.sysroot(),
Пример #10
0
includedir = "%s/include" % prefix
docdir = "/%s/%s" % (get.docDIR(), basename)
examplesdir = "%s/%s/examples" % (libdir, basename)
demosdir = "%s/%s/demos" % (libdir, basename)
importdir = "%s/%s/imports" % (libdir, basename)
plugindir = "%s/%s/plugins" % (libdir, basename)
translationdir = "%s/translations" % datadir
sysconfdir = "/etc"
qmake = "%s/qmake-qt4" % bindir

crosscompiling = ctx.config.values.build.crosscompiling
if crosscompiling:
    ctx.ui.info(_("cross compiling qt4 application"))
    qmake_environment = {
        'QTDIR':
        "%s/usr/qt/4" % get.sysroot(),
        'QMAKESPEC':
        "%s/usr/qt/4/mkspecs/linux-g++" % get.sysroot(),
        'QMAKE_PLATFORM':
        "linux-g++",
        'QMAKE_CC':
        get.CC(),
        'QMAKE_AR':
        get.AR(),
        'QMAKE_CXX':
        get.CXX(),
        'QMAKE_LINK':
        get.CXX(),
        'QMAKE_LINK_SHLIB':
        get.CXX(),
        'QMAKE_CFLAGS':
Пример #11
0
import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __trans.ugettext

# Pisi Modules
import pisi.context as ctx

# ActionsAPI Modules
import pisi.actionsapi
import pisi.actionsapi.get as get
from pisi.actionsapi.shelltools import system, can_access_file, unlink, isEmpty
from pisi.actionsapi.pisitools import dodoc

crosscompiling = ctx.config.values.build.crosscompiling
sysroot = get.sysroot()
python_cmd = "python"

if crosscompiling:
    python_cmd = "sb2 %s/usr/bin/python" % sysroot

class ConfigureError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)

class CompileError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
Пример #12
0
# Please read the COPYING file.

# Pisi Modules
import pisi.context as ctx

import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __trans.ugettext

# ActionsAPI Modules
import pisi.actionsapi
import pisi.actionsapi.get as get
from pisi.actionsapi.shelltools import system

scons_cmd = "scons" if not get.ARCH().startswith(
    'arm') else "sb2 %s/usr/bin/scons" % get.sysroot()


class MakeError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)


class InstallError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)
Пример #13
0
import gettext
__trans = gettext.translation('pisi', fallback=True)
_ = __trans.ugettext

# Pisi Modules
import pisi.context as ctx

# ActionsAPI Modules
import pisi.actionsapi
import pisi.actionsapi.get as get
from pisi.actionsapi.shelltools import system, can_access_file, unlink, isEmpty
from pisi.actionsapi.pisitools import dodoc

crosscompiling = ctx.config.values.build.crosscompiling
sysroot = get.sysroot()
python_cmd = "python"

if crosscompiling:
    python_cmd = "sb2 %s/usr/bin/python" % sysroot


class ConfigureError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)


class CompileError(pisi.actionsapi.Error):
    def __init__(self, value=''):
Пример #14
0
native_arch_dir = '%s-linux-thread-multi' % get.BUILD().split('-')[0]
target_arch_dir = "" # neccessary only with cross-build
perl_cmd = 'perl'
make_cmd = 'make'
arch = get.ARCH()

if crosscompiling:
    ctx.ui.info(_("cross compiling"))
    if arch.startswith('arm'):
        target_arch_dir = "%s-linux-thread-multi" % arch

        # because of some bugs in qemu, some syscalls cannot be handled of perl.
        # so we must use native perl for now,
        # still working on a patch to fix it.
        #
        perl_cmd = 'sb2 %s/usr/bin/perl' % get.sysroot()
        # perl_cmd = 'sb2 %s' % perl_cmd
        make_cmd = 'sb2 %s' % make_cmd
else:
    ctx.ui.info(_("native compiling"))

class ConfigureError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)

class MakeError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
Пример #15
0
from pisi.util import join_path

# ActionsAPI Modules
import pisi.actionsapi
import pisi.actionsapi.get as get
from pisi.actionsapi.shelltools import system
from pisi.actionsapi.shelltools import export
from pisi.actionsapi.shelltools import can_access_file
from pisi.actionsapi.shelltools import unlink

arch = get.ARCH()

crosscompiling = ctx.config.values.build.crosscompiling
if crosscompiling:
    ctx.ui.info(_("cross compiling"))
    export('QTDIR', "%s/usr/qt/4" % get.sysroot())

    export('QMAKE_PLATFORM', "linux-g++")
    export('QMAKESPEC',      "%s/usr/qt/4/mkspecs/linux-g++" % get.sysroot())

    export('QMAKE_CC',   get.CC())
    export('QMAKE_AR',   get.AR())
    export('QMAKE_CXX',  get.CXX())
    export('QMAKE_LINK', get.CXX())
    export('QMAKE_LINK_SHLIB', get.CXX())

    export('QMAKE_CFLAGS',   "%s %s -Wno-psabi -I%s/usr/qt/4/include" % (get.CPPFLAGS(), get.CFLAGS(), get.sysroot()))
    export('QMAKE_CXXFLAGS', "%s %s -Wno-psabi -fno-exceptions -fno-rtti -I%s/usr/qt/4/include" % (get.CPPFLAGS(), get.CXXFLAGS(), get.sysroot()))
    export('QMAKE_LDFLAGS',   "%s" % get.LDFLAGS())
    export('QMAKE_RPATH',     "-Wl,-rpath-link,")
Пример #16
0
native_arch_dir = '%s-linux-thread-multi' % get.BUILD().split('-')[0]
target_arch_dir = ""  # neccessary only with cross-build
perl_cmd = 'perl'
make_cmd = 'make'
arch = get.ARCH()

if crosscompiling:
    ctx.ui.info(_("cross compiling"))
    if arch.startswith('arm'):
        target_arch_dir = "%s-linux-thread-multi" % arch

        # because of some bugs in qemu, some syscalls cannot be handled of perl.
        # so we must use native perl for now,
        # still working on a patch to fix it.
        #
        perl_cmd = 'sb2 %s/usr/bin/perl' % get.sysroot()
        # perl_cmd = 'sb2 %s' % perl_cmd
        make_cmd = 'sb2 %s' % make_cmd
else:
    ctx.ui.info(_("native compiling"))


class ConfigureError(pisi.actionsapi.Error):
    def __init__(self, value=''):
        pisi.actionsapi.Error.__init__(self, value)
        self.value = value
        ctx.ui.error(value)


class MakeError(pisi.actionsapi.Error):
    def __init__(self, value=''):