Building and Installing ACE on Win32 with MinGW/ MSYS
If you are building for a machine without a network card, you may want to check here first.
Building and installing ACE on MinGW uses a mix of a UNIX building process and Win32 configuration files. Also, as MinGW uses GNU g++, you may want to take a look at the Compiling ACE with GNU g++ section.
You will need the MinGW build tools and libraries, downloable from http://www.mingw.org.
For our build we require the packages MinGW and MSYS.
- Install the MinGW tools (including the MinGW Development toolkit) into a common directory, say c:/mingw.
- Install the MSYS tools into a common directory, say c:/msys.
- Open a MSYS shell. Set your PATH environment variable so your MinGW's bin directory is first:
% export PATH=/c/mingw/bin:$PATH
- Add an ACE_ROOT environment variable pointing to the root of your ACE wrappers source tree:
% export ACE_ROOT=/c/work/mingw/ACE_wrappers
- Create a file called config.h in the $ACE_ROOT/ace directory that contains:
#include "ace/config-win32.h"
- Create a file called platform_macros.GNU in the $ACE_ROOT/include/makeinclude directory containing:
include $(ACE_ROOT)/include/makeinclude/platform_mingw32.GNU
If you lack Winsock 2, add the line
winsock2 = 0
If you want to install ACE (using "make install") and want all the .pc files generated, set the installation prefix in platform_macros.GNU.
INSTALL_PREFIX=/c/ACE
- In the MSYS shell, change to the $ACE_ROOT/ace directory and run make:
% cd $ACE_ROOT/ace % make
This should create libACE.dll (the Win32 shared library) and libACE.dll.a (the Win32 import library for the DLL). Note that the name for the ACE DLL follows the MinGW convention, which itself resembles UNIX.
If you want static libs also, you may run:
% make static_libs=1
- Run make install:
% make install
This should create ACE.pc to use with pkg-config.
- The same rules for Win32 search of DLLs apply for MinGW. If you want to run some ACE programs from the MSYS shell, you may need to add the directory for libACE.dll to your PATH:
% export PATH=/c/work/mingw/ACE_wrappers/ace:$PATH
% cd $ACE_ROOT/tests % make
Once you build all the tests, you can run run_tests.pl
in the tests
directory to try all the tests:
% perl run_test.pl
If you are using ACE as a DLL, you will need to modify your PATH variable as explained above.
You may want to check $ACE_ROOT/tests/README for the status of the various tests on MinGW and the different Windows flavors.