bootstrap 44 KB

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