Пример #1
0
def downloadToolChain (TOOL_CHAIN):
  #--------------------------------------------------------------------------- Get URL
  url = "http://crossgcc.rts-software.org/downloads/galgas-tools-for-cross-compilation/" + TOOL_CHAIN + ".tar.bz2"
  print "*** TOOL CHAIN IS NOT INSTALLED"
  print "Tool chain URL: " + url
  #--------------------------------------------------------------------------- Get installation directory
  installDir = tool_chain_installation_path.toolChainInstallationPath ()
  print "Intallation directory: " + installDir
  LOCAL_ARCHIVE = installDir + "/" + TOOL_CHAIN + ".tar.bz2"
  runCommand (["mkdir", "-p", installDir])
  #--------------------------------------------------------------------------- Save current dir and change it
  currentDir = os.getcwd ()
  os.chdir (installDir)
  print "+ cd " + installDir
  #--------------------------------------------------------------------------- Download
  runCommand (["rm", "-f", TOOL_CHAIN + ".tar.bz2.downloading"])
  runCommand (["rm", "-f", TOOL_CHAIN + ".tar.bz2"])
  runCommand (["rm", "-f", TOOL_CHAIN + ".tar"])
  downloadArchive (url, LOCAL_ARCHIVE)
  #--------------------------------------------------------------------------- Unzip
  runCommand (["bunzip2", TOOL_CHAIN + ".tar.bz2"])
  runCommand (["tar", "xf", TOOL_CHAIN + ".tar"])
  runCommand (["rm", TOOL_CHAIN + ".tar"])
  #--------------------------------------------------------------------------- Restore current dir
  os.chdir (currentDir)
  print "+ cd " + currentDir
  #--------------------------------------------------------------------------- Done
  print "*** DONE."
Пример #2
0
def buildForWin32OnMacOSX(dictionary, jsonFilePath, EXECUTABLE, GOAL,
                          maxParallelJobs, displayCommands):
    #--- Too chain installation
    GCC_VERSION = "7.2.0"
    BINUTILS_VERSION = "2.28"
    TOOL_CHAIN_NAME = "binutils-" + BINUTILS_VERSION + "-gcc-" + GCC_VERSION + "-for-mingw32"
    installDir = tool_chain_installation_path.toolChainInstallationPath()
    TOOL_CHAIN_INSTALL_PATH = installDir + "/" + TOOL_CHAIN_NAME
    if not os.path.exists(TOOL_CHAIN_INSTALL_PATH):
        cross_compiler_download.downloadToolChain(TOOL_CHAIN_NAME)
#---
    gmf = generic_galgas_makefile.GenericGalgasMakefile()
    gmf.mJSONfilePath = jsonFilePath
    gmf.mDictionary = dictionary
    gmf.mExecutable = EXECUTABLE
    gmf.mGoal = GOAL
    gmf.mMaxParallelJobs = maxParallelJobs
    gmf.mDisplayCommands = displayCommands
    gmf.mTargetName = "win32"
    gmf.mLinkerOptions = ["-lws2_32", "-lComdlg32"]
    gmf.mExecutableSuffix = ".exe"
    #---
    gmf.mCompilerTool = [
        TOOL_CHAIN_INSTALL_PATH + "/bin/i586-mingw32-gcc", "-m32",
        "-D_WIN32_WINNT=0x501"
    ]
    gmf.mLinkerTool = [
        TOOL_CHAIN_INSTALL_PATH + "/bin/i586-mingw32-g++", "-m32",
        "--enable-auto-import", "-Wl,--gc-sections"
    ]
    gmf.mStripTool = [
        TOOL_CHAIN_INSTALL_PATH + "/bin/i586-mingw32-strip", "--strip-all"
    ]
    gmf.mCompilationMessage = "Compiling for Win32"
    gmf.mLinkingMessage = "Linking for Win32"
    gmf.mStripMessage = "Stripping"
    #--- Options for all compilers
    gmf.mAllCompilerOptions = default_build_options.allCompilerOptions(
        ["-Wconversion"])
    #--- Options for release mode
    gmf.mCompilerReleaseOptions = default_build_options.compilerReleaseOptions(
        ["-O2"])
    #--- Options for debug mode
    gmf.mCompilerDebugOptions = default_build_options.compilerDebugOptions([])
    #--- Options for C compiling (.c extension)
    gmf.m_C_CompilerOptions = default_build_options.C_CompilerOptions([])
    #--- Options for C++ compiling (.cpp extension)
    gmf.m_Cpp_CompilerOptions = default_build_options.Cpp_CompilerOptions(
        ["-Weffc++", "-Wsign-promo"])
    #--- Options for Objective-C compiling (.m extension)
    gmf.m_ObjectiveC_CompilerOptions = default_build_options.ObjectiveC_CompilerOptions(
        [])
    #--- Options for Objective-C++ compiling (.mm extension)
    gmf.m_ObjectiveCpp_CompilerOptions = default_build_options.ObjectiveCpp_CompilerOptions(
        [])
    #--- Library to use for gmp
    gmf.mCrossCompilation = "win32"
    #--- Run makefile
    gmf.run()
