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