1*cdf0e10cSrcweir#************************************************************************* 2*cdf0e10cSrcweir# 3*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir# 5*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir# 7*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir# 9*cdf0e10cSrcweir# This file is part of OpenOffice.org. 10*cdf0e10cSrcweir# 11*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir# only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir# 15*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir# 21*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir# version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir# <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir# for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir# 26*cdf0e10cSrcweir#************************************************************************* 27*cdf0e10cSrcweirBEGIN { 28*cdf0e10cSrcweir CCversion = 0 29*cdf0e10cSrcweir compiler_matched = 0 30*cdf0e10cSrcweir} 31*cdf0e10cSrcweir# Sun c++ compiler 32*cdf0e10cSrcweir/Sun WorkShop/ || /Forte Developer/ || /Sun/{ 33*cdf0e10cSrcweir compiler_matched = 1 34*cdf0e10cSrcweir # version number right after "C++" 35*cdf0e10cSrcweir x = match( $0, /C\+\+ .*/ ) 36*cdf0e10cSrcweir btwn = substr( $0, RSTART, RLENGTH) 37*cdf0e10cSrcweir # extract version, whitespaces get striped later 38*cdf0e10cSrcweir x = match( btwn, / .*\..*[ $\t]/) 39*cdf0e10cSrcweir CCversion = substr( btwn, RSTART, RLENGTH) 40*cdf0e10cSrcweir} 41*cdf0e10cSrcweir# Microsoft c++ compiler 42*cdf0e10cSrcweir/Microsoft/ && /..\...\...../ { 43*cdf0e10cSrcweir compiler_matched = 1 44*cdf0e10cSrcweir # match on the format of the ms versions ( dd.dd.dddd ) 45*cdf0e10cSrcweir x = match( $0, /..\...\...../ ) 46*cdf0e10cSrcweir CCversion = substr( $0, RSTART, RLENGTH) 47*cdf0e10cSrcweir} 48*cdf0e10cSrcweir# Java 49*cdf0e10cSrcweir/java version/ || /openjdk version/ { 50*cdf0e10cSrcweir compiler_matched = 1 51*cdf0e10cSrcweir # match on the format of the java versions ( d[d].d[d].d[d] ) 52*cdf0e10cSrcweir x = match( $0, /[0-9]*\.[0-9]*\.[0-9]*/ ) 53*cdf0e10cSrcweir CCversion = substr( $0, RSTART, RLENGTH) 54*cdf0e10cSrcweir} 55*cdf0e10cSrcweir/^[0-9]*[.][0-9]*\x0d*$/ { 56*cdf0e10cSrcweir if ( compiler_matched == 0 ) { 57*cdf0e10cSrcweir# need to blow to x.xx.xx for comparing 58*cdf0e10cSrcweir CCversion = $0 ".0" 59*cdf0e10cSrcweir } 60*cdf0e10cSrcweir} 61*cdf0e10cSrcweir/^[0-9]*[.][0-9]*[.][0-9]*\x0d*$/ { 62*cdf0e10cSrcweir if ( compiler_matched == 0 ) { 63*cdf0e10cSrcweir CCversion = $0 64*cdf0e10cSrcweir } 65*cdf0e10cSrcweir} 66*cdf0e10cSrcweir/^[0-9]*[.][0-9]*[.][0-9]*-[0-9a-z]*$/ { 67*cdf0e10cSrcweir if ( compiler_matched == 0 ) { 68*cdf0e10cSrcweir CCversion = substr($0, 0, index($0, "-") - 1) 69*cdf0e10cSrcweir } 70*cdf0e10cSrcweir} 71*cdf0e10cSrcweirEND { 72*cdf0e10cSrcweir if ( num == "true" ) { 73*cdf0e10cSrcweir tokencount = split (CCversion,vertoken,".") 74*cdf0e10cSrcweir for ( i = 1 ; i <= tokencount ; i++ ) { 75*cdf0e10cSrcweir printf ("%04d",vertoken[i] ) 76*cdf0e10cSrcweir } 77*cdf0e10cSrcweir } else 78*cdf0e10cSrcweir print CCversion 79*cdf0e10cSrcweir} 80