blob: 8ce26c891b36dd24e4ee7485e8dedadbb211b288 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
lz_project_rules()
{
lz_rules="all install"
}
lz_project_definitions()
{
ntapi_lib_name=libntapi
ntapi_so_name="$lz_build_dir/lib/$ntapi_lib_name$lz_dylib_ext"
ntapi_a_name="$lz_build_dir/lib/$ntapi_lib_name$lz_stlib_ext"
ntapi_so_def_name="$lz_build_dir/lib/$ntapi_lib_name$lz_libdef_ext"
ntapi_implib_name="$lz_build_dir/lib/$ntapi_lib_name$lz_implib_ext"
lz_cflags_common="-DMIDIPIX_FREESTANDING
-D__NT$lz_arch_bits \
-UWIN32 -U_WIN32 -U__WIN32 -U__WIN32__ \
-UWIN64 -U_WIN64 -U__WIN64 -U__WIN64__ \
-Werror=all -fno-builtin -ffreestanding"
# lz_cflags_extra="-Os -fno-stack-protector -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables"
ntapi_so_ldflags="-shared --image-base=0x800000 \
--entry "$lz_default_underscore"__ntapi_entry@12 \
--exclude-all-symbols \
--output-def $ntapi_so_def_name \
--out-implib $ntapi_implib_name \
--subsystem=windows"
lz_cflags_include_first="-I$lz_project_dir/src/internal -I$lz_project_dir/include"
if [ "$MIDIPIX_ROOT"x != x ]; then
lz_cflags_include_common="$lz_cflags_include_common -I$MIDIPIX_ROOT/include"
fi
ntapi_so_obj_list=ntapi.so.objs
ntapi_so_src_list=ntapi.so.src.lst
ntapi_a_obj_list=ntapi.a.objs
ntapi_a_src_list=ntapi.a.src.lst
}
ntapi_shared()
{
lz_src_dirs="src"
lz_cflags_step="-DNTAPI_BUILD \
-DPE_SHARED \
-DDALIST_SHARED"
if ! [ "$lz_pecoff_winnt"x = yesx ]; then
lz_cflags_step="$lz_cflags_step -fpic"
fi
lz_compile "$ntapi_so_obj_list" "$ntapi_so_src_list" "$lz_dyobj_ext"
lz_link "$ntapi_so_obj_list" "$ntapi_so_src_list" "$ntapi_so_name" \
"$ntapi_so_ldflags" \
"$lz_ldflags_cmdline -lpemagine -ldalist"
}
ntapi_static()
{
lz_src_dirs="src"
lz_compile "$ntapi_a_obj_list" "$ntapi_a_src_list" "$lz_stobj_ext"
lz_archive "$ntapi_a_obj_list" "$ntapi_a_src_list" "$ntapi_a_name"
}
ntapi_install_headers()
{
lz_pushd $lz_project_dir
cp -r -t $lz_prefix/include include/$lz_project_name
lz_popd
}
ntapi_install_shared()
{
lz_pushd $lz_build_dir/lib
cp -t $lz_prefix/lib $ntapi_lib_name$lz_dylib_ext
cp -t $lz_prefix/lib $ntapi_lib_name$lz_implib_ext
lz_popd
}
ntapi_install_static()
{
lz_pushd $lz_build_dir/lib
cp -t $lz_prefix/lib $ntapi_lib_name$lz_stlib_ext
lz_popd
}
ntapi_all()
{
lz_step ntapi_shared
lz_step ntapi_static
}
ntapi_install()
{
lz_step ntapi_all
lz_step ntapi_install_shared
lz_step ntapi_install_static
lz_step ntapi_install_headers
}
|