From 27cc764bda53e2e4d7a8d91e6b1b14735808b2d3 Mon Sep 17 00:00:00 2001 From: Andreas Drewke Date: Wed, 1 Jan 2025 20:36:44 +0100 Subject: [PATCH] port-msc: some WIP --- Makefile.nmake | 55 ++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/Makefile.nmake b/Makefile.nmake index 3dbc4ff..ef618ff 100644 --- a/Makefile.nmake +++ b/Makefile.nmake @@ -1,8 +1,9 @@ MSCOBJ = mscobj +MSCOBJMAIN = mscobjmain MSCBIN = mscbin -SRCS_PLATFORM = \ - src/yannet/os/network/platform/fallback/KernelEventMechanism.cpp +NAME = yannet +LIBNAME = lib$(NAME) INCLUDES = \ /I "src" \ @@ -12,19 +13,20 @@ INCLUDES = \ # WINDOWS_SDK_DIR = %WindowsSdkDir%Lib\%WindowsSDKLibVersion% WINDOWS_SDK_DIR = C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0 -MAIN_LDFLAGS = \ - /LIBPATH $(MSCBIN)\libyannet.lib - +MAIN_LDFLAGS = /LIBPATH $(MSCBIN)\$(LIBNAME).lib LIBS_LDFLAGS = \ - /LIBPATH "$(WINDOWS_SDK_DIR)\um\x64\user32.lib" \ /LIBPATH "$(WINDOWS_SDK_DIR)\um\x64\ws2_32.lib" \ - /LIBPATH "$(WINDOWS_SDK_DIR)\um\x64\dbghelp.lib" + /LIBPATH "ext\windows-msc\openssl\lib\libcrypto.lib" \ + /LIBPATH "ext\windows-msc\openssl\lib\libssl.lib" FLAGS = /MT /MP /EHsc /O2 /std:c++20 /Zi /F 10485760 # /NODEFAULTLIB:msvcrt LD_FLAGS = +SRCS_PLATFORM = \ + src/yannet/os/network/platform/fallback/KernelEventMechanism.cpp + SRC = src SRCS = \ @@ -70,8 +72,10 @@ SRCS = \ $(SRCS_PLATFORM) all: \ - init compile link1 link2 clean-obj \ - init-mains \ + init \ + compile \ + link1 \ + link2 \ HTTPClientTest \ HTTPDownloadClientTest \ ThreadingTest \ @@ -81,37 +85,36 @@ all: \ clean init: + mkdir $(MSCBIN) mkdir $(MSCOBJ) - -init-mains: - mkdir $(MSCOBJ) + mkdir $(MSCOBJMAIN) compile: $(SRCS) - cl /D YANNET_DLL_EXPORT /D YANNET_DLL_IMPORT /Fo$(MSCOBJ)/ /c $(FLAGS) $(INCLUDES) $** + cl /Fo$(MSCOBJ)/ /c $(FLAGS) $(INCLUDES) $** link1: $(MSCOBJ)/*.obj - lib $(LD_FLAGS) /OUT:$(MSCBIN)\libyannet.lib $** - dumpbin /LINKERMEMBER $(MSCBIN)\libyannet.lib > $(MSCBIN)\libyannet.def.dumpbin.linkermember - .\ext\windows-msc\tools\msclib2dll.exe $(MSCBIN)\libyannet.def.dumpbin.linkermember - del $(MSCBIN)\libyannet.lib + lib $(LD_FLAGS) /OUT:$(MSCBIN)\$(LIBNAME).lib $** + dumpbin /LINKERMEMBER $(MSCBIN)\$(LIBNAME).lib > $(MSCBIN)\$(LIBNAME).def.dumpbin.linkermember + .\ext\windows-msc\tools\msclib2dll.exe $(MSCBIN)\$(LIBNAME).def.dumpbin.linkermember + del $(MSCBIN)\$(LIBNAME).lib link2: $(MSCOBJ)/*.obj - .\ext\windows-msc\tools\createrc.exe resources/platforms/win32/lib.rc libyannet.dll $(MSCBIN)\libyannet.dll.rc - rc $(MSCBIN)\libyannet.dll.rc - echo LIBRARY $(MSCBIN)\libyannet.dll > $(MSCBIN)\libyannet.def - type $(MSCBIN)\libyannet.def.dumpbin.linkermember.def >> $(MSCBIN)\libyannet.def - link $(LD_FLAGS) /DLL /DEF:$(MSCBIN)\libyannet.def /DEBUG /IGNORE:4197 /IGNORE:4102 $** $(MSCBIN)\libyannet.dll.res $(LIBS_LDFLAGS) /OUT:$(MSCBIN)\libyannet.dll + .\ext\windows-msc\tools\createrc.exe resources/platforms/win32/lib.rc $(LIBNAME).dll $(MSCBIN)\$(LIBNAME).dll.rc + rc $(MSCBIN)\$(LIBNAME).dll.rc + echo LIBRARY $(MSCBIN)\$(LIBNAME).dll > $(MSCBIN)\$(LIBNAME).def + type $(MSCBIN)\$(LIBNAME).def.dumpbin.linkermember.def >> $(MSCBIN)\$(LIBNAME).def + link $(LD_FLAGS) /DLL /DEF:$(MSCBIN)\$(LIBNAME).def /IGNORE:4102 $** $(MSCBIN)\$(LIBNAME).dll.res $(LIBS_LDFLAGS) /OUT:$(MSCBIN)\$(LIBNAME).dll + del /S /Q $(MSCOBJ) >nul 2>&1 + if exist $(MSCOBJ) rmdir $(MSCOBJ) clean: del /S /Q $(MSCOBJ) >nul 2>&1 if exist $(MSCOBJ) rmdir $(MSCOBJ) + del /S /Q $(MSCOBJMAIN) >nul 2>&1 + if exist $(MSCOBJMAIN) rmdir $(MSCOBJMAIN) del /S /Q $(MSCBIN) >nul 2>&1 if exist $(MSCBIN) rmdir $(MSCBIN) -clean-obj: - del /S /Q $(MSCOBJ) >nul 2>&1 - if exist $(MSCOBJ) rmdir $(MSCOBJ) - HTTPClientTest: .\ext\windows-msc\tools\createrc.exe resources/platforms/win32/app.rc HTTPClientTest.exe $(MSCBIN)\HTTPClientTest.exe.rc rc $(MSCBIN)\HTTPClientTest.exe.rc