16ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org/* 26ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * env.c 36ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 46ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * prints out a brief report on the build environment 56ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 66ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * David McGrew 76ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * Cisco Systems, Inc. 86ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org */ 96ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org/* 106ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 116ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * Copyright (c) 2001-2006 Cisco Systems, Inc. 126ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * All rights reserved. 136ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 146ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * Redistribution and use in source and binary forms, with or without 156ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * modification, are permitted provided that the following conditions 166ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * are met: 176ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 186ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * Redistributions of source code must retain the above copyright 196ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * notice, this list of conditions and the following disclaimer. 206ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 216ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * Redistributions in binary form must reproduce the above 226ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * copyright notice, this list of conditions and the following 236ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * disclaimer in the documentation and/or other materials provided 246ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * with the distribution. 256ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 266ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * Neither the name of the Cisco Systems, Inc. nor the names of its 276ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * contributors may be used to endorse or promote products derived 286ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * from this software without specific prior written permission. 296ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 306ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 316ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 326ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 336ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 346ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 356ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 366ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 376ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 386ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 396ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 406ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 416ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * OF THE POSSIBILITY OF SUCH DAMAGE. 426ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org * 436ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org */ 446ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 456ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#include <stdio.h> 466ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#include <string.h> /* for srtcmp() */ 476ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#include "config.h" 486ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 496ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.orgint 506ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.orgmain(void) { 516ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org int err_count = 0; 526ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org char *str; 536ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 546ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#ifdef WORDS_BIGENDIAN 556ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("CPU set to big-endian\t\t\t(WORDS_BIGENDIAN == 1)\n"); 566ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#else 576ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("CPU set to little-endian\t\t(WORDS_BIGENDIAN == 0)\n"); 586ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#endif 596ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 606ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#ifdef CPU_RISC 616ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("CPU set to RISC\t\t\t\t(CPU_RISC == 1)\n"); 626ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#elif defined(CPU_CISC) 636ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("CPU set to CISC\t\t\t\t(CPU_CISC == 1)\n"); 646ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#else 656ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("CPU set to an unknown type, probably due to a configuration error\n"); 666ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org err_count++; 676ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#endif 686ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 696ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#ifdef CPU_ALTIVEC 706ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("CPU set to ALTIVEC\t\t\t\t(CPU_ALTIVEC == 0)\n"); 716ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#endif 726ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 736ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#ifndef NO_64BIT_MATH 746ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("using native 64-bit type\t\t(NO_64_BIT_MATH == 0)\n"); 756ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#else 766ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("using built-in 64-bit math\t\t(NO_64_BIT_MATH == 1)\n"); 776ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#endif 786ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 796ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#ifdef ERR_REPORTING_STDOUT 806ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("using stdout for error reporting\t(ERR_REPORTING_STDOUT == 1)\n"); 816ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#endif 826ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 836ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#ifdef DEV_URANDOM 846ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org str = DEV_URANDOM; 856ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#else 866ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org str = ""; 876ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org#endif 886ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("using %s as a random source\t(DEV_URANDOM == %s)\n", 896ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org str, str); 906ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org if (strcmp("", str) == 0) { 916ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org err_count++; 926ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org } 936ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 946ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org if (err_count) 956ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org printf("warning: configuration is probably in error " 966ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org "(found %d problems)\n", err_count); 976ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org 986ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org return err_count; 996ed0ee98e1c3d29a0ef79996f7d1abf174f39besergeyu@chromium.org} 100