bootstrap 45 KB

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