Makefile now working for mingw and visual

This commit is contained in:
2023-05-09 23:24:25 -04:00
parent 6c8ceeb039
commit f1c42156d1
3 changed files with 56 additions and 89 deletions

View File

@@ -108,34 +108,18 @@ OBJ_DRV=\
##
#######################################################################
ifeq "$(OS)" "linux"
OPT=-g -O0
GPP=g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -MMD
LIB_SSL=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto
LIB_OS=-ldl
all: luprex luprexlib.so luprexstatic
luprex: $(OBJ_DRV) luprexlib.so
$(GPP) $(OBJ_DRV) $(LIB_SSL) $(LIB_OS) -o $@
luprexlib.so: $(OBJ_ERIS) $(OBJ_CORE)
$(GPP) -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o $@ $^
luprexstatic: $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE)
$(GPP) $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE) $(LIB_SSL) $(LIB_OS) -o $@
obj/eris/%.obj: ext/eris-master/src/%.c
$(GPP) -fPIC -DLUA_USE_APICHECK -DLUA_USE_POSIX -o $@ -c $<
obj/core/%.obj: cpp/core/%.cpp
$(GPP) -fPIC -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -o $@ -c $<
obj/drv/%.obj: cpp/drv/%.cpp
$(GPP) -I./ext -I./src/drv -o $@ -c $<
OPT=-g -O0
LUPREX_EXE=luprex
LUPREXLIB_DLL=luprexlib.so
LUPREXSTATIC_EXE=luprexstatic
MAKEDEPS=true
COMPILE=g++ -Wall $(OPT) -std=c++17 -fvisibility=hidden -c -MMD -fPIC -o
LINKDLL=g++ -Wall $(OPT) -std=c++17 -export-dynamic -Wl,--no-allow-shlib-undefined -Wl,-z,defs -shared -o
LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_USE_POSIX
LIBS=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
endif
@@ -146,27 +130,17 @@ endif
#######################################################################
ifeq "$(OS)" "mingw"
OPT=-g -O0
GPP=g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -MMD
luprex.exe: $(OBJ_DRV) driver-windows.o luprexlib.dll
$(GPP) -o $@ $(OBJ_DRV) driver-windows.o -L./ext/openssl-mingw -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui
ext/cv2pdb.exe luprex.exe
luprexlib.dll: $(OBJ_ERIS) $(OBJ_CORE)
$(GPP) -Wl,--no-allow-shlib-undefined -shared -o $@ $^
ext/cv2pdb.exe luprexlib.dll
obj/eris/%.obj: ext/eris-master/src/%.c
$(GPP) -fPIC -DLUA_USE_APICHECK -DLUA_COMPAT_ALL -o $@ -c $<
obj/core/%.obj: cpp/core/%.cpp
$(GPP) -fPIC -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -o $@ -c $<
obj/drv/%.obj: cpp/drv/%.cpp
$(GPP) -I./ext -I./src/drv -o $@ -c $<
OPT=-g -O0
LUPREX_EXE=luprex.exe
LUPREXLIB_DLL=luprexlib.dll
LUPREXSTATIC_EXE=luprexstatic.exe
MAKEDEPS=true
COMPILE=g++ -Wall $(OPT) -std=c++17 -fvisibility=hidden -c -MMD -fPIC -o
LINKDLL=g++ -Wall $(OPT) -std=c++17 -Wl,--no-allow-shlib-undefined -shared -o
LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
LIBS=-L./ext/openssl-3.0.1/lib/mingw -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui
endif
@@ -177,60 +151,53 @@ endif
#######################################################################
ifeq "$(OS)" "visual"
ifeq "" "$(VSINSTALLDIR)"
$(error You must use vcvars64.bat to set up the visual studio environment variables)
ifeq "" "$(VSINSTALLDIR)"
$(error You must use vcvars64.bat to set up the visual studio environment variables)
endif
OPT=/Od /Zi
LUPREX_EXE=luprex.exe
LUPREXLIB_DLL=luprexlib.dll
LUPREXSTATIC_EXE=luprexstatic.exe
MAKEDEPS=g++ -Wall -std=c++17 -MMD -E -o
COMPILE=CL $(OPT) /std:c++17 /EHsc /nologo /MD /TP /c /Fo:
LINKDLL=CL $(OPT) /std:c++17 /EHsc /nologo /LDd /Fe:
LINKEXE=CL $(OPT) /std:c++17 /EHsc /nologo /Fe:
OPENSSL_INCLUDE=-I./ext/openssl-3.1.0/inc
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
LIBS=ext/openssl-3.1.0/lib/visual/libcrypto.lib ext/openssl-3.1.0/lib/visual/libssl.lib ws2_32.lib crypt32.lib cryptui.lib user32.lib advapi32.lib
endif
OPT=/Od /Zi
MMD=g++ -Wall -std=c++17 -MMD -E
CL=CL $(OPT) /std:c++17 /EHsc /nologo /MD /TP /c
LINK=CL $(OPT) /std:c++17 /EHsc /nologo
LIB_SSL=ext/openssl-3.1.0/lib/visual/libcrypto.lib ext/openssl-3.1.0/lib/visual/libssl.lib
LIB_OS=ws2_32.lib crypt32.lib cryptui.lib user32.lib advapi32.lib
#######################################################################
##
## Make Rules
##
#######################################################################
all: luprex.exe luprexlib.dll luprexstatic.exe
all: $(LUPREX_EXE) $(LUPREXSTATIC_EXE) $(LUPREXLIB_DLL)
luprex.exe: luprexlib.dll $(OBJ_DRV)
$(LINK) /Fe: $@ $(OBJ_DRV) $(LIB_SSL) $(LIB_OS)
$(LUPREX_EXE): $(LUPREXLIB_DLL) $(OBJ_DRV)
$(LINKEXE) $@ $(OBJ_DRV) $(LIBS)
luprexlib.dll: $(OBJ_ERIS) $(OBJ_CORE)
$(LINK) /LDd /Fe: $@ $^
luprexstatic.exe: $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE)
$(LINK) /Fe: $@ $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE) $(LIB_SSL) $(LIB_OS)
$(LUPREXSTATIC_EXE): $(OBJ_DRV) $(OBJ_ERIS) $(OBJ_CORE)
$(LINKEXE) $@ $^ $(LIBS)
$(LUPREXLIB_DLL): $(OBJ_ERIS) $(OBJ_CORE)
$(LINKDLL) $@ $^
obj/eris/%.obj: ext/eris-master/src/%.c
$(GPCL) -DLUA_USE_APICHECK -DLUA_COMPAT_ALL -o $@d $<
$(VCCL) /DLUA_USE_APICHECK /DLUA_COMPAT_ALL /Fo: $@ $<
$(MAKEDEPS) $@d $(LUA_FLAGS) $<
$(COMPILE) $@ $(LUA_FLAGS) $<
obj/core/%.obj: cpp/core/%.cpp
$(GPCL) -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core -o $@d $<
$(VCCL) /I./ext/eris-master/src /I./cpp\wrap /I./cpp/core /Fo: $@ $<
$(MAKEDEPS) $@d -I./ext/eris-master/src -I./cpp/wrap -I./cpp/core $<
$(COMPILE) $@ -I./ext/eris-master/src -I./cpp\wrap -I./cpp/core $<
obj/drv/%.obj: cpp/drv/%.cpp
$(GPCL) -I./ext/openssl-3.1.0/inc -I./src/drv -o $@d $<
$(VCCL) /I./ext/openssl-3.1.0/inc -I./src/drv /Fo: $@ $<
endif
#######################################################################
##
## Common Make Rules
##
#######################################################################
#######################################################################
##
## Make Clean, deliberately OS independent
##
#######################################################################
$(MAKEDEPS) $@d $(OPENSSL_INCLUDE) -I./src/drv $<
$(COMPILE) $@ $(OPENSSL_INCLUDE) -I./src/drv $<
clean:
rm -f luprex luprex.exe luprexlib.so luprexlib.dll luprexstatic luprexstatic.exe *.ilk *.exp *.pdb obj/core/*.* obj/drv/*.* obj/eris/*.*
rm -f luprex luprexstatic *.exe *.so *.dll *.ilk *.exp *.pdb *.lib obj/core/*.* obj/drv/*.* obj/eris/*.*
#######################################################################
##

View File

@@ -1,7 +1,7 @@
#if defined(__linux__)
#include "driver-linux.cpp"
#elif defined(WIN32)
#elif defined(_WIN32)
#include "driver-windows.cpp"
#endif

Binary file not shown.