More progress building the 64 bit dependencies, though I have a nasty feeling that none of them will actually work

This commit is contained in:
Kovid Goyal 2012-11-12 17:47:56 +05:30
parent 4ebb715dc9
commit d65a12b667

View File

@ -263,54 +263,38 @@ Build with::
cp zlib.lib zdll.* ../../lib cp zlib.lib zdll.* ../../lib
cp zconf.h zlib.h ../../include cp zconf.h zlib.h ../../include
jpeg-7 jpeg-8
------- -------
Copy:: Get the source code from: http://sourceforge.net/projects/libjpeg-turbo/files/
jconfig.vc to jconfig.h, makejsln.vc9 to jpeg.sln,
makeasln.vc9 to apps.sln, makejvcp.vc9 to jpeg.vcproj,
makecvcp.vc9 to cjpeg.vcproj, makedvcp.vc9 to djpeg.vcproj,
maketvcp.vc9 to jpegtran.vcproj, makervcp.vc9 to rdjpgcom.vcproj, and
makewvcp.vc9 to wrjpgcom.vcproj. (Note that the renaming is critical!)
Load jpeg.sln in Visual Studio
Goto Project->Properties->General Properties and change Configuration Type to dll
Add
#define USE_WINDOWS_MESSAGEBOX
to jconfig.h (this will cause error messages to show up in a box)
Change the definitions of GLOBAL and EXTERN in jmorecfg.h to
#define GLOBAL(type) __declspec(dllexport) type
#define EXTERN(type) extern __declspec(dllexport) type
cp build/jpeg-7/Release/jpeg.dll bin/
cp build/jpeg-7/Release/jpeg.lib build/jpeg-7/Release/jpeg.exp
cp build/jpeg-7/jerror.h build/jpeg-7/jpeglib.h build/jpeg-7/jconfig.h build/jpeg-7/jmorecfg.h include/
Run::
chmod +x cmakescripts/* && cd build
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DWITH_JPEG8=1 ..
nmake
cp sharedlib/jpeg8.dll* ~/sw/bin/
cp sharedlib/jpeg.lib ~/sw/lib/
cp jconfig.h ../jerror.h ../jpeglib.h ../jmorecfg.h ~/sw/include
libpng libpng
--------- ---------
cp scripts/CMakelists.txt . Download the libpng .zip source file from:
mkdir build http://www.libpng.org/pub/png/libpng.html
Run cmake-gui.exe with source directory . and build directory build
You will have to point to sw/lib/zdll.lib and sw/include for zlib
Also disable PNG_NO_STDIO and PNG_NO_CONSOLE_IO
Now open PNG.sln in VS2008 Run::
Set Build type to Release mkdir build && cd build
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DZLIB_INCLUDE_DIR=C:/cygwin/home/kovid/sw/include -DZLIB_LIBRARY=C:/cygwin/home/kovid/sw/lib/zdll.lib ..
cp build/libpng-1.2.40/build/Release/libpng12.dll bin/ nmake
cp build/libpng-1.2.40/build/Release/png12.* lib/ cp libpng*.dll ~/sw/bin/
cp build/libpng-1.2.40/png.h build/libpng-1.2.40/pngconf.h include/ cp libpng*.lib ~/sw/lib/
cp pnglibconf.h ../png.h ../pngconf.h ~/sw/include/
freetype freetype
----------- -----------
Get the .zip source from: http://download.savannah.gnu.org/releases/freetype/
Edit *all copies* of the file ftoption.h and add to generate a .lib Edit *all copies* of the file ftoption.h and add to generate a .lib
and a correct dll and a correct dll
@ -320,16 +304,26 @@ and a correct dll
VS 2008 .sln file is present, open it VS 2008 .sln file is present, open it
Change active build type to release mutithreaded * If you are doing x64 build, click the Win32 dropdown, select
Configuration manager->Active solution platform -> New -> x64
Project->Properties->Configuration Properties * Change active build type to release mutithreaded
change configuration type to dll
cp build/freetype-2.3.9/objs/release_mt/freetype.dll bin/ * Project->Properties->Configuration Properties change configuration type
to dll and build solution
cp "`find . -name *.dll`" ~/sw/bin/
cp "`find . -name freetype.lib`" ~/sw/lib/
Now change configuration back to static for .lib and build solution
cp "`find . -name freetype*MT.lib`" ~/sw/lib/
Now change configuration back to static for .lib
cp build/freetype-2.3.9/objs/win32/vc2008/freetype239MT.lib lib/ cp build/freetype-2.3.9/objs/win32/vc2008/freetype239MT.lib lib/
cp -rf build/freetype-2.3.9/include/* include/ cp -rf include/* ~/sw/include/
TODO: Test if this bloody thing actually works on 64 bit (apparently freetype
assumes sizeof(long) == sizeof(ptr) which is not true in Win64. See for
example: http://forum.openscenegraph.org/viewtopic.php?t=2880
lxml lxml
------ ------
@ -349,14 +343,19 @@ calibre-debug -c "import _imaging, _imagingmath, _imagingft, _imagingcms"
expat expat
-------- --------
Has a VC 6 project file expat.dsw Get from: http://sourceforge.net/projects/expat/files/expat/
Set active build to Relase and change build type to dll Apparently expat requires stdint.h which VS 2008 does not have. So we get our
own.
cp build/expat-2.0.1/win32/bin/Release/*.lib lib/ Run::
cp build/expat-2.0.1/win32/bin/Release/*.exp lib/ cd lib
cp build/expat-2.0.1/win32/bin/Release/*.dll bin/ wget http://msinttypes.googlecode.com/svn/trunk/stdint.h
cp build/expat-2.0.1/lib/expat.h build/expat-2.0.1/lib/expat_external.h include/ mkdir build && cd build
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release ..
nmake
cp expat.dll ~/sw/bin/ && cp expat.lib ~/sw/lib/
cp ../lib/expat.h ../lib/expat_external.h ~/sw/include
libxml2 libxml2
------------- -------------