From dd89bb8ad4fe184a34b5dbdda237e640fc82121b Mon Sep 17 00:00:00 2001 From: midipix Date: Mon, 27 Jul 2015 04:01:18 -0400 Subject: entered advanced internal development stage. --- ntapi.lzy | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 ntapi.lzy (limited to 'ntapi.lzy') 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 +} -- cgit v1.2.3