Makefile now working for mingw and visual
This commit is contained in:
143
luprex/Makefile
143
luprex/Makefile
@@ -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/*.*
|
||||
|
||||
#######################################################################
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user