bootstrap 44 KB

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