def buildForLinux64OnMacOSX(dictionary, jsonFilePath, EXECUTABLE, GOAL,
                            maxParallelJobs, displayCommands):
    #--- Too chain installation
    GCC_VERSION = "10.2.0"
    BINUTILS_VERSION = "2.35.1"
    TOOL_CHAIN_NAME = "binutils-" + BINUTILS_VERSION + "-gcc-" + GCC_VERSION + "-for-linux64"
    installDir = tool_chain_installation_path.toolChainInstallationPath()
    TOOL_CHAIN_INSTALL_PATH = installDir + "/" + TOOL_CHAIN_NAME
    if not os.path.exists(TOOL_CHAIN_INSTALL_PATH):
        cross_compiler_download.downloadToolChain(TOOL_CHAIN_NAME)
#---
    gmf = generic_galgas_makefile.GenericGalgasMakefile()
    gmf.mJSONfilePath = jsonFilePath
    gmf.mDictionary = dictionary
    gmf.mExecutable = EXECUTABLE
    gmf.mGoal = GOAL
    gmf.mMaxParallelJobs = maxParallelJobs
    gmf.mDisplayCommands = displayCommands
    gmf.mTargetName = "x86linux64"
    #---
    UNIX_TOOL_PREFIX = TOOL_CHAIN_INSTALL_PATH + "/bin/x86_64-pc-linux"
    gmf.mCompilerTool = [UNIX_TOOL_PREFIX + "-gcc"]
    gmf.mLinkerTool = [
        UNIX_TOOL_PREFIX + "-g++", "-static-libgcc", "-Wl,--gc-sections"
    ]
    gmf.mStripTool = [UNIX_TOOL_PREFIX + "-strip", "--strip-all"]
    gmf.mCompilationMessage = "Compiling for Linux64"
    gmf.mLinkingMessage = "Linking for Linux64"
    gmf.mStripMessage = "Stripping"
    gmf.mCrossCompilation = "Linux-x86_64"
    #--- Options for all compilers
    gmf.mAllCompilerOptions = default_build_options.allCompilerOptions(
        ["-Wconversion"])
    #--- Options for release mode
    gmf.mCompilerReleaseOptions = default_build_options.compilerReleaseOptions(
        ["-O2"])
    #--- Options for debug mode
    gmf.mCompilerDebugOptions = default_build_options.compilerDebugOptions([])
    #--- Options for C compiling (.c extension)
    gmf.m_C_CompilerOptions = default_build_options.C_CompilerOptions([])
    #--- Options for C++ compiling (.cpp extension)
    gmf.m_Cpp_CompilerOptions = default_build_options.Cpp_CompilerOptions(
        ["-Weffc++", "-Wsign-promo"])
    #--- Options for Objective-C compiling (.m extension)
    gmf.m_ObjectiveC_CompilerOptions = default_build_options.ObjectiveC_CompilerOptions(
        [])
    #--- Options for Objective-C++ compiling (.mm extension)
    gmf.m_ObjectiveCpp_CompilerOptions = default_build_options.ObjectiveCpp_CompilerOptions(
        [])
    #--- Run makefile
    gmf.run()
def buildForWin32OnMacOSX (dictionary, jsonFilePath, EXECUTABLE, GOAL, maxParallelJobs, displayCommands) :
#--- Too chain installation
  GCC_VERSION = "7.2.0"
  BINUTILS_VERSION = "2.28"
  TOOL_CHAIN_NAME = "binutils-" + BINUTILS_VERSION + "-gcc-" + GCC_VERSION + "-for-mingw32"
  installDir = tool_chain_installation_path.toolChainInstallationPath ()
  TOOL_CHAIN_INSTALL_PATH = installDir + "/" + TOOL_CHAIN_NAME
  if not os.path.exists (TOOL_CHAIN_INSTALL_PATH):
    cross_compiler_download.downloadToolChain (TOOL_CHAIN_NAME)
#---
  gmf = generic_galgas_makefile.GenericGalgasMakefile ()
  gmf.mJSONfilePath = jsonFilePath
  gmf.mDictionary = dictionary
  gmf.mExecutable = EXECUTABLE
  gmf.mGoal = GOAL
  gmf.mMaxParallelJobs = maxParallelJobs
  gmf.mDisplayCommands = displayCommands
  gmf.mTargetName = "win32"
  gmf.mLinkerOptions = ["-lws2_32", "-lComdlg32"]
  gmf.mExecutableSuffix = ".exe"
