PageRenderTime 54ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/tags/R2008-08-24/admin/Windows/msvc/run_compilation.sh

#
Shell | 1916 lines | 1787 code | 56 blank | 73 comment | 121 complexity | 8c9866ffa80628fdd8c9e2d9a024cae8 MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause, LGPL-2.1, GPL-3.0, LGPL-3.0

Large files files are truncated, but you can click here to view the full file

  1. #!/bin/sh
  2. ###################################################################################
  3. #
  4. # Requirements
  5. # - Visual Studio (tested with VC++ Express 2005)
  6. # - MSYS shell
  7. # - MSYS Development Toolkit (DTK)
  8. # - MinGW
  9. # - wget (GnuWin32)
  10. # - unzip (GnuWin32)
  11. # - octave-forge CVS tree (at least the admin/Windows/msvc/ directory)
  12. # - cygwin with gcc (to compile ATLAS)
  13. # - CMake (to compile some specific packages)
  14. #
  15. ###################################################################################
  16. #################
  17. # Configuration #
  18. #################
  19. machine_name=`uname -n`
  20. if test "$machine_name" = "MACROCK"; then
  21. INSTALL_DIR=/c/Temp/vclibs_tmp
  22. #INSTALL_DIR=/c/Software/VCLibs
  23. CYGWIN_DIR=/c/Software/cygwin
  24. NSI_DIR=/c/Software/NSIS
  25. else
  26. INSTALL_DIR=/d/Temp/vclibs_tmp
  27. CYGWIN_DIR=/d/Software/cygwin
  28. WGET_FLAGS="-e http_proxy=http://webproxy:8123 -e ftp_proxy=http://webproxy:8123"
  29. NSI_DIR=/d/Software/NSIS
  30. fi
  31. DOWNLOAD_DIR=downloaded_packages
  32. OCTAVEDE_DIR=../../../../octavede-svn
  33. DOATLAS=false
  34. verbose=false
  35. packages=
  36. available_packages=":f2c:libf2c:fort77:BLAS:LAPACK:ATLAS:FFTW:fftwf:PCRE:GLPK:readline:zlib:SuiteSparse:HDF5:glob:libpng:ARPACK:libjpeg:libiconv:gettext:cairo:glib:pango:freetype:libgd:libgsl:netcdf:sed:makeinfo:units:less:CLN:GiNaC:wxWidgets:gnuplot:FLTK:octave:JOGL:forge:qhull:VC:octplot:ncurses:pkg-config:fc-msvc:libcurl:libxml2:fontconfig:GraphicsMagick:bzip2:ImageMagick:libtiff:libwmf:jasper:GTK:ATK:Glibmm:Cairomm:Gtkmm:libsigc++:libglade:gtksourceview:gdl:VTE:GtkGlArea:PortAudio:playrec:OctaveDE:Gtksourceview1:FTPlib:SQLite3:FFMpeg:FTGL:gtkglext:gtkglextmm:libxslt:ICU:"
  37. octave_version=
  38. of_version=
  39. do_nsi=false
  40. do_nsiclean=true
  41. do_octplot=false
  42. do_gui=false
  43. do_debug=false
  44. do_keep=false
  45. download_root="http://downloads.sourceforge.net/octave/@@?download"
  46. #download_root="http://www.dbateman.org/octave/hidden/@@"
  47. # Package versions (the build instructions for those
  48. # packages are version-independent)
  49. lapackver=3.1.1
  50. pcrever=7.4
  51. curlver=7.16.4
  52. libpngver=1.2.29
  53. glpkver=4.23
  54. gslver=1.10
  55. netcdfver=3.6.2
  56. cairover=1.4.10
  57. glibver=2.14.3
  58. pangover=1.19.0
  59. ftver=2.3.5
  60. libxml2ver=2.6.30
  61. libxsltver=1.1.24
  62. fontconfigver=2.5.0
  63. gdver=2.0.35
  64. hdf5ver=1.6.6
  65. libiconvver=1.12
  66. gettextver=0.17
  67. gmagickver=1.1.10
  68. bzip2ver=1.0.4
  69. imagickver=6.3.8
  70. tiffver=3.8.2
  71. wmfver=0.2.8.4
  72. jasperver=1.900.1
  73. gtkver=2.12.9
  74. atkver=1.22.0
  75. glibmmver=2.14.2
  76. cairommver=1.4.8
  77. gtkmmver=2.12.5
  78. libsigcver=2.0.18
  79. libgladever=2.6.2
  80. gtksourceviewver=2.2.0
  81. gtksourceview1ver=1.8.5
  82. gdlver=0.7.11
  83. vtever=0.16.13
  84. gtkglareaver=1.99.0
  85. sqlite3ver=3.5.8
  86. atlver=3.8.1
  87. ftglver=2.1.2
  88. gtkglextver=1.2.0
  89. gtkglextmmver=1.2.0
  90. ###################################################################################
  91. function download_file
  92. {
  93. filename=$1
  94. location=$2
  95. if ! test -f "$DOWNLOAD_DIR/$filename"; then
  96. echo -n "downloading $filename... "
  97. mkdir -p "$DOWNLOAD_DIR"
  98. echo "wget $WGET_FLAGS -o \"$DOWNLOAD_DIR/$filename\" \"$location\"" >&5
  99. wget $WGET_FLAGS -O "$DOWNLOAD_DIR/$filename" "$location"
  100. if ! test -f "$DOWNLOAD_DIR/$filename"; then
  101. echo "failed"
  102. exit -1
  103. else
  104. echo "done"
  105. fi
  106. fi
  107. }
  108. function unpack_file
  109. {
  110. filename=$1
  111. tarflag=
  112. case $filename in
  113. *.tar.gz | *.tgz)
  114. tarflag=z
  115. ;;
  116. *.tar.bz2)
  117. tarflag=j
  118. ;;
  119. esac
  120. (cd "$DOWNLOAD_DIR" &&
  121. tar xf$tarflag $filename)
  122. }
  123. todo_packages=
  124. while test $# -gt 0; do
  125. case "$1" in
  126. -v | --verbose)
  127. verbose=true
  128. ;;
  129. -a | --atlas)
  130. DOATLAS=true
  131. ;;
  132. --atlas=*)
  133. DOATLAS=true
  134. atlver=`echo $1 | sed -e 's/--atlas=//'`
  135. ;;
  136. -f | --force)
  137. todo_packages="$available_packages"
  138. ;;
  139. -k | --keep)
  140. do_keep=true
  141. ;;
  142. -g)
  143. do_debug=true;
  144. ;;
  145. --list)
  146. IFS=:
  147. for pack in $available_packages; do
  148. if test -n "$pack"; then
  149. echo $pack
  150. fi
  151. done
  152. exit 0
  153. ;;
  154. --release=*)
  155. octave_version=`echo $1 | sed -e 's/--release=//'`
  156. if test "$octave_version" = devel; then
  157. octave_version="vc8-debug"
  158. fi
  159. ;;
  160. --forge=*)
  161. of_version=`echo $1 | sed -e 's/--forge=//'`
  162. ;;
  163. --nsi | --nsi=*)
  164. do_nsi=true
  165. nsiarg=`echo $1 | sed -e 's/--nsi=//'`
  166. case $nsiarg in
  167. keep)
  168. do_nsiclean=false
  169. ;;
  170. clean)
  171. do_nsiclean=true
  172. ;;
  173. esac
  174. ;;
  175. --octplot)
  176. do_octplot=true
  177. ;;
  178. --gui)
  179. do_gui=true
  180. ;;
  181. --prefix=*)
  182. INSTALL_DIR=`echo $1 | sed -e 's/--prefix=//'`
  183. ;;
  184. -*)
  185. echo "unknown flag: $1"
  186. exit -1
  187. ;;
  188. *)
  189. if ! `echo $available_packages | grep -i -e ":$1:" > /dev/null`; then
  190. echo "unknown package: $1"
  191. exit -1
  192. fi
  193. if test -z "$packages"; then
  194. packages=":$1:"
  195. else
  196. packages="$packages:$1:"
  197. fi
  198. ;;
  199. esac
  200. shift
  201. done
  202. atlnum=`echo $atlver | sed -e 's/\.//g'`
  203. build_flag=false
  204. if $verbose; then
  205. exec 5>&1
  206. else
  207. WGET_FLAGS="$WGET_FLAGS -q"
  208. exec 5>/dev/null
  209. fi
  210. W_CFLAGS="-O2 -MD"
  211. W_CXXFLAGS="-O2 -MD -EHsc"
  212. W_FCFLAGS="-O2 -MD"
  213. W_FFLAGS="-O2 -MD"
  214. W_LDFLAGS=
  215. W_CPPFLAGS="-DWIN32 -D_WIN32 -D__WIN32__"
  216. if $do_debug; then
  217. W_CFLAGS="-g -MD"
  218. W_CXXFLAGS="-g -MD -EHsc"
  219. W_FCFLAGS="-g -MD"
  220. W_FFLAGS="-g -MD"
  221. W_LDFLAGS="-Wl,-debug"
  222. fi
  223. function remove_package
  224. {
  225. packdir="$1"
  226. if $build_flag; then
  227. if ! $do_debug; then
  228. if ! $do_keep; then
  229. rm -rf "$packdir"
  230. fi
  231. fi
  232. fi
  233. }
  234. function configure_package
  235. {
  236. CC=cc-msvc CFLAGS="$W_CFLAGS" CXX=cc-msvc CXXFLAGS="$W_CXXFLAGS" FC=fc-msvc FCFLAGS="$W_FCFLAGS" \
  237. F77=fc-msvc FFLAGS="$W_FFLAGS" CPPFLAGS="$W_CPPFLAGS" AR=ar-msvc RANLIB=ranlib-msvc \
  238. LDFLAGS="$W_LDFLAGS" ./configure --prefix="$tdir_w32_forward" $*
  239. }
  240. function check_package
  241. {
  242. pack=$1
  243. if ! `echo $available_packages | grep -e ":$pack:" > /dev/null`; then
  244. echo "check_package: unknown package: $pack"
  245. exit -1
  246. fi
  247. if test ! -z "$packages"; then
  248. found=`echo "$packages" | grep -i -e ":$pack:"`
  249. if test ! -z "$found"; then
  250. echo "processing $pack... "
  251. build_flag=false
  252. return 0
  253. fi
  254. fi
  255. echo "skipping $pack... "
  256. return -1
  257. }
  258. function end_package
  259. {
  260. build_flag=true
  261. }
  262. function failed_package
  263. {
  264. ! $build_flag
  265. }
  266. function check_cmake
  267. {
  268. cmake=`which cmake.exe`
  269. if test -z "$cmake"; then
  270. echo "CMake not found in PATH"
  271. return -1
  272. fi
  273. }
  274. function create_module_rc
  275. {
  276. module_name=$1
  277. module_version=$2
  278. module_filename=$3
  279. module_company="$4"
  280. module_desc="$5"
  281. module_copyright="$6"
  282. module_major=`echo $module_version | sed -e "s/\..*//"`
  283. module_minor=`echo $module_version | sed -e "s/^[^.]*\.//" -e "s/\..*//"`
  284. module_patch=`echo $module_version | sed -n -e "s/[0-9]\+\.[0-9]\+\.\([^.]*\).*/\1/p"`
  285. module_build=`echo $module_version | sed -n -e "s/[0-9]\+\.[0-9]\+\.[0-9]\+\.\([^.]*\).*/\1/p"`
  286. if test -z "$module_patch"; then
  287. module_patch=0
  288. fi
  289. if test -z "$module_build"; then
  290. module_build=0
  291. fi
  292. cat <<EOF
  293. #define WINDOWS_LEAN_AND_MEAN
  294. #include <windows.h>
  295. VS_VERSION_INFO VERSIONINFO
  296. FILEVERSION $module_major, $module_minor, $module_patch, $module_build
  297. PRODUCTVERSION $module_major, $module_minor, $module_patch, $module_build
  298. FILEFLAGSMASK 0x3fL
  299. FILEFLAGS 0
  300. FILEOS VOS_NT_WINDOWS32
  301. FILETYPE VFT_APP
  302. FILESUBTYPE VFT2_UNKNOWN
  303. BEGIN
  304. BLOCK "VarFileInfo"
  305. BEGIN
  306. VALUE "Translation", 0x409, 1200
  307. END
  308. BLOCK "StringFileInfo"
  309. BEGIN
  310. BLOCK "040904b0"
  311. BEGIN
  312. VALUE "CompanyName", "$module_company\\0"
  313. VALUE "FileDescription", "$module_desc\\0"
  314. VALUE "FileVersion", "$module_version\\0"
  315. VALUE "InternalName", "$module_name\\0"
  316. VALUE "LegalCopyright", "$module_copyright\\0"
  317. VALUE "OriginalFilename", "$module_filename\\0"
  318. VALUE "ProductName", "$module_name\\0"
  319. VALUE "ProductVersion", "$module_version\\0"
  320. END
  321. END
  322. END
  323. EOF
  324. }
  325. function post_process_libtool
  326. {
  327. if test -z "$1"; then
  328. ltfile=libtool
  329. else
  330. ltfile="$1"
  331. fi
  332. sed -e '/#.*BEGIN LIBTOOL TAG CONFIG: CXX/,/#.*END LIBTOOL TAG CONFIG: CXX/ {/^archive_cmds=.*/,/^postinstall_cmds=.*/ {/^postinstall_cmds=.*/!d;};}' \
  333. -e 's,/OUT:,-OUT:,g' \
  334. -e 's/\$EGREP -e "\$export_symbols_regex"/$EGREP -e EXPORTS -e "$export_symbols_regex"/' \
  335. -e 's/egrep -e "\$export_symbols_regex"/egrep -e EXPORTS -e "$export_symbols_regex"/' \
  336. -e 's/^export_symbols_cmds="\(.*\) > \\\$export_symbols"/export_symbols_cmds="(echo EXPORTS; \1) > \\$export_symbols"/' \
  337. -e 's,^\([^=]*\)=.*cygpath.*$,\1="",g' \
  338. -e 's,-link -dll,-shared,g' \
  339. -e 's/^wl=.*$/wl="-Wl,"/' \
  340. -e 's/^deplibs_check_method=.*$/deplibs_check_method="pass_all"/' \
  341. -e 's,^archive_expsym_cmds=.*$,,' \
  342. -e 's,^archive_cmds=.*$,\0,p' \
  343. -e 's,^archive_cmds=\(.*\)$,archive_expsym_cmds=\1,' \
  344. -e '/^archive_expsym_cmds=/ {s,-shared,-shared ${wl}-def:\\$export_symbols,;}' \
  345. -e '/^library_names_spec=/ {s, \\$libname\.lib,,;}' \
  346. -e 's/S_IXUSR/S_IEXEC/g' \
  347. -e 's/^reload_flag=.*$/reload_flag=""/' \
  348. -e 's/^reload_cmds=.*$/reload_cmds="lib -OUT:\\$output\\$reload_objs"/' \
  349. -e 's/^old_archive_from_new_cmds=.*$/old_archive_from_new_cmds=""/' \
  350. -e '/testbindir=.*/ {a\
  351. case $host in\
  352. *-*-mingw*)\
  353. dir=`cd "$dir" && pwd`\
  354. ;;\
  355. esac
  356. ;}' \
  357. -e "s,^postinstall_cmds=.*$,postinstall_cmds='if echo \"\$destdir\" | grep -e \\\\\"/lib/\\\\\\\\?\$\\\\\" >\& /dev/null; then name=\`echo \\\\\$file | sed -e \"s/.*\\\\///\" -e \"s/^lib//\" -e \"s/\\\\.la\$//\"\`; implibname=\`echo \\\\\$dlname | sed -e \"s/\\\\.dll/.lib/\"\`; \$install_prog \$dir/\\\\\$implibname \$destdir/\\\\\$name.lib; test -d \$destdir/../bin || mkdir -p \$destdir/../bin; mv -f \$destdir/\$dlname \$destdir/../bin; fi'," "$ltfile" > ttt &&
  358. mv ttt "$ltfile"
  359. }
  360. ###################################################################################
  361. # Check Visual Studio availability
  362. echo -n "checking for Visual Studio... "
  363. cl_path=`which cl.exe`
  364. if test "x$cl_path" = "x"; then
  365. echo "no"
  366. echo "Visual Studio must be installed and in your PATH variable"
  367. exit -1
  368. else
  369. echo "yes"
  370. fi
  371. echo -n "checking for Visual Studio version... "
  372. clver=`cl -? 2>&1 | sed -n -e 's/.*Compiler Version \([0-9]\+\).*/\1/p'`
  373. crtver=
  374. msvcver=
  375. case $clver in
  376. 14)
  377. crtver=80
  378. msvcver=2005
  379. echo "2005"
  380. ;;
  381. 15)
  382. crtver=90
  383. msvcver=2008
  384. echo "2008"
  385. echo -n "registering vcprojectengine.dll... "
  386. regsvr32 -s "`which vcprojectengine.dll`"
  387. echo "done"
  388. ;;
  389. *)
  390. echo "unknown"
  391. echo "ERROR: unsupported Visual C++ compiler version: $clver"
  392. exit -1
  393. ;;
  394. esac
  395. echo -n "checking for Platform SDK... "
  396. cat <<EOF > conftest.c
  397. #include <windows.h>
  398. int main(int argc, char **argv)
  399. { return 0; }
  400. EOF
  401. cl -nologo -c conftest.c > /dev/null 2>&1
  402. if ! test -f conftest.obj; then
  403. echo "no"
  404. echo "unable to compile simple windows program, Platform SDK is probably not available"
  405. exit -1
  406. else
  407. echo "yes"
  408. fi
  409. rm -f conftest.*
  410. # Create target directory
  411. echo -n "creating target directories... "
  412. mkdir -p "$INSTALL_DIR"
  413. mkdir -p "$INSTALL_DIR/bin"
  414. mkdir -p "$INSTALL_DIR/lib"
  415. mkdir -p "$INSTALL_DIR/include"
  416. mkdir -p "$INSTALL_DIR/license"
  417. echo "done"
  418. tbindir="$INSTALL_DIR/bin"
  419. tlibdir="$INSTALL_DIR/lib"
  420. tincludedir="$INSTALL_DIR/include"
  421. tlicdir="$INSTALL_DIR/license"
  422. # Add $tbindir to PATH, but re-add "/usr/bin" in front to be sure
  423. # we're using the MSYS sed version; MSVC-compiled version does not
  424. # accept single-quoted arguments.
  425. PATH=/usr/bin:$tbindir:$PATH
  426. tdir_w32=`cd "$INSTALL_DIR" && pwd -W`
  427. tdir_w32_forward="$tdir_w32"
  428. tdir_w32_1=`echo $tdir_w32 | sed -e 's,/,\\\\,g'`
  429. tdir_w32=`echo $tdir_w32 | sed -e 's,/,\\\\\\\\,g'`
  430. tlibdir_quoted="${tlibdir// /\\ }"
  431. INCLUDE="$tdir_w32_1\\include;$INCLUDE"
  432. LIB="$tdir_w32_1\\lib;$LIB"
  433. # Looking for java
  434. echo -n "checking for Java Development Kit... "
  435. jdkver=`reg query "HKLM\\\\Software\\\\JavaSoft\\\\Java Development Kit" //v CurrentVersion | sed -n -e 's/^.*REG_SZ[^0-9]*//p'`
  436. if test -n "$jdkver"; then
  437. jdkhome=`reg query "HKLM\\\\Software\\\\JavaSoft\\\\Java Development Kit\\\\$jdkver" //v JavaHome | sed -n -e 's/^.*REG_SZ[^A-Za-z]*//p'`
  438. if test -n "$jdkhome" -a -d "$jdkhome"; then
  439. echo "$jdkver"
  440. jdkhome_msys=`cd "$jdkhome" && pwd`
  441. PATH="$jdkhome_msys/bin:$PATH"
  442. INCLUDE="$jdkhome\\include;$jdkhome\\include\\win32;$INCLUDE"
  443. else
  444. jdkhome=
  445. fi
  446. fi
  447. if test -z "$jdkhome"; then
  448. echo "none"
  449. fi
  450. # Check cc-msvc
  451. echo -n "checking for cc-msvc.exe... "
  452. if ! test -f "$tbindir/cc-msvc.exe"; then
  453. echo "compiling"
  454. cl -nologo -O2 -EHs cc-msvc.cc
  455. if ! test -f cc-msvc.exe; then
  456. echo "failed to compile cc-msvc.exe"
  457. exit -1
  458. fi
  459. mv -f cc-msvc.exe "$tbindir"
  460. rm -f cc-msvc.obj
  461. else
  462. echo "installed"
  463. fi
  464. # Check unistd.h
  465. echo -n "checking for unistd.h... "
  466. if test ! -f "$tincludedir/unistd.h"; then
  467. echo "creating"
  468. cat >> "$tincludedir/unistd.h" <<\EOF
  469. #include <direct.h>
  470. #include <process.h>
  471. #include <io.h>
  472. EOF
  473. else
  474. echo "installed"
  475. fi
  476. # Check ar-msvc, ranlib-msvc
  477. echo -n "checking for ar-msvc... "
  478. if ! test -f "$tbindir/ar-msvc"; then
  479. echo "copying"
  480. cp -f ar-msvc "$tbindir"
  481. else
  482. echo "installed"
  483. fi
  484. echo -n "checking for ranlib-msvc... "
  485. if ! test -f "$tbindir/ranlib-msvc"; then
  486. echo "copying"
  487. cp -f ranlib-msvc "$tbindir"
  488. else
  489. echo "installed"
  490. fi
  491. echo -n "checking for build_atlas_dll... "
  492. if test ! -f "$tbindir/build_atlas_dll"; then
  493. echo "copying"
  494. cp -f build_atlas_dll "$tbindir"
  495. cp -f atl_blas.def lapack.def "$tlibdir"
  496. else
  497. echo "installed"
  498. fi
  499. function todo_check
  500. {
  501. path=$1
  502. name=$2
  503. if ! `echo $available_packages | grep -i -e ":$name:" > /dev/null`; then
  504. echo "todo_check: unknown package: $name"
  505. exit -1
  506. fi
  507. echo -n "checking for $name... "
  508. if test ! -f "$path"; then
  509. echo "no";
  510. packages="$packages:$name:"
  511. else
  512. echo "installed"
  513. fi
  514. }
  515. if ! $do_nsi && test -z "$todo_packages"; then
  516. if test -z "$packages"; then
  517. todo_check "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest" VC
  518. todo_check "$tbindir/f2c.exe" f2c
  519. todo_check "$tlibdir/f2c.lib" libf2c
  520. #todo_check "$tbindir/fort77" fort77
  521. todo_check "$tlibdir/blas.lib" BLAS
  522. todo_check "$tlibdir/lapack.lib" LAPACK
  523. if $DOATLAS; then
  524. echo -n "checking for ATLAS... "
  525. atl_dlls=`find "$tbindir" -name "libblas_atl${atlnum}_*.dll"`
  526. if test -z "$atl_dlls"; then
  527. echo "no"
  528. packages="$packages ATLAS"
  529. else
  530. echo "installed"
  531. fi
  532. fi
  533. todo_check "$tbindir/libfftw3-3.dll" FFTW
  534. todo_check "$tbindir/libfftw3f-3.dll" fftwf
  535. todo_check "$tlibdir/pcre.lib" PCRE
  536. todo_check "$tlibdir/glpk.lib" GLPK
  537. todo_check "$tlibdir/ncurses.lib" ncurses
  538. todo_check "$tlibdir/readline.lib" readline
  539. todo_check "$tbindir/zlib1.dll" zlib
  540. todo_check "$tlibdir/cxsparse.lib" SuiteSparse
  541. todo_check "$tlibdir/hdf5.lib" HDF5
  542. todo_check "$tlibdir/glob.lib" glob
  543. todo_check "$tlibdir/png.lib" libpng
  544. todo_check "$tlibdir/arpack.lib" ARPACK
  545. todo_check "$tlibdir/jpeg.lib" libjpeg
  546. todo_check "$tlibdir/iconv.lib" libiconv
  547. todo_check "$tlibdir/intl.lib" gettext
  548. todo_check "$tbindir/libcairo-2.dll" cairo
  549. todo_check "$tbindir/libglib-2.0-0.dll" glib
  550. todo_check "$tbindir/libpango-1.0-0.dll" pango
  551. todo_check "$tlibdir/xml2.lib" libxml2
  552. todo_check "$tlibdir/xslt.lib" libxslt
  553. todo_check "$tlibdir/icu.lib" ICU
  554. todo_check "$tlibdir/fontconfig.lib" fontconfig
  555. todo_check "$tlibdir/freetype.lib" freetype
  556. todo_check "$tlibdir/gd.lib" libgd
  557. todo_check "$tlibdir/gsl.lib" libgsl
  558. todo_check "$tlibdir/netcdf.lib" netcdf
  559. todo_check "$tbindir/sed.exe" sed
  560. todo_check "$tbindir/makeinfo.exe" makeinfo
  561. todo_check "$tbindir/units.exe" units
  562. todo_check "$tbindir/less.exe" less
  563. todo_check "$tlibdir/cln.lib" CLN
  564. todo_check "$tlibdir/ginac.lib" GiNaC
  565. todo_check "$tlibdir/wxmsw28.lib" wxWidgets
  566. todo_check "$tbindir/pgnuplot.exe" gnuplot
  567. todo_check "$tbindir/fltkdll.dll" FLTK
  568. if test ! -z "$octave_version"; then
  569. todo_check "$INSTALL_DIR/local/octave-$octave_version/bin/octave.exe" octave
  570. todo_check "$INSTALL_DIR/local/octave-$octave_version/libexec/octave/$octave_version/oct/i686-pc-msdosmsvc/playrec.mex" playrec
  571. if $do_octplot; then
  572. todo_check "$INSTALL_DIR/local/octave-$octave_version/share/octplot/oct/octplot.exe" octplot
  573. fi
  574. if $do_gui; then
  575. todo_check "$INSTALL_DIR/local/octave-$octave_version/bin/octavede.exe" OctaveDE
  576. fi
  577. fi
  578. if test ! -z "$of_version"; then
  579. packages="$packages forge"
  580. fi
  581. todo_check "$tbindir/jogl.jar" JOGL
  582. todo_check "$tlibdir/qhull.lib" qhull
  583. todo_check "$tbindir/pkg-config.exe" pkg-config
  584. todo_check "$tbindir/fc-msvc.exe" fc-msvc
  585. todo_check "$tbindir/libcurl.dll" libcurl
  586. todo_check "$tlibdir/bz2.lib" bzip2
  587. #todo_check "$tlibdir/GraphicsMagick.lib" GraphicsMagick
  588. todo_check "$tlibdir/Magick.lib" ImageMagick
  589. todo_check "$tlibdir/tiff.lib" libtiff
  590. todo_check "$tlibdir/wmf.lib" libwmf
  591. todo_check "$tlibdir/jasper.lib" jasper
  592. todo_check "$tbindir/libatk-1.0-0.dll" ATK
  593. todo_check "$tbindir/libgtk-win32-2.0-0.dll" GTK
  594. todo_check "$tlibdir/glibmm-2.4.lib" Glibmm
  595. todo_check "$tlibdir/cairomm-1.0.lib" Cairomm
  596. todo_check "$tlibdir/gtkmm-2.4.lib" Gtkmm
  597. todo_check "$tlibdir/sigc-2.0.lib" libsigc++
  598. todo_check "$tlibdir/glade-2.0.lib" libglade
  599. todo_check "$tlibdir/gtksourceview-2.0.lib" gtksourceview
  600. todo_check "$tlibdir/gdl-1.lib" gdl
  601. todo_check "$tlibdir/vte.lib" VTE
  602. todo_check "$tlibdir/gtkgl-2.0.lib" GtkGlArea
  603. todo_check "$tlibdir/ftp.lib" FTPlib
  604. todo_check "$tlibdir/sqlite3.lib" SQLite3
  605. todo_check "$tlibdir/avcodec.lib" FFMpeg
  606. todo_check "$tlibdir/ftgl.lib" FTGL
  607. todo_check "$tlibdir/gtkglext-win32-1.0.lib" gtkglext
  608. todo_check "$tlibdir/gtkglextmm-win32-1.2-0.lib" gtkglextmm
  609. fi
  610. else
  611. packages="$todo_packages"
  612. fi
  613. if test -z "$octave_version"; then
  614. packages=`echo $packages | sed -e 's/octave//'`
  615. fi
  616. if test -z "$of_version"; then
  617. packages=`echo $packages | sed -e 's/forge//'`
  618. fi
  619. if ! $do_nsi && test -z "$packages"; then
  620. echo "nothing to do"
  621. exit 0
  622. else
  623. echo "***********************************"
  624. if test ! -z "$packages"; then
  625. echo "installing packages:"
  626. for pack in $packages; do
  627. echo " $pack"
  628. done
  629. fi
  630. if $do_nsi; then
  631. echo "creating installer"
  632. fi
  633. echo "***********************************"
  634. fi
  635. ######
  636. # VC #
  637. ######
  638. if check_package VC; then
  639. msvc=`ls /c/WINDOWS/WinSxS/*/msvcr$crtver.dll 2> /dev/null | tail -n 1`
  640. if test -z "$msvc"; then
  641. echo "cannot find VC++ runtime libraries"
  642. exit -1
  643. fi
  644. msvc_path=`echo $msvc | sed -e "s,/msvcr$crtver.dll$,,"`
  645. msvc_name=`echo $msvc_path | sed -e 's,.*/,,'`
  646. mkdir -p "$tbindir/Microsoft.VC$crtver.CRT"
  647. cp $msvc_path/*.dll "$tbindir/Microsoft.VC$crtver.CRT"
  648. if true; then
  649. cp "/c/WINDOWS/WinSxS/Manifests/$msvc_name.manifest" "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest"
  650. elif "$crtver" == "80"; then
  651. cat > "$tbindir/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest" << EOF
  652. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  653. <!-- Copyright Š 1981-2001 Microsoft Corporation -->
  654. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  655. <noInheritable/>
  656. <assemblyIdentity
  657. type="win32"
  658. name="Microsoft.VC80.CRT"
  659. version="8.0.50608.0"
  660. processorArchitecture="x86"
  661. publicKeyToken="1fc8b3b9a1e18e3b"
  662. />
  663. <file name="msvcr80.dll"/>
  664. <file name="msvcp80.dll"/>
  665. <file name="msvcm80.dll"/>
  666. </assembly>
  667. EOF
  668. else
  669. echo "ERROR: don't have built-in manifest for CRT version $crtver"
  670. exit -1
  671. fi
  672. if test ! -f "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest"; then
  673. echo "failed"
  674. exit -1
  675. else
  676. msvc_ver=`grep "version=" "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest" | tail -n 1 | sed -e "s/.*version=\"\([^ ]*\)\".*/\1/"`
  677. echo "done (using version $msvc_ver)"
  678. fi
  679. fi
  680. #######
  681. # f2c #
  682. #######
  683. if check_package f2c; then
  684. download_file f2c.exe.gz http://www.netlib.org/f2c/mswin/f2c.exe.gz
  685. echo -n "decompressing f2c... "
  686. gzip -d -c "$DOWNLOAD_DIR/f2c.exe.gz" > "$tbindir/f2c.exe"
  687. echo "done"
  688. fi
  689. ##########
  690. # libf2c #
  691. ##########
  692. if check_package libf2c; then
  693. download_file libf2c.zip http://www.netlib.org/f2c/libf2c.zip
  694. (cd "$DOWNLOAD_DIR" && mkdir libf2c && cd libf2c && unzip -q ../libf2c.zip)
  695. echo -n "compiling libf2c... "
  696. (cd "$DOWNLOAD_DIR/libf2c";
  697. sed -e 's/^CFLAGS = /CFLAGS = -MD -DIEEE_COMPLEX_DIVIDE /' makefile.vc > ttt &&
  698. mv ttt makefile.vc &&
  699. sed -e 's/^extern int isatty(int);$/\/*extern int isatty(in);*\//' fio.h > ttt &&
  700. mv ttt fio.h &&
  701. nmake -f makefile.vc &&
  702. cp -f f2c.h "$tincludedir" &&
  703. cp -f vcf2c.lib "$tlibdir/f2c.lib") >&5 2>&1 && end_package
  704. remove_package "$DOWNLOAD_DIR/libf2c"
  705. if failed_package || test ! -f "$tlibdir/f2c.lib"; then
  706. echo "failed"
  707. exit -1
  708. else
  709. echo "done"
  710. fi
  711. fi
  712. ##########
  713. # fort77 #
  714. ##########
  715. if check_package fort77; then
  716. download_file fort77-1.18.tar.gz ftp://sunsite.unc.edu/pub/Linux/devel/lang/fortran/fort77-1.18.tar.gz
  717. echo -n "decompressing fort77... "
  718. (cd "$DOWNLOAD_DIR" && tar xfz fort77-1.18.tar.gz)
  719. echo "done"
  720. echo -n "installing fort77... "
  721. (cd "$DOWNLOAD_DIR/fort77-1.18" &&
  722. sed -e "s/, *\"-lm\" *//" -e "s/\/lib\/cpp/\$cc -E/" -e "s/\$verbose > 1/1/" \
  723. -e "s/|| 'cc'/|| 'cc-msvc'/" fort77 > ttt &&
  724. mv ttt fort77 &&
  725. cp fort77 "$tbindir") >&5 2>&1 && end_package
  726. remove_package "$DOWNLOAD_DIR/fort77-1.18"
  727. if failed_package || test ! -f "$tbindir/fort77"; then
  728. echo "failed"
  729. exit -1
  730. else
  731. echo "done"
  732. fi
  733. fi
  734. ########
  735. # BLAS #
  736. ########
  737. if check_package BLAS; then
  738. download_file blas.tgz ftp://ftp.netlib.org/blas/blas.tgz
  739. unpack_file blas.tgz
  740. (cd "$DOWNLOAD_DIR" && tar xfz blas.tgz)
  741. echo -n "compiling BLAS... "
  742. cp libs/blas.makefile "$DOWNLOAD_DIR/BLAS"
  743. (cd "$DOWNLOAD_DIR/BLAS" &&
  744. sed -e "s/^OBJECTS =/OBJECTS = blas.res/" blas.makefile > ttt &&
  745. mv ttt blas.makefile &&
  746. echo "blas.res: blas.rc" >> blas.makefile &&
  747. echo " rc -fo \$@ \$<" >> blas.makefile &&
  748. create_module_rc BLAS 1.0 blas.dll "Netlib (http://www.netlib.org)" \
  749. "BLAS F77 Reference Implementation" "Public Domain" > blas.rc &&
  750. make -f blas.makefile &&
  751. cp libblas.dll "$tbindir" &&
  752. cp blas.lib "$tlibdir") >&5 2>&1 && end_package
  753. remove_package "$DOWNLOAD_DIR/BLAS"
  754. if failed_package || test ! -f "$tlibdir/blas.lib"; then
  755. echo "failed"
  756. exit -1
  757. else
  758. echo "done"
  759. fi
  760. fi
  761. ##########
  762. # LAPACK #
  763. ##########
  764. if check_package LAPACK; then
  765. download_file lapack-lite-$lapackver.tgz ftp://ftp.netlib.org/lapack/lapack-lite-$lapackver.tgz
  766. echo -n "decompressing LAPACK... "
  767. unpack_file lapack-lite-$lapackver.tgz
  768. echo "done"
  769. echo -n "compiling LAPACK... "
  770. cp libs/lapack.makefile "$DOWNLOAD_DIR/lapack-lite-$lapackver/SRC"
  771. (cd "$DOWNLOAD_DIR/lapack-lite-$lapackver/SRC" &&
  772. lapack_copyright=`grep -e '^Copyright' ../COPYING | head -n 1`
  773. create_module_rc LAPACK $lapackver lapack.dll "Netlib (http://www.netlib.org)" \
  774. "Lapack F77 Reference Implementation" "$lapack_copyright" > lapack.rc &&
  775. rc -fo lapack.res lapack.rc &&
  776. make -f lapack.makefile &&
  777. cp liblapack.dll "$tbindir" &&
  778. cp lapack.lib liblapack_f77.lib "$tlibdir" &&
  779. cp ../COPYING "$tlicdir/COPYING.LAPACK") >&5 2>&1 && end_package
  780. remove_package "$DOWNLOAD_DIR/lapack-lite-$lapackver"
  781. if failed_package || test ! -f "$tlibdir/lapack.lib"; then
  782. echo "failed"
  783. exit -1
  784. else
  785. echo "done"
  786. fi
  787. fi
  788. #########
  789. # ATLAS #
  790. #########
  791. if $DOATLAS && check_package ATLAS; then
  792. if test $atlnum -ge 380; then
  793. download_file atlas$atlver.tar.bz2 "http://downloads.sourceforge.net/math-atlas/atlas$atlver.tar.bz2?big_mirror=0"
  794. echo -n "decompressing ATLAS... "
  795. unpack_file atlas$atlver.tar.bz2
  796. cp check_cpu_flag.c "$DOWNLOAD_DIR/ATLAS"
  797. echo "done"
  798. echo "compiling ATLAS... (version $atlver)"
  799. (cd "$DOWNLOAD_DIR/ATLAS" &&
  800. cc-msvc -O2 -MT check_cpu_flag.c -luser32 -lshell32 &&
  801. SSE1=16 && SSE2=24 && SSE3=28 &&
  802. for arch in SSE1 SSE2 SSE3; do
  803. if check_cpu_flag $arch; then
  804. echo "compiling ATLAS for $arch..."
  805. (mkdir -p build_$arch && cd build_$arch &&
  806. start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
  807. -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && ../configure -V ${!arch} -Si nocygwin 1" &&
  808. atlarch=`sed -n -e 's/ *ARCH = \(.*\)$/\1/p' Make.inc` &&
  809. start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
  810. -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && make build" &&
  811. cd lib &&
  812. cc-msvc -shared -o libblas.dll -Wl,-def:$tdir_w32_forward/lib/atl_blas.def \
  813. -Wl,-implib:blas.lib libatlas.a libcblas.a libf77blas.a -lf2c &&
  814. cc-msvc -shared -o liblapack.dll -Wl,-def:$tdir_w32_forward/lib/lapack.def \
  815. -Wl,-implib:lapack.lib liblapack.a -lliblapack_f77 -L. -lblas -lf2c &&
  816. cp libblas.dll "$tbindir/libblas_atl${atlnum}_$atlarch.dll" &&
  817. cp liblapack.dll "$tbindir/liblapack_atl${atlnum}_$atlarch.dll") || break
  818. fi
  819. done) >&5 2>&1
  820. else
  821. download_file atlas-3.6.0.tar.gz 'http://downloads.sourceforge.net/math-atlas/atlas3.6.0.tar.gz?modtime=1072051200&big_mirror=0'
  822. echo -n "decompressing ATLAS... "
  823. (cd "$DOWNLOAD_DIR" && tar xfz atlas-3.6.0.tar.gz)
  824. cp libs/atlas-3.6.0.diff "$DOWNLOAD_DIR/ATLAS"
  825. echo "done"
  826. echo -n "compiling ATLAS... "
  827. (cd "$DOWNLOAD_DIR/ATLAS" &&
  828. patch -p1 < atlas-3.6.0.diff &&
  829. start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
  830. -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && make xconfig && echo -n '' | ./xconfig -c mvc" &&
  831. arch=`ls Make.*_* | sed -e 's/Make\.//'` &&
  832. start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
  833. -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && make install arch=$arch" &&
  834. start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
  835. -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && cd lib/$arch && build_atlas_dll" &&
  836. cp lib/$arch/libblas.dll "$tbindir/libblas_atl${atlnum}_$arch.dll" &&
  837. cp lib/$arch/liblapack.dll "$tbindir/liblapack_atl${atlnum}_$arch.dll") >&5 2>&1 && end_package
  838. fi
  839. remove_package "$DOWNLOAD_DIR/ATLAS"
  840. atl_dlls=`find "$tbindir" -name "libblas_atl${atlnum}_*.dll"`
  841. if failed_package || test -z "$atl_dlls"; then
  842. echo "failed"
  843. exit -1
  844. else
  845. echo "done"
  846. fi
  847. fi
  848. ########
  849. # PCRE #
  850. ########
  851. if check_package PCRE; then
  852. download_file pcre-$pcrever.tar.bz2 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-$pcrever.tar.bz2
  853. echo -n "decompressing PCRE... "
  854. unpack_file pcre-$pcrever.tar.bz2
  855. echo "done"
  856. echo -n "compiling PCRE... "
  857. pcre_desc="Perl Compatible Regular Expression Library"
  858. pcre_company="Philip Hazel <ph10@cam.ac.uk>"
  859. pcre_copyright=`grep -e '^Copyright' "$DOWNLOAD_DIR/pcre-$pcrever/LICENCE" | head -n 1`
  860. (cd "$DOWNLOAD_DIR/pcre-$pcrever" &&
  861. create_module_rc PCRE $pcrever pcre.dll "$pcre_company" "$pcre_desc" "$pcre_copyright" > pcre.rc &&
  862. if false && check_cmake; then
  863. sed -e "s/SET(PCRE_SOURCES/SET(PCRE_SOURCES pcre.rc/" CMakeLists.txt > ttt &&
  864. mv ttt CMakeLists.txt &&
  865. cmake -G "NMake Makefiles" -D BUILD_SHARED_LIBS:BOOL=ON \
  866. -D PCRE_NEWLINE:STRING=ANYCRLF \
  867. -D PCRE_SUPPORT_UNICODE_PROPERTIES:BOOL=ON \
  868. -D PCRE_BUILD_PCRECPP:BOOL=OFF \
  869. -D CMAKE_BUILD_TYPE:STRING=Release \
  870. -D "CMAKE_INSTALL_PREFIX:STRING=$tdir_w32_forward" . &&
  871. nmake &&
  872. nmake install
  873. else
  874. configure_package --enable-shared --disable-static \
  875. --disable-cpp --enable-unicode-properties --enable-newline-is-anycrlf &&
  876. post_process_libtool &&
  877. sed -e 's/^return !isdirectory(filename) *$/\0;/' pcregrep.c > ttt &&
  878. mv ttt pcregrep.c &&
  879. sed -e 's/libpcre_la_LDFLAGS =/libpcre_la_LDFLAGS = -Wl,pcre.res/' \
  880. -e 's/libpcre_la_OBJECTS =/libpcre_la_OBJECTS = pcre.res/' Makefile > ttt &&
  881. mv ttt Makefile &&
  882. echo "pcre.res: pcre.rc" >> Makefile &&
  883. echo " rc -fo \$@ \$<" >> Makefile &&
  884. make &&
  885. make install &&
  886. rm -f $tlibdir_quoted/libpcre*.la
  887. fi) >&5 2>&1 && end_package
  888. remove_package "$DOWNLOAD_DIR/pcre-$pcrever"
  889. if failed_package || test ! -f "$tlibdir/pcre.lib"; then
  890. echo "failed"
  891. exit -1
  892. else
  893. echo "done"
  894. fi
  895. fi
  896. ###########
  897. # fc-msvc #
  898. ###########
  899. if check_package fc-msvc; then
  900. echo -n "compiling fc-msvc... "
  901. cl -nologo -MD -O2 -EHs fc-msvc.cc pcre.lib
  902. mt -outputresource:fc-msvc.exe -manifest fc-msvc.exe.manifest
  903. if ! test -f fc-msvc.exe; then
  904. echo "failed to compile fc-msvc.exe"
  905. exit -1
  906. fi
  907. mv -f fc-msvc.exe "$tbindir"
  908. rm -f fc-msvc.obj fc-msvc.exe.manifest
  909. echo "done"
  910. fi
  911. ########
  912. # FFTW #
  913. ########
  914. if check_package FFTW; then
  915. download_file fftw-3.1.2.tar.gz ftp://ftp.fftw.org/pub/fftw/fftw-3.1.2.tar.gz
  916. echo -n "decompressing FFTW... "
  917. unpack_file fftw-3.1.2.tar.gz
  918. echo "done"
  919. echo -n "compiling FFTW ..."
  920. (cd "$DOWNLOAD_DIR/fftw-3.1.2" &&
  921. create_module_rc FFTW 3.1.2 libfftw3-3.dll "FFTW (www.fftw.org)" \
  922. "FFTW - Discrete Fourier Transform Computation Library" \
  923. "Copyright (c) 2003, 2006 Massachusetts Institute of Technology" > fftw.rc &&
  924. CC=cc-msvc CFLAGS="-O2 -MD" CXX=cc-msvc CXXFLAGS="-O2 -MD" FC=fc-msvc FCFLAGS="-O2 -MD" \
  925. F77=fc-msvc FFLAGS="-O2 -MD" CPPFLAGS="-DWIN32 -D_WIN32" AR=ar-msvc RANLIB=ranlib-msvc \
  926. ./configure --prefix="$tdir_w32_forward" --enable-shared --disable-static \
  927. --enable-sse2 &&
  928. post_process_libtool &&
  929. sed -e 's/^libfftw3_la_LDFLAGS =/libfftw3_la_LDFLAGS = -Wl,fftw.res -Wl,-def:fftw.def/' \
  930. -e 's/^libfftw3\.la:/libfftw3.la: fftw.res fftw.def/' Makefile > ttt &&
  931. mv ttt Makefile &&
  932. (cat >> Makefile <<\EOF
  933. fftw.res: fftw.rc
  934. rc -fo $@ $<
  935. fftw.def: $(libfftw3_la_OBJECTS) $(libfftw3_la_LIBADD)
  936. @echo "Generating $@..."
  937. @echo "EXPORTS" > $@
  938. @sublibs=; for lib in $(libfftw3_la_LIBADD); do \
  939. sublibs="$$sublibs `dirname $$lib`/.libs/`sed -n -e "s/old_library='\(.*\)'/\1/p" $$lib`"; \
  940. done;\
  941. nm $(addprefix .libs/, $(libfftw3_la_OBJECTS:.lo=.o)) $$sublibs | \
  942. grep -v -e ' R __real@[0-9a-fA-F]\+' | \
  943. sed -n -e 's/^[0-9a-fA-F]\+ T _\([^ ]*\).*$$/\1/p' \
  944. -e 's/^[0-9a-fA-F]\+ [BDGSR] _\([^ ]*\).*$$/\1 DATA/p' >> $@
  945. EOF
  946. ) &&
  947. sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' tools/Makefile > ttt &&
  948. mv ttt tools/Makefile &&
  949. sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' \
  950. -e 's/^DEFS =/DEFS = -DFFTW_DLL/' tests/Makefile > ttt &&
  951. mv ttt tests/Makefile &&
  952. sed -e 's/^AR =.*$/AR = ar/' libbench2/Makefile > ttt &&
  953. mv ttt libbench2/Makefile &&
  954. make &&
  955. make install &&
  956. rm -f $tlibdir_quoted/libfftw3.la) >&5 2>&1 && end_package
  957. remove_package "$DOWNLOAD_DIR/fftw-3.1.2"
  958. if failed_package|| test ! -f "$tbindir/libfftw3-3.dll"; then
  959. echo "failed"
  960. exit -1
  961. else
  962. echo "done"
  963. fi
  964. fi
  965. if check_package fftwf; then
  966. download_file fftw-3.1.2.tar.gz ftp://ftp.fftw.org/pub/fftw/fftw-3.1.2.tar.gz
  967. echo -n "decompressing FFTW... "
  968. unpack_file fftw-3.1.2.tar.gz
  969. echo "done"
  970. echo -n "compiling FFTW (float)..."
  971. (cd "$DOWNLOAD_DIR/fftw-3.1.2" &&
  972. create_module_rc FFTW 3.1.2 libfftw3f-3.dll "FFTW (www.fftw.org)" \
  973. "FFTW - Discrete Fourier Transform Computation Library (float precision)" \
  974. "Copyright (c) 2003, 2006 Massachusetts Institute of Technology" > fftwf.rc &&
  975. CC=cc-msvc CFLAGS="-O2 -MD" CXX=cc-msvc CXXFLAGS="-O2 -MD" FC=fc-msvc FCFLAGS="-O2 -MD" \
  976. F77=fc-msvc FFLAGS="-O2 -MD" CPPFLAGS="-DWIN32 -D_WIN32" AR=ar-msvc RANLIB=ranlib-msvc \
  977. ./configure --prefix="$tdir_w32_forward" --enable-shared --disable-static \
  978. --enable-sse --enable-float &&
  979. post_process_libtool &&
  980. sed -e 's/^libfftw3f_la_LDFLAGS =/libfftw3f_la_LDFLAGS = -Wl,fftwf.res -Wl,-def:fftwf.def/' \
  981. -e 's/^libfftw3f\.la:/libfftw3f.la: fftwf.res fftwf.def/' Makefile > ttt &&
  982. mv ttt Makefile &&
  983. (cat >> Makefile <<\EOF
  984. fftwf.res: fftwf.rc
  985. rc -fo $@ $<
  986. fftwf.def: $(libfftw3f_la_OBJECTS) $(libfftw3f_la_LIBADD)
  987. @echo "Generating $@..."
  988. @echo "EXPORTS" > $@
  989. @sublibs=; for lib in $(libfftw3f_la_LIBADD); do \
  990. sublibs="$$sublibs `dirname $$lib`/.libs/`sed -n -e "s/old_library='\(.*\)'/\1/p" $$lib`"; \
  991. done;\
  992. nm $(addprefix .libs/, $(libfftw3f_la_OBJECTS:.lo=.o)) $$sublibs | \
  993. grep -v -e ' R __real@[0-9a-fA-F]\+' | \
  994. sed -n -e 's/^[0-9a-fA-F]\+ T _\([^ ]*\).*$$/\1/p' \
  995. -e 's/^[0-9a-fA-F]\+ [BDGSR] _\([^ ]*\).*$$/\1 DATA/p' >> $@
  996. EOF
  997. ) &&
  998. sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' tools/Makefile > ttt &&
  999. mv ttt tools/Makefile &&
  1000. sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' \
  1001. -e 's/^DEFS =/DEFS = -DFFTW_DLL/' tests/Makefile > ttt &&
  1002. mv ttt tests/Makefile &&
  1003. sed -e 's/^AR =.*$/AR = ar/' libbench2/Makefile > ttt &&
  1004. mv ttt libbench2/Makefile &&
  1005. make &&
  1006. make install &&
  1007. rm -f $tlibdir_quoted/libfftw3f.la) >&5 2>&1 && end_package
  1008. remove_package "$DOWNLOAD_DIR/fftw-3.1.2"
  1009. if failed_package|| test ! -f "$tbindir/libfftw3f-3.dll"; then
  1010. echo "failed"
  1011. exit -1
  1012. else
  1013. echo "done"
  1014. fi
  1015. fi
  1016. ########
  1017. # GLPK #
  1018. ########
  1019. if check_package GLPK; then
  1020. download_file glpk-$glpkver.tar.gz ftp://ftp.gnu.org/gnu/glpk/glpk-$glpkver.tar.gz
  1021. echo -n "decompressing GLPK... "
  1022. unpack_file glpk-$glpkver.tar.gz
  1023. echo "done"
  1024. echo -n "compiling GLPK... "
  1025. (cd "$DOWNLOAD_DIR/glpk-$glpkver" &&
  1026. glpk_company="GNU <www.gnu.org>" &&
  1027. glpk_desc=`grep -e '^DESCRIPTION' w32/glpk_*.def | sed -e 's/^DESCRIPTION \+//' -e 's/"//g'` &&
  1028. glpk_copyright=`grep -e '^Copyright' README | head -n 1 | sed -e 's/,$//'` &&
  1029. create_module_rc GLPK $glpkver glpk.dll "$glpk_company" "$glpk_desc" "$glpk_copyright" > src/glpk.rc &&
  1030. CC=cc-msvc CFLAGS="-O2 -MD" CXX=cc-msvc CXXFLAGS="-O2 -MD" FC=fc-msvc FCFLAGS="-O2 -MD" \
  1031. F77=fc-msvc FFLAGS="-O2 -MD" CPPFLAGS="-DWIN32 -D_WIN32 -D__STDC__" AR=ar-msvc RANLIB=ranlib-msvc \
  1032. ./configure --prefix="$tdir_w32_forward" --enable-shared --disable-static &&
  1033. post_process_libtool &&
  1034. sed -e 's/^libglpk_la_LDFLAGS =/libglpk_la_LDFLAGS = -Wl,glpk.res -Wl,-def:glpk.def -no-undefined/' \
  1035. -e 's/^libglpk\.la:/libglpk.la: glpk.res glpk.def/' src/Makefile > ttt &&
  1036. mv ttt src/Makefile &&
  1037. (cat >> src/Makefile <<\EOF
  1038. glpk.res: glpk.rc
  1039. rc -fo $@ $<
  1040. glpk.def: $(libglpk_la_OBJECTS)
  1041. @echo "Generating $@..."
  1042. @echo "EXPORTS" > $@
  1043. @nm $(addprefix .libs/, $(libglpk_la_OBJECTS:.lo=.o)) | \
  1044. sed -n -e 's/^[0-9a-fA-F]\+ T _\([^ ]*\).*$$/\1/p' \
  1045. -e 's/^[0-9a-fA-F]\+ [BDGS] _\([^ ]*\).*$$/\1 DATA/p' >> $@
  1046. EOF
  1047. ) &&
  1048. make &&
  1049. make install &&
  1050. rm -f $tlibdir_quoted/libglpk.la) >&5 2>&1 && end_package
  1051. remove_package "$DOWNLOAD_DIR/glpk-$glpkver"
  1052. if failed_package || test ! -f "$tlibdir/glpk.lib"; then
  1053. echo "failed"
  1054. exit -1
  1055. else
  1056. echo "done"
  1057. fi
  1058. fi
  1059. ###########
  1060. # ncurses #
  1061. ###########
  1062. if check_package ncurses; then
  1063. download_file ncurses-5.6.tar.gz ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.6.tar.gz
  1064. echo -n "decompressing ncurses... "
  1065. unpack_file ncurses-5.6.tar.gz
  1066. cp libs/ncurses-5.6.diff "$DOWNLOAD_DIR/ncurses-5.6"
  1067. echo "done"
  1068. echo "compiling ncurses... "
  1069. (cd "$DOWNLOAD_DIR/ncurses-5.6" &&
  1070. patch -p1 < ncurses-5.6.diff &&
  1071. ncurses_copyright=`grep -e '^-- Copyright' README | head -n 1 | sed -e "s/-- //" -e "s/ *--$//"` &&
  1072. create_module_rc Ncurses 5.6 ncurses.dll "Free Software Foundation (http://www.fsf.org)" \
  1073. "GNU New Curses Library" "$ncurses_copyright" > ncurses/ncurses.rc &&
  1074. CC=cc-msvc CXX=cc-msvc AR=ar-msvc RANLIB=ranlib-msvc CFLAGS="-O2 -MD" \
  1075. CXXFLAGS="-O2 -MD -EHs" CPPFLAGS="-DWIN32 -D_WIN32" \
  1076. ./configure --build=i686-pc-msdosmsvc --prefix=$INSTALL_DIR --without-cxx-binding \
  1077. --without-libtool --with-shared --without-normal --without-debug &&
  1078. sed -e "s/^SHARED_OBJS =/SHARED_OBJS = ncurses.res/" ncurses/Makefile > ttt &&
  1079. mv ttt ncurses/Makefile &&
  1080. echo "ncurses.res: ncurses.rc" >> ncurses/Makefile &&
  1081. echo " rc -fo \$@ \$<" >> ncurses/Makefile &&
  1082. make -C include && make -C ncurses && make -C progs && make -C tack && make -C misc &&
  1083. make -C include install && make -C ncurses install && make -C progs install &&
  1084. make -C tack install && make -C misc install) >&5 2>&1 && end_package
  1085. remove_package "$DOWNLOAD_DIR/ncurses-5.6"
  1086. if failed_package || test ! -f "$tlibdir/ncurses.lib"; then
  1087. echo "failed"
  1088. exit -1
  1089. else
  1090. echo "done"
  1091. fi
  1092. fi
  1093. ############
  1094. # readline #
  1095. ############
  1096. if check_package readline; then
  1097. download_file readline-5.2.tar.gz ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz
  1098. echo -n "decompressing readline... "
  1099. (cd "$DOWNLOAD_DIR" && tar xfz readline-5.2.tar.gz)
  1100. cp libs/readline-5.2.diff "$DOWNLOAD_DIR/readline-5.2"
  1101. echo "done"
  1102. echo "compiling readline... "
  1103. (cd "$DOWNLOAD_DIR/readline-5.2" &&
  1104. patch -p1 < readline-5.2.diff &&
  1105. rl_copyright=`grep -e '^/\* \+Copyright' readline.c | sed -e "s,/\* \+,,"` &&
  1106. create_module_rc Readline 5.2 readline.dll "Free Software Foundation (http://www.fsf.org)" \
  1107. "GNU Readline Library" "$rl_copyright" > readline.rc &&
  1108. sed -e "s/^SHARED_OBJ =/SHARED_OBJ = readline.res/" shlib/Makefile.in > ttt &&
  1109. mv ttt shlib/Makefile.in &&
  1110. echo "readline.res: readline.rc" >> shlib/Makefile.in &&
  1111. echo " rc -fo \$@ \$<" >> shlib/Makefile.in &&
  1112. configure_package --build=i686-pc-msdosmsvc &&
  1113. make shared &&
  1114. make install-shared &&
  1115. cp shlib/*readline*.lib "$tlibdir/readline.lib" &&
  1116. cp shlib/*history*.lib "$tlibdir/history.lib"&&
  1117. mv $tlibdir_quoted/*readline*.dll $tlibdir_quoted/*history*.dll "$tbindir") >&5 2>&1 && end_package
  1118. remove_package "$DOWNLOAD_DIR/readline-5.2"
  1119. if failed_package || test ! -f "$tlibdir/readline.lib"; then
  1120. echo "failed"
  1121. exit -1
  1122. else
  1123. echo "done"
  1124. fi
  1125. fi
  1126. ########
  1127. # zlib #
  1128. ########
  1129. if check_package zlib; then
  1130. download_file zlib123.zip http://www.zlib.net/zlib123.zip
  1131. echo -n "decompressing zlib... "
  1132. (cd "$DOWNLOAD_DIR" && mkdir zlib && cd zlib && unzip -q ../zlib123.zip)
  1133. echo "done"
  1134. echo -n "compiling zlib... "
  1135. (cd "$DOWNLOAD_DIR/zlib" &&
  1136. sed -e 's/^STATICLIB *=.*$/STATICLIB = zlib-static.lib/' -e 's/^IMPLIB *=.*$/IMPLIB = zlib.lib/' win32/Makefile.msc > ttt &&
  1137. mv ttt win32/Makefile.msc &&
  1138. sed -e 's/1,2,2,0/1,2,3,0/' win32/zlib1.rc > ttt &&
  1139. mv ttt win32/zlib1.rc &&
  1140. nmake -f win32\\Makefile.msc &&
  1141. mt -outputresource:zlib1.dll -manifest zlib1.dll.manifest &&
  1142. cp zlib1.dll "$tbindir" &&
  1143. cp zlib.lib "$tlibdir" &&
  1144. cp zlib.lib "$tlibdir/z.lib" &&
  1145. cp zlib.h zconf.h "$tincludedir") >&5 2>&1 && end_package
  1146. remove_package "$DOWNLOAD_DIR/zlib"
  1147. if failed_package || test ! -f "$tbindir/zlib1.dll"; then
  1148. echo "failed"
  1149. exit -1
  1150. else
  1151. echo "done"
  1152. fi
  1153. fi
  1154. ###############
  1155. # SuiteSparse #
  1156. ###############
  1157. if check_package SuiteSparse; then
  1158. download_file SuiteSparse-3.0.0.tar.gz http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-3.0.0.tar.gz
  1159. echo -n "decompressing SuiteSparse... "
  1160. unpack_file SuiteSparse-3.0.0.tar.gz
  1161. cp libs/suitesparse-3.0.0.diff "$DOWNLOAD_DIR/SuiteSparse"
  1162. echo "done"
  1163. echo "compiling SuiteSpase... "
  1164. (cd "$DOWNLOAD_DIR/SuiteSparse" &&
  1165. patch -p1 < suitesparse-3.0.0.diff &&
  1166. make &&
  1167. make install INSTDIR="$INSTALL_DIR") >&5 2>&1 && end_package
  1168. remove_package "$DOWNLOAD_DIR/SuiteSparse"
  1169. if failed_package || test ! -f "$tlibdir/cxsparse.lib" -o ! -d "$tincludedir/suitesparse"; then
  1170. echo "failed"
  1171. exit -1
  1172. else
  1173. echo "done"
  1174. fi
  1175. fi
  1176. ########
  1177. # HDF5 #
  1178. ########
  1179. if check_package HDF5; then
  1180. download_file hdf5-$hdf5ver.tar.gz ftp://ftp.hdfgroup.org/HDF5/current/src/hdf5-$hdf5ver.tar.gz
  1181. echo -n "decompressing HDF5... "
  1182. unpack_file hdf5-$hdf5ver.tar.gz
  1183. echo "done"
  1184. echo -n "compiling HDF5... "
  1185. (cd "$DOWNLOAD_DIR/hdf5-$hdf5ver" &&
  1186. if false; then
  1187. patch -p1 < hdf5.diff &&
  1188. cd proj/hdf5dll &&
  1189. vcbuild -upgrade hdf5dll.vcproj &&
  1190. vcbuild -u hdf5dll.vcproj "Release|Win32" &&
  1191. cp Release/hdf5.lib "$tlibdir" &&
  1192. cp Release/hdf5.dll "$tbindir" &&
  1193. cp ../../COPYING "$tlicdir/COPYING.HDF5" &&
  1194. cd ../../src &&
  1195. cp H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5Cpublic.h \
  1196. H5Dpublic.h H5Epublic.h H5Fpublic.h H5FDpublic.h H5FDcore.h H5FDfamily.h \
  1197. H5FDgass.h H5FDlog.h H5FDmpi.h H5FDmpio.h H5FDmpiposix.h \
  1198. H5FDmulti.h H5FDsec2.h H5FDsrb.h H5FDstdio.h H5FDstream.h \
  1199. H5Gpublic.h H5HGpublic.h H5HLpublic.h H5Ipublic.h \
  1200. H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h \
  1201. H5Tpublic.h H5Zpublic.h H5pubconf.h hdf5.h H5api_adpt.h "$tincludedir"
  1202. else
  1203. create_module_rc HDF5 $hdf5ver libhdf5-0.dll "University of Illinois" \
  1204. "NCSA Hierarchical Data Format (HDF) Library" \
  1205. "Copyright by the Board of Trustees of the University of Illinois." > src/hdf5.rc &&
  1206. W_CPPFLAGS="$W_CPPFLAGS -D_HDF5DLL_" \
  1207. configure_package --enable-shared --disable-static &&
  1208. post_process_libtool &&
  1209. #sed -e '/^postinstall_cmds=/ {s/\$name/\\$name/; s/\$implibname/\\$implibname/;}' libtool > ttt
  1210. # mv ttt libtool &&
  1211. sed -e 's/\$(LIB)/$(HLIB)/g' \
  1212. -e 's/^LIB=/HLIB=/g' \
  1213. -e 's/^LIBS=.*$/& -lws2_32/' \
  1214. -e 's,\$(libdir)/\.,$(libdir),' \
  1215. -e 's/^LDFLAGS=/LDFLAGS= -no-undefined -Wl,hdf5.res/' src/Makefile > ttt &&
  1216. mv ttt src/Makefile &&
  1217. sed -e '/^#ifdef \+H5_HAVE_STREAM.*$/ {p; c\
  1218. #define EWOULDBLOCK WSAEWOULDBLOCK
  1219. ;}' src/H5FDstream.c > ttt &&
  1220. mv ttt src/H5FDstream.c &&
  1221. echo "#define HDsetvbuf(A,B,C,D) (((D)>1)?setvbuf(A,B,C,D):setvbuf(A,B,C,2))" >> src/H5pubconf.h &&
  1222. echo "#define ssize_t long" >> src/H5pubconf.h &&
  1223. cd src
  1224. rc -fo hdf5.res hdf5.rc &&
  1225. make &&
  1226. make install &&
  1227. cp ../COPYING "$tlicdir/COPYING.HDF5" &&
  1228. rm -f $tlibdir_quoted/libhdf5.la
  1229. fi) >&5 2>&1 && end_package
  1230. remove_package "$DOWNLOAD_DIR/hdf5-$hdf5ver"
  1231. if failed_package || test ! -f "$tlibdir/hdf5.lib"; then
  1232. echo "failed"
  1233. exit -1
  1234. else
  1235. echo "done"
  1236. fi
  1237. fi
  1238. ########
  1239. # glob #
  1240. ########
  1241. if check_package glob; then
  1242. if test ! -f "$DOWNLOAD_DIR/glob.tar.gz"; then
  1243. echo "glob library is not downloadable and should already be present in $DOWNLOAD_DIR"
  1244. exit -1
  1245. fi
  1246. echo -n "decompressing glob... "
  1247. (cd "$DOWNLOAD_DIR" && tar xfz glob.tar.gz)
  1248. echo "done"
  1249. echo -n "compiling glob... "
  1250. (cd "$DOWNLOAD_DIR/glob" &&
  1251. autoconf && autoheader &&
  1252. ./configure.vc &&
  1253. make &&
  1254. cp glob.lib "$tlibdir" &&
  1255. cp fnmatch.h glob.h "$tincludedir") >&5 2>&1 && end_package
  1256. remove_package "$DOWNLOAD_DIR/glob"
  1257. if failed_package || test ! -f "$tlibdir/glob.lib"; then
  1258. echo "failed"
  1259. exit -1
  1260. else
  1261. echo "done"
  1262. fi
  1263. fi
  1264. ##########
  1265. # libpng #
  1266. ##########
  1267. if check_package libpng; then
  1268. if false; then
  1269. pngver=`echo $libpngver | sed -e "s/\.//g"`
  1270. download_file lpng$pngver.zip ftp://ftp.simplesystems.org/pub/libpng/png/src/lpng$pngver.zip
  1271. echo -n "decompressing libpng... "
  1272. (cd "$DOWNLOAD_DIR" && unzip -q lpng$pngver.zip)
  1273. echo "done"
  1274. echo -n "compiling libpng... "
  1275. (cd "$DOWNLOAD_DIR/lpng$pngver/projects/visualc71" &&
  1276. sed -e 's/{2D4F8105-7D21-454C-9932-B47CAB71A5C0} = {2D4F8105-7D21-454C-9932-B47CAB71A5C0}//' libpng.sln > ttt &&
  1277. mv ttt libpng.sln &&
  1278. sed -e "s/\([ ]*\)AdditionalIncludeDirectories=\".*\"$/\1AdditionalIncludeDirectories=\"..\\\\..;$tdir_w32\\\\include\"/" \
  1279. -e "s/\([ ]*\)Name=\"VCLinkerTool\".*$/\1Name=\"VCLinkerTool\"\\
  1280. AdditionalDependencies=\"zlib.lib\"\\
  1281. ImportLibrary=\"\$(TargetDir)png.lib\"\\
  1282. AdditionalLibraryDirectories=\"$tdir_w32\\\\lib\"/" libpng.vcproj > ttt &&
  1283. mv ttt libpng.vcproj &&
  1284. sed -e "s/^ *; *png_get_libpng_ver/ png_get_libpng_ver/" ../../scripts/pngw32.def > ttt &&
  1285. mv ttt ../../scripts/pngw32.def &&
  1286. vcbuild -upgrade libpng.vcproj &&
  1287. vcbuild -u libpng.vcproj 'DLL Release|Win32' &&
  1288. sed -e "s,^prefix=.*$,prefix=$tdir_w32_forward," \
  1289. -e "s,@exec_prefix@,\${prefix}," \
  1290. -e "s,@libdir@,\${exec_prefix}/lib," \
  1291. -e "s,^includedir=.*$,includedir=\${prefix}/include," \
  1292. -e "s,-lpng[0-9]\+,-lpng," ../../scripts/libpng.pc.in > libpng.pc &&
  1293. cp Win32_DLL_Release/libpng*.dll "$tbindir" &&
  1294. cp Win32_DLL_Release/png.lib "$tlibdir" &&
  1295. cp ../../png.h ../../pngconf.h "$tincludedir" &&
  1296. mkdir -p "$tlibdir/pkgconfig" &&
  1297. cp libpng.pc "$tlibdir/pkgconfig" &&
  1298. cp libpng.pc "$tlibdir/pkgconfig/libpng12.pc") >&5 2>&1 && end_package
  1299. remove_package "$DOWNLOAD_DIR/lpng$pngver"
  1300. else
  1301. download_file libpng-$libpngver.tar.bz2 ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-$libpngver.tar.bz2
  1302. echo -n "decompressing libpng... "
  1303. unpack_file libpng-$libpngver.tar.bz2
  1304. echo "done"
  1305. echo -n "compiling libpng... "
  1306. (cd "$DOWNLOAD_DIR/libpng-$libpngver" &&
  1307. ac_cv_func_memset=yes ac_cv_func_pow=yes \
  1308. configure_package --disable-static --enable-shared --without-libpng-compat &&
  1309. post_process_libtool &&
  1310. sed -e 's/^libpng12_la_LDFLAGS =/& -export-symbols-regex "^png_.*" -Wl,scripts\/pngw32.res/' Makefile > ttt &&
  1311. mv ttt Makefile &&
  1312. (cd scripts && rc -fo pngw32.res pngw32.rc) &&
  1313. make &&
  1314. make install &&
  1315. rm -rf $tlibdir_quoted/libpng*.la &&
  1316. cp "$tlibdir/png12.lib" "$tlibdir/png.lib") >&5 2>&1 && end_package
  1317. remove_package "$DOWNLOAD_DIR/libpng-$libpngver"
  1318. fi
  1319. if failed_package || test ! -f "$tlibdir/png.lib"; then
  1320. echo "failed"
  1321. exit -1
  1322. else
  1323. echo "done"
  1324. fi
  1325. fi
  1326. ##########
  1327. # ARPACK #
  1328. ##########
  1329. if check_package ARPACK; then
  1330. download_file arpack96.tar.gz http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz
  1331. download_file patch.tar.gz http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz
  1332. echo -n "decompressing ARPACK... "
  1333. unpack_file arpack96.tar.gz
  1334. unpack_file patch.tar.gz
  1335. cp libs/arpack.makefile "$DOWNLOAD_DIR/ARPACK"
  1336. echo "done"
  1337. echo -n "compiling ARPACK... "
  1338. (cd "$DOWNLOAD_DIR/ARPACK" &&
  1339. sed -e "s/^OBJECTS =/OBJECTS = arpack.res/" arpack.makefile > ttt &&
  1340. mv ttt arpack.makefile &&
  1341. echo "arpack.res: arpack.rc" >> arpack.makefile &&
  1342. echo " rc -fo \$@ \$<" >> arpack.makefile &&
  1343. create_module_rc ARPACK 96.0 arpack.dll "Rice University (http://www.caam.rice.edu)" \
  1344. "ARPACK Library for Large-Scale Eigenvalues Problems" "Copyright (Š) 2001, Rice University" > arpack.rc &&
  1345. make -f arpack.makefile &&
  1346. cp libarpack.dll "$tbindir" &&
  1347. cp arpack.lib "$tlibdir") >&5 2>&1 && end_package
  1348. remove_package "$DOWNLOAD_DIR/ARPACK"
  1349. wget $WGET_FLAGS -O "$tlicdir/COPYING.ARPACK.doc" http://www.caam.rice.edu/software/ARPACK/RiceBSD.doc
  1350. if failed_package || test ! -f "$tlibdir/arpack.lib"; then
  1351. echo "failed"
  1352. exit -1
  1353. else
  1354. echo "done"
  1355. fi
  1356. fi
  1357. ###########
  1358. # libjpeg #
  1359. ###########
  1360. #if check_package libjpeg; then
  1361. # download_file jpeg-6b-4-src.zip 'http://downloads.sourceforge.net/gnuwin32/jpeg-6b-4-src.zip?modtime=1116176612&big_mirror=0'
  1362. # echo -n "decompressing libjpeg... "
  1363. # (cd "$DOWNLOAD_DIR" && mkdir jpeg && cd jpeg && unzip -q ../jpeg-6b-4-src.zip)
  1364. # cp libs/libjpeg-6b.diff "$DOWNLOAD_DIR/jpeg"
  1365. # echo "done"
  1366. # (cd "$DOWNLOAD_DIR/jpeg" &&
  1367. # patch -p1 < libjpeg-6b.diff &&
  1368. # cd src/jpeg/6b/jpeg-6b-src &&
  1369. # nmake -f makefile.vc nodebug=1 &&
  1370. # cp jpeg6b.dll "$tbindir" &&
  1371. # cp jpeg.lib "$tlibdir" &&
  1372. # cp jconfig.h jerror.h jmorecfg.h jpeglib.h "$tincludedir") >&5 2>&1
  1373. # rm -rf "$DOWNLOAD_DIR/jpeg"
  1374. # if test ! -f "$tbindir/jpeg6b.dll"; then
  1375. # echo "failed"
  1376. # exit -1
  1377. # else
  1378. # echo "done"
  1379. # fi
  1380. #fi
  1381. if check_package libjpeg; then
  1382. download_file jpegsrc.v6b.tar.gz ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
  1383. echo -n "decompressing libjpeg... "
  1384. unpack_file jpegsrc.v6b.tar.gz
  1385. echo "done"
  1386. (cd "$DOWNLOAD_DIR/jpeg-6b" &&
  1387. create_module_rc Libjpeg 6.2 libjpeg-62.dll "Independent JPEG Group <www.ijg.org>" \
  1388. "Libjpeg - Library and Tools for JPEG Images" "Š `date +%Y` Independent JPEG Group <www.ijg.org>" > jpeg.rc &&
  1389. CPP="/mingw/bin/cpp" \
  1390. configure_package --enable-shared --disable-static &&
  1391. sed -e 's/libjpeg\.la:.*$/& jpeg.def jpeg.res/' Makefile > ttt &&
  1392. mv ttt Makefile &&
  1393. (cat >> Makefile <<\EOF
  1394. jpeg.res: jpeg.rc
  1395. rc -fo $@ $<
  1396. jpeg.def: $(LIBOBJECTS)
  1397. echo "EXPORTS" > $@
  1398. nm $(LIBOBJECTS) | sed -n -e 's/^.* T _\(.*\)$$/\1/p' >> $@
  1399. EOF
  1400. ) &&
  1401. sed -e 's/^build_libtool_libs=.*$/build_libtool_libs=yes/' \
  1402. -e 's/^build_old_libs=.*$/build_old_libs=no/' \
  1403. -e 's/^version_type=.*$/version_type=windows/' \
  1404. -e 's/^library_names_spec=.*$/library_names_spec="lib\\$name-\\$versuffix.dll"/' \
  1405. -e '/^[ ]*case "\$version_type" in.*$/ {p;i\
  1406. windows)\
  1407. major=`expr $current - $age`\
  1408. versuffix="$major"\
  1409. ;;
  1410. ;d;}' \
  1411. -e 's/^hardcode_libdir_flag_spec=.*$/hardcode_libdir_flag_spec=""/' \
  1412. -e 's/^archive_cmds=.*$/archive_cmds="\\$CC -shared -o \\$lib\\$libobjs -Wl,-def:jpeg.def -Wl,jpeg.res"/' \
  1413. libtool > ttt &&
  1414. mv ttt libtool &&
  1415. (cat >> jconfig.h <<\EOF
  1416. #include <windows.h>
  1417. #ifndef __RPCNDR_H__
  1418. typedef unsigned char boolean;
  1419. #endif
  1420. #define HAVE_BOOLE…

Large files files are truncated, but you can click here to view the full file