view doc/README.Windows @ 533:71c884e610f0

- integration of patches from Raphael Luba, Thekla, Inc.: * integration of aggregate-by-value (struct, union) support patch for x64 (win and sysv) * windows/x64 asm additions to specify how stack unwinds (help for debuggers, exception handling, etc.) * see Changelog for details - new calling convention modes for thiscalls (platform agnostic, was specific before) * new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL) - dcCallF(), dcVCallF(), dcArgF() and dcVArgF(): * added support for aggregates-by-value (wasn't part of patch) * change that those functions don't implicitly call dcReset() anymore, which was unflexible (breaking change) - added macros to feature test implementation for aggregate-by-value and syscall support - changed libdyncall_s.lib and libdyncallback_s.lib order in callback test makefiles, as some toolchains are picky about order - doc: * man page updates to describe aggregate interface * manual overview changes to highlight platforms with aggregate-by-value support - test/plain: replaced tests w/ old/stale sctruct interface with new aggregate one
author Tassilo Philipp
date Thu, 21 Apr 2022 13:35:47 +0200
parents 451299d50c1a
children
line wrap: on
line source

Bulding DynCall on Windows
==========================


Build using buildsys/nmake and MS Visual Studio Tools:
------------------------------------------------------

  32-bit:
    vcvarsall.bat x86
    .\configure.bat /target-x86
    nmake /f Nmakefile

  64-bit:
    vcvarsall.bat amd64
    .\configure.bat /target-x64
    nmake /f Nmakefile

  Build/run tests:
    cd test
    nmake /f Nmakefile
    
    NOTE: if you encounter 'python'/'lua' not found messages (which is 
     executed mistakenly for re-generation of test C code)
     timestamps are wrong; workaround: run "svn revert -R ." several times.


Build using buildsys/gmake and MinGW or Cygwin:
-----------------------------------------------

  32-bit:
    .\configure.bat /target-x86 /tool-gcc
    make

  64-bit:
    .\configure.bat /target-x64 /tool-gcc
    make


Build using Makefile.embedded and MinGW or Cygwin:
--------------------------------------------------

    > mingw32-make -f Makefile.embedded
    $ make -f Makefile.embedded CC=gcc


Build using CMake and Nmake:
----------------------------

  Put the appropriate tool-chain in path (32 or 64-bit version of MSVC), then:
  
    cmake -G "NMake Makefiles" %DYNCALL_SOURCE_DIR%
    nmake


Build using CMake and Visual Studio:
------------------------------------
 
  32-bit:
    cmake .
    open DynCall.sln

  BROKEN: SAFE EH.

  BROKEN: Rules to assemble MASM files are still missing.


Build ARM64 using CMake and Visual Studio 2019:
-----------------------------------------------

   vcvarsall.bat amd64_arm64
   mkdir build && cd build
   cmake -G "Visual Studio 16 2019" -A ARM64 ..
   cmake --build . --config Release