Skip to content

Commit

Permalink
port-msc: some WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
andreasdr committed Jan 1, 2025
1 parent 90074f5 commit 27cc764
Showing 1 changed file with 29 additions and 26 deletions.
55 changes: 29 additions & 26 deletions Makefile.nmake
Original file line number Diff line number Diff line change
@@ -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" \
Expand All @@ -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 = \
Expand Down Expand Up @@ -70,8 +72,10 @@ SRCS = \
$(SRCS_PLATFORM)

all: \
init compile link1 link2 clean-obj \
init-mains \
init \
compile \
link1 \
link2 \
HTTPClientTest \
HTTPDownloadClientTest \
ThreadingTest \
Expand All @@ -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
Expand Down

0 comments on commit 27cc764

Please sign in to comment.