[144] | 1 | Cross-compiling RegLookup to Windows with MinGW |
---|
| 2 | =============================================== |
---|
| 3 | |
---|
| 4 | MinGW can be used to compile Windows binaries from UNIX environments. |
---|
| 5 | The following instructions outline the steps required to build |
---|
| 6 | reglookup.exe and reglookup-recover.exe. This process is experimental |
---|
| 7 | and Windows binaries have not been well tested. You have been warned. |
---|
| 8 | |
---|
| 9 | Prerequisites |
---|
| 10 | ------------- |
---|
| 11 | |
---|
| 12 | - Before you start, ensure you have MinGW installed. Under Debian, |
---|
| 13 | install the `mingw32' package. |
---|
| 14 | |
---|
| 15 | - Download pre-compiled libiconv packages from here: |
---|
| 16 | http://gnuwin32.sourceforge.net/packages/libiconv.htm |
---|
| 17 | |
---|
| 18 | You will need to download the "Binaries" and "Developer files" |
---|
| 19 | packages, whose files are named libiconv-VERSION-bin.zip and |
---|
| 20 | libiconv-VERSION-lib.zip respectively. |
---|
| 21 | |
---|
| 22 | - Unpack both zip files into a designated top-level directory. |
---|
| 23 | Suggested commands: |
---|
| 24 | $ mkdir /usr/local/src/libiconv-VERSION-bin /usr/local/src/libiconv-VERSION-lib |
---|
| 25 | $ cd /usr/local/src/libiconv-VERSION-bin |
---|
| 26 | $ unzip .../path/to/libiconv-VERSION-bin.zip |
---|
| 27 | $ cd /usr/local/src/libiconv-VERSION-lib |
---|
| 28 | $ unzip .../path/to/libiconv-VERSION-lib.zip |
---|
| 29 | |
---|
| 30 | |
---|
| 31 | Building |
---|
| 32 | -------- |
---|
| 33 | |
---|
| 34 | Review the top level RegLookup Makefile to ensure the settings match |
---|
| 35 | your environment. Find the conditional block which looks like: |
---|
| 36 | |
---|
| 37 | ################################################################################ |
---|
| 38 | # MinGW cross-compiling build settings |
---|
| 39 | ifdef BUILD_MINGW |
---|
| 40 | |
---|
| 41 | ## These may need to be changed |
---|
| 42 | CC=i586-mingw32msvc-cc |
---|
| 43 | LIBICONV_PATH=/usr/local/src/libiconv-1.9.2-1-lib |
---|
| 44 | |
---|
| 45 | ## These probably do not need to be changed |
---|
| 46 | BIN_EXT=.exe |
---|
| 47 | INC:=$(INC) -I$(LIBICONV_PATH)/include |
---|
| 48 | EXTRA_OBJ=$(LIBICONV_PATH)/lib/libiconv.dll.a |
---|
| 49 | |
---|
| 50 | endif |
---|
| 51 | ################################################################################ |
---|
| 52 | |
---|
| 53 | |
---|
| 54 | If either the CC or LIBICONV_PATH settings are incorrect for your |
---|
| 55 | system, either update the Makefile, or override these options at build |
---|
| 56 | time when you run make. For instance, the above settings in the |
---|
| 57 | Makefile are correct, you can execute the build by running: |
---|
| 58 | |
---|
| 59 | $ make BUILD_MINGW=1 |
---|
| 60 | |
---|
| 61 | Alternatively, you may override the variables above with: |
---|
| 62 | |
---|
| 63 | $ make BUILD_MINGW=1 CC=my-mingw-binary LIBICONV_PATH=.../path/to/libiconv-VERSION-lib |
---|
| 64 | |
---|
| 65 | Once the build is complete, you'll find the .exe files under the |
---|
| 66 | build/bin directory. |
---|
| 67 | |
---|
| 68 | |
---|
| 69 | Installation |
---|
| 70 | ------------ |
---|
| 71 | Naturally, there is no install Makefile target for the MinGW build |
---|
| 72 | process, since we aren't installing on the local system. To install |
---|
| 73 | these binaries on a Windows machine, simply copy over the reglookup.exe |
---|
| 74 | and reglookup-recover.exe files from the build/bin directory to the |
---|
| 75 | desired host. In addition, you will need to install the libiconv2.dll |
---|
| 76 | file on that host (either in the same directory as the reglookup |
---|
| 77 | executables, or somewhere in the DLL search path). This file is |
---|
| 78 | available in the libiconv-VERSION-bin.zip file you downloaded earlier, |
---|
| 79 | under the `bin' subdirectory. |
---|
| 80 | |
---|