annotate dyncall/Nmakefile @ 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 d18f1a65e34f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 #//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 # Copyright (c) 2007,2009 Daniel Adler <dadler@uni-goettingen.de>,
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 # Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
6 # Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 # purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8 # copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
9 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 #//////////////////////////////////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 #///////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 # nmake makefile
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23 # Nmakefile
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 #
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25 #///////////////////////////////////////////////////
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 TOP=..
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 !INCLUDE $(TOP)\buildsys\nmake\prolog.nmake
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 !IF "$(BUILD_OS)" == "windows"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34
400
d18f1a65e34f windows lib name consistency changes for nmake builds
Tassilo Philipp
parents: 0
diff changeset
35 TARGETS = dyncall_s.lib #dyncall.lib dyncall.dll
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36
533
71c884e610f0 - integration of patches from Raphael Luba, Thekla, Inc.:
Tassilo Philipp
parents: 400
diff changeset
37 OBJS = dyncall_call_$(BUILD_ARCH)_generic_masm.obj dyncall_vector.obj dyncall_vector.obj dyncall_callvm.obj dyncall_callvm_base.obj dyncall_api.obj dyncall_callf.obj dyncall_aggregate.obj
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38
400
d18f1a65e34f windows lib name consistency changes for nmake builds
Tassilo Philipp
parents: 0
diff changeset
39 dyncall_s.lib: $(OBJS)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40 echo Creating library $@ ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
41 $(AR) $(ARFLAGS) /OUT:"$@" $(OBJS) > nul
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
42
400
d18f1a65e34f windows lib name consistency changes for nmake builds
Tassilo Philipp
parents: 0
diff changeset
43 dyncall.dll dyncall.lib: $(OBJS)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
44 echo Creating shared/import library $@ ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
45 $(LD) /DLL $(LDFLAGS) $(OBJS) > nul
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
46
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
47
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
48 !ELSE IF "$(BUILD_OS)" == "nds"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50 TARGETS = libdyncall_s.a
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 OBJS = dyncall_call.o dyncall_vector.o dyncall_vector.o dyncall_callvm.o dyncall_callvm_base.o dyncall_api.o dyncall_callf.o
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 libdyncall_s.a: $(OBJS)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 echo Creating library $@ ...
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 $(AR) -rc $(ARFLAGS) "$@" $(OBJS)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 !ENDIF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 !INCLUDE $(TOP)\buildsys\nmake\epilog.nmake
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62