| 59 | === MinGW and Dev-C++ === |
| 60 | |
| 61 | If you can't or don't want to use Visual Studio to build applications, |
| 62 | the easiest alternative is |
| 63 | [http://www.bloodshed.net/devcpp.html Dev-C++], an open-source development environment based on the GCC compilers. |
| 64 | Use the MinGW compile option. |
| 65 | |
| 66 | The boinc/lib and boinc/api directories contains makefiles ('''Makefile.mingw''') |
| 67 | for building the respective libraries. |
| 68 | |
| 69 | SETI@home uses Dev-C++ for its Windows build; |
| 70 | you can get the project file |
| 71 | [https://setisvn.ssl.berkeley.edu/trac/browser/seti_boinc/client/win_build/seti_boinc.dev here]. |
| 72 | |
61 | | [http://www.cygwin.com/ Cygwin] is an alternative to Visual Studio for building Windows apps. |
62 | | In order to run a cygwin application from BOINC, |
63 | | you need to supply all the cygwin DLLs that the application requires |
64 | | in addition to the executable. |
65 | | You can get LISTDLLS from http://www.sysinternals.com/. |
66 | | It will tell you what DLLs a running executable has loaded. |
67 | | |
68 | | Note that Cygwin is GPL software. |
69 | | If you link to the cygwin DLL, |
70 | | then either your application has to be GPL as well, |
71 | | or you will have to buy a commercial license from Red Hat. |
72 | | |
73 | | TODO: develop a Makefile for building example_app under Cygwin. |
74 | | It can assume that the libraries in boinc/lib and boinc/api have already been built. |
75 | | Verify that _autosetup/configure/make work in boinc/. |
76 | | |
| 75 | [http://www.cygwin.com/ Cygwin] may be another alternative for building Windows apps. |
| 76 | There are several issues: |
| 77 | |
| 78 | * If you build the API library directly, it will use use shared memory |
| 79 | to communicate with the BOINC client. |
| 80 | This won't work if you use the standard Windows client, |
| 81 | which uses memory-mapped files rather than shared memory. |
| 82 | * In order to run a cygwin application from BOINC, |
| 83 | you need to supply all the cygwin DLLs that the application requires |
| 84 | in addition to the executable. |
| 85 | You can get LISTDLLS from http://www.sysinternals.com/. |
| 86 | It will tell you what DLLs a running executable has loaded. |
| 87 | * Cygwin is GPL software. |
| 88 | If you link to the cygwin DLL, |
| 89 | then either your application has to be GPL as well, |
| 90 | or you will have to buy a commercial license from Red Hat. |
| 91 | |
| 92 | However, it can be done. |