diff --git a/pisi/actionsapi/get.py b/pisi/actionsapi/get.py index 36ad5b69..172964bc 100644 --- a/pisi/actionsapi/get.py +++ b/pisi/actionsapi/get.py @@ -19,7 +19,6 @@ _ = __trans.gettext # PiSi Modules import pisi.actionsapi -import pisi.util import pisi.context as ctx # ActionsAPI Modules @@ -31,10 +30,10 @@ class BinutilsError(pisi.actionsapi.Error): self.value = value ctx.ui.error(value) + # Globals env = pisi.actionsapi.variables.glb.env dirs = pisi.actionsapi.variables.glb.dirs -config = pisi.actionsapi.variables.glb.config generals = pisi.actionsapi.variables.glb.generals def curDIR(): @@ -168,29 +167,49 @@ def qtDIR(): # Binutils Variables +def existBinary(bin): + # determine if path has binary + path = os.environ['PATH'].split(':') + for directory in path: + if os.path.exists(os.path.join(directory, bin)): + return True + return False + +def getBinutilsInfo(util): + cross_build_name = '%s-%s' % (HOST(), util) + if not existBinary(cross_build_name): + if not existBinary(util): + raise BinutilsError(_('Util %s cannot be found') % util) + else: + ctx.ui.debug(_('Warning: %s does not exist, using plain name %s') \ + % (cross_build_name, util)) + return util + else: + return cross_build_name + def AR(): - return config.values.build.ar + return getBinutilsInfo('ar') def AS(): - return config.values.build.assembler + return getBinutilsInfo('as') def CC(): - return config.values.build.cc + return getBinutilsInfo('gcc') def CXX(): - return config.values.build.cxx + return getBinutilsInfo('g++') def LD(): - return config.values.build.ld + return getBinutilsInfo('ld') def NM(): - return config.values.build.nm + return getBinutilsInfo('nm') def RANLIB(): - return config.values.build.ranlib + return getBinutilsInfo('ranlib') def F77(): - return config.values.build.f77 + return getBinutilsInfo('g77') def GCJ(): - return config.values.build.gcj + return getBinutilsInfo('gcj') diff --git a/pisi/actionsapi/variables.py b/pisi/actionsapi/variables.py index 196e6749..74ca7da8 100644 --- a/pisi/actionsapi/variables.py +++ b/pisi/actionsapi/variables.py @@ -14,7 +14,6 @@ import os # Pisi-Core Modules import pisi.context as ctx -import pisi.util # Set individual information, that are generally needed for ActionsAPI @@ -36,10 +35,8 @@ def exportFlags(): os.environ['JOBS'] = values.build.jobs # http://liste.pardus.org.tr/gelistirici/2009-January/016442.html - os.environ['CC'] = values.build.cc - os.environ['CXX'] = values.build.cxx - os.environ['LD'] = values.build.ld - + os.environ['CC'] = "%s-gcc" % values.build.host + os.environ['CXX'] = "%s-g++" % values.build.host class Env(object): '''General environment variables used in actions API''' diff --git a/pisi/configfile.py b/pisi/configfile.py index 51bbfbff..dd0b7adf 100644 --- a/pisi/configfile.py +++ b/pisi/configfile.py @@ -17,46 +17,35 @@ # Configuration file is located in /etc/pisi/pisi.conf by default, # having an INI like format like below. # -#[general] -#destinationdirectory = / -#autoclean = False -#bandwidth_limit = 0 +# [general] +# destinationdirectory = / +# autoclean = False +# bandwidth_limit = 0 # -#[build] -#host = i686-pc-linux-gnu -#generateDebug = False -#enableSandbox = False -#jobs = "-j3" -#cflags= -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 -#cxxflags= -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 -#ldflags= -Wl,-O1 -Wl,-z,relro -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common -#ar = "ar" -#assembler = "as" -#cc = "gcc" -#cxx = "g++" -#ld = "ld" -#nm = "nm" -#ranlib = "ranlib" -#f77 = "g77" -#gcj = "gcj" -#strip = "strip" -#objcopy= "objcopy" -#buildhelper = None / ccache / icecream -#compressionlevel = 1 -#fallback = "ftp://ftp.pardus.org.tr/pub/source/2011" +# [build] +# host = i686-pc-linux-gnu +# generateDebug = False +# enableSandbox = False +# jobs = "-j3" +# CFLAGS= -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 +# CXXFLAGS= -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 +# LDFLAGS= -Wl,-O1 -Wl,-z,relro -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common +# buildhelper = None / ccache / icecream +# compressionlevel = 1 +# fallback = "ftp://ftp.pardus.org.tr/pub/source/2009" # -#[directories] -#lib_dir = /var/lib/pisi -#info_dir = "/var/lib/pisi/info" -#history_dir = /var/lib/pisi/history -#archives_dir = /var/cache/pisi/archives -#cached_packages_dir = /var/cache/pisi/packages -#compiled_packages_dir = "/var/cache/pisi/packages" -#index_dir = /var/cache/pisi/index -#packages_dir = /var/cache/pisi/package -#tmp_dir = /var/pisi -#kde_dir = /usr/kde/4 -#qt_dir = /usr/qt/4 +# [directories] +# lib_dir = /var/lib/pisi +# info_dir = "/var/lib/pisi/info" +# history_dir = /var/lib/pisi/history +# archives_dir = /var/cache/pisi/archives +# cached_packages_dir = /var/cache/pisi/packages +# compiled_packages_dir = "/var/cache/pisi/packages" +# index_dir = /var/cache/pisi/index +# packages_dir = /var/cache/pisi/package +# tmp_dir = /var/pisi +# kde_dir = /usr/kde/4 +# qt_dir = /usr/qt/4 import os import re @@ -98,20 +87,6 @@ class BuildDefaults: enableSandbox = True cflags = "-mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2" cxxflags = "-mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2" - - # Toolchain defaults - ar = "ar" - assembler = "as" - cc = "gcc" - cxx = "g++" - ld = "ld" - nm = "nm" - ranlib = "ranlib" - f77 = "g77" - gcj = "gcj" - strip = "strip" - objcopy= "objcopy" - ldflags = "-Wl,-O1 -Wl,-z,relro -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common" buildhelper = None compressionlevel = 1 @@ -133,7 +108,7 @@ class DirectoriesDefaults: packages_dir = "/var/lib/pisi/package" lock_dir = "/var/lock/subsys" index_dir = "/var/lib/pisi/index" - tmp_dir = "/var/pisi" + tmp_dir = "/var/pisi" kde_dir = "/usr/kde/4" qt_dir = "/usr/qt/4" @@ -322,7 +297,7 @@ class ConfigurationFile(object): else: output = current if len(written) > 0: - output.write("\n") + output.write("\n") output.write("[%s]\n" % (sect,)) sections[sect] = None for opt in opts: @@ -340,4 +315,3 @@ class ConfigurationFile(object): fp.write(sect.getvalue()) fp.close() -