Changes in tools/autotool.py [232cd4f:7f25c4e] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tools/autotool.py

    r232cd4f r7f25c4e  
    181181                print_error(["Failed to determine the value %s." % key,
    182182                             "Please contact the developers of HelenOS."])
     183
     184def get_target(config, needs_clang = False):
     185        target = None
     186        gnu_target = None
     187        clang_target = None
     188        cc_args = []
     189       
     190        if (config['PLATFORM'] == "abs32le"):
     191                check_config(config, "CROSS_TARGET")
     192                target = config['CROSS_TARGET']
     193               
     194                if (config['CROSS_TARGET'] == "arm32"):
     195                        gnu_target = "arm-linux-gnueabi"
     196               
     197                if (config['CROSS_TARGET'] == "ia32"):
     198                        gnu_target = "i686-pc-linux-gnu"
     199               
     200                if (config['CROSS_TARGET'] == "mips32"):
     201                        gnu_target = "mipsel-linux-gnu"
     202                        common['CC_ARGS'].append("-mabi=32")
     203       
     204        if (config['PLATFORM'] == "amd64"):
     205                target = config['PLATFORM']
     206                gnu_target = "amd64-linux-gnu"
     207                clang_target = "x86_64-uknown-linux"
     208       
     209        if (config['PLATFORM'] == "arm32"):
     210                target = config['PLATFORM']
     211                gnu_target = "arm-linux-gnueabi"
     212       
     213        if (config['PLATFORM'] == "ia32"):
     214                target = config['PLATFORM']
     215                gnu_target = "i686-pc-linux-gnu"
     216                clang_target = "i386-uknown-linux"
     217       
     218        if (config['PLATFORM'] == "ia64"):
     219                target = config['PLATFORM']
     220                gnu_target = "ia64-pc-linux-gnu"
     221       
     222        if (config['PLATFORM'] == "mips32"):
     223                check_config(config, "MACHINE")
     224                cc_args.append("-mabi=32")
     225               
     226                if ((config['MACHINE'] == "lgxemul") or (config['MACHINE'] == "msim")):
     227                        target = config['PLATFORM']
     228                        gnu_target = "mipsel-linux-gnu"
     229               
     230                if (config['MACHINE'] == "bgxemul"):
     231                        target = "mips32eb"
     232                        gnu_target = "mips-linux-gnu"
     233       
     234        if (config['PLATFORM'] == "mips64"):
     235                check_config(config, "MACHINE")
     236                cc_args.append("-mabi=64")
     237               
     238                if (config['MACHINE'] == "msim"):
     239                        target = config['PLATFORM']
     240                        gnu_target = "mips64el-linux-gnu"
     241       
     242        if (config['PLATFORM'] == "ppc32"):
     243                target = config['PLATFORM']
     244                gnu_target = "ppc-linux-gnu"
     245       
     246        if (config['PLATFORM'] == "sparc64"):
     247                target = config['PLATFORM']
     248                gnu_target = "sparc64-linux-gnu"
     249       
     250        if (target is None) or (gnu_target is None) or (clang_target is None and needs_clang):
     251                print_error(["Failed to determine target for compiler.",
     252                             "Please contact the developers of HelenOS."])
     253       
     254        return (target, cc_args, gnu_target, clang_target)
    183255
    184256def check_app(args, name, details):
     
    642714                common['CC_ARGS'] = []
    643715                if (config['COMPILER'] == "gcc_cross"):
    644                         if (config['PLATFORM'] == "abs32le"):
    645                                 check_config(config, "CROSS_TARGET")
    646                                 target = config['CROSS_TARGET']
     716                        target, cc_args, gnu_target, clang_target_unused = get_target(config)
    647717                               
    648                                 if (config['CROSS_TARGET'] == "arm32"):
    649                                         gnu_target = "arm-linux-gnueabi"
    650                                
    651                                 if (config['CROSS_TARGET'] == "ia32"):
    652                                         gnu_target = "i686-pc-linux-gnu"
    653                                
    654                                 if (config['CROSS_TARGET'] == "mips32"):
    655                                         gnu_target = "mipsel-linux-gnu"
    656                                         common['CC_ARGS'].append("-mabi=32")
    657                        
    658                         if (config['PLATFORM'] == "amd64"):
    659                                 target = config['PLATFORM']
    660                                 gnu_target = "amd64-linux-gnu"
    661                        
    662                         if (config['PLATFORM'] == "arm32"):
    663                                 target = config['PLATFORM']
    664                                 gnu_target = "arm-linux-gnueabi"
    665                        
    666                         if (config['PLATFORM'] == "ia32"):
    667                                 target = config['PLATFORM']
    668                                 gnu_target = "i686-pc-linux-gnu"
    669                        
    670                         if (config['PLATFORM'] == "ia64"):
    671                                 target = config['PLATFORM']
    672                                 gnu_target = "ia64-pc-linux-gnu"
    673                        
    674                         if (config['PLATFORM'] == "mips32"):
    675                                 check_config(config, "MACHINE")
    676                                 common['CC_ARGS'].append("-mabi=32")
    677                                
    678                                 if ((config['MACHINE'] == "msim") or (config['MACHINE'] == "lmalta")):
    679                                         target = config['PLATFORM']
    680                                         gnu_target = "mipsel-linux-gnu"
    681                                
    682                                 if ((config['MACHINE'] == "bmalta")):
    683                                         target = "mips32eb"
    684                                         gnu_target = "mips-linux-gnu"
    685                        
    686                         if (config['PLATFORM'] == "mips64"):
    687                                 check_config(config, "MACHINE")
    688                                 common['CC_ARGS'].append("-mabi=64")
    689                                
    690                                 if (config['MACHINE'] == "msim"):
    691                                         target = config['PLATFORM']
    692                                         gnu_target = "mips64el-linux-gnu"
    693                        
    694                         if (config['PLATFORM'] == "ppc32"):
    695                                 target = config['PLATFORM']
    696                                 gnu_target = "ppc-linux-gnu"
    697                        
    698                         if (config['PLATFORM'] == "sparc64"):
    699                                 target = config['PLATFORM']
    700                                 gnu_target = "sparc64-linux-gnu"
    701                        
    702718                        path = "%s/%s/bin" % (cross_prefix, target)
    703719                        prefix = "%s-" % gnu_target
     
    708724                        check_common(common, "GCC")
    709725                        common['CC'] = common['GCC']
     726                        common['CC_ARGS'].extend(cc_args)
    710727               
    711728                if (config['COMPILER'] == "gcc_native"):
     
    723740               
    724741                if (config['COMPILER'] == "clang"):
     742                        target, cc_args, gnu_target, clang_target = get_target(config, True)
     743                        path = "%s/%s/bin" % (cross_prefix, target)
     744                        prefix = "%s-" % gnu_target
     745                       
    725746                        common['CC'] = "clang"
     747                        common['CC_ARGS'].extend(cc_args)
     748                        common['CC_ARGS'].append("-target")
     749                        common['CC_ARGS'].append(clang_target)
    726750                        check_app([common['CC'], "--version"], "Clang compiler", "preferably version 1.0 or newer")
    727                         check_gcc(None, "", common, PACKAGE_GCC)
    728                         check_binutils(None, binutils_prefix, common, PACKAGE_BINUTILS)
     751                        check_gcc(path, prefix, common, PACKAGE_GCC)
     752                        check_binutils(path, prefix, common, PACKAGE_BINUTILS)
    729753               
    730754                # Platform-specific utilities
Note: See TracChangeset for help on using the changeset viewer.