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
GPP=g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -MMD LUPREX_EXE=luprex
LIB_SSL=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto LUPREXLIB_DLL=luprexlib.so
LIB_OS=-ldl LUPREXSTATIC_EXE=luprexstatic
MAKEDEPS=true
all: luprex luprexlib.so luprexstatic 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
luprex: $(OBJ_DRV) luprexlib.so LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
$(GPP) $(OBJ_DRV) $(LIB_SSL) $(LIB_OS) -o $@ OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_USE_POSIX
luprexlib.so: $(OBJ_ERIS) $(OBJ_CORE) LIBS=-L./ext/openssl-3.0.1/lib/linux -lssl -lcrypto -ldl
$(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
GPP=g++ -Wall -fvisibility=hidden $(OPT) -std=c++17 -MMD LUPREX_EXE=luprex.exe
LUPREXLIB_DLL=luprexlib.dll
luprex.exe: $(OBJ_DRV) driver-windows.o luprexlib.dll LUPREXSTATIC_EXE=luprexstatic.exe
$(GPP) -o $@ $(OBJ_DRV) driver-windows.o -L./ext/openssl-mingw -lssl -lcrypto -lws2_32 -lcrypt32 -lcryptui MAKEDEPS=true
ext/cv2pdb.exe luprex.exe 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
luprexlib.dll: $(OBJ_ERIS) $(OBJ_CORE) LINKEXE=g++ -Wall $(OPT) -std=c++17 -o
$(GPP) -Wl,--no-allow-shlib-undefined -shared -o $@ $^ OPENSSL_INCLUDE=-I./ext/openssl-3.0.1/inc
ext/cv2pdb.exe luprexlib.dll LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
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 endif
OPT=/Od /Zi OPT=/Od /Zi
MMD=g++ -Wall -std=c++17 -MMD -E LUPREX_EXE=luprex.exe
CL=CL $(OPT) /std:c++17 /EHsc /nologo /MD /TP /c LUPREXLIB_DLL=luprexlib.dll
LINK=CL $(OPT) /std:c++17 /EHsc /nologo LUPREXSTATIC_EXE=luprexstatic.exe
LIB_SSL=ext/openssl-3.1.0/lib/visual/libcrypto.lib ext/openssl-3.1.0/lib/visual/libssl.lib MAKEDEPS=g++ -Wall -std=c++17 -MMD -E -o
LIB_OS=ws2_32.lib crypt32.lib cryptui.lib user32.lib advapi32.lib COMPILE=CL $(OPT) /std:c++17 /EHsc /nologo /MD /TP /c /Fo:
LINKDLL=CL $(OPT) /std:c++17 /EHsc /nologo /LDd /Fe:
all: luprex.exe luprexlib.dll luprexstatic.exe LINKEXE=CL $(OPT) /std:c++17 /EHsc /nologo /Fe:
OPENSSL_INCLUDE=-I./ext/openssl-3.1.0/inc
luprex.exe: luprexlib.dll $(OBJ_DRV) LUA_FLAGS=-DLUA_USE_APICHECK -DLUA_COMPAT_ALL
$(LINK) /Fe: $@ $(OBJ_DRV) $(LIB_SSL) $(LIB_OS) 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
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)
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: $@ $<
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: $@ $<
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 endif
####################################################################### #######################################################################
## ##
## Common Make Rules ## Make Rules
## ##
####################################################################### #######################################################################
all: $(LUPREX_EXE) $(LUPREXSTATIC_EXE) $(LUPREXLIB_DLL)
####################################################################### $(LUPREX_EXE): $(LUPREXLIB_DLL) $(OBJ_DRV)
## $(LINKEXE) $@ $(OBJ_DRV) $(LIBS)
## Make Clean, deliberately OS independent
## $(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
$(MAKEDEPS) $@d $(LUA_FLAGS) $<
$(COMPILE) $@ $(LUA_FLAGS) $<
obj/core/%.obj: cpp/core/%.cpp
$(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
$(MAKEDEPS) $@d $(OPENSSL_INCLUDE) -I./src/drv $<
$(COMPILE) $@ $(OPENSSL_INCLUDE) -I./src/drv $<
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.