|
Packit |
fe9d6e |
Most of the atomic_ops functionality is available under Win32 with
|
|
Packit |
fe9d6e |
the Microsoft tools, but the build process currently is considerably more
|
|
Packit |
fe9d6e |
primitive than on Linux/Unix platforms.
|
|
Packit |
fe9d6e |
|
|
Packit |
fe9d6e |
To build:
|
|
Packit |
fe9d6e |
|
|
Packit |
fe9d6e |
1) Go to the src directory in the distribution.
|
|
Packit |
fe9d6e |
2) Make sure the Microsoft command-line tools (e.g. nmake) are available.
|
|
Packit |
fe9d6e |
3) Run "nmake -f Makefile.msft". This should run some tests, which
|
|
Packit |
fe9d6e |
may print warnings about the types of the "Interlocked" functions.
|
|
Packit |
fe9d6e |
I haven't been able to make all versions of VC++ happy. If you know
|
|
Packit |
fe9d6e |
how to, please send a patch.
|
|
Packit |
fe9d6e |
4) To compile applications, you will need to retain or copy the following
|
|
Packit |
fe9d6e |
pieces from the resulting src directory contents:
|
|
Packit |
fe9d6e |
"atomic_ops.h" - Header file defining low-level primitives. This
|
|
Packit |
fe9d6e |
includes files from:
|
|
Packit |
fe9d6e |
"atomic_ops"- Subdirectory containing implementation header files.
|
|
Packit |
fe9d6e |
"atomic_ops_stack.h" - Header file describing almost lock-free stack.
|
|
Packit |
fe9d6e |
"atomic_ops_malloc.h" - Header file describing almost lock-free malloc.
|
|
Packit |
fe9d6e |
"libatomic_ops_gpl.lib" - Library containing implementation of the
|
|
Packit |
fe9d6e |
above two (plus AO_pause() defined in atomic_ops.c).
|
|
Packit |
fe9d6e |
The atomic_ops.h implementation is entirely in the
|
|
Packit |
fe9d6e |
header files in Win32.
|
|
Packit |
fe9d6e |
|
|
Packit |
fe9d6e |
If the client defines AO_ASSUME_VISTA (before include atomic_ops.h), it should
|
|
Packit |
fe9d6e |
make double_compare_and_swap_full available.
|
|
Packit |
fe9d6e |
|
|
Packit |
fe9d6e |
Note that the library is covered by the GNU General Public License, while
|
|
Packit |
fe9d6e |
the top 2 of these pieces allow use in proprietary code.
|