Blame doc/README_win32.txt

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.