Changes in / [f9feab8:90152a4]
- Files:
-
- 915 added
- 670 deleted
- 163 edited
Legend:
- Unmodified
- Added
- Removed
-
.gitignore
rf9feab8 r90152a4 8 8 config.status 9 9 config.log 10 config.py 10 11 stamp-h1 11 Makefile 12 driver/Makefile 13 libcfa/Makefile 14 src/Makefile 12 /Makefile 13 **/Makefile 15 14 /version 16 15 … … 25 24 include 26 25 share 26 build 27 27 *.class 28 28 29 29 # src executables, for lib and bin 30 src/driver/cc1 31 src/driver/cfa 32 src/driver/cfa-cpp 30 driver/as 31 driver/cfa 32 driver/cfa-cpp 33 driver/cc1 33 34 34 src/prelude/builtins.cf 35 src/prelude/gcc-builtins.cf 36 src/prelude/gcc-builtins.c 37 src/prelude/extras.cf 38 src/prelude/bootloader.c 39 src/libcfa/libcfa-prelude.c 35 libcfa/prelude/bootloader.c 36 libcfa/prelude/builtins.cf 37 libcfa/prelude/extras.cf 38 libcfa/prelude/gcc-builtins.cf 39 libcfa/prelude/gcc-builtins.c 40 libcfa/prelude/prelude.cf 41 libcfa/x64-debug/ 42 libcfa/x64-nodebug/ 43 libcfa/x64-nolib/ 44 libcfa/x86-debug/ 45 libcfa/x86-nodebug/ 46 libcfa/x86-nolib/ 47 libcfa/arm-debug/ 48 libcfa/arm-nodebug/ 49 libcfa/arm-nolib/ 50 40 51 41 52 # generated by bison and lex from parser.yy and lex.ll -
Jenkins/FullBuild
rf9feab8 r90152a4 21 21 gcc_5_x64: { trigger_build( 'gcc-5', 'x64', false ) }, 22 22 gcc_5_x86: { trigger_build( 'gcc-5', 'x86', false ) }, 23 gcc_4_x64: { trigger_build( 'gcc-4.9', 'x64', false ) },24 gcc_4_x86: { trigger_build( 'gcc-4.9', 'x86', false ) },25 23 clang_x64: { trigger_build( 'clang', 'x64', false ) }, 26 24 clang_x86: { trigger_build( 'clang', 'x86', false ) }, … … 63 61 parameters: [ \ 64 62 [$class: 'StringParameterValue', \ 65 name: ' pCompiler', \63 name: 'Compiler', \ 66 64 value: cc], \ 67 65 [$class: 'StringParameterValue', \ 68 name: ' pArchitecture', \66 name: 'Architecture', \ 69 67 value: arch], \ 70 68 [$class: 'BooleanParameterValue', \ 71 name: ' pRunAllTests',\69 name: 'RunAllTests', \ 72 70 value: true], \ 73 71 [$class: 'BooleanParameterValue', \ 74 name: ' pRunBenchmark', \72 name: 'RunBenchmark', \ 75 73 value: true], \ 76 74 [$class: 'BooleanParameterValue', \ 77 name: ' pBuildDocumentation', \75 name: 'BuildDocumentation', \ 78 76 value: true], \ 79 77 [$class: 'BooleanParameterValue', \ 80 name: ' pPublish', \81 value: publish], 78 name: 'Publish', \ 79 value: publish], \ 82 80 [$class: 'BooleanParameterValue', \ 83 name: ' pSilent', \81 name: 'Silent', \ 84 82 value: true], \ 85 83 ], \ … … 89 87 90 88 if(result.result != 'SUCCESS') { 91 sh("wget -q -O - ${result.absoluteUrl}/consoleText")89 sh("wget -q -O - http://localhost:8084/jenkins/job/Cforall/job/master/${result.number}/consoleText") 92 90 error(result.result) 93 91 } -
Jenkins/TestRegen
rf9feab8 r90152a4 33 33 email() 34 34 } 35 } 35 } 36 36 catch (Exception caughtError) { 37 37 email_error() … … 65 65 66 66 def install_dir = pwd tmp: true 67 67 68 68 //Configure the conpilation (Output is not relevant) 69 69 //Use the current directory as the installation target so nothing … … 101 101 def email_subject = "[cforall dashboard][TEST REGEN# ${env.BUILD_NUMBER}] - Result" 102 102 def email_body = """This is an automated email from the Jenkins build machine. It was 103 generated http ://plg2:8082/dashboard.103 generated https://cforall.uwaterloo.ca:8082/dashboard.html. 104 104 105 105 Please apply the required changes using the following method : … … 118 118 def email_subject = "[cforall dashboard][TEST REGEN# ${env.BUILD_NUMBER}] - FAILURE" 119 119 def email_body = """This is an automated email from the Jenkins build machine. It was 120 generated http ://plg2:8082/dashboard.120 generated https://cforall.uwaterloo.ca:8082/dashboard.html. 121 121 122 122 Test generation encoutered an error please see attached logs -
Jenkinsfile
rf9feab8 r90152a4 6 6 node ('master'){ 7 7 8 boolean bIsSandbox = env.BRANCH_NAME == "jenkins-sandbox" 8 // Globals 9 BuildDir = pwd tmp: true 10 SrcDir = pwd tmp: false 11 Settings = null 12 StageName = '' 13 14 // Local variables 9 15 def err = null 10 16 def log_needed = false 11 12 stage_name = ''13 14 compiler = null15 arch_name = ''16 architecture = ''17 18 do_alltests = false19 do_benchmark = false20 do_doc = false21 do_publish = false22 do_sendemail = true23 17 24 18 currentBuild.result = "SUCCESS" … … 30 24 notify_server(0) 31 25 32 prepare_build() 26 Settings = prepare_build() 27 28 clean() 33 29 34 30 checkout() … … 41 37 42 38 benchmark() 43 44 clean()45 39 46 40 build_doc() … … 58 52 err = caughtError 59 53 54 echo err.toString() 55 60 56 //An error has occured, the build log is relevent 61 57 log_needed = true 62 58 63 59 //Store the result of the build log 64 currentBuild.result = "${ stage_name} FAILURE".trim()60 currentBuild.result = "${StageName} FAILURE".trim() 65 61 } 66 62 67 63 finally { 68 64 //Send email with final results if this is not a full build 69 if( do_sendemail && !bIsSandbox ) { 70 echo 'Notifying users of result' 71 email(currentBuild.result, log_needed) 65 if( Settings && !Settings.Silent ) { 66 email(log_needed, Settings.IsSandbox) 72 67 } 73 68 … … 82 77 83 78 //=========================================================================================================== 84 // Helper classes/variables/routines85 //===========================================================================================================86 //Helper routine to collect information about the git history87 def collect_git_info() {88 89 checkout scm90 91 //create the temporary output directory in case it doesn't already exist92 def out_dir = pwd tmp: true93 sh "mkdir -p ${out_dir}"94 95 //parse git logs to find what changed96 gitRefName = env.BRANCH_NAME97 sh "git reflog > ${out_dir}/GIT_COMMIT"98 git_reflog = readFile("${out_dir}/GIT_COMMIT")99 gitRefOldValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][1]100 gitRefNewValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][2]101 }102 103 def prepare_build() {104 properties ([ \105 [$class: 'ParametersDefinitionProperty', \106 parameterDefinitions: [ \107 [$class: 'ChoiceParameterDefinition', \108 description: 'Which compiler to use', \109 name: 'pCompiler', \110 choices: 'gcc-6\ngcc-5\ngcc-4.9\nclang', \111 defaultValue: 'gcc-6', \112 ], \113 [$class: 'ChoiceParameterDefinition', \114 description: 'The target architecture', \115 name: 'pArchitecture', \116 choices: 'x64\nx86', \117 defaultValue: 'x64', \118 ], \119 [$class: 'BooleanParameterDefinition', \120 description: 'If false, only the quick test suite is ran', \121 name: 'pRunAllTests', \122 defaultValue: false, \123 ], \124 [$class: 'BooleanParameterDefinition', \125 description: 'If true, jenkins also runs benchmarks', \126 name: 'pRunBenchmark', \127 defaultValue: true, \128 ], \129 [$class: 'BooleanParameterDefinition', \130 description: 'If true, jenkins also builds documentation', \131 name: 'pBuildDocumentation', \132 defaultValue: true, \133 ], \134 [$class: 'BooleanParameterDefinition', \135 description: 'If true, jenkins also publishes results', \136 name: 'pPublish', \137 defaultValue: false, \138 ], \139 [$class: 'BooleanParameterDefinition', \140 description: 'If true, jenkins will not send emails', \141 name: 'pSilent', \142 defaultValue: false, \143 ], \144 ],145 ]])146 147 compiler = compiler_from_params( pCompiler )148 arch_name = pArchitecture149 architecture = architecture_from_params( arch_name )150 151 do_alltests = (pRunAllTests == 'true')152 do_benchmark = (pRunBenchmark == 'true')153 do_doc = (pBuildDocumentation == 'true')154 do_publish = (pPublish == 'true')155 do_sendemail = ! (pSilent == 'true')156 157 echo """Compiler : ${compiler.cc_name} (${compiler.cpp_cc}/${compiler.cfa_cc})158 Architecture : ${arch_name}159 Arc Flags : ${architecture}160 Run All Tests : ${ pRunAllTests.toString() }161 Run Benchmark : ${ pRunBenchmark.toString() }162 Build Documentation : ${ pBuildDocumentation.toString() }163 Publish : ${ pPublish.toString() }164 Silent : ${ pSilent.toString() }165 """166 167 collect_git_info()168 }169 170 def build_stage(String name, Closure block ) {171 stage_name = name172 stage(name, block)173 }174 175 def notify_server(int wait) {176 sh """curl --silent --data "wait=${wait}" -X POST http://plg2:8082/jenkins/notify > /dev/null || true"""177 return178 }179 180 def make_doc() {181 def err = null182 try {183 sh 'make clean > /dev/null'184 sh 'make > /dev/null 2>&1'185 }186 catch (Exception caughtError) {187 err = caughtError //rethrow error later188 sh 'cat *.log'189 }190 finally {191 if (err) throw err // Must re-throw exception to propagate error192 }193 }194 195 //Description of a compiler (Must be serializable since pipelines are persistent)196 class CC_Desc implements Serializable {197 public String cc_name198 public String cpp_cc199 public String cfa_cc200 201 CC_Desc(String cc_name, String cpp_cc, String cfa_cc) {202 this.cc_name = cc_name203 this.cpp_cc = cpp_cc204 this.cfa_cc = cfa_cc205 }206 }207 208 def compiler_from_params(cc) {209 switch( cc ) {210 case 'gcc-6':211 return new CC_Desc('gcc-6', 'g++-6', 'gcc-6')212 break213 case 'gcc-5':214 return new CC_Desc('gcc-5', 'g++-5', 'gcc-5')215 break216 case 'gcc-4.9':217 return new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9')218 break219 case 'clang':220 return new CC_Desc('clang', 'clang++', 'gcc-6')221 break222 default :223 error "Unhandled compiler : ${cc}"224 }225 }226 227 def architecture_from_params( arch ) {228 switch( arch ) {229 case 'x64':230 return '--host=x86_64'231 break232 case 'x86':233 return '--host=i386'234 break235 default :236 error "Unhandled architecture : ${arch}"237 }238 }239 240 //===========================================================================================================241 79 // Main compilation routines 242 80 //=========================================================================================================== 81 def clean() { 82 build_stage('Cleanup') { 83 // clean the build by wipping the build directory 84 dir(BuildDir) { 85 deleteDir() 86 } 87 } 88 } 89 243 90 //Compilation script is done here but environnement set-up and error handling is done in main loop 244 91 def checkout() { 245 92 build_stage('Checkout') { 246 93 //checkout the source code and clean the repo 247 checkout scm 248 249 //Clean all temporary files to make sure no artifacts of the previous build remain 250 sh 'git clean -fdqx' 251 252 //Reset the git repo so no local changes persist 253 sh 'git reset --hard' 94 final scmVars = checkout scm 95 Settings.GitNewRef = scmVars.GIT_COMMIT 96 Settings.GitOldRef = scmVars.GIT_PREVIOUS_COMMIT 97 98 echo GitLogMessage() 254 99 } 255 100 } … … 257 102 def build() { 258 103 build_stage('Build') { 259 260 def install_dir = pwd tmp: true 261 262 //Configure the conpilation (Output is not relevant) 263 //Use the current directory as the installation target so nothing 264 //escapes the sandbox 265 //Also specify the compiler by hand 266 sh "./configure CXX=${compiler.cpp_cc} ${architecture} --with-backend-compiler=${compiler.cfa_cc} --prefix=${install_dir} --enable-silent-rules --quiet" 267 268 //Compile the project 269 sh 'make -j 8 --no-print-directory V=0 install' 104 // Build outside of the src tree to ease cleaning 105 dir (BuildDir) { 106 //Configure the conpilation (Output is not relevant) 107 //Use the current directory as the installation target so nothing escapes the sandbox 108 //Also specify the compiler by hand 109 targets="" 110 if( Settings.RunAllTests ) { 111 targets="--with-target-hosts='host:debug,host:nodebug'" 112 } else { 113 targets="--with-target-hosts='host:debug'" 114 } 115 116 sh "${SrcDir}/configure CXX=${Settings.Compiler.cpp_cc} ${Settings.Architecture.flags} ${targets} --with-backend-compiler=${Settings.Compiler.cfa_cc} --quiet" 117 118 //Compile the project 119 sh 'make -j 8 --no-print-directory' 120 } 270 121 } 271 122 } … … 274 125 build_stage('Test') { 275 126 276 //Run the tests from the tests directory 277 if ( do_alltests ) { 278 sh 'make -C src/tests all-tests debug=yes --no-print-directory' 279 sh 'make -C src/tests all-tests debug=no --no-print-directory' 280 } 281 else { 282 sh 'make -C src/tests --no-print-directory' 127 dir (BuildDir) { 128 //Run the tests from the tests directory 129 if ( Settings.RunAllTests ) { 130 sh 'make --no-print-directory -C tests all-tests debug=yes' 131 sh 'make --no-print-directory -C tests all-tests debug=no ' 132 } 133 else { 134 sh 'make --no-print-directory -C tests' 135 } 283 136 } 284 137 } … … 288 141 build_stage('Benchmark') { 289 142 290 if( !do_benchmark ) return 291 292 //Append bench results 293 sh 'make -C src/benchmark --no-print-directory jenkins githash=' + gitRefNewValue + ' arch=' + arch_name + ' | tee bench.json' 294 } 295 } 296 297 def clean() { 298 build_stage('Cleanup') { 299 300 //do a maintainer-clean to make sure we need to remake from scratch 301 sh 'make maintainer-clean > /dev/null' 143 if( !Settings.RunBenchmark ) return 144 145 dir (BuildDir) { 146 //Append bench results 147 sh "make --no-print-directory -C benchmark jenkins githash=${Settings.GitNewRef} arch=${Settings.Architecture} | tee ${SrcDir}/bench.json" 148 } 302 149 } 303 150 } … … 306 153 build_stage('Documentation') { 307 154 308 if( ! do_doc) return155 if( !Settings.BuildDocumentation ) return 309 156 310 157 dir ('doc/user') { … … 321 168 build_stage('Publish') { 322 169 323 if( ! do_publish ) return170 if( !Settings.Publish ) return 324 171 325 172 //Then publish the results 326 sh 'curl - H "Content-Type: application/json" --silent --data @bench.json http://plg2:8082/jenkins/publish > /dev/null || true'173 sh 'curl --silent --show-error -H \'Content-Type: application/json\' --data @bench.json https://cforall.uwaterloo.ca:8082/jenkins/publish > /dev/null || true' 327 174 } 328 175 } … … 331 178 //Routine responsible of sending the email notification once the build is completed 332 179 //=========================================================================================================== 333 //Standard build email notification 334 def email(String status, boolean log) { 335 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line 336 //Configurations for email format 337 def project_name = (env.JOB_NAME =~ /(.+)\/.+/)[0][1].toLowerCase() 338 339 def gitLog = 'Error retrieving git logs' 340 def gitDiff = 'Error retrieving git diff' 341 342 try { 343 344 sh "git rev-list --format=short ${gitRefOldValue}...${gitRefNewValue} > GIT_LOG" 345 gitLog = readFile('GIT_LOG') 346 347 sh "git diff --stat ${gitRefNewValue} ${gitRefOldValue} > GIT_DIFF" 348 gitDiff = readFile('GIT_DIFF') 349 } 350 catch (Exception error) {} 351 352 def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${status}] - branch ${env.BRANCH_NAME}" 353 def email_body = """This is an automated email from the Jenkins build machine. It was 354 generated because of a git hooks/post-receive script following 355 a ref change was pushed to the repository containing 356 the project "UNNAMED PROJECT". 357 180 def GitLogMessage() { 181 if (!Settings || !Settings.GitOldRef || !Settings.GitNewRef) return "\nERROR retrieveing git information!\n" 182 183 sh "${SrcDir}/tools/PrettyGitLogs.sh ${BuildDir} ${Settings.GitOldRef} ${Settings.GitNewRef}" 184 185 def gitUpdate = readFile("${BuildDir}/GIT_UPDATE") 186 def gitLog = readFile("${BuildDir}/GIT_LOG") 187 def gitDiff = readFile("${BuildDir}/GIT_DIFF") 188 189 return """ 358 190 The branch ${env.BRANCH_NAME} has been updated. 359 via ${gitRefOldValue} (commit) 360 from ${gitRefNewValue} (commit) 191 ${gitUpdate} 361 192 362 193 Check console output at ${env.BUILD_URL} to view the results. … … 364 195 - Status -------------------------------------------------------------- 365 196 366 BUILD# ${env.BUILD_NUMBER} - ${ status}197 BUILD# ${env.BUILD_NUMBER} - ${currentBuild.result} 367 198 368 199 - Log ----------------------------------------------------------------- … … 372 203 ${gitDiff} 373 204 """ 205 } 206 207 //Standard build email notification 208 def email(boolean log, boolean bIsSandbox) { 209 //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line 210 //Configurations for email format 211 echo 'Notifying users of result' 212 213 def project_name = (env.JOB_NAME =~ /(.+)\/.+/)[0][1].toLowerCase() 214 def email_subject = "[${project_name} git][BUILD# ${env.BUILD_NUMBER} - ${currentBuild.result}] - branch ${env.BRANCH_NAME}" 215 def email_body = """This is an automated email from the Jenkins build machine. It was 216 generated because of a git hooks/post-receive script following 217 a ref change which was pushed to the Cforall repository. 218 """ + GitLogMessage() 374 219 375 220 def email_to = "cforall@lists.uwaterloo.ca" 376 221 377 //send email notification 378 emailext body: email_body, subject: email_subject, to: email_to, attachLog: log 379 } 222 if( Settings && !Settings.IsSandbox ) { 223 //send email notification 224 emailext body: email_body, subject: email_subject, to: email_to, attachLog: log 225 } else { 226 echo "Would send email to: ${email_to}" 227 echo "With title: ${email_subject}" 228 echo "Content: \n${email_body}" 229 } 230 } 231 232 //=========================================================================================================== 233 // Helper classes/variables/routines 234 //=========================================================================================================== 235 //Description of a compiler (Must be serializable since pipelines are persistent) 236 class CC_Desc implements Serializable { 237 public String cc_name 238 public String cpp_cc 239 public String cfa_cc 240 241 CC_Desc(String cc_name, String cpp_cc, String cfa_cc) { 242 this.cc_name = cc_name 243 this.cpp_cc = cpp_cc 244 this.cfa_cc = cfa_cc 245 } 246 } 247 248 //Description of an architecture (Must be serializable since pipelines are persistent) 249 class Arch_Desc implements Serializable { 250 public String name 251 public String flags 252 253 Arch_Desc(String name, String flags) { 254 this.name = name 255 this.flags = flags 256 } 257 } 258 259 class BuildSettings implements Serializable { 260 public final CC_Desc Compiler 261 public final Arch_Desc Architecture 262 public final Boolean RunAllTests 263 public final Boolean RunBenchmark 264 public final Boolean BuildDocumentation 265 public final Boolean Publish 266 public final Boolean Silent 267 public final Boolean IsSandbox 268 public final String DescLong 269 public final String DescShort 270 271 public String GitNewRef 272 public String GitOldRef 273 274 BuildSettings(java.util.Collections$UnmodifiableMap param, String branch) { 275 switch( param.Compiler ) { 276 case 'gcc-6': 277 this.Compiler = new CC_Desc('gcc-6', 'g++-6', 'gcc-6') 278 break 279 case 'gcc-5': 280 this.Compiler = new CC_Desc('gcc-5', 'g++-5', 'gcc-5') 281 break 282 case 'gcc-4.9': 283 this.Compiler = new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9') 284 break 285 case 'clang': 286 this.Compiler = new CC_Desc('clang', 'clang++', 'gcc-6') 287 break 288 default : 289 error "Unhandled compiler : ${cc}" 290 } 291 292 switch( param.Architecture ) { 293 case 'x64': 294 this.Architecture = new Arch_Desc('x64', '--host=x86_64') 295 break 296 case 'x86': 297 this.Architecture = new Arch_Desc('x86', '--host=i386') 298 break 299 default : 300 error "Unhandled architecture : ${arch}" 301 } 302 303 this.RunAllTests = param.RunAllTests 304 this.RunBenchmark = param.RunBenchmark 305 this.BuildDocumentation = param.BuildDocumentation 306 this.Publish = param.Publish 307 this.Silent = param.Silent 308 this.IsSandbox = (branch == "jenkins-sandbox") 309 310 def full = param.RunAllTests ? " (Full)" : "" 311 this.DescShort = "${ this.Compiler.cc_name }:${ this.Architecture.name }${full}" 312 313 this.DescLong = """Compiler : ${ this.Compiler.cc_name } (${ this.Compiler.cpp_cc }/${ this.Compiler.cfa_cc }) 314 Architecture : ${ this.Architecture.name } 315 Arc Flags : ${ this.Architecture.flags } 316 Run All Tests : ${ this.RunAllTests.toString() } 317 Run Benchmark : ${ this.RunBenchmark.toString() } 318 Build Documentation : ${ this.BuildDocumentation.toString() } 319 Publish : ${ this.Publish.toString() } 320 Silent : ${ this.Silent.toString() } 321 """ 322 323 this.GitNewRef = '' 324 this.GitOldRef = '' 325 } 326 } 327 328 def prepare_build() { 329 // prepare the properties 330 properties ([ \ 331 [$class: 'ParametersDefinitionProperty', \ 332 parameterDefinitions: [ \ 333 [$class: 'ChoiceParameterDefinition', \ 334 description: 'Which compiler to use', \ 335 name: 'Compiler', \ 336 choices: 'gcc-6\ngcc-5\ngcc-4.9\nclang', \ 337 defaultValue: 'gcc-6', \ 338 ], \ 339 [$class: 'ChoiceParameterDefinition', \ 340 description: 'The target architecture', \ 341 name: 'Architecture', \ 342 choices: 'x64\nx86', \ 343 defaultValue: 'x64', \ 344 ], \ 345 [$class: 'BooleanParameterDefinition', \ 346 description: 'If false, only the quick test suite is ran', \ 347 name: 'RunAllTests', \ 348 defaultValue: false, \ 349 ], \ 350 [$class: 'BooleanParameterDefinition', \ 351 description: 'If true, jenkins also runs benchmarks', \ 352 name: 'RunBenchmark', \ 353 defaultValue: false, \ 354 ], \ 355 [$class: 'BooleanParameterDefinition', \ 356 description: 'If true, jenkins also builds documentation', \ 357 name: 'BuildDocumentation', \ 358 defaultValue: true, \ 359 ], \ 360 [$class: 'BooleanParameterDefinition', \ 361 description: 'If true, jenkins also publishes results', \ 362 name: 'Publish', \ 363 defaultValue: false, \ 364 ], \ 365 [$class: 'BooleanParameterDefinition', \ 366 description: 'If true, jenkins will not send emails', \ 367 name: 'Silent', \ 368 defaultValue: false, \ 369 ], \ 370 ], 371 ]]) 372 373 final settings = new BuildSettings(params, env.BRANCH_NAME) 374 375 currentBuild.description = settings.DescShort 376 echo settings.DescLong 377 378 return settings 379 } 380 381 def build_stage(String name, Closure block ) { 382 StageName = name 383 echo " -------- ${StageName} -------- " 384 stage(name, block) 385 } 386 387 def notify_server(int wait) { 388 sh """curl --silent --show-error --data "wait=${wait}" -X POST https://cforall.uwaterloo.ca:8082/jenkins/notify > /dev/null || true""" 389 return 390 } 391 392 def make_doc() { 393 def err = null 394 try { 395 sh 'make clean > /dev/null' 396 sh 'make > /dev/null 2>&1' 397 } 398 catch (Exception caughtError) { 399 err = caughtError //rethrow error later 400 sh 'cat *.log' 401 } 402 finally { 403 if (err) throw err // Must re-throw exception to propagate error 404 } 405 } -
Makefile.am
rf9feab8 r90152a4 6 6 ## file "LICENCE" distributed with Cforall. 7 7 ## 8 ## Makefile.am -- 8 ## Makefile.am -- 9 9 ## 10 10 ## Author : Peter A. Buhr … … 15 15 ############################################################################### 16 16 17 AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names 18 SUBDIRS = src/driver src src/prelude src/libcfa # order important, src before prelude because cfa-cpp used to build prelude 19 EXTRA_DIST = Docs # non-source files 20 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 17 AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names 18 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 21 19 22 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* 20 MAINTAINERCLEANFILES = lib/* bin/* tests/.deps/* tests/.out/* 21 # order important 22 23 SUBDIRS = driver src . @LIBCFA_TARGET_DIRS@ 24 25 @LIBCFA_TARGET_MAKEFILES@ : Makefile $(srcdir)/libcfa/configure 26 @$(eval config_file = $(dir $@)config.data) 27 @ls $(config_file) || (echo "Missing config.data, re-run configure script again" && false) 28 @$(eval config_data = $(shell cat $(config_file))) 29 @echo "Configuring libcfa with '$(config_data)''" 30 @cd $(dir $@) && $(abs_top_srcdir)/libcfa/configure $(config_data) 31 32 noinst_DATA = @LIBCFA_TARGET_MAKEFILES@ 23 33 24 34 man1_MANS = doc/man/cfa.1 35 36 debug=yes 37 check: 38 $(MAKE) -C tests all-tests installed=no debug=${debug} 39 40 installcheck: 41 $(MAKE) -C tests all-tests installed=yes debug=${debug} 42 43 status: @LIBCFA_TARGET_MAKEFILES@ 44 @echo -ne "translator\n\t" 45 @./config.status --config | sed "s/ /\n\t/g; s/\t'/\t/g; s/'\n/\n/g; s/^'//g; s/'$$//g" 46 @find libcfa -name config.status -printf "\n%h\n\t" -exec {} --config \; | sed "s/ /\n\t/g; s/\t'/\t/g; s/'\n/\n/g; s/^'//g; s/'$$//g" -
Makefile.in
rf9feab8 r90152a4 17 17 ######################## -*- Mode: Makefile-Automake -*- ###################### 18 18 ############################################################################### 19 19 20 VPATH = @srcdir@ 20 21 am__is_gnu_make = { \ … … 93 94 subdir = . 94 95 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 95 am__aclocal_m4_deps = $(top_srcdir)/configure.ac 96 am__aclocal_m4_deps = $(top_srcdir)/automake/cfa.m4 \ 97 $(top_srcdir)/configure.ac 96 98 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 97 99 $(ACLOCAL_M4) … … 162 164 NROFF = nroff 163 165 MANS = $(man1_MANS) 166 DATA = $(noinst_DATA) 164 167 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ 165 168 distclean-recursive maintainer-clean-recursive … … 170 173 AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ 171 174 cscope distdir dist dist-all distcheck 172 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ 173 $(LISP)config.h.in 175 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) 174 176 # Read a list of newline-separated strings from the standard input, 175 177 # and print each of them once, without duplicates. Input order is … … 192 194 CSCOPE = cscope 193 195 DIST_SUBDIRS = $(SUBDIRS) 194 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ 195 $(top_srcdir)/automake/compile \ 196 am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/automake/compile \ 196 197 $(top_srcdir)/automake/config.guess \ 197 198 $(top_srcdir)/automake/config.sub \ 198 199 $(top_srcdir)/automake/install-sh \ 199 $(top_srcdir)/automake/missing INSTALL README automake/compile \ 200 automake/config.guess automake/config.sub automake/depcomp \ 201 automake/install-sh automake/missing automake/ylwrap 200 $(top_srcdir)/automake/missing $(top_srcdir)/src/config.h.in \ 201 INSTALL README automake/compile automake/config.guess \ 202 automake/config.sub automake/depcomp automake/install-sh \ 203 automake/missing automake/ylwrap 202 204 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 203 205 distdir = $(PACKAGE)-$(VERSION) … … 250 252 AUTOMAKE = @AUTOMAKE@ 251 253 AWK = @AWK@ 252 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 254 BACKEND_CC = @BACKEND_CC@ # C compiler used to compile Cforall programs, versus C++ compiler used to build cfa command 255 BUILD_IN_TREE_FLAGS = @BUILD_IN_TREE_FLAGS@ 253 256 CC = @CC@ 254 257 CCAS = @CCAS@ … … 256 259 CCASFLAGS = @CCASFLAGS@ 257 260 CCDEPMODE = @CCDEPMODE@ 261 CFACC = @CFACC@ 262 CFACPP = @CFACPP@ 258 263 CFA_BACKEND_CC = @CFA_BACKEND_CC@ 259 264 CFA_BINDIR = @CFA_BINDIR@ … … 272 277 DEFS = @DEFS@ 273 278 DEPDIR = @DEPDIR@ 279 DRIVER_DIR = @DRIVER_DIR@ 274 280 ECHO_C = @ECHO_C@ 275 281 ECHO_N = @ECHO_N@ … … 278 284 EXEEXT = @EXEEXT@ 279 285 GREP = @GREP@ 286 HOST_FLAGS = @HOST_FLAGS@ 280 287 INSTALL = @INSTALL@ 281 288 INSTALL_DATA = @INSTALL_DATA@ … … 287 294 LEXLIB = @LEXLIB@ 288 295 LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ 296 LIBCFA_TARGET_DIRS = @LIBCFA_TARGET_DIRS@ 297 LIBCFA_TARGET_MAKEFILES = @LIBCFA_TARGET_MAKEFILES@ 289 298 LIBOBJS = @LIBOBJS@ 290 299 LIBS = @LIBS@ 291 300 LTLIBOBJS = @LTLIBOBJS@ 292 MACHINE_TYPE = @MACHINE_TYPE@293 MAINT = @MAINT@294 301 MAKEINFO = @MAKEINFO@ 295 302 MKDIR_P = @MKDIR_P@ … … 307 314 SHELL = @SHELL@ 308 315 STRIP = @STRIP@ 316 TARGET_HOSTS = @TARGET_HOSTS@ 309 317 VERSION = @VERSION@ 310 318 YACC = @YACC@ … … 362 370 top_builddir = @top_builddir@ 363 371 top_srcdir = @top_srcdir@ 364 AUTOMAKE_OPTIONS = foreign 365 SUBDIRS = src/driver src src/prelude src/libcfa # order important, src before prelude because cfa-cpp used to build prelude 366 EXTRA_DIST = Docs # non-source files 367 MAINTAINERCLEANFILES = lib/* bin/* src/examples/.deps/* src/tests/.deps/* src/tests/.out/* 372 AUTOMAKE_OPTIONS = foreign # do not require all the GNU file names 373 MAINTAINERCLEANFILES = lib/* bin/* tests/.deps/* tests/.out/* 374 SUBDIRS = driver src . @LIBCFA_TARGET_DIRS@ 375 noinst_DATA = @LIBCFA_TARGET_MAKEFILES@ 368 376 man1_MANS = doc/man/cfa.1 377 debug = yes 369 378 all: config.h 370 379 $(MAKE) $(AM_MAKEFLAGS) all-recursive … … 373 382 am--refresh: Makefile 374 383 @: 375 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@$(srcdir)/Makefile.am $(am__configure_deps)384 $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) 376 385 @for dep in $?; do \ 377 386 case '$(am__configure_deps)' in \ … … 399 408 $(SHELL) ./config.status --recheck 400 409 401 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@$(am__configure_deps)410 $(top_srcdir)/configure: $(am__configure_deps) 402 411 $(am__cd) $(srcdir) && $(AUTOCONF) 403 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@$(am__aclocal_m4_deps)412 $(ACLOCAL_M4): $(am__aclocal_m4_deps) 404 413 $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 405 414 $(am__aclocal_m4_deps): … … 409 418 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 410 419 411 stamp-h1: $( srcdir)/config.h.in $(top_builddir)/config.status420 stamp-h1: $(top_srcdir)/src/config.h.in $(top_builddir)/config.status 412 421 @rm -f stamp-h1 413 422 cd $(top_builddir) && $(SHELL) ./config.status config.h 414 $( srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@$(am__configure_deps)423 $(top_srcdir)/src/config.h.in: $(am__configure_deps) 415 424 ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) 416 425 rm -f stamp-h1 … … 757 766 check-am: all-am 758 767 check: check-recursive 759 all-am: Makefile $(MANS) config.h768 all-am: Makefile $(MANS) $(DATA) config.h 760 769 installdirs: installdirs-recursive 761 770 installdirs-am: … … 770 779 install-am: all-am 771 780 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 772 773 installcheck: installcheck-recursive774 781 install-strip: 775 782 if test -z '$(STRIP)'; then \ … … 885 892 .PRECIOUS: Makefile 886 893 894 # order important 895 896 @LIBCFA_TARGET_MAKEFILES@ : Makefile $(srcdir)/libcfa/configure 897 @$(eval config_file = $(dir $@)config.data) 898 @ls $(config_file) || (echo "Missing config.data, re-run configure script again" && false) 899 @$(eval config_data = $(shell cat $(config_file))) 900 @echo "Configuring libcfa with '$(config_data)''" 901 @cd $(dir $@) && $(abs_top_srcdir)/libcfa/configure $(config_data) 902 check: 903 $(MAKE) -C tests all-tests installed=no debug=${debug} 904 905 installcheck: 906 $(MAKE) -C tests all-tests installed=yes debug=${debug} 907 908 status: @LIBCFA_TARGET_MAKEFILES@ 909 @echo -ne "translator\n\t" 910 @./config.status --config | sed "s/ /\n\t/g; s/\t'/\t/g; s/'\n/\n/g; s/^'//g; s/'$$//g" 911 @find libcfa -name config.status -printf "\n%h\n\t" -exec {} --config \; | sed "s/ /\n\t/g; s/\t'/\t/g; s/'\n/\n/g; s/^'//g; s/'$$//g" 887 912 888 913 # Tell versions [3.59,3.63) of GNU make to not export all variables. -
README
rf9feab8 r90152a4 107 107 - the implicit coercion of structure types to the type of their first member is 108 108 not implemented 109 109 110 110 Who is responsible for cfa-cc? 111 111 ------------------------------ … … 115 115 The Cforall project maintains a web page: 116 116 117 http ://plg.uwaterloo.ca/~cforall117 https://cforall.uwaterloo.ca -
aclocal.m4
rf9feab8 r90152a4 127 127 # Expand $ac_aux_dir to an absolute path. 128 128 am_aux_dir=`cd "$ac_aux_dir" && pwd` 129 ])130 131 # AM_COND_IF -*- Autoconf -*-132 133 # Copyright (C) 2008-2014 Free Software Foundation, Inc.134 #135 # This file is free software; the Free Software Foundation136 # gives unlimited permission to copy and/or distribute it,137 # with or without modifications, as long as this notice is preserved.138 139 # _AM_COND_IF140 # _AM_COND_ELSE141 # _AM_COND_ENDIF142 # --------------143 # These macros are only used for tracing.144 m4_define([_AM_COND_IF])145 m4_define([_AM_COND_ELSE])146 m4_define([_AM_COND_ENDIF])147 148 # AM_COND_IF(COND, [IF-TRUE], [IF-FALSE])149 # ---------------------------------------150 # If the shell condition COND is true, execute IF-TRUE, otherwise execute151 # IF-FALSE. Allow automake to learn about conditional instantiating macros152 # (the AC_CONFIG_FOOS).153 AC_DEFUN([AM_COND_IF],154 [m4_ifndef([_AM_COND_VALUE_$1],155 [m4_fatal([$0: no such condition "$1"])])dnl156 _AM_COND_IF([$1])dnl157 if test -z "$$1_TRUE"; then :158 m4_n([$2])[]dnl159 m4_ifval([$3],160 [_AM_COND_ELSE([$1])dnl161 else162 $3163 ])dnl164 _AM_COND_ENDIF([$1])dnl165 fi[]dnl166 129 ]) 167 130 … … 703 666 AC_SUBST([am__leading_dot])]) 704 667 705 # Add --enable-maintainer-mode option to configure. -*- Autoconf -*-706 # From Jim Meyering707 708 # Copyright (C) 1996-2014 Free Software Foundation, Inc.709 #710 # This file is free software; the Free Software Foundation711 # gives unlimited permission to copy and/or distribute it,712 # with or without modifications, as long as this notice is preserved.713 714 # AM_MAINTAINER_MODE([DEFAULT-MODE])715 # ----------------------------------716 # Control maintainer-specific portions of Makefiles.717 # Default is to disable them, unless 'enable' is passed literally.718 # For symmetry, 'disable' may be passed as well. Anyway, the user719 # can override the default with the --enable/--disable switch.720 AC_DEFUN([AM_MAINTAINER_MODE],721 [m4_case(m4_default([$1], [disable]),722 [enable], [m4_define([am_maintainer_other], [disable])],723 [disable], [m4_define([am_maintainer_other], [enable])],724 [m4_define([am_maintainer_other], [enable])725 m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])726 AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])727 dnl maintainer-mode's default is 'disable' unless 'enable' is passed728 AC_ARG_ENABLE([maintainer-mode],729 [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],730 am_maintainer_other[ make rules and dependencies not useful731 (and sometimes confusing) to the casual installer])],732 [USE_MAINTAINER_MODE=$enableval],733 [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))734 AC_MSG_RESULT([$USE_MAINTAINER_MODE])735 AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])736 MAINT=$MAINTAINER_MODE_TRUE737 AC_SUBST([MAINT])dnl738 ]739 )740 741 668 # Check to see how 'make' treats includes. -*- Autoconf -*- 742 669 -
automake/compile
-
Property
mode
changed from
100755
to120000
rf9feab8 r90152a4 1 #! /bin/sh 2 # Wrapper for compilers which do not understand '-c -o'. 3 4 scriptversion=2012-10-14.11; # UTC 5 6 # Copyright (C) 1999-2014 Free Software Foundation, Inc. 7 # Written by Tom Tromey <tromey@cygnus.com>. 8 # 9 # This program is free software; you can redistribute it and/or modify 10 # it under the terms of the GNU General Public License as published by 11 # the Free Software Foundation; either version 2, or (at your option) 12 # any later version. 13 # 14 # This program is distributed in the hope that it will be useful, 15 # but WITHOUT ANY WARRANTY; without even the implied warranty of 16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 # GNU General Public License for more details. 18 # 19 # You should have received a copy of the GNU General Public License 20 # along with this program. If not, see <http://www.gnu.org/licenses/>. 21 22 # As a special exception to the GNU General Public License, if you 23 # distribute this file as part of a program that contains a 24 # configuration script generated by Autoconf, you may include it under 25 # the same distribution terms that you use for the rest of that program. 26 27 # This file is maintained in Automake, please report 28 # bugs to <bug-automake@gnu.org> or send patches to 29 # <automake-patches@gnu.org>. 30 31 nl=' 32 ' 33 34 # We need space, tab and new line, in precisely that order. Quoting is 35 # there to prevent tools from complaining about whitespace usage. 36 IFS=" "" $nl" 37 38 file_conv= 39 40 # func_file_conv build_file lazy 41 # Convert a $build file to $host form and store it in $file 42 # Currently only supports Windows hosts. If the determined conversion 43 # type is listed in (the comma separated) LAZY, no conversion will 44 # take place. 45 func_file_conv () 46 { 47 file=$1 48 case $file in 49 / | /[!/]*) # absolute file, and not a UNC file 50 if test -z "$file_conv"; then 51 # lazily determine how to convert abs files 52 case `uname -s` in 53 MINGW*) 54 file_conv=mingw 55 ;; 56 CYGWIN*) 57 file_conv=cygwin 58 ;; 59 *) 60 file_conv=wine 61 ;; 62 esac 63 fi 64 case $file_conv/,$2, in 65 *,$file_conv,*) 66 ;; 67 mingw/*) 68 file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` 69 ;; 70 cygwin/*) 71 file=`cygpath -m "$file" || echo "$file"` 72 ;; 73 wine/*) 74 file=`winepath -w "$file" || echo "$file"` 75 ;; 76 esac 77 ;; 78 esac 79 } 80 81 # func_cl_dashL linkdir 82 # Make cl look for libraries in LINKDIR 83 func_cl_dashL () 84 { 85 func_file_conv "$1" 86 if test -z "$lib_path"; then 87 lib_path=$file 88 else 89 lib_path="$lib_path;$file" 90 fi 91 linker_opts="$linker_opts -LIBPATH:$file" 92 } 93 94 # func_cl_dashl library 95 # Do a library search-path lookup for cl 96 func_cl_dashl () 97 { 98 lib=$1 99 found=no 100 save_IFS=$IFS 101 IFS=';' 102 for dir in $lib_path $LIB 103 do 104 IFS=$save_IFS 105 if $shared && test -f "$dir/$lib.dll.lib"; then 106 found=yes 107 lib=$dir/$lib.dll.lib 108 break 109 fi 110 if test -f "$dir/$lib.lib"; then 111 found=yes 112 lib=$dir/$lib.lib 113 break 114 fi 115 if test -f "$dir/lib$lib.a"; then 116 found=yes 117 lib=$dir/lib$lib.a 118 break 119 fi 120 done 121 IFS=$save_IFS 122 123 if test "$found" != yes; then 124 lib=$lib.lib 125 fi 126 } 127 128 # func_cl_wrapper cl arg... 129 # Adjust compile command to suit cl 130 func_cl_wrapper () 131 { 132 # Assume a capable shell 133 lib_path= 134 shared=: 135 linker_opts= 136 for arg 137 do 138 if test -n "$eat"; then 139 eat= 140 else 141 case $1 in 142 -o) 143 # configure might choose to run compile as 'compile cc -o foo foo.c'. 144 eat=1 145 case $2 in 146 *.o | *.[oO][bB][jJ]) 147 func_file_conv "$2" 148 set x "$@" -Fo"$file" 149 shift 150 ;; 151 *) 152 func_file_conv "$2" 153 set x "$@" -Fe"$file" 154 shift 155 ;; 156 esac 157 ;; 158 -I) 159 eat=1 160 func_file_conv "$2" mingw 161 set x "$@" -I"$file" 162 shift 163 ;; 164 -I*) 165 func_file_conv "${1#-I}" mingw 166 set x "$@" -I"$file" 167 shift 168 ;; 169 -l) 170 eat=1 171 func_cl_dashl "$2" 172 set x "$@" "$lib" 173 shift 174 ;; 175 -l*) 176 func_cl_dashl "${1#-l}" 177 set x "$@" "$lib" 178 shift 179 ;; 180 -L) 181 eat=1 182 func_cl_dashL "$2" 183 ;; 184 -L*) 185 func_cl_dashL "${1#-L}" 186 ;; 187 -static) 188 shared=false 189 ;; 190 -Wl,*) 191 arg=${1#-Wl,} 192 save_ifs="$IFS"; IFS=',' 193 for flag in $arg; do 194 IFS="$save_ifs" 195 linker_opts="$linker_opts $flag" 196 done 197 IFS="$save_ifs" 198 ;; 199 -Xlinker) 200 eat=1 201 linker_opts="$linker_opts $2" 202 ;; 203 -*) 204 set x "$@" "$1" 205 shift 206 ;; 207 *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) 208 func_file_conv "$1" 209 set x "$@" -Tp"$file" 210 shift 211 ;; 212 *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) 213 func_file_conv "$1" mingw 214 set x "$@" "$file" 215 shift 216 ;; 217 *) 218 set x "$@" "$1" 219 shift 220 ;; 221 esac 222 fi 223 shift 224 done 225 if test -n "$linker_opts"; then 226 linker_opts="-link$linker_opts" 227 fi 228 exec "$@" $linker_opts 229 exit 1 230 } 231 232 eat= 233 234 case $1 in 235 '') 236 echo "$0: No command. Try '$0 --help' for more information." 1>&2 237 exit 1; 238 ;; 239 -h | --h*) 240 cat <<\EOF 241 Usage: compile [--help] [--version] PROGRAM [ARGS] 242 243 Wrapper for compilers which do not understand '-c -o'. 244 Remove '-o dest.o' from ARGS, run PROGRAM with the remaining 245 arguments, and rename the output as expected. 246 247 If you are trying to build a whole package this is not the 248 right script to run: please start by reading the file 'INSTALL'. 249 250 Report bugs to <bug-automake@gnu.org>. 251 EOF 252 exit $? 253 ;; 254 -v | --v*) 255 echo "compile $scriptversion" 256 exit $? 257 ;; 258 cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) 259 func_cl_wrapper "$@" # Doesn't return... 260 ;; 261 esac 262 263 ofile= 264 cfile= 265 266 for arg 267 do 268 if test -n "$eat"; then 269 eat= 270 else 271 case $1 in 272 -o) 273 # configure might choose to run compile as 'compile cc -o foo foo.c'. 274 # So we strip '-o arg' only if arg is an object. 275 eat=1 276 case $2 in 277 *.o | *.obj) 278 ofile=$2 279 ;; 280 *) 281 set x "$@" -o "$2" 282 shift 283 ;; 284 esac 285 ;; 286 *.c) 287 cfile=$1 288 set x "$@" "$1" 289 shift 290 ;; 291 *) 292 set x "$@" "$1" 293 shift 294 ;; 295 esac 296 fi 297 shift 298 done 299 300 if test -z "$ofile" || test -z "$cfile"; then 301 # If no '-o' option was seen then we might have been invoked from a 302 # pattern rule where we don't need one. That is ok -- this is a 303 # normal compilation that the losing compiler can handle. If no 304 # '.c' file was seen then we are probably linking. That is also 305 # ok. 306 exec "$@" 307 fi 308 309 # Name of file we expect compiler to create. 310 cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` 311 312 # Create the lock directory. 313 # Note: use '[/\\:.-]' here to ensure that we don't use the same name 314 # that we are using for the .o file. Also, base the name on the expected 315 # object file name, since that is what matters with a parallel build. 316 lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d 317 while true; do 318 if mkdir "$lockdir" >/dev/null 2>&1; then 319 break 320 fi 321 sleep 1 322 done 323 # FIXME: race condition here if user kills between mkdir and trap. 324 trap "rmdir '$lockdir'; exit 1" 1 2 15 325 326 # Run the compile. 327 "$@" 328 ret=$? 329 330 if test -f "$cofile"; then 331 test "$cofile" = "$ofile" || mv "$cofile" "$ofile" 332 elif test -f "${cofile}bj"; then 333 test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" 334 fi 335 336 rmdir "$lockdir" 337 exit $ret 338 339 # Local Variables: 340 # mode: shell-script 341 # sh-indentation: 2 342 # eval: (add-hook 'write-file-hooks 'time-stamp) 343 # time-stamp-start: "scriptversion=" 344 # time-stamp-format: "%:y-%02m-%02d.%02H" 345 # time-stamp-time-zone: "UTC" 346 # time-stamp-end: "; # UTC" 347 # End: 1 /usr/share/automake-1.15/compile -
Property
mode
changed from
-
automake/config.guess
-
Property
mode
changed from
100755
to120000
rf9feab8 r90152a4 1 #! /bin/sh 2 # Attempt to guess a canonical system name. 3 # Copyright 1992-2015 Free Software Foundation, Inc. 4 5 timestamp='2015-08-20' 6 7 # This file is free software; you can redistribute it and/or modify it 8 # under the terms of the GNU General Public License as published by 9 # the Free Software Foundation; either version 3 of the License, or 10 # (at your option) any later version. 11 # 12 # This program is distributed in the hope that it will be useful, but 13 # WITHOUT ANY WARRANTY; without even the implied warranty of 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 # General Public License for more details. 16 # 17 # You should have received a copy of the GNU General Public License 18 # along with this program; if not, see <http://www.gnu.org/licenses/>. 19 # 20 # As a special exception to the GNU General Public License, if you 21 # distribute this file as part of a program that contains a 22 # configuration script generated by Autoconf, you may include it under 23 # the same distribution terms that you use for the rest of that 24 # program. This Exception is an additional permission under section 7 25 # of the GNU General Public License, version 3 ("GPLv3"). 26 # 27 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. 28 # 29 # You can get the latest version of this script from: 30 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD 31 # 32 # Please send patches to <config-patches@gnu.org>. 33 34 35 me=`echo "$0" | sed -e 's,.*/,,'` 36 37 usage="\ 38 Usage: $0 [OPTION] 39 40 Output the configuration name of the system \`$me' is run on. 41 42 Operation modes: 43 -h, --help print this help, then exit 44 -t, --time-stamp print date of last modification, then exit 45 -v, --version print version number, then exit 46 47 Report bugs and patches to <config-patches@gnu.org>." 48 49 version="\ 50 GNU config.guess ($timestamp) 51 52 Originally written by Per Bothner. 53 Copyright 1992-2015 Free Software Foundation, Inc. 54 55 This is free software; see the source for copying conditions. There is NO 56 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." 57 58 help=" 59 Try \`$me --help' for more information." 60 61 # Parse command line 62 while test $# -gt 0 ; do 63 case $1 in 64 --time-stamp | --time* | -t ) 65 echo "$timestamp" ; exit ;; 66 --version | -v ) 67 echo "$version" ; exit ;; 68 --help | --h* | -h ) 69 echo "$usage"; exit ;; 70 -- ) # Stop option processing 71 shift; break ;; 72 - ) # Use stdin as input. 73 break ;; 74 -* ) 75 echo "$me: invalid option $1$help" >&2 76 exit 1 ;; 77 * ) 78 break ;; 79 esac 80 done 81 82 if test $# != 0; then 83 echo "$me: too many arguments$help" >&2 84 exit 1 85 fi 86 87 trap 'exit 1' 1 2 15 88 89 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a 90 # compiler to aid in system detection is discouraged as it requires 91 # temporary files to be created and, as you can see below, it is a 92 # headache to deal with in a portable fashion. 93 94 # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still 95 # use `HOST_CC' if defined, but it is deprecated. 96 97 # Portable tmp directory creation inspired by the Autoconf team. 98 99 set_cc_for_build=' 100 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; 101 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; 102 : ${TMPDIR=/tmp} ; 103 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || 104 { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || 105 { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || 106 { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; 107 dummy=$tmp/dummy ; 108 tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; 109 case $CC_FOR_BUILD,$HOST_CC,$CC in 110 ,,) echo "int x;" > $dummy.c ; 111 for c in cc gcc c89 c99 ; do 112 if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then 113 CC_FOR_BUILD="$c"; break ; 114 fi ; 115 done ; 116 if test x"$CC_FOR_BUILD" = x ; then 117 CC_FOR_BUILD=no_compiler_found ; 118 fi 119 ;; 120 ,,*) CC_FOR_BUILD=$CC ;; 121 ,*,*) CC_FOR_BUILD=$HOST_CC ;; 122 esac ; set_cc_for_build= ;' 123 124 # This is needed to find uname on a Pyramid OSx when run in the BSD universe. 125 # (ghazi@noc.rutgers.edu 1994-08-24) 126 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then 127 PATH=$PATH:/.attbin ; export PATH 128 fi 129 130 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown 131 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown 132 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown 133 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown 134 135 case "${UNAME_SYSTEM}" in 136 Linux|GNU|GNU/*) 137 # If the system lacks a compiler, then just pick glibc. 138 # We could probably try harder. 139 LIBC=gnu 140 141 eval $set_cc_for_build 142 cat <<-EOF > $dummy.c 143 #include <features.h> 144 #if defined(__UCLIBC__) 145 LIBC=uclibc 146 #elif defined(__dietlibc__) 147 LIBC=dietlibc 148 #else 149 LIBC=gnu 150 #endif 151 EOF 152 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` 153 ;; 154 esac 155 156 # Note: order is significant - the case branches are not exclusive. 157 158 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in 159 *:NetBSD:*:*) 160 # NetBSD (nbsd) targets should (where applicable) match one or 161 # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, 162 # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently 163 # switched to ELF, *-*-netbsd* would select the old 164 # object file format. This provides both forward 165 # compatibility and a consistent mechanism for selecting the 166 # object file format. 167 # 168 # Note: NetBSD doesn't particularly care about the vendor 169 # portion of the name. We always set it to "unknown". 170 sysctl="sysctl -n hw.machine_arch" 171 UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ 172 /sbin/$sysctl 2>/dev/null || \ 173 /usr/sbin/$sysctl 2>/dev/null || \ 174 echo unknown)` 175 case "${UNAME_MACHINE_ARCH}" in 176 armeb) machine=armeb-unknown ;; 177 arm*) machine=arm-unknown ;; 178 sh3el) machine=shl-unknown ;; 179 sh3eb) machine=sh-unknown ;; 180 sh5el) machine=sh5le-unknown ;; 181 earmv*) 182 arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` 183 endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` 184 machine=${arch}${endian}-unknown 185 ;; 186 *) machine=${UNAME_MACHINE_ARCH}-unknown ;; 187 esac 188 # The Operating System including object format, if it has switched 189 # to ELF recently, or will in the future. 190 case "${UNAME_MACHINE_ARCH}" in 191 arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) 192 eval $set_cc_for_build 193 if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ 194 | grep -q __ELF__ 195 then 196 # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). 197 # Return netbsd for either. FIX? 198 os=netbsd 199 else 200 os=netbsdelf 201 fi 202 ;; 203 *) 204 os=netbsd 205 ;; 206 esac 207 # Determine ABI tags. 208 case "${UNAME_MACHINE_ARCH}" in 209 earm*) 210 expr='s/^earmv[0-9]/-eabi/;s/eb$//' 211 abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` 212 ;; 213 esac 214 # The OS release 215 # Debian GNU/NetBSD machines have a different userland, and 216 # thus, need a distinct triplet. However, they do not need 217 # kernel version information, so it can be replaced with a 218 # suitable tag, in the style of linux-gnu. 219 case "${UNAME_VERSION}" in 220 Debian*) 221 release='-gnu' 222 ;; 223 *) 224 release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` 225 ;; 226 esac 227 # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: 228 # contains redundant information, the shorter form: 229 # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. 230 echo "${machine}-${os}${release}${abi}" 231 exit ;; 232 *:Bitrig:*:*) 233 UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` 234 echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} 235 exit ;; 236 *:OpenBSD:*:*) 237 UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` 238 echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} 239 exit ;; 240 *:ekkoBSD:*:*) 241 echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} 242 exit ;; 243 *:SolidBSD:*:*) 244 echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} 245 exit ;; 246 macppc:MirBSD:*:*) 247 echo powerpc-unknown-mirbsd${UNAME_RELEASE} 248 exit ;; 249 *:MirBSD:*:*) 250 echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} 251 exit ;; 252 *:Sortix:*:*) 253 echo ${UNAME_MACHINE}-unknown-sortix 254 exit ;; 255 alpha:OSF1:*:*) 256 case $UNAME_RELEASE in 257 *4.0) 258 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` 259 ;; 260 *5.*) 261 UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` 262 ;; 263 esac 264 # According to Compaq, /usr/sbin/psrinfo has been available on 265 # OSF/1 and Tru64 systems produced since 1995. I hope that 266 # covers most systems running today. This code pipes the CPU 267 # types through head -n 1, so we only detect the type of CPU 0. 268 ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` 269 case "$ALPHA_CPU_TYPE" in 270 "EV4 (21064)") 271 UNAME_MACHINE="alpha" ;; 272 "EV4.5 (21064)") 273 UNAME_MACHINE="alpha" ;; 274 "LCA4 (21066/21068)") 275 UNAME_MACHINE="alpha" ;; 276 "EV5 (21164)") 277 UNAME_MACHINE="alphaev5" ;; 278 "EV5.6 (21164A)") 279 UNAME_MACHINE="alphaev56" ;; 280 "EV5.6 (21164PC)") 281 UNAME_MACHINE="alphapca56" ;; 282 "EV5.7 (21164PC)") 283 UNAME_MACHINE="alphapca57" ;; 284 "EV6 (21264)") 285 UNAME_MACHINE="alphaev6" ;; 286 "EV6.7 (21264A)") 287 UNAME_MACHINE="alphaev67" ;; 288 "EV6.8CB (21264C)") 289 UNAME_MACHINE="alphaev68" ;; 290 "EV6.8AL (21264B)") 291 UNAME_MACHINE="alphaev68" ;; 292 "EV6.8CX (21264D)") 293 UNAME_MACHINE="alphaev68" ;; 294 "EV6.9A (21264/EV69A)") 295 UNAME_MACHINE="alphaev69" ;; 296 "EV7 (21364)") 297 UNAME_MACHINE="alphaev7" ;; 298 "EV7.9 (21364A)") 299 UNAME_MACHINE="alphaev79" ;; 300 esac 301 # A Pn.n version is a patched version. 302 # A Vn.n version is a released version. 303 # A Tn.n version is a released field test version. 304 # A Xn.n version is an unreleased experimental baselevel. 305 # 1.2 uses "1.2" for uname -r. 306 echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 307 # Reset EXIT trap before exiting to avoid spurious non-zero exit code. 308 exitcode=$? 309 trap '' 0 310 exit $exitcode ;; 311 Alpha\ *:Windows_NT*:*) 312 # How do we know it's Interix rather than the generic POSIX subsystem? 313 # Should we change UNAME_MACHINE based on the output of uname instead 314 # of the specific Alpha model? 315 echo alpha-pc-interix 316 exit ;; 317 21064:Windows_NT:50:3) 318 echo alpha-dec-winnt3.5 319 exit ;; 320 Amiga*:UNIX_System_V:4.0:*) 321 echo m68k-unknown-sysv4 322 exit ;; 323 *:[Aa]miga[Oo][Ss]:*:*) 324 echo ${UNAME_MACHINE}-unknown-amigaos 325 exit ;; 326 *:[Mm]orph[Oo][Ss]:*:*) 327 echo ${UNAME_MACHINE}-unknown-morphos 328 exit ;; 329 *:OS/390:*:*) 330 echo i370-ibm-openedition 331 exit ;; 332 *:z/VM:*:*) 333 echo s390-ibm-zvmoe 334 exit ;; 335 *:OS400:*:*) 336 echo powerpc-ibm-os400 337 exit ;; 338 arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) 339 echo arm-acorn-riscix${UNAME_RELEASE} 340 exit ;; 341 arm*:riscos:*:*|arm*:RISCOS:*:*) 342 echo arm-unknown-riscos 343 exit ;; 344 SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) 345 echo hppa1.1-hitachi-hiuxmpp 346 exit ;; 347 Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) 348 # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. 349 if test "`(/bin/universe) 2>/dev/null`" = att ; then 350 echo pyramid-pyramid-sysv3 351 else 352 echo pyramid-pyramid-bsd 353 fi 354 exit ;; 355 NILE*:*:*:dcosx) 356 echo pyramid-pyramid-svr4 357 exit ;; 358 DRS?6000:unix:4.0:6*) 359 echo sparc-icl-nx6 360 exit ;; 361 DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) 362 case `/usr/bin/uname -p` in 363 sparc) echo sparc-icl-nx7; exit ;; 364 esac ;; 365 s390x:SunOS:*:*) 366 echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 367 exit ;; 368 sun4H:SunOS:5.*:*) 369 echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 370 exit ;; 371 sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) 372 echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 373 exit ;; 374 i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) 375 echo i386-pc-auroraux${UNAME_RELEASE} 376 exit ;; 377 i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) 378 eval $set_cc_for_build 379 SUN_ARCH="i386" 380 # If there is a compiler, see if it is configured for 64-bit objects. 381 # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. 382 # This test works for both compilers. 383 if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then 384 if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ 385 (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ 386 grep IS_64BIT_ARCH >/dev/null 387 then 388 SUN_ARCH="x86_64" 389 fi 390 fi 391 echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 392 exit ;; 393 sun4*:SunOS:6*:*) 394 # According to config.sub, this is the proper way to canonicalize 395 # SunOS6. Hard to guess exactly what SunOS6 will be like, but 396 # it's likely to be more like Solaris than SunOS4. 397 echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 398 exit ;; 399 sun4*:SunOS:*:*) 400 case "`/usr/bin/arch -k`" in 401 Series*|S4*) 402 UNAME_RELEASE=`uname -v` 403 ;; 404 esac 405 # Japanese Language versions have a version number like `4.1.3-JL'. 406 echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` 407 exit ;; 408 sun3*:SunOS:*:*) 409 echo m68k-sun-sunos${UNAME_RELEASE} 410 exit ;; 411 sun*:*:4.2BSD:*) 412 UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` 413 test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 414 case "`/bin/arch`" in 415 sun3) 416 echo m68k-sun-sunos${UNAME_RELEASE} 417 ;; 418 sun4) 419 echo sparc-sun-sunos${UNAME_RELEASE} 420 ;; 421 esac 422 exit ;; 423 aushp:SunOS:*:*) 424 echo sparc-auspex-sunos${UNAME_RELEASE} 425 exit ;; 426 # The situation for MiNT is a little confusing. The machine name 427 # can be virtually everything (everything which is not 428 # "atarist" or "atariste" at least should have a processor 429 # > m68000). The system name ranges from "MiNT" over "FreeMiNT" 430 # to the lowercase version "mint" (or "freemint"). Finally 431 # the system name "TOS" denotes a system which is actually not 432 # MiNT. But MiNT is downward compatible to TOS, so this should 433 # be no problem. 434 atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) 435 echo m68k-atari-mint${UNAME_RELEASE} 436 exit ;; 437 atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) 438 echo m68k-atari-mint${UNAME_RELEASE} 439 exit ;; 440 *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) 441 echo m68k-atari-mint${UNAME_RELEASE} 442 exit ;; 443 milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) 444 echo m68k-milan-mint${UNAME_RELEASE} 445 exit ;; 446 hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) 447 echo m68k-hades-mint${UNAME_RELEASE} 448 exit ;; 449 *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) 450 echo m68k-unknown-mint${UNAME_RELEASE} 451 exit ;; 452 m68k:machten:*:*) 453 echo m68k-apple-machten${UNAME_RELEASE} 454 exit ;; 455 powerpc:machten:*:*) 456 echo powerpc-apple-machten${UNAME_RELEASE} 457 exit ;; 458 RISC*:Mach:*:*) 459 echo mips-dec-mach_bsd4.3 460 exit ;; 461 RISC*:ULTRIX:*:*) 462 echo mips-dec-ultrix${UNAME_RELEASE} 463 exit ;; 464 VAX*:ULTRIX*:*:*) 465 echo vax-dec-ultrix${UNAME_RELEASE} 466 exit ;; 467 2020:CLIX:*:* | 2430:CLIX:*:*) 468 echo clipper-intergraph-clix${UNAME_RELEASE} 469 exit ;; 470 mips:*:*:UMIPS | mips:*:*:RISCos) 471 eval $set_cc_for_build 472 sed 's/^ //' << EOF >$dummy.c 473 #ifdef __cplusplus 474 #include <stdio.h> /* for printf() prototype */ 475 int main (int argc, char *argv[]) { 476 #else 477 int main (argc, argv) int argc; char *argv[]; { 478 #endif 479 #if defined (host_mips) && defined (MIPSEB) 480 #if defined (SYSTYPE_SYSV) 481 printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); 482 #endif 483 #if defined (SYSTYPE_SVR4) 484 printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); 485 #endif 486 #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) 487 printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); 488 #endif 489 #endif 490 exit (-1); 491 } 492 EOF 493 $CC_FOR_BUILD -o $dummy $dummy.c && 494 dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && 495 SYSTEM_NAME=`$dummy $dummyarg` && 496 { echo "$SYSTEM_NAME"; exit; } 497 echo mips-mips-riscos${UNAME_RELEASE} 498 exit ;; 499 Motorola:PowerMAX_OS:*:*) 500 echo powerpc-motorola-powermax 501 exit ;; 502 Motorola:*:4.3:PL8-*) 503 echo powerpc-harris-powermax 504 exit ;; 505 Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) 506 echo powerpc-harris-powermax 507 exit ;; 508 Night_Hawk:Power_UNIX:*:*) 509 echo powerpc-harris-powerunix 510 exit ;; 511 m88k:CX/UX:7*:*) 512 echo m88k-harris-cxux7 513 exit ;; 514 m88k:*:4*:R4*) 515 echo m88k-motorola-sysv4 516 exit ;; 517 m88k:*:3*:R3*) 518 echo m88k-motorola-sysv3 519 exit ;; 520 AViiON:dgux:*:*) 521 # DG/UX returns AViiON for all architectures 522 UNAME_PROCESSOR=`/usr/bin/uname -p` 523 if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] 524 then 525 if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ 526 [ ${TARGET_BINARY_INTERFACE}x = x ] 527 then 528 echo m88k-dg-dgux${UNAME_RELEASE} 529 else 530 echo m88k-dg-dguxbcs${UNAME_RELEASE} 531 fi 532 else 533 echo i586-dg-dgux${UNAME_RELEASE} 534 fi 535 exit ;; 536 M88*:DolphinOS:*:*) # DolphinOS (SVR3) 537 echo m88k-dolphin-sysv3 538 exit ;; 539 M88*:*:R3*:*) 540 # Delta 88k system running SVR3 541 echo m88k-motorola-sysv3 542 exit ;; 543 XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) 544 echo m88k-tektronix-sysv3 545 exit ;; 546 Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) 547 echo m68k-tektronix-bsd 548 exit ;; 549 *:IRIX*:*:*) 550 echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` 551 exit ;; 552 ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. 553 echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id 554 exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' 555 i*86:AIX:*:*) 556 echo i386-ibm-aix 557 exit ;; 558 ia64:AIX:*:*) 559 if [ -x /usr/bin/oslevel ] ; then 560 IBM_REV=`/usr/bin/oslevel` 561 else 562 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 563 fi 564 echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} 565 exit ;; 566 *:AIX:2:3) 567 if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then 568 eval $set_cc_for_build 569 sed 's/^ //' << EOF >$dummy.c 570 #include <sys/systemcfg.h> 571 572 main() 573 { 574 if (!__power_pc()) 575 exit(1); 576 puts("powerpc-ibm-aix3.2.5"); 577 exit(0); 578 } 579 EOF 580 if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` 581 then 582 echo "$SYSTEM_NAME" 583 else 584 echo rs6000-ibm-aix3.2.5 585 fi 586 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then 587 echo rs6000-ibm-aix3.2.4 588 else 589 echo rs6000-ibm-aix3.2 590 fi 591 exit ;; 592 *:AIX:*:[4567]) 593 IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` 594 if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then 595 IBM_ARCH=rs6000 596 else 597 IBM_ARCH=powerpc 598 fi 599 if [ -x /usr/bin/lslpp ] ; then 600 IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | 601 awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` 602 else 603 IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} 604 fi 605 echo ${IBM_ARCH}-ibm-aix${IBM_REV} 606 exit ;; 607 *:AIX:*:*) 608 echo rs6000-ibm-aix 609 exit ;; 610 ibmrt:4.4BSD:*|romp-ibm:BSD:*) 611 echo romp-ibm-bsd4.4 612 exit ;; 613 ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and 614 echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to 615 exit ;; # report: romp-ibm BSD 4.3 616 *:BOSX:*:*) 617 echo rs6000-bull-bosx 618 exit ;; 619 DPX/2?00:B.O.S.:*:*) 620 echo m68k-bull-sysv3 621 exit ;; 622 9000/[34]??:4.3bsd:1.*:*) 623 echo m68k-hp-bsd 624 exit ;; 625 hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) 626 echo m68k-hp-bsd4.4 627 exit ;; 628 9000/[34678]??:HP-UX:*:*) 629 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 630 case "${UNAME_MACHINE}" in 631 9000/31? ) HP_ARCH=m68000 ;; 632 9000/[34]?? ) HP_ARCH=m68k ;; 633 9000/[678][0-9][0-9]) 634 if [ -x /usr/bin/getconf ]; then 635 sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` 636 sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` 637 case "${sc_cpu_version}" in 638 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 639 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 640 532) # CPU_PA_RISC2_0 641 case "${sc_kernel_bits}" in 642 32) HP_ARCH="hppa2.0n" ;; 643 64) HP_ARCH="hppa2.0w" ;; 644 '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 645 esac ;; 646 esac 647 fi 648 if [ "${HP_ARCH}" = "" ]; then 649 eval $set_cc_for_build 650 sed 's/^ //' << EOF >$dummy.c 651 652 #define _HPUX_SOURCE 653 #include <stdlib.h> 654 #include <unistd.h> 655 656 int main () 657 { 658 #if defined(_SC_KERNEL_BITS) 659 long bits = sysconf(_SC_KERNEL_BITS); 660 #endif 661 long cpu = sysconf (_SC_CPU_VERSION); 662 663 switch (cpu) 664 { 665 case CPU_PA_RISC1_0: puts ("hppa1.0"); break; 666 case CPU_PA_RISC1_1: puts ("hppa1.1"); break; 667 case CPU_PA_RISC2_0: 668 #if defined(_SC_KERNEL_BITS) 669 switch (bits) 670 { 671 case 64: puts ("hppa2.0w"); break; 672 case 32: puts ("hppa2.0n"); break; 673 default: puts ("hppa2.0"); break; 674 } break; 675 #else /* !defined(_SC_KERNEL_BITS) */ 676 puts ("hppa2.0"); break; 677 #endif 678 default: puts ("hppa1.0"); break; 679 } 680 exit (0); 681 } 682 EOF 683 (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` 684 test -z "$HP_ARCH" && HP_ARCH=hppa 685 fi ;; 686 esac 687 if [ ${HP_ARCH} = "hppa2.0w" ] 688 then 689 eval $set_cc_for_build 690 691 # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating 692 # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler 693 # generating 64-bit code. GNU and HP use different nomenclature: 694 # 695 # $ CC_FOR_BUILD=cc ./config.guess 696 # => hppa2.0w-hp-hpux11.23 697 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess 698 # => hppa64-hp-hpux11.23 699 700 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | 701 grep -q __LP64__ 702 then 703 HP_ARCH="hppa2.0w" 704 else 705 HP_ARCH="hppa64" 706 fi 707 fi 708 echo ${HP_ARCH}-hp-hpux${HPUX_REV} 709 exit ;; 710 ia64:HP-UX:*:*) 711 HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` 712 echo ia64-hp-hpux${HPUX_REV} 713 exit ;; 714 3050*:HI-UX:*:*) 715 eval $set_cc_for_build 716 sed 's/^ //' << EOF >$dummy.c 717 #include <unistd.h> 718 int 719 main () 720 { 721 long cpu = sysconf (_SC_CPU_VERSION); 722 /* The order matters, because CPU_IS_HP_MC68K erroneously returns 723 true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct 724 results, however. */ 725 if (CPU_IS_PA_RISC (cpu)) 726 { 727 switch (cpu) 728 { 729 case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; 730 case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; 731 case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; 732 default: puts ("hppa-hitachi-hiuxwe2"); break; 733 } 734 } 735 else if (CPU_IS_HP_MC68K (cpu)) 736 puts ("m68k-hitachi-hiuxwe2"); 737 else puts ("unknown-hitachi-hiuxwe2"); 738 exit (0); 739 } 740 EOF 741 $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && 742 { echo "$SYSTEM_NAME"; exit; } 743 echo unknown-hitachi-hiuxwe2 744 exit ;; 745 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) 746 echo hppa1.1-hp-bsd 747 exit ;; 748 9000/8??:4.3bsd:*:*) 749 echo hppa1.0-hp-bsd 750 exit ;; 751 *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) 752 echo hppa1.0-hp-mpeix 753 exit ;; 754 hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) 755 echo hppa1.1-hp-osf 756 exit ;; 757 hp8??:OSF1:*:*) 758 echo hppa1.0-hp-osf 759 exit ;; 760 i*86:OSF1:*:*) 761 if [ -x /usr/sbin/sysversion ] ; then 762 echo ${UNAME_MACHINE}-unknown-osf1mk 763 else 764 echo ${UNAME_MACHINE}-unknown-osf1 765 fi 766 exit ;; 767 parisc*:Lites*:*:*) 768 echo hppa1.1-hp-lites 769 exit ;; 770 C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) 771 echo c1-convex-bsd 772 exit ;; 773 C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) 774 if getsysinfo -f scalar_acc 775 then echo c32-convex-bsd 776 else echo c2-convex-bsd 777 fi 778 exit ;; 779 C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) 780 echo c34-convex-bsd 781 exit ;; 782 C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) 783 echo c38-convex-bsd 784 exit ;; 785 C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) 786 echo c4-convex-bsd 787 exit ;; 788 CRAY*Y-MP:*:*:*) 789 echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 790 exit ;; 791 CRAY*[A-Z]90:*:*:*) 792 echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ 793 | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ 794 -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ 795 -e 's/\.[^.]*$/.X/' 796 exit ;; 797 CRAY*TS:*:*:*) 798 echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 799 exit ;; 800 CRAY*T3E:*:*:*) 801 echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 802 exit ;; 803 CRAY*SV1:*:*:*) 804 echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 805 exit ;; 806 *:UNICOS/mp:*:*) 807 echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 808 exit ;; 809 F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) 810 FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` 811 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 812 FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` 813 echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 814 exit ;; 815 5000:UNIX_System_V:4.*:*) 816 FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` 817 FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` 818 echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" 819 exit ;; 820 i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) 821 echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} 822 exit ;; 823 sparc*:BSD/OS:*:*) 824 echo sparc-unknown-bsdi${UNAME_RELEASE} 825 exit ;; 826 *:BSD/OS:*:*) 827 echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} 828 exit ;; 829 *:FreeBSD:*:*) 830 UNAME_PROCESSOR=`/usr/bin/uname -p` 831 case ${UNAME_PROCESSOR} in 832 amd64) 833 echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 834 *) 835 echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; 836 esac 837 exit ;; 838 i*:CYGWIN*:*) 839 echo ${UNAME_MACHINE}-pc-cygwin 840 exit ;; 841 *:MINGW64*:*) 842 echo ${UNAME_MACHINE}-pc-mingw64 843 exit ;; 844 *:MINGW*:*) 845 echo ${UNAME_MACHINE}-pc-mingw32 846 exit ;; 847 *:MSYS*:*) 848 echo ${UNAME_MACHINE}-pc-msys 849 exit ;; 850 i*:windows32*:*) 851 # uname -m includes "-pc" on this system. 852 echo ${UNAME_MACHINE}-mingw32 853 exit ;; 854 i*:PW*:*) 855 echo ${UNAME_MACHINE}-pc-pw32 856 exit ;; 857 *:Interix*:*) 858 case ${UNAME_MACHINE} in 859 x86) 860 echo i586-pc-interix${UNAME_RELEASE} 861 exit ;; 862 authenticamd | genuineintel | EM64T) 863 echo x86_64-unknown-interix${UNAME_RELEASE} 864 exit ;; 865 IA64) 866 echo ia64-unknown-interix${UNAME_RELEASE} 867 exit ;; 868 esac ;; 869 [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) 870 echo i${UNAME_MACHINE}-pc-mks 871 exit ;; 872 8664:Windows_NT:*) 873 echo x86_64-pc-mks 874 exit ;; 875 i*:Windows_NT*:* | Pentium*:Windows_NT*:*) 876 # How do we know it's Interix rather than the generic POSIX subsystem? 877 # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we 878 # UNAME_MACHINE based on the output of uname instead of i386? 879 echo i586-pc-interix 880 exit ;; 881 i*:UWIN*:*) 882 echo ${UNAME_MACHINE}-pc-uwin 883 exit ;; 884 amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) 885 echo x86_64-unknown-cygwin 886 exit ;; 887 p*:CYGWIN*:*) 888 echo powerpcle-unknown-cygwin 889 exit ;; 890 prep*:SunOS:5.*:*) 891 echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` 892 exit ;; 893 *:GNU:*:*) 894 # the GNU system 895 echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` 896 exit ;; 897 *:GNU/*:*:*) 898 # other systems with GNU libc and userland 899 echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} 900 exit ;; 901 i*86:Minix:*:*) 902 echo ${UNAME_MACHINE}-pc-minix 903 exit ;; 904 aarch64:Linux:*:*) 905 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 906 exit ;; 907 aarch64_be:Linux:*:*) 908 UNAME_MACHINE=aarch64_be 909 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 910 exit ;; 911 alpha:Linux:*:*) 912 case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in 913 EV5) UNAME_MACHINE=alphaev5 ;; 914 EV56) UNAME_MACHINE=alphaev56 ;; 915 PCA56) UNAME_MACHINE=alphapca56 ;; 916 PCA57) UNAME_MACHINE=alphapca56 ;; 917 EV6) UNAME_MACHINE=alphaev6 ;; 918 EV67) UNAME_MACHINE=alphaev67 ;; 919 EV68*) UNAME_MACHINE=alphaev68 ;; 920 esac 921 objdump --private-headers /bin/sh | grep -q ld.so.1 922 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi 923 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 924 exit ;; 925 arc:Linux:*:* | arceb:Linux:*:*) 926 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 927 exit ;; 928 arm*:Linux:*:*) 929 eval $set_cc_for_build 930 if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ 931 | grep -q __ARM_EABI__ 932 then 933 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 934 else 935 if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ 936 | grep -q __ARM_PCS_VFP 937 then 938 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi 939 else 940 echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf 941 fi 942 fi 943 exit ;; 944 avr32*:Linux:*:*) 945 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 946 exit ;; 947 cris:Linux:*:*) 948 echo ${UNAME_MACHINE}-axis-linux-${LIBC} 949 exit ;; 950 crisv32:Linux:*:*) 951 echo ${UNAME_MACHINE}-axis-linux-${LIBC} 952 exit ;; 953 e2k:Linux:*:*) 954 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 955 exit ;; 956 frv:Linux:*:*) 957 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 958 exit ;; 959 hexagon:Linux:*:*) 960 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 961 exit ;; 962 i*86:Linux:*:*) 963 echo ${UNAME_MACHINE}-pc-linux-${LIBC} 964 exit ;; 965 ia64:Linux:*:*) 966 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 967 exit ;; 968 m32r*:Linux:*:*) 969 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 970 exit ;; 971 m68*:Linux:*:*) 972 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 973 exit ;; 974 mips:Linux:*:* | mips64:Linux:*:*) 975 eval $set_cc_for_build 976 sed 's/^ //' << EOF >$dummy.c 977 #undef CPU 978 #undef ${UNAME_MACHINE} 979 #undef ${UNAME_MACHINE}el 980 #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) 981 CPU=${UNAME_MACHINE}el 982 #else 983 #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) 984 CPU=${UNAME_MACHINE} 985 #else 986 CPU= 987 #endif 988 #endif 989 EOF 990 eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` 991 test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } 992 ;; 993 openrisc*:Linux:*:*) 994 echo or1k-unknown-linux-${LIBC} 995 exit ;; 996 or32:Linux:*:* | or1k*:Linux:*:*) 997 echo ${UNAME_MACHINE}-unknown-linux-${LIBC} 998 exit ;; 999 padre:Linux:*:*) 1000 echo sparc-unknown-linux-${LIBC} 1001 exit ;; 1002 parisc64:Linux:*:* | hppa64:Linux:*:*) 1003 echo hppa64-unknown-linux-${LIBC} 1004 exit ;; 1005 parisc:Linux:*:* | hppa:Linux:*:*) 1006 # Look for CPU level 1007 case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in 1008 PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; 1009 PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; 1010 *) echo hppa-unknown-linux-${LIBC} ;; 1011 esac 1012 exit ;; 1013 ppc64:Linux:*:*) 1014 echo powerpc64-unknown-linux-${LIBC} 1015 exit ;; 1016 ppc:Linux:*:*) 1017 echo powerpc-unknown-linux-${LIBC} 1018 exit ;; 1019 ppc64le:Linux:*:*) 1020 echo powerpc64le-unknown-linux-${LIBC} 1021 exit ;; 1022 ppcle:Linux:*:*) 1023 echo powerpcle-unknown-linux-${LIBC} 1024 exit ;; 1025 -
Property
mode
changed from