summaryrefslogtreecommitdiffhomepage
path: root/ntapi.lzy
diff options
context:
space:
mode:
Diffstat (limited to 'ntapi.lzy')
-rw-r--r--ntapi.lzy113
1 files changed, 113 insertions, 0 deletions
diff --git a/ntapi.lzy b/ntapi.lzy
new file mode 100644
index 0000000..8ce26c8
--- /dev/null
+++ b/ntapi.lzy
@@ -0,0 +1,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
+}