#---
  gmf.mCompilerTool = [TOOL_CHAIN_INSTALL_PATH + "/bin/i586-mingw32-gcc", "-m32", "-D_WIN32_WINNT=0x501"]
  gmf.mLinkerTool = [TOOL_CHAIN_INSTALL_PATH + "/bin/i586-mingw32-g++", "-m32", "--enable-auto-import", "-Wl,--gc-sections"]
  gmf.mStripTool = [TOOL_CHAIN_INSTALL_PATH + "/bin/i586-mingw32-strip", "--strip-all"]
  gmf.mCompilationMessage = "Compiling for Win32"
  gmf.mLinkingMessage = "Linking for Win32"
  gmf.mStripMessage = "Stripping"
#--- Options for all compilers
  gmf.mAllCompilerOptions = default_build_options.allCompilerOptions (["-Wconversion"])
#--- Options for release mode
  gmf.mCompilerReleaseOptions = default_build_options.compilerReleaseOptions (["-O2"])
#--- Options for debug mode
  gmf.mCompilerDebugOptions = default_build_options.compilerDebugOptions ([])
#--- Options for C compiling (.c extension)
  gmf.m_C_CompilerOptions = default_build_options.C_CompilerOptions ([])
#--- Options for C++ compiling (.cpp extension)
  gmf.m_Cpp_CompilerOptions = default_build_options.Cpp_CompilerOptions (["-Weffc++", "-Wsign-promo"])
#--- Options for Objective-C compiling (.m extension)
  gmf.m_ObjectiveC_CompilerOptions = default_build_options.ObjectiveC_CompilerOptions ([])
#--- Options for Objective-C++ compiling (.mm extension)
  gmf.m_ObjectiveCpp_CompilerOptions = default_build_options.ObjectiveCpp_CompilerOptions ([])
#--- Library to use for gmp
  gmf.mCrossCompilation = "win32"
#--- Run makefile
  gmf.run ()
def buildForLinux64OnMacOSX(dictionary, EXECUTABLE, GOAL, maxParallelJobs, displayCommands):
    # --- Too chain installation
    GCC_VERSION = "4.9.2"
    BINUTILS_VERSION = "2.25"
    TOOL_CHAIN_NAME = "binutils-" + BINUTILS_VERSION + "-gcc-" + GCC_VERSION + "-for-linux64"
    installDir = tool_chain_installation_path.toolChainInstallationPath()
    TOOL_CHAIN_INSTALL_PATH = installDir + "/" + TOOL_CHAIN_NAME
    if not os.path.exists(TOOL_CHAIN_INSTALL_PATH):
        cross_compiler_download.downloadToolChain(TOOL_CHAIN_NAME)
    # ---
    gmf = generic_galgas_makefile.GenericGalgasMakefile()
    gmf.mDictionary = dictionary
    gmf.mExecutable = EXECUTABLE
    gmf.mGoal = GOAL
    gmf.mMaxParallelJobs = maxParallelJobs
    gmf.mDisplayCommands = displayCommands
    gmf.mTargetName = "x86linux64"
    # ---
    UNIX_TOOL_PREFIX = TOOL_CHAIN_INSTALL_PATH + "/bin/x86_64-pc-linux"
    gmf.mCompilerTool = [UNIX_TOOL_PREFIX + "-gcc"]
    gmf.mLinkerTool = [UNIX_TOOL_PREFIX + "-g++", "-static-libgcc", "-Wl,--gc-sections"]
    gmf.mStripTool = [UNIX_TOOL_PREFIX + "-strip", "--strip-all"]
    gmf.mCompilationMessage = "Compiling for Linux64"
    gmf.mLinkingMessage = "Linking for Linux64"
    gmf.mStripMessage = "Stripping"
    gmf.mCrossCompilation = "Linux-x86_64"
    # --- Options for all compilers
    gmf.mAllCompilerOptions = default_build_options.allCompilerOptions(["-Wconversion"])
    # --- Options for release mode
    gmf.mCompilerReleaseOptions = default_build_options.compilerReleaseOptions(["-O2"])
    # --- Options for debug mode
    gmf.mCompilerDebugOptions = default_build_options.compilerDebugOptions([])
    # --- Options for C compiling (.c extension)
    gmf.m_C_CompilerOptions = default_build_options.C_CompilerOptions([])
    # --- Options for C++ compiling (.cpp extension)
    gmf.m_Cpp_CompilerOptions = default_build_options.Cpp_CompilerOptions(["-Weffc++", "-Wsign-promo"])
    # --- Options for Objective-C compiling (.m extension)
    gmf.m_ObjectiveC_CompilerOptions = default_build_options.ObjectiveC_CompilerOptions([])
    # --- Options for Objective-C++ compiling (.mm extension)
    gmf.m_ObjectiveCpp_CompilerOptions = default_build_options.ObjectiveCpp_CompilerOptions([])
    # --- Run makefile
    gmf.run()