bootstrap 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344
  1. #!/bin/sh
  2. #=========================================================================
  3. #
  4. # Program: CMake - Cross-Platform Makefile Generator
  5. # Module: $RCSfile$
  6. # Language: Bourne Shell
  7. # Date: $Date$
  8. # Version: $Revision$
  9. #
  10. # Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
  11. # See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
  12. #
  13. # This software is distributed WITHOUT ANY WARRANTY; without even
  14. # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  15. # PURPOSE. See the above copyright notices for more information.
  16. #
  17. #=========================================================================
  18. # Version number extraction function.
  19. cmake_version_component()
  20. {
  21. cat "${cmake_source_dir}/CMakeLists.txt" | sed -n "
  22. /^SET(CMake_VERSION_${1}/ {s/SET(CMake_VERSION_${1} *\([0-9]*\))/\1/;p;}
  23. "
  24. }
  25. cmake_date_stamp_component()
  26. {
  27. cat "${cmake_source_dir}/Source/kwsys/kwsysDateStamp.cmake" | sed -n "
  28. /KWSYS_DATE_STAMP_${1}/ {s/^.* \([0-9][0-9]*\))$/\1/;p;}
  29. "
  30. }
  31. # Detect system and directory information.
  32. cmake_system=`uname`
  33. cmake_source_dir=`echo $0 | sed -n '/\//{s/\/[^\/]*$//;p;}'`
  34. cmake_source_dir=`(cd "${cmake_source_dir}";pwd)`
  35. cmake_binary_dir=`pwd`
  36. cmake_bootstrap_dir="${cmake_binary_dir}/Bootstrap.cmk"
  37. cmake_version_major="`cmake_version_component MAJOR`"
  38. cmake_version_minor="`cmake_version_component MINOR`"
  39. cmake_version_patch="`cmake_version_component PATCH`"
  40. cmake_version="${cmake_version_major}.${cmake_version_minor}"
  41. cmake_version_full="${cmake_version_major}.${cmake_version_minor}.${cmake_version_patch}"
  42. cmake_date_stamp="`cmake_date_stamp_component YEAR``cmake_date_stamp_component MONTH``cmake_date_stamp_component DAY`"
  43. cmake_data_dir="/share/cmake-${cmake_version}"
  44. cmake_doc_dir="/doc/cmake-${cmake_version}"
  45. cmake_man_dir="/man"
  46. cmake_init_file=""
  47. cmake_bootstrap_system_libs=""
  48. # Determine whether this is a MinGW environment.
  49. if echo "${cmake_system}" | grep MINGW >/dev/null 2>&1; then
  50. cmake_system_mingw=true
  51. else
  52. cmake_system_mingw=false
  53. fi
  54. # Determine whether this is OS X
  55. if echo "${cmake_system}" | grep Darwin >/dev/null 2>&1; then
  56. cmake_system_darwin=true
  57. else
  58. cmake_system_darwin=false
  59. fi
  60. # Determine whether this is BeOS
  61. if echo "${cmake_system}" | grep BeOS >/dev/null 2>&1; then
  62. cmake_system_beos=true
  63. else
  64. cmake_system_beos=false
  65. fi
  66. # Choose the generator to use for bootstrapping.
  67. if ${cmake_system_mingw}; then
  68. # Bootstrapping from an MSYS prompt.
  69. cmake_bootstrap_generator="MSYS Makefiles"
  70. else
  71. # Bootstrapping from a standard UNIX prompt.
  72. cmake_bootstrap_generator="Unix Makefiles"
  73. fi
  74. # Helper function to fix windows paths.
  75. cmake_fix_slashes ()
  76. {
  77. echo "$1" | sed 's/\\/\//g'
  78. }
  79. # Choose the default install prefix.
  80. if ${cmake_system_mingw}; then
  81. if [ "x${PROGRAMFILES}" != "x" ]; then
  82. cmake_default_prefix=`cmake_fix_slashes "${PROGRAMFILES}/CMake"`
  83. elif [ "x${ProgramFiles}" != "x" ]; then
  84. cmake_default_prefix=`cmake_fix_slashes "${ProgramFiles}/CMake"`
  85. elif [ "x${SYSTEMDRIVE}" != "x" ]; then
  86. cmake_default_prefix=`cmake_fix_slashes "${SYSTEMDRIVE}/Program Files/CMake"`
  87. elif [ "x${SystemDrive}" != "x" ]; then
  88. cmake_default_prefix=`cmake_fix_slashes "${SystemDrive}/Program Files/CMake"`
  89. else
  90. cmake_default_prefix="c:/Program Files/CMake"
  91. fi
  92. else
  93. cmake_default_prefix="/usr/local"
  94. fi
  95. CMAKE_KNOWN_C_COMPILERS="cc gcc xlc icc tcc"
  96. CMAKE_KNOWN_CXX_COMPILERS="aCC xlC CC g++ c++ icc como "
  97. CMAKE_KNOWN_MAKE_PROCESSORS="gmake make"
  98. CMAKE_PROBLEMATIC_FILES="\
  99. CMakeCache.txt \
  100. CMakeSystem.cmake \
  101. CMakeCCompiler.cmake \
  102. CMakeCXXCompiler.cmake \
  103. Source/cmConfigure.h \
  104. Source/CTest/Curl/config.h \
  105. Utilities/cmexpat/expatConfig.h \
  106. Utilities/cmexpat/expatDllConfig.h \
  107. "
  108. CMAKE_UNUSED_SOURCES="\
  109. cmGlobalXCodeGenerator \
  110. cmLocalXCodeGenerator \
  111. cmXCodeObject \
  112. cmXCode21Object \
  113. cmSourceGroup \
  114. "
  115. CMAKE_CXX_SOURCES="\
  116. cmake \
  117. cmakemain \
  118. cmakewizard \
  119. cmCommandArgumentLexer \
  120. cmCommandArgumentParser \
  121. cmCommandArgumentParserHelper \
  122. cmDepends \
  123. cmDependsC \
  124. cmProperty \
  125. cmPropertyMap \
  126. cmPropertyDefinition \
  127. cmPropertyDefinitionMap \
  128. cmMakeDepend \
  129. cmMakefile \
  130. cmGeneratedFileStream \
  131. cmGlobalGenerator \
  132. cmLocalGenerator \
  133. cmInstallGenerator \
  134. cmInstallFilesGenerator \
  135. cmInstallScriptGenerator \
  136. cmInstallTargetGenerator \
  137. cmSourceFile \
  138. cmSourceFileLocation \
  139. cmSystemTools \
  140. cmVersion \
  141. cmFileTimeComparison \
  142. cmGlobalUnixMakefileGenerator3 \
  143. cmLocalUnixMakefileGenerator3 \
  144. cmMakefileExecutableTargetGenerator \
  145. cmMakefileLibraryTargetGenerator \
  146. cmMakefileTargetGenerator \
  147. cmMakefileUtilityTargetGenerator \
  148. cmBootstrapCommands \
  149. cmCommands \
  150. cmTarget \
  151. cmTest \
  152. cmCustomCommand \
  153. cmDocumentVariables \
  154. cmCacheManager \
  155. cmListFileCache \
  156. cmComputeLinkDepends \
  157. cmComputeLinkInformation \
  158. "
  159. if ${cmake_system_mingw}; then
  160. CMAKE_CXX_SOURCES="${CMAKE_CXX_SOURCES}\
  161. cmGlobalMSYSMakefileGenerator \
  162. cmGlobalMinGWMakefileGenerator \
  163. cmWin32ProcessExecution"
  164. fi
  165. CMAKE_C_SOURCES="\
  166. cmListFileLexer \
  167. "
  168. if ${cmake_system_mingw}; then
  169. KWSYS_C_SOURCES="\
  170. ProcessWin32 \
  171. String \
  172. System"
  173. KWSYS_C_MINGW_SOURCES="\
  174. ProcessFwd9x \
  175. EncodeExecutable"
  176. KWSYS_C_GENERATED_SOURCES="\
  177. cmsysProcessFwd9xEnc"
  178. else
  179. KWSYS_C_SOURCES="\
  180. ProcessUNIX \
  181. String \
  182. System"
  183. KWSYS_C_MINGW_SOURCES=""
  184. KWSYS_C_GENERATED_SOURCES=""
  185. fi
  186. KWSYS_CXX_SOURCES="\
  187. Directory \
  188. Glob \
  189. RegularExpression \
  190. SystemTools"
  191. KWSYS_FILES="\
  192. auto_ptr.hxx \
  193. Directory.hxx \
  194. Glob.hxx \
  195. Process.h \
  196. RegularExpression.hxx \
  197. String.h \
  198. String.hxx \
  199. System.h \
  200. SystemTools.hxx"
  201. KWSYS_IOS_FILES="
  202. fstream \
  203. iosfwd \
  204. iostream \
  205. sstream"
  206. # Display CMake bootstrap usage
  207. cmake_usage()
  208. {
  209. cat <<EOF
  210. Usage: $0 [options]
  211. Options: [defaults in brackets after descriptions]
  212. Configuration:
  213. --help print this message
  214. --version only print version information
  215. --verbose display more information
  216. --parallel=n bootstrap cmake in parallel, where n is
  217. number of nodes [1]
  218. --init=FILE use FILE for cmake initialization
  219. --system-libs use system-installed third-party libraries
  220. (for use only by package maintainers)
  221. --no-system-libs use cmake-provided third-party libraries
  222. (default)
  223. Directory and file names:
  224. --prefix=PREFIX install files in tree rooted at PREFIX
  225. [${cmake_default_prefix}]
  226. --datadir=DIR install data files in PREFIX/DIR
  227. [/share/CMake]
  228. --docdir=DIR install documentation files in PREFIX/DIR
  229. [/doc/CMake]
  230. --mandir=DIR install man pages files in PREFIX/DIR/manN
  231. [/man]
  232. EOF
  233. exit 10
  234. }
  235. # Display CMake bootstrap usage
  236. cmake_version_display()
  237. {
  238. (
  239. # Get CMake version
  240. if echo "${cmake_version_full}" | grep "[0-9]\.[0-9]*[13579]\.[0-9]" > /dev/null 2>&1; then
  241. version="${cmake_version}-${cmake_date_stamp}"
  242. else
  243. version="${cmake_version}-${cmake_version_patch}"
  244. fi
  245. echo "CMake ${version}, Copyright (c) 2007 Kitware, Inc., Insight Consortium"
  246. )
  247. }
  248. # Display CMake bootstrap error, display the log file and exit
  249. cmake_error()
  250. {
  251. res=$1
  252. shift 1
  253. echo "---------------------------------------------"
  254. echo "Error when bootstrapping CMake:"
  255. echo "$*"
  256. echo "---------------------------------------------"
  257. if [ -f cmake_bootstrap.log ]; then
  258. echo "Log of errors: `pwd`/cmake_bootstrap.log"
  259. #cat cmake_bootstrap.log
  260. echo "---------------------------------------------"
  261. fi
  262. exit ${res}
  263. }
  264. # Replace KWSYS_NAMESPACE with cmsys
  265. cmake_replace_string ()
  266. {
  267. INFILE="$1"
  268. OUTFILE="$2"
  269. SEARCHFOR="$3"
  270. REPLACEWITH="$4"
  271. if [ -f "${INFILE}" ]; then
  272. cat "${INFILE}" |
  273. sed "s/\@${SEARCHFOR}\@/${REPLACEWITH}/g" > "${OUTFILE}.tmp"
  274. if [ -f "${OUTFILE}.tmp" ]; then
  275. if diff "${OUTFILE}" "${OUTFILE}.tmp" > /dev/null 2> /dev/null ; then
  276. #echo "Files are the same"
  277. rm -f "${OUTFILE}.tmp"
  278. else
  279. mv -f "${OUTFILE}.tmp" "${OUTFILE}"
  280. fi
  281. fi
  282. else
  283. cmake_error 1 "Cannot find file ${INFILE}"
  284. fi
  285. }
  286. cmake_kwsys_config_replace_string ()
  287. {
  288. INFILE="$1"
  289. OUTFILE="$2"
  290. shift 2
  291. APPEND="$*"
  292. if [ -f "${INFILE}" ]; then
  293. echo "${APPEND}" > "${OUTFILE}.tmp"
  294. cat "${INFILE}" |
  295. sed "/./ {s/\@KWSYS_NAMESPACE\@/cmsys/g;
  296. s/@KWSYS_BUILD_SHARED@/${KWSYS_BUILD_SHARED}/g;
  297. s/@KWSYS_LFS_AVAILABLE@/${KWSYS_LFS_AVAILABLE}/g;
  298. s/@KWSYS_LFS_REQUESTED@/${KWSYS_LFS_REQUESTED}/g;
  299. s/@KWSYS_NAME_IS_KWSYS@/${KWSYS_NAME_IS_KWSYS}/g;
  300. s/@KWSYS_IOS_USE_ANSI@/${KWSYS_IOS_USE_ANSI}/g;
  301. s/@KWSYS_IOS_HAVE_STD@/${KWSYS_IOS_HAVE_STD}/g;
  302. s/@KWSYS_IOS_USE_SSTREAM@/${KWSYS_IOS_USE_SSTREAM}/g;
  303. s/@KWSYS_IOS_USE_STRSTREAM_H@/${KWSYS_IOS_USE_STRSTREAM_H}/g;
  304. s/@KWSYS_IOS_USE_STRSTREA_H@/${KWSYS_IOS_USE_STRSTREA_H}/g;
  305. s/@KWSYS_STL_HAVE_STD@/${KWSYS_STL_HAVE_STD}/g;
  306. s/@KWSYS_STL_STRING_HAVE_ISTREAM@/${KWSYS_STL_STRING_HAVE_ISTREAM}/g;
  307. s/@KWSYS_STL_STRING_HAVE_OSTREAM@/${KWSYS_STL_STRING_HAVE_OSTREAM}/g;
  308. s/@KWSYS_STL_STRING_HAVE_NEQ_CHAR@/${KWSYS_STL_STRING_HAVE_NEQ_CHAR}/g;
  309. s/@KWSYS_STL_HAS_ITERATOR_TRAITS@/${KWSYS_STL_HAS_ITERATOR_TRAITS}/g;
  310. s/@KWSYS_STL_HAS_ITERATOR_CATEGORY@/${KWSYS_STL_HAS_ITERATOR_CATEGORY}/g;
  311. s/@KWSYS_STL_HAS___ITERATOR_CATEGORY@/${KWSYS_STL_HAS___ITERATOR_CATEGORY}/g;
  312. s/@KWSYS_STL_HAS_ALLOCATOR_TEMPLATE@/${KWSYS_STL_HAS_ALLOCATOR_TEMPLATE}/g;
  313. s/@KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE@/${KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE}/g;
  314. s/@KWSYS_STL_HAS_ALLOCATOR_REBIND@/${KWSYS_STL_HAS_ALLOCATOR_REBIND}/g;
  315. s/@KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT@/${KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT}/g;
  316. s/@KWSYS_STL_HAS_ALLOCATOR_OBJECTS@/${KWSYS_STL_HAS_ALLOCATOR_OBJECTS}/g;
  317. s/@KWSYS_CXX_HAS_CSTDDEF@/${KWSYS_CXX_HAS_CSTDDEF}/g;
  318. s/@KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS@/${KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS}/g;
  319. s/@KWSYS_CXX_HAS_MEMBER_TEMPLATES@/${KWSYS_CXX_HAS_MEMBER_TEMPLATES}/g;
  320. s/@KWSYS_CXX_HAS_FULL_SPECIALIZATION@/${KWSYS_CXX_HAS_FULL_SPECIALIZATION}/g;
  321. s/@KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP@/${KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP}/g;
  322. s/@KWSYS_STAT_HAS_ST_MTIM@/${KWSYS_STAT_HAS_ST_MTIM}/g;}" >> "${OUTFILE}.tmp"
  323. if [ -f "${OUTFILE}.tmp" ]; then
  324. if diff "${OUTFILE}" "${OUTFILE}.tmp" > /dev/null 2> /dev/null ; then
  325. #echo "Files are the same"
  326. rm -f "${OUTFILE}.tmp"
  327. else
  328. mv -f "${OUTFILE}.tmp" "${OUTFILE}"
  329. fi
  330. fi
  331. else
  332. cmake_error 2 "Cannot find file ${INFILE}"
  333. fi
  334. }
  335. # Write string into a file
  336. cmake_report ()
  337. {
  338. FILE=$1
  339. shift
  340. echo "$*" >> ${FILE}
  341. }
  342. # Escape spaces in strings
  343. cmake_escape ()
  344. {
  345. echo $1 | sed "s/ /\\\\ /g"
  346. }
  347. # Write message to the log
  348. cmake_log ()
  349. {
  350. echo "$*" >> cmake_bootstrap.log
  351. }
  352. # Return temp file
  353. cmake_tmp_file ()
  354. {
  355. echo "cmake_bootstrap_$$.test"
  356. }
  357. # Run a compiler test. First argument is compiler, second one are compiler
  358. # flags, third one is test source file to be compiled
  359. cmake_try_run ()
  360. {
  361. COMPILER=$1
  362. FLAGS=$2
  363. TESTFILE=$3
  364. if [ ! -f "${TESTFILE}" ]; then
  365. echo "Test file ${TESTFILE} missing. Please verify your CMake source tree."
  366. exit 4
  367. fi
  368. TMPFILE=`cmake_tmp_file`
  369. echo "Try: ${COMPILER}"
  370. echo "Line: ${COMPILER} ${FLAGS} ${TESTFILE} -o ${TMPFILE}"
  371. echo "---------- file -----------------------"
  372. cat "${TESTFILE}"
  373. echo "------------------------------------------"
  374. "${COMPILER}" ${FLAGS} "${TESTFILE}" -o "${TMPFILE}"
  375. RES=$?
  376. if [ "${RES}" -ne "0" ]; then
  377. echo "Test failed to compile"
  378. return 1
  379. fi
  380. if [ ! -f "${TMPFILE}" ] && [ ! -f "${TMPFILE}.exe" ]; then
  381. echo "Test failed to produce executable"
  382. return 2
  383. fi
  384. ./${TMPFILE}
  385. RES=$?
  386. rm -f "${TMPFILE}"
  387. if [ "${RES}" -ne "0" ]; then
  388. echo "Test produced non-zero return code"
  389. return 3
  390. fi
  391. echo "Test succeded"
  392. return 0
  393. }
  394. # Run a make test. First argument is the make interpreter.
  395. cmake_try_make ()
  396. {
  397. MAKE_PROC="$1"
  398. MAKE_FLAGS="$2"
  399. echo "Try: ${MAKE_PROC}"
  400. "${MAKE_PROC}" ${MAKE_FLAGS}
  401. RES=$?
  402. if [ "${RES}" -ne "0" ]; then
  403. echo "${MAKE_PROC} does not work"
  404. return 1
  405. fi
  406. if [ ! -f "test" ] && [ ! -f "test.exe" ]; then
  407. echo "${COMPILER} does not produce output"
  408. return 2
  409. fi
  410. ./test
  411. RES=$?
  412. rm -f "test"
  413. if [ "${RES}" -ne "0" ]; then
  414. echo "${MAKE_PROC} produces strange executable"
  415. return 3
  416. fi
  417. echo "${MAKE_PROC} works"
  418. return 0
  419. }
  420. # Parse arguments
  421. cmake_verbose=
  422. cmake_parallel_make=
  423. cmake_prefix_dir="${cmake_default_prefix}"
  424. for a in "$@"; do
  425. if echo $a | grep "^--prefix=" > /dev/null 2> /dev/null; then
  426. cmake_prefix_dir=`echo $a | sed "s/^--prefix=//"`
  427. cmake_prefix_dir=`cmake_fix_slashes "${cmake_prefix_dir}"`
  428. fi
  429. if echo $a | grep "^--parallel=" > /dev/null 2> /dev/null; then
  430. cmake_parallel_make=`echo $a | sed "s/^--parallel=//" | grep "[0-9][0-9]*"`
  431. fi
  432. if echo $a | grep "^--datadir=" > /dev/null 2> /dev/null; then
  433. cmake_data_dir=`echo $a | sed "s/^--datadir=//"`
  434. fi
  435. if echo $a | grep "^--docdir=" > /dev/null 2> /dev/null; then
  436. cmake_doc_dir=`echo $a | sed "s/^--docdir=//"`
  437. fi
  438. if echo $a | grep "^--mandir=" > /dev/null 2> /dev/null; then
  439. cmake_man_dir=`echo $a | sed "s/^--mandir=//"`
  440. fi
  441. if echo $a | grep "^--init=" > /dev/null 2> /dev/null; then
  442. cmake_init_file=`echo $a | sed "s/^--init=//"`
  443. fi
  444. if echo $a | grep "^--system-libs" > /dev/null 2> /dev/null; then
  445. cmake_bootstrap_system_libs="-DCMAKE_USE_SYSTEM_LIBRARIES=1"
  446. fi
  447. if echo $a | grep "^--no-system-libs" > /dev/null 2> /dev/null; then
  448. cmake_bootstrap_system_libs="-DCMAKE_USE_SYSTEM_LIBRARIES=0"
  449. fi
  450. if echo $a | grep "^--help" > /dev/null 2> /dev/null; then
  451. cmake_usage
  452. fi
  453. if echo $a | grep "^--version" > /dev/null 2> /dev/null; then
  454. cmake_version_display
  455. exit 2
  456. fi
  457. if echo $a | grep "^--verbose" > /dev/null 2> /dev/null; then
  458. cmake_verbose=TRUE
  459. fi
  460. done
  461. # If verbose, display some information about bootstrap
  462. if [ -n "${cmake_verbose}" ]; then
  463. echo "---------------------------------------------"
  464. echo "Source directory: ${cmake_source_dir}"
  465. echo "Binary directory: ${cmake_binary_dir}"
  466. echo "Prefix directory: ${cmake_prefix_dir}"
  467. echo "System: ${cmake_system}"
  468. if [ "x${cmake_parallel_make}" != "x" ]; then
  469. echo "Doing parallel make: ${cmake_parallel_make}"
  470. fi
  471. echo ""
  472. fi
  473. echo "---------------------------------------------"
  474. # Get CMake version
  475. echo "`cmake_version_display`"
  476. # Check for in-source build
  477. cmake_in_source_build=
  478. if [ -f "${cmake_binary_dir}/Source/cmake.cxx" -a \
  479. -f "${cmake_binary_dir}/Source/cmake.h" ]; then
  480. if [ -n "${cmake_verbose}" ]; then
  481. echo "Warning: This is an in-source build"
  482. fi
  483. cmake_in_source_build=TRUE
  484. fi
  485. # If this is not an in-source build, then Bootstrap stuff should not exist.
  486. if [ -z "${cmake_in_source_build}" ]; then
  487. # Did somebody bootstrap in the source tree?
  488. if [ -d "${cmake_source_dir}/Bootstrap.cmk" ]; then
  489. cmake_error 10 "Found directory \"${cmake_source_dir}/Bootstrap.cmk\".
  490. Looks like somebody did bootstrap CMake in the source tree, but now you are
  491. trying to do bootstrap in the binary tree. Please remove Bootstrap.cmk
  492. directory from the source tree."
  493. fi
  494. # Is there a cache in the source tree?
  495. for cmake_problematic_file in ${CMAKE_PROBLEMATIC_FILES}; do
  496. if [ -f "${cmake_source_dir}/${cmake_problematic_file}" ]; then
  497. cmake_error 10 "Found \"${cmake_source_dir}/${cmake_problematic_file}\".
  498. Looks like somebody tried to build CMake in the source tree, but now you are
  499. trying to do bootstrap in the binary tree. Please remove \"${cmake_problematic_file}\"
  500. from the source tree."
  501. fi
  502. done
  503. fi
  504. # Make bootstrap directory
  505. [ -d "${cmake_bootstrap_dir}" ] || mkdir "${cmake_bootstrap_dir}"
  506. if [ ! -d "${cmake_bootstrap_dir}" ]; then
  507. cmake_error 3 "Cannot create directory ${cmake_bootstrap_dir} to bootstrap CMake."
  508. fi
  509. cd "${cmake_bootstrap_dir}"
  510. [ -d "cmsys" ] || mkdir "cmsys"
  511. if [ ! -d "cmsys" ]; then
  512. cmake_error 4 "Cannot create directory ${cmake_bootstrap_dir}/cmsys"
  513. fi
  514. for a in stl ios; do
  515. [ -d "cmsys/${a}" ] || mkdir "cmsys/${a}"
  516. if [ ! -d "cmsys/${a}" ]; then
  517. cmake_error 5 "Cannot create directory ${cmake_bootstrap_dir}/cmsys/${a}"
  518. fi
  519. done
  520. # Delete all the bootstrap files
  521. rm -f "${cmake_bootstrap_dir}/cmake_bootstrap.log"
  522. rm -f "${cmake_bootstrap_dir}/cmConfigure.h.tmp"
  523. # If exist compiler flags, set them
  524. cmake_c_flags=${CFLAGS}
  525. cmake_cxx_flags=${CXXFLAGS}
  526. cmake_ld_flags=${LDFLAGS}
  527. # Add Carbon framework on Darwin
  528. if ${cmake_system_darwin}; then
  529. cmake_ld_flags="${LDFLAGS} -framework Carbon"
  530. fi
  531. # Add BeOS toolkits...
  532. if ${cmake_system_beos}; then
  533. cmake_ld_flags="${LDFLAGS} -lroot -lbe"
  534. fi
  535. # Test C compiler
  536. cmake_c_compiler=
  537. # If CC is set, use that for compiler, otherwise use list of known compilers
  538. if [ -n "${CC}" ]; then
  539. cmake_c_compilers="${CC}"
  540. else
  541. cmake_c_compilers="${CMAKE_KNOWN_C_COMPILERS}"
  542. fi
  543. # Check if C compiler works
  544. TMPFILE=`cmake_tmp_file`
  545. cat > "${TMPFILE}.c" <<EOF
  546. #ifdef __cplusplus
  547. # error "The CMAKE_C_COMPILER is set to a C++ compiler"
  548. #endif
  549. #include<stdio.h>
  550. #if defined(__CLASSIC_C__)
  551. int main(argc, argv)
  552. int argc;
  553. char* argv[];
  554. #else
  555. int main(int argc, char* argv[])
  556. #endif
  557. {
  558. printf("%d\n", (argv != 0));
  559. return argc-1;
  560. }
  561. EOF
  562. for a in ${cmake_c_compilers}; do
  563. if [ -z "${cmake_c_compiler}" ] && \
  564. cmake_try_run "${a}" "${cmake_c_flags}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
  565. cmake_c_compiler="${a}"
  566. fi
  567. done
  568. rm -f "${TMPFILE}.c"
  569. if [ -z "${cmake_c_compiler}" ]; then
  570. cmake_error 6 "Cannot find appropriate C compiler on this system.
  571. Please specify one using environment variable CC.
  572. See cmake_bootstrap.log for compilers attempted.
  573. "
  574. fi
  575. echo "C compiler on this system is: ${cmake_c_compiler} ${cmake_c_flags}"
  576. # Test CXX compiler
  577. cmake_cxx_compiler=
  578. # On Mac OSX, CC is the same as cc, so make sure not to try CC as c++ compiler.
  579. # If CC is set, use that for compiler, otherwise use list of known compilers
  580. if [ -n "${CXX}" ]; then
  581. cmake_cxx_compilers="${CXX}"
  582. else
  583. cmake_cxx_compilers="${CMAKE_KNOWN_CXX_COMPILERS}"
  584. fi
  585. # Check if C++ compiler works
  586. TMPFILE=`cmake_tmp_file`
  587. cat > "${TMPFILE}.cxx" <<EOF
  588. #if defined(TEST1)
  589. # include <iostream>
  590. #else
  591. # include <iostream.h>
  592. #endif
  593. class NeedCXX
  594. {
  595. public:
  596. NeedCXX() { this->Foo = 1; }
  597. int GetFoo() { return this->Foo; }
  598. private:
  599. int Foo;
  600. };
  601. int main()
  602. {
  603. NeedCXX c;
  604. #ifdef TEST3
  605. cout << c.GetFoo() << endl;
  606. #else
  607. std::cout << c.GetFoo() << std::endl;
  608. #endif
  609. return 0;
  610. }
  611. EOF
  612. for a in ${cmake_cxx_compilers}; do
  613. for b in 1 2 3; do
  614. if [ -z "${cmake_cxx_compiler}" ] && \
  615. cmake_try_run "${a}" "${cmake_cxx_flags} -DTEST${b}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
  616. cmake_cxx_compiler="${a}"
  617. fi
  618. done
  619. done
  620. rm -f "${TMPFILE}.cxx"
  621. if [ -z "${cmake_cxx_compiler}" ]; then
  622. cmake_error 7 "Cannot find appropriate C++ compiler on this system.
  623. Please specify one using environment variable CXX.
  624. See cmake_bootstrap.log for compilers attempted."
  625. fi
  626. echo "C++ compiler on this system is: ${cmake_cxx_compiler} ${cmake_cxx_flags}"
  627. # Test Make
  628. cmake_make_processor=
  629. cmake_make_flags=
  630. # If MAKE is set, use that for make processor, otherwise use list of known make
  631. if [ -n "${MAKE}" ]; then
  632. cmake_make_processors="${MAKE}"
  633. else
  634. cmake_make_processors="${CMAKE_KNOWN_MAKE_PROCESSORS}"
  635. fi
  636. TMPFILE="`cmake_tmp_file`_dir"
  637. rm -rf "${cmake_bootstrap_dir}/${TMPFILE}"
  638. mkdir "${cmake_bootstrap_dir}/${TMPFILE}"
  639. cd "${cmake_bootstrap_dir}/${TMPFILE}"
  640. cat>"Makefile"<<EOF
  641. test: test.c
  642. "${cmake_c_compiler}" -o test test.c
  643. EOF
  644. cat>"test.c"<<EOF
  645. #include <stdio.h>
  646. int main(){ printf("1\n"); return 0; }
  647. EOF
  648. cmake_original_make_flags="${cmake_make_flags}"
  649. if [ "x${cmake_parallel_make}" != "x" ]; then
  650. cmake_make_flags="${cmake_make_flags} -j ${cmake_parallel_make}"
  651. fi
  652. for a in ${cmake_make_processors}; do
  653. if [ -z "${cmake_make_processor}" ] && cmake_try_make "${a}" "${cmake_make_flags}" >> cmake_bootstrap.log 2>&1; then
  654. cmake_make_processor="${a}"
  655. fi
  656. done
  657. cmake_full_make_flags="${cmake_make_flags}"
  658. if [ "x${cmake_original_make_flags}" != "x${cmake_make_flags}" ]; then
  659. if [ -z "${cmake_make_processor}" ]; then
  660. cmake_make_flags="${cmake_original_make_flags}"
  661. for a in ${cmake_make_processors}; do
  662. if [ -z "${cmake_make_processor}" ] && cmake_try_make "${a}" "${cmake_make_flags}" >> cmake_bootstrap.log 2>&1; then
  663. cmake_make_processor="${a}"
  664. fi
  665. done
  666. fi
  667. fi
  668. cd "${cmake_bootstrap_dir}"
  669. rm -rf "${cmake_bootstrap_dir}/${TMPFILE}"
  670. if [ -z "${cmake_make_processor}" ]; then
  671. cmake_error 8 "Cannot find appropriate Makefile processor on this system.
  672. Please specify one using environment variable MAKE."
  673. fi
  674. echo "Makefile processor on this system is: ${cmake_make_processor}"
  675. if [ "x${cmake_full_make_flags}" != "x${cmake_make_flags}" ]; then
  676. echo "---------------------------------------------"
  677. echo "Makefile processor ${cmake_make_processor} does not support parallel build"
  678. echo "---------------------------------------------"
  679. fi
  680. # Ok, we have CC, CXX, and MAKE.
  681. # Test C++ compiler features
  682. # Are we GCC?
  683. TMPFILE=`cmake_tmp_file`
  684. cat > ${TMPFILE}.cxx <<EOF
  685. #if defined(__GNUC__) && !defined(__INTEL_COMPILER)
  686. #include <iostream>
  687. int main() { std::cout << "This is GNU" << std::endl; return 0;}
  688. #endif
  689. EOF
  690. cmake_cxx_compiler_is_gnu=0
  691. if cmake_try_run "${cmake_cxx_compiler}" \
  692. "${cmake_cxx_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
  693. cmake_cxx_compiler_is_gnu=1
  694. fi
  695. if [ "x${cmake_cxx_compiler_is_gnu}" = "x1" ]; then
  696. echo "${cmake_cxx_compiler} is GNU compiler"
  697. else
  698. echo "${cmake_cxx_compiler} is not GNU compiler"
  699. fi
  700. rm -f "${TMPFILE}.cxx"
  701. if [ "x${cmake_cxx_compiler_is_gnu}" != "x1" ]; then
  702. # Check for non-GNU compiler flags
  703. # If we are on IRIX, check for -LANG:std
  704. cmake_test_flags="-LANG:std"
  705. if [ "x${cmake_system}" = "xIRIX64" ]; then
  706. TMPFILE=`cmake_tmp_file`
  707. cat > ${TMPFILE}.cxx <<EOF
  708. #include <iostream>
  709. int main() { std::cout << "No need for ${cmake_test_flags}" << std::endl; return 0;}
  710. EOF
  711. cmake_need_lang_std=0
  712. if cmake_try_run "${cmake_cxx_compiler}" \
  713. "${cmake_cxx_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
  714. :
  715. else
  716. if cmake_try_run "${cmake_cxx_compiler}" \
  717. "${cmake_cxx_flags} ${cmake_test_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
  718. cmake_need_lang_std=1
  719. fi
  720. fi
  721. if [ "x${cmake_need_lang_std}" = "x1" ]; then
  722. cmake_cxx_flags="${cmake_cxx_flags} ${cmake_test_flags}"
  723. echo "${cmake_cxx_compiler} needs ${cmake_test_flags}"
  724. else
  725. echo "${cmake_cxx_compiler} does not need ${cmake_test_flags}"
  726. fi
  727. rm -f "${TMPFILE}.cxx"
  728. fi
  729. cmake_test_flags=
  730. # If we are on OSF, check for -timplicit_local -no_implicit_include
  731. cmake_test_flags="-timplicit_local -no_implicit_include"
  732. if [ "x${cmake_system}" = "xOSF1" ]; then
  733. TMPFILE=`cmake_tmp_file`
  734. cat > ${TMPFILE}.cxx <<EOF
  735. #include <iostream>
  736. int main() { std::cout << "We need ${cmake_test_flags}" << std::endl; return 0;}
  737. EOF
  738. cmake_need_flags=1
  739. if cmake_try_run "${cmake_cxx_compiler}" \
  740. "${cmake_cxx_flags} ${cmake_test_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
  741. :
  742. else
  743. cmake_need_flags=0
  744. fi
  745. if [ "x${cmake_need_flags}" = "x1" ]; then
  746. cmake_cxx_flags="${cmake_cxx_flags} ${cmake_test_flags}"
  747. echo "${cmake_cxx_compiler} needs ${cmake_test_flags}"
  748. else
  749. echo "${cmake_cxx_compiler} does not need ${cmake_test_flags}"
  750. fi
  751. rm -f "${TMPFILE}.cxx"
  752. fi
  753. cmake_test_flags=
  754. # If we are on OSF, check for -std strict_ansi -nopure_cname
  755. cmake_test_flags="-std strict_ansi -nopure_cname"
  756. if [ "x${cmake_system}" = "xOSF1" ]; then
  757. TMPFILE=`cmake_tmp_file`
  758. cat > ${TMPFILE}.cxx <<EOF
  759. #include <iostream>
  760. int main() { std::cout << "We need ${cmake_test_flags}" << std::endl; return 0;}
  761. EOF
  762. cmake_need_flags=1
  763. if cmake_try_run "${cmake_cxx_compiler}" \
  764. "${cmake_cxx_flags} ${cmake_test_flags}" "${TMPFILE}.cxx" >> cmake_bootstrap.log 2>&1; then
  765. :
  766. else
  767. cmake_need_flags=0
  768. fi
  769. if [ "x${cmake_need_flags}" = "x1" ]; then
  770. cmake_cxx_flags="${cmake_cxx_flags} ${cmake_test_flags}"
  771. echo "${cmake_cxx_compiler} needs ${cmake_test_flags}"
  772. else
  773. echo "${cmake_cxx_compiler} does not need ${cmake_test_flags}"
  774. fi
  775. rm -f "${TMPFILE}.cxx"
  776. fi
  777. cmake_test_flags=
  778. # If we are on HP-UX, check for -Ae for the C compiler.
  779. cmake_test_flags="-Ae"
  780. if [ "x${cmake_system}" = "xHP-UX" ]; then
  781. TMPFILE=`cmake_tmp_file`
  782. cat > ${TMPFILE}.c <<EOF
  783. int main(int argc, char** argv) { (void)argc; (void)argv; return 0; }
  784. EOF
  785. cmake_need_Ae=0
  786. if cmake_try_run "${cmake_c_compiler}" "${cmake_c_flags}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
  787. :
  788. else
  789. if cmake_try_run "${cmake_c_compiler}" \
  790. "${cmake_c_flags} ${cmake_test_flags}" "${TMPFILE}.c" >> cmake_bootstrap.log 2>&1; then
  791. cmake_need_Ae=1
  792. fi
  793. fi
  794. if [ "x${cmake_need_Ae}" = "x1" ]; then
  795. cmake_c_flags="${cmake_c_flags} ${cmake_test_flags}"
  796. echo "${cmake_c_compiler} needs ${cmake_test_flags}"
  797. else
  798. echo "${cmake_c_compiler} does not need ${cmake_test_flags}"
  799. fi
  800. rm -f "${TMPFILE}.c"
  801. fi
  802. cmake_test_flags=
  803. fi
  804. # Test for kwsys features
  805. KWSYS_NAME_IS_KWSYS=0
  806. KWSYS_BUILD_SHARED=0
  807. KWSYS_LFS_AVAILABLE=0
  808. KWSYS_LFS_REQUESTED=0
  809. KWSYS_IOS_USE_STRSTREAM_H=0
  810. KWSYS_IOS_USE_STRSTREA_H=0
  811. KWSYS_IOS_HAVE_STD=0
  812. KWSYS_IOS_USE_SSTREAM=0
  813. KWSYS_IOS_USE_ANSI=0
  814. KWSYS_STL_HAVE_STD=0
  815. KWSYS_STAT_HAS_ST_MTIM=0
  816. KWSYS_STL_STRING_HAVE_NEQ_CHAR=0
  817. KWSYS_STL_HAS_ITERATOR_TRAITS=0
  818. KWSYS_STL_HAS_ITERATOR_CATEGORY=0
  819. KWSYS_STL_HAS___ITERATOR_CATEGORY=0
  820. KWSYS_STL_HAS_ALLOCATOR_TEMPLATE=0
  821. KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE=0
  822. KWSYS_STL_HAS_ALLOCATOR_REBIND=0
  823. KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT=0
  824. KWSYS_STL_HAS_ALLOCATOR_OBJECTS=0
  825. KWSYS_CXX_HAS_CSTDDEF=0
  826. KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS=0
  827. KWSYS_CXX_HAS_MEMBER_TEMPLATES=0
  828. KWSYS_CXX_HAS_FULL_SPECIALIZATION=0
  829. KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP=0
  830. # Hardcode these kwsys features. They work on all known UNIX compilers anyway.
  831. KWSYS_STL_STRING_HAVE_ISTREAM=1
  832. KWSYS_STL_STRING_HAVE_OSTREAM=1
  833. if cmake_try_run "${cmake_cxx_compiler}" \
  834. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAVE_STD" \
  835. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  836. KWSYS_STL_HAVE_STD=1
  837. echo "${cmake_cxx_compiler} has STL in std:: namespace"
  838. else
  839. echo "${cmake_cxx_compiler} does not have STL in std:: namespace"
  840. fi
  841. if cmake_try_run "${cmake_cxx_compiler}" \
  842. "${cmake_cxx_flags} -DTEST_KWSYS_IOS_USE_ANSI" \
  843. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  844. KWSYS_IOS_USE_ANSI=1
  845. echo "${cmake_cxx_compiler} has ANSI streams"
  846. else
  847. echo "${cmake_cxx_compiler} does not have ANSI streams"
  848. fi
  849. if [ "x$KWSYS_IOS_USE_ANSI" = "x1" ]; then
  850. if cmake_try_run "${cmake_cxx_compiler}" \
  851. "${cmake_cxx_flags} -DTEST_KWSYS_IOS_HAVE_STD" \
  852. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  853. KWSYS_IOS_HAVE_STD=1
  854. echo "${cmake_cxx_compiler} has streams in std:: namespace"
  855. else
  856. echo "${cmake_cxx_compiler} does not have streams in std:: namespace"
  857. fi
  858. if cmake_try_run "${cmake_cxx_compiler}" \
  859. "${cmake_cxx_flags} -DTEST_KWSYS_IOS_USE_SSTREAM" \
  860. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  861. KWSYS_IOS_USE_SSTREAM=1
  862. echo "${cmake_cxx_compiler} has sstream"
  863. else
  864. echo "${cmake_cxx_compiler} does not have sstream"
  865. fi
  866. fi
  867. if [ "x$KWSYS_IOS_USE_SSTREAM" = "x0" ]; then
  868. if cmake_try_run "${cmake_cxx_compiler}" \
  869. "${cmake_cxx_flags} -DTEST_KWSYS_IOS_USE_STRSTREAM_H" \
  870. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  871. KWSYS_IOS_USE_STRSTREAM_H=1
  872. echo "${cmake_cxx_compiler} has strstream.h"
  873. else
  874. echo "${cmake_cxx_compiler} does not have strstream.h"
  875. fi
  876. if [ "x$KWSYS_IOS_USE_STRSTREAM_H" = "x0" ]; then
  877. if cmake_try_run "${cmake_cxx_compiler}" \
  878. "${cmake_cxx_flags} -DTEST_KWSYS_IOS_USE_STRSTREA_H" \
  879. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  880. KWSYS_IOS_USE_STRSTREA_H=1
  881. echo "${cmake_cxx_compiler} has strstrea.h"
  882. else
  883. echo "${cmake_cxx_compiler} does not have strstrea.h"
  884. fi
  885. fi
  886. fi
  887. if cmake_try_run "${cmake_cxx_compiler}" \
  888. "${cmake_cxx_flags} -DTEST_KWSYS_STL_STRING_HAVE_NEQ_CHAR -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  889. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  890. KWSYS_STL_STRING_HAVE_NEQ_CHAR=1
  891. echo "${cmake_cxx_compiler} has operator!=(string, char*)"
  892. else
  893. echo "${cmake_cxx_compiler} does not have operator!=(string, char*)"
  894. fi
  895. if cmake_try_run "${cmake_cxx_compiler}" \
  896. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ITERATOR_TRAITS -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  897. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  898. KWSYS_STL_HAS_ITERATOR_TRAITS=1
  899. echo "${cmake_cxx_compiler} has stl iterator_traits"
  900. else
  901. echo "${cmake_cxx_compiler} does not have stl iterator_traits"
  902. fi
  903. if [ "x${KWSYS_STL_HAS_ITERATOR_TRAITS}" = "x0" ]; then
  904. if cmake_try_run "${cmake_cxx_compiler}" \
  905. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ITERATOR_CATEGORY -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  906. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  907. KWSYS_STL_HAS_ITERATOR_CATEGORY=1
  908. echo "${cmake_cxx_compiler} has old iterator_category"
  909. else
  910. echo "${cmake_cxx_compiler} does not have old iterator_category"
  911. fi
  912. if [ "x${KWSYS_STL_HAS_ITERATOR_CATEGORY}" = "x0" ]; then
  913. if cmake_try_run "${cmake_cxx_compiler}" \
  914. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS___ITERATOR_CATEGORY -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  915. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  916. KWSYS_STL_HAS___ITERATOR_CATEGORY=1
  917. echo "${cmake_cxx_compiler} has old __iterator_category"
  918. else
  919. echo "${cmake_cxx_compiler} does not have old __iterator_category"
  920. fi
  921. fi
  922. fi
  923. if cmake_try_run "${cmake_cxx_compiler}" \
  924. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ALLOCATOR_TEMPLATE -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  925. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  926. KWSYS_STL_HAS_ALLOCATOR_TEMPLATE=1
  927. echo "${cmake_cxx_compiler} has standard template allocator"
  928. else
  929. echo "${cmake_cxx_compiler} does not have standard template allocator"
  930. fi
  931. if [ "x${KWSYS_STL_HAS_ALLOCATOR_TEMPLATE}" = "x1" ]; then
  932. if cmake_try_run "${cmake_cxx_compiler}" \
  933. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ALLOCATOR_REBIND -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  934. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  935. KWSYS_STL_HAS_ALLOCATOR_REBIND=1
  936. echo "${cmake_cxx_compiler} has allocator<>::rebind<>"
  937. else
  938. echo "${cmake_cxx_compiler} does not have allocator<>::rebind<>"
  939. fi
  940. if cmake_try_run "${cmake_cxx_compiler}" \
  941. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  942. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  943. KWSYS_STL_HAS_ALLOCATOR_MAX_SIZE_ARGUMENT=1
  944. echo "${cmake_cxx_compiler} has non-standard allocator<>::max_size argument"
  945. else
  946. echo "${cmake_cxx_compiler} does not have non-standard allocator<>::max_size argument"
  947. fi
  948. else
  949. if cmake_try_run "${cmake_cxx_compiler}" \
  950. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  951. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  952. KWSYS_STL_HAS_ALLOCATOR_NONTEMPLATE=1
  953. echo "${cmake_cxx_compiler} has old non-template allocator"
  954. else
  955. echo "${cmake_cxx_compiler} does not have old non-template allocator"
  956. fi
  957. fi
  958. if cmake_try_run "${cmake_cxx_compiler}" \
  959. "${cmake_cxx_flags} -DTEST_KWSYS_STL_HAS_ALLOCATOR_OBJECTS -DKWSYS_STL_HAVE_STD=${KWSYS_STL_HAVE_STD}" \
  960. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  961. KWSYS_STL_HAS_ALLOCATOR_OBJECTS=1
  962. echo "${cmake_cxx_compiler} has stl containers supporting allocator objects"
  963. else
  964. echo "${cmake_cxx_compiler} does not have stl containers supporting allocator objects"
  965. fi
  966. if cmake_try_run "${cmake_cxx_compiler}" \
  967. "${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_CSTDDEF" \
  968. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  969. KWSYS_CXX_HAS_CSTDDEF=1
  970. echo "${cmake_cxx_compiler} has header cstddef"
  971. else
  972. echo "${cmake_cxx_compiler} does not have header cstddef"
  973. fi
  974. if cmake_try_run "${cmake_cxx_compiler}" \
  975. "${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS" \
  976. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  977. echo "${cmake_cxx_compiler} does not require template friends to use <>"
  978. else
  979. KWSYS_CXX_HAS_NULL_TEMPLATE_ARGS=1
  980. echo "${cmake_cxx_compiler} requires template friends to use <>"
  981. fi
  982. if cmake_try_run "${cmake_cxx_compiler}" \
  983. "${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_MEMBER_TEMPLATES" \
  984. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  985. KWSYS_CXX_HAS_MEMBER_TEMPLATES=1
  986. echo "${cmake_cxx_compiler} supports member templates"
  987. else
  988. echo "${cmake_cxx_compiler} does not support member templates"
  989. fi
  990. if cmake_try_run "${cmake_cxx_compiler}" \
  991. "${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_FULL_SPECIALIZATION" \
  992. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  993. KWSYS_CXX_HAS_FULL_SPECIALIZATION=1
  994. echo "${cmake_cxx_compiler} has standard template specialization syntax"
  995. else
  996. echo "${cmake_cxx_compiler} does not have standard template specialization syntax"
  997. fi
  998. if cmake_try_run "${cmake_cxx_compiler}" \
  999. "${cmake_cxx_flags} -DTEST_KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP" \
  1000. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  1001. KWSYS_CXX_HAS_ARGUMENT_DEPENDENT_LOOKUP=1
  1002. echo "${cmake_cxx_compiler} has argument dependent lookup"
  1003. else
  1004. echo "${cmake_cxx_compiler} does not have argument dependent lookup"
  1005. fi
  1006. if cmake_try_run "${cmake_cxx_compiler}" \
  1007. "${cmake_cxx_flags} -DTEST_KWSYS_STAT_HAS_ST_MTIM" \
  1008. "${cmake_source_dir}/Source/kwsys/kwsysPlatformTestsCXX.cxx" >> cmake_bootstrap.log 2>&1; then
  1009. KWSYS_STAT_HAS_ST_MTIM=1
  1010. echo "${cmake_cxx_compiler} has struct stat with st_mtim member"
  1011. else
  1012. echo "${cmake_cxx_compiler} does not have struct stat with st_mtim member"
  1013. fi
  1014. # Just to be safe, let us store compiler and flags to the header file
  1015. cmake_bootstrap_version='$Revision$'
  1016. cmake_compiler_settings_comment="/*
  1017. * Generated by ${cmake_source_dir}/bootstrap
  1018. * Version: ${cmake_bootstrap_version}
  1019. *
  1020. * Source directory: ${cmake_source_dir}
  1021. * Binary directory: ${cmake_bootstrap_dir}
  1022. *
  1023. * C compiler: ${cmake_c_compiler}
  1024. * C flags: ${cmake_c_flags}
  1025. *
  1026. * C++ compiler: ${cmake_cxx_compiler}
  1027. * C++ flags: ${cmake_cxx_flags}
  1028. *
  1029. * Make: ${cmake_make_processor}
  1030. *
  1031. * Sources:
  1032. * ${CMAKE_CXX_SOURCES} ${CMAKE_C_SOURCES}
  1033. * kwSys Sources:
  1034. * ${KWSYS_CXX_SOURCES} ${KWSYS_C_SOURCES} ${KWSYS_C_MINGW_SOURCES}
  1035. */
  1036. "
  1037. cmake_report cmConfigure.h.tmp "${cmake_compiler_settings_comment}"
  1038. if [ "x$KWSYS_STL_HAVE_STD" = "x1" ]; then
  1039. cmake_report cmConfigure.h.tmp "/* #undef CMAKE_NO_STD_NAMESPACE */"
  1040. else
  1041. cmake_report cmConfigure.h.tmp "#define CMAKE_NO_STD_NAMESPACE 1"
  1042. fi
  1043. if [ "x$KWSYS_IOS_USE_ANSI" = "x1" ]; then
  1044. cmake_report cmConfigure.h.tmp "/* #undef CMAKE_NO_ANSI_STREAM_HEADERS */"
  1045. else
  1046. cmake_report cmConfigure.h.tmp "#define CMAKE_NO_ANSI_STREAM_HEADERS 1"
  1047. fi
  1048. if [ "x$KWSYS_IOS_USE_SSTREAM" = "x1" ]; then
  1049. cmake_report cmConfigure.h.tmp "/* #undef CMAKE_NO_ANSI_STRING_STREAM */"
  1050. else
  1051. cmake_report cmConfigure.h.tmp "#define CMAKE_NO_ANSI_STRING_STREAM 1"
  1052. fi
  1053. # Test for ansi FOR scope
  1054. if cmake_try_run "${cmake_cxx_compiler}" \
  1055. "${cmake_cxx_flags}" \
  1056. "${cmake_source_dir}/Modules/TestForAnsiForScope.cxx" >> cmake_bootstrap.log 2>&1; then
  1057. cmake_report cmConfigure.h.tmp "/* #undef CMAKE_NO_ANSI_FOR_SCOPE */"
  1058. echo "${cmake_cxx_compiler} has ANSI for scoping"
  1059. else
  1060. cmake_report cmConfigure.h.tmp "#define CMAKE_NO_ANSI_FOR_SCOPE 1"
  1061. echo "${cmake_cxx_compiler} does not have ANSI for scoping"
  1062. fi
  1063. # When bootstrapping on MinGW with MSYS we must convert the source
  1064. # directory to a windows path.
  1065. if ${cmake_system_mingw}; then
  1066. cmake_root_dir=`cd "${cmake_source_dir}"; pwd -W`
  1067. else
  1068. cmake_root_dir="${cmake_source_dir}"
  1069. fi
  1070. # Write CMake version
  1071. cmake_report cmConfigure.h.tmp "#define CMake_VERSION_MAJOR ${cmake_version_major}"
  1072. cmake_report cmConfigure.h.tmp "#define CMake_VERSION_MINOR ${cmake_version_minor}"
  1073. cmake_report cmConfigure.h.tmp "#define CMake_VERSION_PATCH ${cmake_version_patch}"
  1074. cmake_report cmConfigure.h.tmp "#define CMAKE_ROOT_DIR \"${cmake_root_dir}\""
  1075. cmake_report cmConfigure.h.tmp "#define CMAKE_DATA_DIR \"${cmake_data_dir}\""
  1076. cmake_report cmConfigure.h.tmp "#define CMAKE_BOOTSTRAP"
  1077. # Regenerate real cmConfigure.h
  1078. if diff cmConfigure.h cmConfigure.h.tmp > /dev/null 2> /dev/null; then
  1079. rm -f cmConfigure.h.tmp
  1080. else
  1081. mv -f cmConfigure.h.tmp cmConfigure.h
  1082. fi
  1083. # Prepare KWSYS
  1084. cmake_kwsys_config_replace_string \
  1085. "${cmake_source_dir}/Source/kwsys/Configure.hxx.in" \
  1086. "${cmake_bootstrap_dir}/cmsys/Configure.hxx" \
  1087. "${cmake_compiler_settings_comment}"
  1088. cmake_kwsys_config_replace_string \
  1089. "${cmake_source_dir}/Source/kwsys/Configure.h.in" \
  1090. "${cmake_bootstrap_dir}/cmsys/Configure.h" \
  1091. "${cmake_compiler_settings_comment}"
  1092. cat>"${cmake_bootstrap_dir}/cmsys/DateStamp.h"<<EOF
  1093. /* Minimal DateStamp header for CMake bootstrap build. */
  1094. #ifndef cmsys_DateStamp_h
  1095. #define cmsys_DateStamp_h
  1096. #define cmsys_DATE_STAMP_STRING_FULL "${cmake_date_stamp}"
  1097. #endif
  1098. EOF
  1099. for a in ${KWSYS_FILES}; do
  1100. cmake_replace_string "${cmake_source_dir}/Source/kwsys/${a}.in" \
  1101. "${cmake_bootstrap_dir}/cmsys/${a}" KWSYS_NAMESPACE cmsys
  1102. done
  1103. for a in ${KWSYS_IOS_FILES}; do
  1104. cmake_replace_string "${cmake_source_dir}/Source/kwsys/kwsys_ios_${a}.h.in" \
  1105. "${cmake_bootstrap_dir}/cmsys/ios/${a}" KWSYS_NAMESPACE cmsys
  1106. done
  1107. cmake_replace_string "${cmake_source_dir}/Source/kwsys/kwsys_stl.hxx.in" \
  1108. "${cmake_bootstrap_dir}/cmsys/stl/stl.hxx.in" KWSYS_STL_HEADER_EXTRA ""
  1109. cmake_replace_string "${cmake_bootstrap_dir}/cmsys/stl/stl.hxx.in" \
  1110. "${cmake_bootstrap_dir}/cmsys/stl/stl.h.in" KWSYS_NAMESPACE cmsys
  1111. for a in string vector map algorithm; do
  1112. cmake_replace_string "${cmake_bootstrap_dir}/cmsys/stl/stl.h.in" \
  1113. "${cmake_bootstrap_dir}/cmsys/stl/${a}" KWSYS_STL_HEADER ${a}
  1114. done
  1115. # Generate Makefile
  1116. dep="cmConfigure.h cmsys/*.hxx cmsys/*.h `cmake_escape \"${cmake_source_dir}\"`/Source/*.h"
  1117. objs=""
  1118. for a in ${CMAKE_CXX_SOURCES} ${CMAKE_C_SOURCES} ${KWSYS_CXX_SOURCES} ${KWSYS_C_SOURCES} ${KWSYS_C_GENERATED_SOURCES}; do
  1119. objs="${objs} ${a}.o"
  1120. done
  1121. # Generate dependencies for cmBootstrapCommands.cxx
  1122. for file in `grep "#include.*cm[^.]*.cxx" "${cmake_source_dir}/Source/cmBootstrapCommands.cxx" | sed "s/.* \"\(.*\)\"/\1/"`; do
  1123. cmBootstrapCommandsDeps="${cmBootstrapCommandsDeps} `cmake_escape "${cmake_source_dir}/Source/$file"`"
  1124. done
  1125. cmBootstrapCommandsDeps=`echo $cmBootstrapCommandsDeps`
  1126. if [ "x${cmake_ansi_cxx_flags}" != "x" ]; then
  1127. cmake_cxx_flags="${cmake_ansi_cxx_flags} ${cmake_cxx_flags}"
  1128. fi
  1129. if [ "x${cmake_c_flags}" != "x" ]; then
  1130. cmake_c_flags="${cmake_c_flags} "
  1131. fi
  1132. if [ "x${cmake_cxx_flags}" != "x" ]; then
  1133. cmake_cxx_flags="${cmake_cxx_flags} "
  1134. fi
  1135. cmake_c_flags="${cmake_c_flags}-I`cmake_escape \"${cmake_source_dir}/Source\"` \
  1136. -I`cmake_escape \"${cmake_bootstrap_dir}\"`"
  1137. cmake_cxx_flags="${cmake_cxx_flags}-I`cmake_escape \"${cmake_source_dir}/Source\"` \
  1138. -I`cmake_escape \"${cmake_bootstrap_dir}\"`"
  1139. echo "cmake: ${objs}" > "${cmake_bootstrap_dir}/Makefile"
  1140. echo " ${cmake_cxx_compiler} ${cmake_ld_flags} ${cmake_cxx_flags} ${objs} -o cmake" >> "${cmake_bootstrap_dir}/Makefile"
  1141. for a in ${CMAKE_CXX_SOURCES}; do
  1142. src=`cmake_escape "${cmake_source_dir}/Source/${a}.cxx"`
  1143. echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
  1144. echo " ${cmake_cxx_compiler} ${cmake_cxx_flags} -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
  1145. done
  1146. echo "cmBootstrapCommands.o : $cmBootstrapCommandsDeps" >> "${cmake_bootstrap_dir}/Makefile"
  1147. for a in ${CMAKE_C_SOURCES}; do
  1148. src=`cmake_escape "${cmake_source_dir}/Source/${a}.c"`
  1149. echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
  1150. echo " ${cmake_c_compiler} ${cmake_c_flags} -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
  1151. done
  1152. for a in ${KWSYS_C_SOURCES} ${KWSYS_C_MINGW_SOURCES}; do
  1153. src=`cmake_escape "${cmake_source_dir}/Source/kwsys/${a}.c"`
  1154. echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
  1155. echo " ${cmake_c_compiler} ${cmake_c_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
  1156. done
  1157. for a in ${KWSYS_CXX_SOURCES}; do
  1158. src=`cmake_escape "${cmake_source_dir}/Source/kwsys/${a}.cxx"`
  1159. echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
  1160. echo " ${cmake_cxx_compiler} ${cmake_cxx_flags} -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
  1161. done
  1162. if ${cmake_system_mingw}; then
  1163. src=`cmake_escape "${cmake_bootstrap_dir}/cmsysProcessFwd9xEnc.c"`
  1164. in=`cmake_escape "${cmake_bootstrap_dir}/cmsysProcessFwd9x.exe"`
  1165. cmd=`cmake_escape "${cmake_bootstrap_dir}/cmsysEncodeExecutable.exe"`
  1166. a="cmsysProcessFwd9xEnc"
  1167. echo "${cmd} : EncodeExecutable.o" >> "${cmake_bootstrap_dir}/Makefile"
  1168. echo " ${cmake_c_compiler} ${cmake_ld_flags} ${cmake_c_flags} EncodeExecutable.o -o ${cmd}" >> "${cmake_bootstrap_dir}/Makefile"
  1169. echo "${in} : ProcessFwd9x.o" >> "${cmake_bootstrap_dir}/Makefile"
  1170. echo " ${cmake_c_compiler} ${cmake_ld_flags} ${cmake_c_flags} ProcessFwd9x.o -o ${in}" >> "${cmake_bootstrap_dir}/Makefile"
  1171. echo "${src} : ${cmd} ${in}" >> "${cmake_bootstrap_dir}/Makefile"
  1172. echo " ${cmd} ${in} ${src} cmsys ProcessFwd9x" >> "${cmake_bootstrap_dir}/Makefile"
  1173. echo "${a}.o : ${src} ${dep}" >> "${cmake_bootstrap_dir}/Makefile"
  1174. echo " ${cmake_c_compiler} ${cmake_c_flags} -I`cmake_escape \"${cmake_source_dir}/Source/kwsys\"` -DKWSYS_NAMESPACE=cmsys -c ${src} -o ${a}.o" >> "${cmake_bootstrap_dir}/Makefile"
  1175. fi
  1176. cat>>"${cmake_bootstrap_dir}/Makefile"<<EOF
  1177. rebuild_cache:
  1178. cd "${cmake_binary_dir}" && "${cmake_source_dir}/bootstrap"
  1179. EOF
  1180. # Write our default settings to Bootstrap.cmk/InitialCacheFlags.cmake.
  1181. cat > "${cmake_bootstrap_dir}/InitialCacheFlags.cmake" <<EOF
  1182. # Generated by ${cmake_source_dir}/bootstrap
  1183. # Default cmake settings. These may be overridden any settings below.
  1184. SET (CMAKE_INSTALL_PREFIX "${cmake_prefix_dir}" CACHE PATH "Install path prefix, prepended onto install directories." FORCE)
  1185. SET (CMAKE_DOC_DIR "${cmake_doc_dir}" CACHE PATH "Install location for documentation (relative to prefix)." FORCE)
  1186. SET (CMAKE_MAN_DIR "${cmake_man_dir}" CACHE PATH "Install location for man pages (relative to prefix)." FORCE)
  1187. SET (CMAKE_DATA_DIR "${cmake_data_dir}" CACHE PATH "Install location for data (relative to prefix)." FORCE)
  1188. EOF
  1189. # Add user-specified settings. Handle relative-path case for
  1190. # specification of cmake_init_file.
  1191. (
  1192. cd "${cmake_binary_dir}"
  1193. if [ -f "${cmake_init_file}" ]; then
  1194. cat "${cmake_init_file}" >> "${cmake_bootstrap_dir}/InitialCacheFlags.cmake"
  1195. fi
  1196. )
  1197. echo "---------------------------------------------"
  1198. # Run make to build bootstrap cmake
  1199. if [ "x${cmake_parallel_make}" != "x" ]; then
  1200. ${cmake_make_processor} ${cmake_make_flags}
  1201. else
  1202. ${cmake_make_processor}
  1203. fi
  1204. RES=$?
  1205. if [ "${RES}" -ne "0" ]; then
  1206. cmake_error 9 "Problem while running ${cmake_make_processor}"
  1207. fi
  1208. cd "${cmake_binary_dir}"
  1209. # Set C, CXX, and MAKE environment variables, so that real real cmake will be
  1210. # build with same compiler and make
  1211. CC="${cmake_c_compiler}"
  1212. CXX="${cmake_cxx_compiler}"
  1213. MAKE="${cmake_make_processor}"
  1214. export CC
  1215. export CXX
  1216. export MAKE
  1217. # Run bootstrap CMake to configure real CMake
  1218. "${cmake_bootstrap_dir}/cmake" "${cmake_source_dir}" "-C${cmake_bootstrap_dir}/InitialCacheFlags.cmake" "-G${cmake_bootstrap_generator}" ${cmake_bootstrap_system_libs}
  1219. RES=$?
  1220. if [ "${RES}" -ne "0" ]; then
  1221. cmake_error 11 "Problem while running initial CMake"
  1222. fi
  1223. echo "---------------------------------------------"
  1224. # And we are done. Now just run make
  1225. echo "CMake has bootstrapped. Now run ${cmake_make_processor}."