Commit ad19b03fd346e6779a029c43b6228e377919852f
1 parent
351284b5
now possible to test from msys!
git-svn-id: svn+q:///qpdf/trunk@804 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
1 changed file
with
39 additions
and
33 deletions
README.windows
| @@ -2,19 +2,15 @@ Common Setup | @@ -2,19 +2,15 @@ Common Setup | ||
| 2 | ============ | 2 | ============ |
| 3 | 3 | ||
| 4 | To be able to build qpdf and run its test suite, you must have either | 4 | To be able to build qpdf and run its test suite, you must have either |
| 5 | -Cygwin or MSYS from MinGW (>= 1.0.11) installed. | ||
| 6 | - | ||
| 7 | - qpdf's test suite, you must have cygwin installed. | ||
| 8 | -This is because qpdf's test suite uses qtest, which requires cygwin | ||
| 9 | -perl on Windows. (Hopefully a future version of qtest will work with | ||
| 10 | -ActiveState Perl.) You must have at least perl and gnu diffutils | ||
| 11 | -installed to run the test suite. | 5 | +Cygwin or MSYS from MinGW (>= 1.0.11) installed. If you want to build |
| 6 | +with Microsoft Visual C++, either Cygwin or MSYS will do. If you want | ||
| 7 | +to build with MinGW, you must use MSYS rather than Cygwin. | ||
| 12 | 8 | ||
| 13 | As of this writing, the image comparison tests confuse ghostscript in | 9 | As of this writing, the image comparison tests confuse ghostscript in |
| 14 | cygwin, but there's a chance they might work at some point. If you | 10 | cygwin, but there's a chance they might work at some point. If you |
| 15 | want to run them, you need ghostscript and tiff utils as well. Then | 11 | want to run them, you need ghostscript and tiff utils as well. Then |
| 16 | omit --disable-test-compare-images from the configure statements given | 12 | omit --disable-test-compare-images from the configure statements given |
| 17 | -below. | 13 | +below. The image comparison tests have not been tried under MSYS. |
| 18 | 14 | ||
| 19 | Building with MinGW | 15 | Building with MinGW |
| 20 | =================== | 16 | =================== |
| @@ -31,39 +27,22 @@ From your MSYS prompt, run | @@ -31,39 +27,22 @@ From your MSYS prompt, run | ||
| 31 | ./configure --disable-test-compare-images --enable-build-external-libs --with-buildrules=mingw | 27 | ./configure --disable-test-compare-images --enable-build-external-libs --with-buildrules=mingw |
| 32 | make | 28 | make |
| 33 | 29 | ||
| 34 | -When done, you should copy the gcc runtime DLL into the libqpdf/build | ||
| 35 | -directory. You can find the path to it by running | ||
| 36 | - | ||
| 37 | - objdump -p qpdf/build/qpdf.exe | grep DLL | ||
| 38 | - type -P libgcc_s_dw2-1.dll | ||
| 39 | - | ||
| 40 | -replacing libgcc_s_dw2-1.dll with whatever gcc DLL is shown, if | ||
| 41 | -different. Redistribution of this DLL is unavoidable as of this | ||
| 42 | -writing; see "Static Runtime" below for details. | 30 | +Add the absolute path to the libqpdf/build directory to your PATH. |
| 31 | +Make sure you can run the qpdf command by typing qpdf/build/qpdf and | ||
| 32 | +making sure you get a help message rather than an error loading the | ||
| 33 | +DLL or no output at all. Run the test suite by typing | ||
| 43 | 34 | ||
| 44 | -From your cygwin prompt, add the absolute path to the libqpdf/build | ||
| 45 | -directory to your PATH. Make sure you can run the qpdf command by | ||
| 46 | -typing qpdf/build/qpdf and making sure you get a help message rather | ||
| 47 | -than an error loading the DLL or no output at all. Run the test suite | ||
| 48 | -by typing | ||
| 49 | - | ||
| 50 | - make check GENDEPS=0 | 35 | + make check |
| 51 | 36 | ||
| 52 | -from your cygwin prompt. The GENDEPS=0 is necessary to prevent the | ||
| 53 | -build system in cygwin from trying to interpret the MSYS/Windows paths | ||
| 54 | -embedded in the dependency files. If all goes well, you should get a | ||
| 55 | -passing test suite. | 37 | +If all goes well, you should get a passing test suite. |
| 56 | 38 | ||
| 57 | Building with MSVC .NET 2008 Express | 39 | Building with MSVC .NET 2008 Express |
| 58 | ==================================== | 40 | ==================================== |
| 59 | 41 | ||
| 60 | These instructions would likely work with newer version of MSVC or | 42 | These instructions would likely work with newer version of MSVC or |
| 61 | with full version of MSVC. They may also work with .NET 2005. They | 43 | with full version of MSVC. They may also work with .NET 2005. They |
| 62 | -have only been tested with .NET 2008 Express. | ||
| 63 | - | ||
| 64 | -It's possible that the MSVC build may work from MSYS, but since cygwin | ||
| 65 | -is needed to run the test suite, these have only been tested from | ||
| 66 | -cygwin. | 44 | +have only been tested with .NET 2008 Express. You may follow these |
| 45 | +instructions from either Cygwin or from MSYS. | ||
| 67 | 46 | ||
| 68 | You should first set up your environment to be able to run MSVC from | 47 | You should first set up your environment to be able to run MSVC from |
| 69 | the command line. There is usually a batch file included with MSVC | 48 | the command line. There is usually a batch file included with MSVC |
| @@ -98,6 +77,33 @@ Note that you must redistribute the Microsoft runtime DLLs. Linking | @@ -98,6 +77,33 @@ Note that you must redistribute the Microsoft runtime DLLs. Linking | ||
| 98 | with static runtime won't work; see "Static Runtime" below for | 77 | with static runtime won't work; see "Static Runtime" below for |
| 99 | details. | 78 | details. |
| 100 | 79 | ||
| 80 | +Runtime DLLs | ||
| 81 | +============ | ||
| 82 | + | ||
| 83 | +Both build methods create executables and DLLs that are dependent on | ||
| 84 | +the compiler's runtime DLLs. You can find out which DLLs are required | ||
| 85 | +by using objdump. For any DLLs that are not standard on any Windows | ||
| 86 | +system, you will need to copy those into the directory with the exe | ||
| 87 | +and the qpdf DLL in order for the application to work outside the | ||
| 88 | +development environment. You don't need KERNEL32.dll, or msvcrt.dll | ||
| 89 | +as those are standard. | ||
| 90 | + | ||
| 91 | +To discover which DLLs you need, you can run | ||
| 92 | + | ||
| 93 | + objdump -p qpdf/build/qpdf.exe | grep DLL | ||
| 94 | + | ||
| 95 | +To find the path to the DLL, you can use type -P, as in | ||
| 96 | + | ||
| 97 | + type -P libgcc_s_dw2-1.dll | ||
| 98 | + | ||
| 99 | +replacing libgcc_s_dw2-1.dll with whatever gcc DLL is shown, if | ||
| 100 | +different. For MSVC, you will probably need two DLLs. Keep in mind | ||
| 101 | +that Microsoft does not allow redistribution of the debugging DLLs. | ||
| 102 | +qpdf's build does not depend on them by default, however. | ||
| 103 | + | ||
| 104 | +Redistribution of the runtime DLL is unavoidable as of this writing; | ||
| 105 | +see "Static Runtime" below for details. | ||
| 106 | + | ||
| 101 | Installing | 107 | Installing |
| 102 | ========== | 108 | ========== |
| 103 | 109 |