bootstrap 46 KB

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