bootstrap 45 KB

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