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

Binary file not shown.