Проблема генерации библиотеки через makefile
У меня есть 2 мейкфайла для двух похожих проектов. Мейкфайлы собирают библиотеку, но один из них выдают ошибку при работе с mingw на неправильную линковку (undefined reference). А второй отлично работает с mvsc и mingw компилятором. Что нужно поменять в мейкфайле, что бы библиотека потом компилировалась на обеих компиляторах.
Плохой .makefile:
COMMON_PATH=\Libs\tcl\bin;\Windows;\Windows\system32
WINDOWSKITS_10_VER=10.0.10586.0
WINDOWSSDK_DIR=\Libs\Microsoft SDKs\v6.0A
WINDOWSSDK_INCLUDE=$(WINDOWSSDK_DIR)\include
WINDOWSSDK_LIB32=$(WINDOWSSDK_DIR)\lib
WINDOWSSDK_LIB64=$(WINDOWSSDK_DIR)\lib\x64
WINDOWSSDK_PATH=$(WINDOWSSDK_DIR)\bin
WINDOWSKITS_10_DIR=\Libs\Windows Kits\10
WINDOWSKITS_10_INCLUDE=$(WINDOWSKITS_10_DIR)\include\$(WINDOWSKITS_10_VER)\shared;$(WINDOWSKITS_10_DIR)\include\$(WINDOWSKITS_10_VER)\ucrt;$(WINDOWSKITS_10_DIR)\include\$(WINDOWSKITS_10_VER)\um
WINDOWSKITS_10_LIB32=$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\ucrt\x86;$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\um\x86
WINDOWSKITS_10_LIB64=$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\ucrt\x64;$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\um\x64
VSINSTALLDIR=\Libs\VS14
VCINSTALLDIR=$(VSINSTALLDIR)\VC
DEVENVDIR=$(VCINSTALLDIR)\Common7\IDE
INCLUDE=$(WINDOWSKITS_10_INCLUDE);$(WINDOWSSDK_INCLUDE);$(VCINSTALLDIR)\atlmfc\include;$(VCINSTALLDIR)\include
LIB32=$(WINDOWSKITS_10_LIB32);$(WINDOWSSDK_LIB32);$(VCINSTALLDIR)\lib
LIB64=$(WINDOWSKITS_10_LIB64);$(WINDOWSSDK_LIB64);$(VCINSTALLDIR)\atlmfc\lib\amd64;$(VCINSTALLDIR)\lib\amd64
VC_PATH32=$(DEVENVDIR);$(VCINSTALLDIR)\bin;$(VSINSTALLDIR)\Common7\Tools;$(VSINSTALLDIR)\Common7\Tools\bin;$(VSINSTALLDIR)\Common7\IDE;$(VCINSTALLDIR)\VCPackages
VC_PATH64=$(DEVENVDIR);$(VCINSTALLDIR)\bin\x86_amd64;$(VCINSTALLDIR)\bin;$(VSINSTALLDIR)\Common7\Tools;$(VSINSTALLDIR)\Common7\Tools\bin;$(VSINSTALLDIR)\Common7\IDE;$(VCINSTALLDIR)\VCPackages
PATH32=$(WINDOWSSDK_PATH);$(VC_PATH32);$(COMMON_PATH)
PATH64=$(WINDOWSSDK_PATH);$(VC_PATH64);$(COMMON_PATH)
CPPOPTS32=/MP /MT /W3 /O1 /GR- /GS- /QIfist /wd4996 /D "WIN32" /D "_MBCS" /D "MBCS" /D "NDEBUG" /D "_WINDLL"
CPPOPTS64=/MP /MT /W3 /O1 /GR- /GS- /wd4996 /D "WIN32" /D "_MBCS" /D "MBCS" /D "NDEBUG" /D "_WINDLL"
CPPOPTS64=/MP /$(MT) /W3 /O1 /GR- /GS- /wd4996 /D "WIN32" /D "_MBCS" /D "MBCS" /D "NDEBUG" /D "_WINDLL" $(PROD_DEFS) $(PLAT_DEFS)
LIBS_CORE=kernel32.lib user32.lib gdi32.lib uuid.lib
LIBS32=$(LIBS_CORE) ..\..\..\cnx\lib\ctiny\Release32\ctiny.lib
LIBS64=$(LIBS_CORE)
SEC_LINKOPTS_32=/DYNAMICBASE /NXCOMPAT /SAFESEH
SEC_LINKOPTS_64=/DYNAMICBASE /NXCOMPAT
all:
make build copy cleanlib
@echo Done!
clean: cleanlib
-rmdir /q /s ..\kits\qt
@echo Done!
build:
make sbb_modules
make sbb_lib
cpplib:
cd ..\cpp
make _qt
cd ..\qt
sbb_modules:
cd ..\edlp
make plat PLAT=qt PLAT_DEF=QT PLAT_LIB=qt
cd ..\qt
sbb_lib: lib32\secureblackbox.obj lib64\secureblackbox.obj
set LIB=$(LIB32)
set PATH=$(PATH32)
link /nologo $(LIBS32) /nodefaultlib $(SEC_LINKOPTS_32) /dll /incremental:no /machine:x86 /def:secureblackbox.def /out:"lib32/qtsecureblackbox20.dll" /implib:"lib32/qtsecureblackbox20.lib" lib32/secureblackbox.obj
set LIB=$(LIB64)
set PATH=$(PATH64)
link /nologo $(LIBS64) $(SEC_LINKOPTS_64) /dll /incremental:no /machine:x64 /def:secureblackbox.def /out:"lib64/qtsecureblackbox20.dll" /implib:"lib64/qtsecureblackbox20.lib" lib64/secureblackbox.obj
.cpp{lib32}.obj::
-mkdir lib32
set INCLUDE=$(INCLUDE)
set PATH=$(PATH32)
cl /nologo $(CPPOPTS32) /Fo"lib32/" /Tp $< /c
.cpp{lib64}.obj::
-mkdir lib64
set INCLUDE=$(INCLUDE)
set PATH=$(PATH64)
cl /nologo $(CPPOPTS64) /Fo"lib64/" /Tp $< /c
# Windows
-mkdir ..\kits\qt\lib
-mkdir ..\kits\qt\lib64
copy ..\edlp\plat\win32\SecureBlackboxLib.dll ..\kits\qt\lib\qtsecureblackbox20.dll
copy lib32\qtsecureblackbox20.lib ..\kits\qt\lib\qtsecureblackbox20.lib
copy ..\edlp\plat\win64\SecureBlackboxLib.dll ..\kits\qt\lib64\qtsecureblackbox20.dll
copy lib64\qtsecureblackbox20.lib ..\kits\qt\lib64\qtsecureblackbox20.lib
# Linux
-rmdir /q /s ..\kits\qt\unix\lib
-mkdir ..\kits\qt\unix\lib\x86
-mkdir ..\kits\qt\unix\lib\x64
copy ..\edlp\plat\linux64\libSecureBlackboxLib.so ..\kits\qt\unix\lib\x64\libqtsecureblackbox.so.20.0
# Mac
-rmdir /q /s ..\kits\qt\mac\lib
-mkdir ..\kits\qt\mac\lib
copy ..\edlp\plat\macos64\libqtsecureblackbox.20.0.dylib ..\kits\qt\mac\lib\libqtsecureblackbox.20.0.dylib
cleanlib:
cd ..\edlp
make _plat_clean
cd ..\qt
-rmdir /s /q lib32
-rmdir /s /q lib64
Правильный .makefile:
# Convenience Variables
COMMON_PATH=\Libs\tcl\bin;\Windows;\Windows\system32
VS15_VER=14.16.27023
WINDOWSKITS_10_VER=10.0.10586.0
ZLIB_PATH=..\..\..\cnx\lib\zlib
# Windows SDK 6.0A Variables
WINDOWSSDK_DIR=\Libs\Microsoft SDKs\v6.0A
WINDOWSSDK_INCLUDE=$(WINDOWSSDK_DIR)\include
WINDOWSSDK_LIB=$(WINDOWSSDK_DIR)\lib\x64
WINDOWSSDK_PATH=$(WINDOWSSDK_DIR)\bin
# Windows Kits 8.0 Variables
WINDOWSKITS_80_DIR=\Libs\Windows Kits\8.0
WINDOWSKITS_80_INCLUDE=$(WINDOWSKITS_80_DIR)\include\shared;$(WINDOWSKITS_80_DIR)\include\um
# Windows Kits 8.1 Variables
WINDOWSKITS_81_DIR=\Libs\Windows Kits\8.1
WINDOWSKITS_81_INCLUDE=$(WINDOWSKITS_81_DIR)\include\shared;$(WINDOWSKITS_81_DIR)\include\um
# Windows 10 Kits Variables
WINDOWSKITS_10_DIR=\Libs\Windows Kits\10
WINDOWSKITS_10_INCLUDE=$(WINDOWSKITS_10_DIR)\include\$(WINDOWSKITS_10_VER)\shared;$(WINDOWSKITS_10_DIR)\include\$(WINDOWSKITS_10_VER)\ucrt;$(WINDOWSKITS_10_DIR)\include\$(WINDOWSKITS_10_VER)\um
WINDOWSKITS_10_LIB=$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\ucrt\x64;$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\um\x64
WINDOWSKITS_10_LIB_ARM=$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\ucrt\arm64;$(WINDOWSKITS_10_DIR)\lib\$(WINDOWSKITS_10_VER)\um\arm64
# VC9 Variables
VC9_VSINSTALLDIR=\Libs\VS9
VC9_VCINSTALLDIR=$(VC9_VSINSTALLDIR)\VC
VC9_DEVENVDIR=$(VC9_VCINSTALLDIR)\Common7\IDE
VC9_INCLUDE=$(VC9_VCINSTALLDIR)\atlmfc\include;$(VC9_VCINSTALLDIR)\include
VC9_LIB=$(VC9_VCINSTALLDIR)atlmfc\lib\amd64;$(VC9_VCINSTALLDIR)\lib\amd64
VC9_PATH=$(VC9_DEVENVDIR);$(VC9_VCINSTALLDIR)\bin\amd64;$(VC9_VCINSTALLDIR)\bin;$(VC9_VSINSTALLDIR)\Common7\Tools;$(VC9_VSINSTALLDIR)\Common7\Tools\bin;$(VC9_VSINSTALLDIR)\Common7\IDE;$(VC9_VCINSTALLDIR)\VCPackages
# VC11 Variables
VC11_VSINSTALLDIR=\Libs\VS11
VC11_VCINSTALLDIR=$(VC11_VSINSTALLDIR)\VC
VC11_DEVENVDIR=$(VC11_VCINSTALLDIR)\Common7\IDE
VC11_INCLUDE=$(VC11_VCINSTALLDIR)\atlmfc\include;$(VC11_VCINSTALLDIR)\include
VC11_LIB=$(VC11_VCINSTALLDIR)\atlmfc\lib\amd64;$(VC11_VCINSTALLDIR)\lib\amd64
VC11_PATH=$(VC11_DEVENVDIR);$(VC11_VCINSTALLDIR)\bin\amd64;$(VC11_VCINSTALLDIR)\bin\amd64;$(VC11_VSINSTALLDIR)\Common7\Tools;$(VC11_VSINSTALLDIR)\Common7\Tools\bin;$(VC11_VSINSTALLDIR)\Common7\IDE;$(VC11_VCINSTALLDIR)\VCPackages;$(VC11_VCINSTALLDIR)\redist\x64\Microsoft.VC110.CRT
# VC12 Variables
VC12_VSINSTALLDIR=\Libs\VS12
VC12_VCINSTALLDIR=$(VC12_VSINSTALLDIR)\VC
VC12_DEVENVDIR=$(VC12_VCINSTALLDIR)\Common7\IDE
VC12_INCLUDE=$(VC12_VCINSTALLDIR)\atlmfc\include;$(VC12_VCINSTALLDIR)\include
VC12_LIB=$(VC12_VCINSTALLDIR)\atlmfc\lib\amd64;$(VC12_VCINSTALLDIR)\lib\amd64
VC12_PATH=$(VC12_DEVENVDIR);$(VC12_VCINSTALLDIR)\bin\amd64;$(VC12_VSINSTALLDIR)\Common7\Tools;$(VC12_VSINSTALLDIR)\Common7\Tools\bin;$(VC12_VSINSTALLDIR)\Common7\IDE;$(VC12_VCINSTALLDIR)\VCPackages
# VC14 Variables
VC14_VSINSTALLDIR=\Libs\VS14
VC14_VCINSTALLDIR=$(VC14_VSINSTALLDIR)\VC
VC14_DEVENVDIR=$(VC14_VCINSTALLDIR)\Common7\IDE
VC14_INCLUDE=$(VC14_VCINSTALLDIR)\atlmfc\include;$(VC14_VCINSTALLDIR)\include
VC14_LIB=$(VC14_VCINSTALLDIR)\atlmfc\lib\amd64;$(VC14_VCINSTALLDIR)\lib\amd64
VC14_PATH=$(VC14_DEVENVDIR);$(VC14_VCINSTALLDIR)\bin\amd64;$(VC14_VSINSTALLDIR)\Common7\Tools;$(VC14_VSINSTALLDIR)\Common7\Tools\bin;$(VC14_VSINSTALLDIR)\Common7\IDE;$(VC14_VCINSTALLDIR)\VCPackages
# VC15 Variables
VC15_VSINSTALLDIR=\Libs\VS15
VC15_VCINSTALLDIR=$(VC15_VSINSTALLDIR)\$(VS15_VER)
VC15_INCLUDE=$(VC15_VCINSTALLDIR)\atlmfc\include;$(VC15_VCINSTALLDIR)\include
VC15_LIB=$(VC15_VCINSTALLDIR)\atlmfc\lib\x64;$(VC15_VCINSTALLDIR)\lib\x64
VC15_LIB_ARM=$(VC15_VCINSTALLDIR)\lib\arm64
VC15_PATH=$(VC15_VCINSTALLDIR)\bin\Hostx64\x64;$(VC15_VSINSTALLDIR)\Common7\Tools;$(VC15_VSINSTALLDIR)\Common7\Tools\bin;$(VC15_VSINSTALLDIR)\Common7\IDE;$(VC15_VCINSTALLDIR)\VCPackages
VC15_PATH_ARM=$(VC15_VCINSTALLDIR)\bin\Hostx64\arm64;$(VC15_PATH)
#
# Begin INCLUDE/LIB/PATH Variables
#
INCLUDE_VC9=$(WINDOWSSDK_INCLUDE);$(VC9_INCLUDE)
LIB_VC9=$(WINDOWSSDK_LIB);$(VC9_LIB)
PATH_VC9=$(WINDOWSSDK_PATH);$(VC9_PATH);$(COMMON_PATH)
INCLUDE_VC11=$(WINDOWSKITS_80_INCLUDE);$(WINDOWSSDK_INCLUDE);$(VC11_INCLUDE)
LIB_VC11=$(WINDOWSSDK_LIB);$(VC11_LIB)
PATH_VC11=$(WINDOWSSDK_PATH);$(VC11_PATH);$(COMMON_PATH)
INCLUDE_VC12=$(WINDOWSKITS_81_INCLUDE);$(WINDOWSSDK_INCLUDE);$(VC12_INCLUDE)
LIB_VC12=$(WINDOWSSDK_LIB);$(VC12_LIB)
PATH_VC12=$(WINDOWSSDK_PATH);$(VC12_PATH);$(COMMON_PATH)
INCLUDE_VC14=$(WINDOWSKITS_10_INCLUDE);$(WINDOWSSDK_INCLUDE);$(VC14_INCLUDE)
#LIB_VC14=$(VC14_LIB);$(WINDOWSSDK_LIB);$(WINDOWSKITS_10_LIB)
LIB_VC14=$(WINDOWSKITS_10_LIB);$(VC14_LIB)
PATH_VC14=$(WINDOWSSDK_PATH);$(VC14_PATH);$(COMMON_PATH)
INCLUDE_VC15=$(WINDOWSKITS_10_INCLUDE);$(WINDOWSSDK_INCLUDE);$(VC15_INCLUDE)
LIB_VC15=$(WINDOWSKITS_10_LIB);$(VC15_LIB)
LIB_VC15_ARM=$(WINDOWSKITS_10_LIB_ARM);$(VC15_LIB_ARM)
PATH_VC15=$(WINDOWSSDK_PATH);$(VC15_PATH);$(COMMON_PATH)
PATH_VC15_ARM=$(WINDOWSSDK_PATH);$(VC15_PATH_ARM);$(COMMON_PATH)
# Default INCLUDE/LIB/PATH Variables
INCLUDE=$(INCLUDE_VC9)
LIB=$(LIB_VC9)
PATH=$(PATH_VC9)
#
# End INCLUDE/LIB/PATH Variables
#
LIBS_CORE=kernel32.lib user32.lib gdi32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib Shlwapi.lib $(ZLIB_PATH)\Release64$(D)\zlib.lib
LIBS=$(LIBS_CORE)
LIBS_ARM=kernel32.lib user32.lib gdi32.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib Shell32.lib Shlwapi.lib $(ZLIB_PATH)\Release64$(D)\vc15_arm\zlib.lib
PROD_DEFS=/D SEVENZIP
PLAT_DEFS=
MT=MT
MD=MD
!IF "$(D)" == "d"
MT=MTd
MD=MDd
!ENDIF
CPPOPTS=/MP /$(MT) /W3 /O1 /GR- /GS- /wd4996 /D "WIN32" /D "_MBCS" /D "MBCS" /D "NDEBUG" /D "_WINDLL" $(PROD_DEFS) $(PLAT_DEFS)
CPPOPTS_WINRT_EXT=/AI\"\Libs\Windows Kits\10\UnionMetadata\" /AI\"$(VC14_VSINSTALLDIR)\VC\lib\store\references\" /$(MD) /ZW /Gm- /W3 /O1 /GR- /GS- /wd4996 /D "WIN32" /D "_MBCS" /D "MBCS" /D "NDEBUG" /D "_WINDLL" $(PROD_DEFS) $(PLAT_DEFS)
CPPOPTS_ARM=/MP /$(MT) /W3 /O1 /GR- /GS- /wd4996 /D "WIN32" /D "_MBCS" /D "MBCS" /D "NDEBUG" /D "_WINDLL" /D _VC80_UPGRADE=0x0600 /D _ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 /D BUILD_ARM_LIB $(PROD_DEFS) $(PLAT_DEFS)
# uncomment these to enable pdb files
#PDBLIBOPT=/Fd"Lib64$(D)/c_ipworkszip.pdb" /Zi
PDBDLLOPT=/Fd"Release64$(D)/$(PLAT)ipworkszip20.pdb" /Zi
PDBLNKOPT=/DEBUG /pdb:"Release64$(D)/$(PLAT)ipworkszip20.full.pdb" /pdbstripped:"Release64$(D)/$(PLAT)ipworkszip20.public.pdb"
#PDBLIBOPT_VC11=/Fd"Lib64$(D)/vc11/c_ipworkszip.pdb" /Zi
ARMPDBDLLOPT=/Fd"Release64$(D)/vc15_arm/$(PLAT)ipworkszip20.pdb" /Zi
ARMPDBLNKOPT=/DEBUG /pdb:"Release64$(D)/vc15_arm/$(PLAT)ipworkszip20.full.pdb" /pdbstripped:"Release64$(D)/vc15_arm/$(PLAT)ipworkszip20.public.pdb"
NODEPDBDLLOPT=/Fd"Node64$(D)/$(NODE_VER)/ipworkszip20.pdb" /Zi /wd4302 /wd4311 /wd4312
NODEPDBLNKOPT=/DEBUG /pdb:"Node64$(D)/$(NODE_VER)/ipworkszip20.full.pdb" /pdbstripped:"Node64$(D)/$(NODE_VER)/ipworkszip20.public.pdb"
JNIPDBDLLOPT=/Fd"JNI64$(D)/jniipworkszip20.pdb" /Zi
JNIPDBLNKOPT=/DEBUG /pdb:"JNI64$(D)/jniipworkszip20.full.pdb" /pdbstripped:"JNI64$(D)/jniipworkszip20.public.pdb"
SEC_LINKOPTS_64=/DYNAMICBASE /NXCOMPAT
LIB_OBJ_FILES=Lib64$(D)\c_ipworkszip.obj Lib64$(D)\c_bzip2.obj Lib64$(D)\c_gzip.obj Lib64$(D)\c_jar.obj Lib64$(D)\c_officedoc.obj Lib64$(D)\c_sevenzip.obj Lib64$(D)\c_tar.obj Lib64$(D)\c_zcompress.obj Lib64$(D)\c_zip.obj Lib64$(D)\c_zipsfx.obj Lib64$(D)\c_zipstream.obj
LIB_OBJ_FILES_VC11=Lib64$(D)\vc11\c_ipworkszip.obj Lib64$(D)\vc11\c_bzip2.obj Lib64$(D)\vc11\c_gzip.obj Lib64$(D)\vc11\c_jar.obj Lib64$(D)\vc11\c_officedoc.obj Lib64$(D)\vc11\c_sevenzip.obj Lib64$(D)\vc11\c_tar.obj Lib64$(D)\vc11\c_zcompress.obj Lib64$(D)\vc11\c_zip.obj Lib64$(D)\vc11\c_zipsfx.obj Lib64$(D)\vc11\c_zipstream.obj
LIB_OBJ_FILES_VC14=Lib64$(D)\vc14\c_ipworkszip.obj Lib64$(D)\vc14\c_bzip2.obj Lib64$(D)\vc14\c_gzip.obj Lib64$(D)\vc14\c_jar.obj Lib64$(D)\vc14\c_officedoc.obj Lib64$(D)\vc14\c_sevenzip.obj Lib64$(D)\vc14\c_tar.obj Lib64$(D)\vc14\c_zcompress.obj Lib64$(D)\vc14\c_zip.obj Lib64$(D)\vc14\c_zipsfx.obj Lib64$(D)\vc14\c_zipstream.obj
LIB_OBJ_FILES_VC15=Lib64$(D)\vc15\c_ipworkszip.obj Lib64$(D)\vc15\c_bzip2.obj Lib64$(D)\vc15\c_gzip.obj Lib64$(D)\vc15\c_jar.obj Lib64$(D)\vc15\c_officedoc.obj Lib64$(D)\vc15\c_sevenzip.obj Lib64$(D)\vc15\c_tar.obj Lib64$(D)\vc15\c_zcompress.obj Lib64$(D)\vc15\c_zip.obj Lib64$(D)\vc15\c_zipsfx.obj Lib64$(D)\vc15\c_zipstream.obj
LIB_OBJ_FILES_VC15_ARM=Lib64$(D)\vc15_arm\c_ipworkszip.obj Lib64$(D)\vc15_arm\c_bzip2.obj Lib64$(D)\vc15_arm\c_gzip.obj Lib64$(D)\vc15_arm\c_jar.obj Lib64$(D)\vc15_arm\c_officedoc.obj Lib64$(D)\vc15_arm\c_sevenzip.obj Lib64$(D)\vc15_arm\c_tar.obj Lib64$(D)\vc15_arm\c_zcompress.obj Lib64$(D)\vc15_arm\c_zip.obj Lib64$(D)\vc15_arm\c_zipsfx.obj Lib64$(D)\vc15_arm\c_zipstream.obj
DLL_OBJ_FILES=Release64$(D)\ipworkszip.obj Release64$(D)\bzip2.obj Release64$(D)\gzip.obj Release64$(D)\jar.obj Release64$(D)\officedoc.obj Release64$(D)\sevenzip.obj Release64$(D)\tar.obj Release64$(D)\zcompress.obj Release64$(D)\zip.obj Release64$(D)\zipsfx.obj Release64$(D)\zipstream.obj
DLL_OBJ_FILES_ARM=Release64$(D)\vc15_arm\ipworkszip.obj Release64$(D)\vc15_arm\\bzip2.obj Release64$(D)\vc15_arm\\gzip.obj Release64$(D)\vc15_arm\\jar.obj Release64$(D)\vc15_arm\\officedoc.obj Release64$(D)\vc15_arm\\sevenzip.obj Release64$(D)\vc15_arm\\tar.obj Release64$(D)\vc15_arm\\zcompress.obj Release64$(D)\vc15_arm\\zip.obj Release64$(D)\vc15_arm\\zipsfx.obj Release64$(D)\vc15_arm\\zipstream.obj
STATICLIB_OBJ_FILES=StaticLib64$(D)\c_ipworkszip.obj Lib64$(D)\evtstr.obj Lib64$(D)\stream.obj
STATICLIB_OBJ_FILES_VC11=StaticLib64$(D)\vc11\c_ipworkszip.obj Lib64$(D)\vc11\evtstr.obj Lib64$(D)\vc11\stream.obj
STATICLIB_OBJ_FILES_VC14=StaticLib64$(D)\vc14\c_ipworkszip.obj Lib64$(D)\vc14\evtstr.obj Lib64$(D)\vc14\stream.obj
STATICLIB_OBJ_FILES_VC15=StaticLib64$(D)\vc15\c_ipworkszip.obj Lib64$(D)\vc15\evtstr.obj Lib64$(D)\vc15\stream.obj
STATICLIB_OBJ_FILES_VC15_ARM=StaticLib64$(D)\vc15_arm\c_ipworkszip.obj Lib64$(D)\vc15_arm\evtstr.obj Lib64$(D)\vc15_arm\stream.obj
all: j2cp _dll _static _static_vc11 _static_vc14 _static_vc15
echo done!
_lib_with_winrt_ext: # Consume Windows Runtime Extension
make -f makefile64 _lib_vc14 CPPOPTS="$(CPPOPTS_WINRT_EXT)"
_dll_with_winrt_ext: j2cp
copy Lib64$(D)\vc14\c_ipworkszip.obj Lib64$(D)\c_ipworkszip.obj
make -f makefile64 _dll INCLUDE="$(INCLUDE_VC14);\Libs\Windows Kits\10\Include\$(WINDOWS_KITS_VERSION)\winrt" LIB="$(LIB_VC14);$(WINDOWSKITS_10_LIB)" PATH="$(PATH_VC14)" CPPOPTS="$(CPPOPTS_WINRT_EXT)"
make -f makefile64 _static INCLUDE="$(INCLUDE_VC14);\Libs\Windows Kits\10\Include\$(WINDOWS_KITS_VERSION)\winrt" LIB="$(LIB_VC14);$(WINDOWSKITS_10_LIB)" PATH="$(PATH_VC14)" CPPOPTS="$(CPPOPTS_WINRT_EXT)"
echo done!
_lib_arm: _static_vc15_arm
_dll_arm: j2cp $(DLL_OBJ_FILES_ARM) Lib64$(D)/vc15_arm/c_ipworkszip.obj
set INCLUDE=$(INCLUDE_VC15)
set PATH=$(PATH_VC15_ARM)
-mkdir Release64$(D)\vc15_arm
rc /l 0x409 /fo"Release64$(D)/vc15_arm/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
set LIB=$(LIB_VC15_ARM)
link /nologo $(LIBS_ARM) /DYNAMICBASE /NXCOMPAT /dll /incremental:no /machine:ARM64 /out:"Release64$(D)/vc15_arm/ipworkszip20$(D).dll" /implib:"Release64$(D)/vc15_arm/ipworkszip20$(D).lib" Release64$(D)/vc15_arm/ipworkszip.res Lib64$(D)/vc15_arm/c_ipworkszip.obj $(DLL_OBJ_FILES_ARM)
-mkdir ..\kits\cpp\libarm64
copy Release64$(D)\vc15_arm\ipworkszip20$(D).lib ..\kits\cpp\libarm64\ipworkszip20$(D).lib
copy Release64$(D)\vc15_arm\ipworkszip20$(D).dll ..\kits\cpp\libarm64\ipworkszip20$(D).dll
-mkdir ..\kits\cpp\pdb\arm64
copy Release64$(D)\ipworkszip20.full.pdb ..\kits\cpp\pdb\arm64
copy Release64$(D)\ipworkszip20.public.pdb ..\kits\cpp\pdb\arm64
clean:
-rmdir /q /s Lib64$(D)
-rmdir /q /s Release64$(D)
-rmdir /q /s Singles64$(D)
-rmdir /q /s StaticLib64$(D)
j2cp:
cd ..\..\..\IPWorksZip
tcl j2cp.tcl
cd ..\Release\IPWorksZip\cpp
_lib: $(LIB_OBJ_FILES)
_lib_vc11: $(LIB_OBJ_FILES_VC11)
_lib_vc14: $(LIB_OBJ_FILES_VC14)
_lib_vc15: $(LIB_OBJ_FILES_VC15)
_lib_vc15_arm: $(LIB_OBJ_FILES_VC15_ARM)
_plat_dll: j2cp $(DLL_OBJ_FILES)
set INCLUDE=$(INCLUDE)
-mkdir Release64$(D)
rc /l 0x409 /fo"Release64$(D)/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
set LIB=$(LIB)
link /nologo $(LIBS) $(PDBLNKOPT) $(SEC_LINKOPTS_64) /dll /incremental:no /machine:x64 /out:"Release64$(D)/$(PLAT)ipworkszip20.dll" /implib:"Release64$(D)/$(PLAT)ipworkszip20.lib" Release64$(D)/ipworkszip.res Lib64$(D)/c_ipworkszip.obj $(DLL_OBJ_FILES)
-mkdir ..\kits\$(PLAT)\pdb\x64
copy Release64$(D)\$(PLAT)ipworkszip20.full.pdb ..\kits\$(PLAT)\pdb\x64
copy Release64$(D)\$(PLAT)ipworkszip20.public.pdb ..\kits\$(PLAT)\pdb\x64
_plat_dll_arm: j2cp $(DLL_OBJ_FILES_ARM) Lib64$(D)/vc15_arm/c_ipworkszip.obj
set INCLUDE=$(INCLUDE_VC15)
set PATH=$(PATH_VC15_ARM)
-mkdir Release64$(D)\vc15_arm
rc /l 0x409 /fo"Release64$(D)/vc15_arm/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
set LIB=$(LIB_VC15_ARM)
link /nologo $(LIBS_ARM) $(ARMPDBLNKOPT) /DYNAMICBASE /NXCOMPAT /dll /incremental:no /machine:ARM64 /out:"Release64$(D)/vc15_arm/$(PLAT)ipworkszip20.dll" /implib:"Release64$(D)/vc15_arm/$(PLAT)ipworkszip20.lib" Release64$(D)/vc15_arm/ipworkszip.res Lib64$(D)/vc15_arm/c_ipworkszip.obj $(DLL_OBJ_FILES_ARM)
-mkdir ..\kits\$(PLAT)\pdb\arm64
copy Release64$(D)\vc15_arm\$(PLAT)ipworkszip20.full.pdb ..\kits\$(PLAT)\pdb\arm64
copy Release64$(D)\vc15_arm\$(PLAT)ipworkszip20.public.pdb ..\kits\$(PLAT)\pdb\arm64
_dll: j2cp $(DLL_OBJ_FILES)
set INCLUDE=$(INCLUDE)
-mkdir Release64$(D)
rc /l 0x409 /fo"Release64$(D)/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
set LIB=$(LIB)
link /nologo $(LIBS) $(PDBLNKOPT) $(SEC_LINKOPTS_64) /dll /incremental:no /machine:x64 /out:"Release64$(D)/ipworkszip20$(D).dll" /implib:"Release64$(D)/ipworkszip20$(D).lib" Release64$(D)/ipworkszip.res Lib64$(D)/c_ipworkszip.obj $(DLL_OBJ_FILES)
-mkdir ..\kits\cpp\lib64
copy Release64$(D)\ipworkszip20$(D).lib ..\kits\cpp\lib64\ipworkszip20$(D).lib
copy Release64$(D)\ipworkszip20$(D).dll ..\kits\cpp\lib64\ipworkszip20$(D).dll
-mkdir ..\kits\cpp\pdb\x64
copy Release64$(D)\ipworkszip20.full.pdb ..\kits\cpp\pdb\x64
copy Release64$(D)\ipworkszip20.public.pdb ..\kits\cpp\pdb\x64
_node_impl:
\cygwin\bin\bash -l -c "cd c:/Libs/node/ && . ./getsource.sh $(NODE_VER)"
set INCLUDE=$(INCLUDE);\Libs\node\src\node-v$(NODE_VER)\src;\Libs\node\src\node-v$(NODE_VER)\deps\v8\include;\Libs\node\src\node-v$(NODE_VER)\deps\uv\include
-mkdir ..\kits\nodejs\bin\win32-x64-$(LTS)
-mkdir Node64$(D)\$(NODE_VER)
copy /Y ..\nodejs\ipworkszip.cc ipworkszip_node.cc
rc /l 0x409 /fo"Node64$(D)/$(NODE_VER)/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
cl /nologo $(CPPOPTS) /D "NODEJS" /Fo"Node64$(D)/$(NODE_VER)/" $(NODEPDBDLLOPT) /Tp ipworkszip_node.cc ipworkszip.cpp c_ipworkszip.cpp bzip2.cpp gzip.cpp jar.cpp officedoc.cpp sevenzip.cpp tar.cpp zcompress.cpp zip.cpp zipsfx.cpp zipstream.cpp /c
set LIB=$(LIB);\Libs\node\lib\$(NODE_VER)\lib64
link /nologo $(LIBS_CORE) $(NODEPDBLNKOPT) "node.lib" /dll /incremental:no /machine:x64 /out:"Node64$(D)/$(NODE_VER)/ipworkszip20$(D).node" /implib:"Node64$(D)/$(NODE_VER)/ipworkszip20$(D).lib" Node64$(D)/$(NODE_VER)/ipworkszip.res Node64$(D)/$(NODE_VER)/ipworkszip_node.obj Node64$(D)/$(NODE_VER)/ipworkszip.obj Node64$(D)/$(NODE_VER)/c_ipworkszip.obj Node64$(D)/$(NODE_VER)/bzip2.obj Node64$(D)/$(NODE_VER)/gzip.obj Node64$(D)/$(NODE_VER)/jar.obj Node64$(D)/$(NODE_VER)/officedoc.obj Node64$(D)/$(NODE_VER)/sevenzip.obj Node64$(D)/$(NODE_VER)/tar.obj Node64$(D)/$(NODE_VER)/zcompress.obj Node64$(D)/$(NODE_VER)/zip.obj Node64$(D)/$(NODE_VER)/zipsfx.obj Node64$(D)/$(NODE_VER)/zipstream.obj
copy Node64$(D)\$(NODE_VER)\ipworkszip20$(D).node ..\kits\nodejs\bin\win32-x64-$(LTS)\ipworkszip$(D).node
_node:j2cp
make -f makefile64 _node_impl NODE_VER=8.10.0 LTS=8 INCLUDE="$(INCLUDE_VC14)" LIB="$(LIB_VC14)" PATH="$(PATH_VC14)"
make -f makefile64 _node_impl NODE_VER=10.15.3 LTS=10 INCLUDE="$(INCLUDE_VC14)" LIB="$(LIB_VC14)" PATH="$(PATH_VC14)"
make -f makefile64 _node_impl NODE_VER=12.16.0 LTS=12 INCLUDE="$(INCLUDE_VC14)" LIB="$(LIB_VC14)" PATH="$(PATH_VC14)"
_nodenapi: j2cp
make -f makefile64 _node_impl NODE_VER=8.11.2 LTS=8 INCLUDE="$(INCLUDE_VC14)" LIB="$(LIB_VC14)" PATH="$(PATH_VC14)"
_jni: j2cp
set LIB=$(LIB_VC15)
set PATH=$(PATH_VC15)
set INCLUDE=$(INCLUDE_VC15);\Libs\j2sdk1.5\include;\Libs\j2sdk1.5\include\win32
-mkdir ..\kits\java\lib\x64
-mkdir JNI64
rc /l 0x409 /fo"JNI64/jipworkszip.res" /d "NDEBUG" jni/jipworkszip.rc
cl /nologo $(CPPOPTS) /D "JNI" /Fo"JNI64/" $(JNIPDBDLLOPT) /Tp jni/jipworkszip.cpp jni/jbzip2.cpp jni/jgzip.cpp jni/jjar.cpp jni/jofficedoc.cpp jni/jsevenzip.cpp jni/jtar.cpp jni/jzcompress.cpp jni/jzip.cpp jni/jzipsfx.cpp jni/jzipstream.cpp ipworkszip.cpp c_ipworkszip.cpp bzip2.cpp gzip.cpp jar.cpp officedoc.cpp sevenzip.cpp tar.cpp zcompress.cpp zip.cpp zipsfx.cpp zipstream.cpp /c
link /nologo $(LIBS) $(JNIPDBLNKOPT) /dll /incremental:no /machine:x64 /out:"JNI64/jniipworkszip20.dll" /implib:"JNI64/jniipworkszip20.lib" JNI64/jipworkszip.res JNI64/jipworkszip.obj JNI64/jbzip2.obj JNI64/jgzip.obj JNI64/jjar.obj JNI64/jofficedoc.obj JNI64/jsevenzip.obj JNI64/jtar.obj JNI64/jzcompress.obj JNI64/jzip.obj JNI64/jzipsfx.obj JNI64/jzipstream.obj JNI64/ipworkszip.obj JNI64/c_ipworkszip.obj JNI64/bzip2.obj JNI64/gzip.obj JNI64/jar.obj JNI64/officedoc.obj JNI64/sevenzip.obj JNI64/tar.obj JNI64/zcompress.obj JNI64/zip.obj JNI64/zipsfx.obj JNI64/zipstream.obj
copy JNI64\jniipworkszip20.dll ..\kits\java\lib\x64\jniipworkszip20.dll
-mkdir ..\kits\java\pdb\x64
copy JNI64$(D)\jniipworkszip20.full.pdb ..\kits\java\pdb\x64
copy JNI64$(D)\jniipworkszip20.public.pdb ..\kits\java\pdb\x64
_static: j2cp $(STATICLIB_OBJ_FILES) $(LIB_OBJ_FILES)
set LIB=$(LIB)
-mkdir Release64$(D)
rc /l 0x409 /fo"Lib64$(D)/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
lib /MACHINE:x64 /out:"Release64$(D)\ipworkszip20s$(D).lib" $(ZLIB_PATH)\Release64$(D)\zlib.lib Lib64$(D)\ipworkszip.res Lib64$(D)\evtstr.obj Lib64$(D)\stream.obj StaticLib64$(D)/c_ipworkszip.obj
-mkdir ..\kits\cpp\lib64\static
copy Release64$(D)\ipworkszip20s$(D).lib ..\kits\cpp\lib64\static\ipworkszip20s$(D).lib
_static_vc11: j2cp $(STATICLIB_OBJ_FILES_VC11) $(LIB_OBJ_FILES_VC11)
set PATH=$(PATH_VC11)
-mkdir Release64$(D)\vc11
rc /l 0x409 /fo"Lib64$(D)/vc11/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
lib /MACHINE:x64 /out:"Release64$(D)\vc11\ipworkszip20s$(D).lib" $(ZLIB_PATH)\Release64$(D)\vc11\zlib.lib Lib64$(D)\vc11\ipworkszip.res Lib64$(D)\vc11\evtstr.obj Lib64$(D)\vc11\stream.obj StaticLib64$(D)/vc11/c_ipworkszip.obj
-mkdir ..\kits\cpp\lib64\static\vc11
copy Release64$(D)\vc11\ipworkszip20s$(D).lib ..\kits\cpp\lib64\static\vc11\ipworkszip20s$(D).lib
_static_vc14: j2cp $(STATICLIB_OBJ_FILES_VC14) $(LIB_OBJ_FILES_VC14)
set PATH=$(PATH_VC14)
-mkdir Release64$(D)\vc14
rc /l 0x409 /fo"Lib64$(D)/vc14/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
lib /MACHINE:x64 /out:"Release64$(D)\vc14\ipworkszip20s$(D).lib" $(ZLIB_PATH)\Release64$(D)\vc14\zlib.lib Lib64$(D)\vc14\ipworkszip.res Lib64$(D)\vc14\evtstr.obj Lib64$(D)\vc14\stream.obj StaticLib64$(D)/vc14/c_ipworkszip.obj
-mkdir ..\kits\cpp\lib64\static\vc14
copy Release64$(D)\vc14\ipworkszip20s$(D).lib ..\kits\cpp\lib64\static\vc14\ipworkszip20s$(D).lib
_static_vc15: j2cp $(STATICLIB_OBJ_FILES_VC15) $(LIB_OBJ_FILES_VC15)
set PATH=$(PATH_VC15)
-mkdir Release64$(D)\vc15
rc /l 0x409 /fo"Lib64$(D)/vc15/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
lib /MACHINE:x64 /out:"Release64$(D)\vc15\ipworkszip20s$(D).lib" $(ZLIB_PATH)\Release64$(D)\vc15\zlib.lib Lib64$(D)\vc15\ipworkszip.res Lib64$(D)\vc15\evtstr.obj Lib64$(D)\vc15\stream.obj StaticLib64$(D)/vc15/c_ipworkszip.obj
-mkdir ..\kits\cpp\lib64\static\vc15
copy Release64$(D)\vc15\ipworkszip20s$(D).lib ..\kits\cpp\lib64\static\vc15\ipworkszip20s$(D).lib
_static_vc15_arm: j2cp $(STATICLIB_OBJ_FILES_VC15_ARM) $(LIB_OBJ_FILES_VC15_ARM)
set PATH=$(PATH_VC15_ARM)
set INCLUDE=$(INCLUDE_VC15)
-mkdir Release64$(D)\vc15_arm
rc /l 0x409 /fo"Lib64$(D)/vc15_arm/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
set LIB=$(LIB_VC15_ARM)
lib /MACHINE:ARM64 /out:"Release64$(D)/vc15_arm/ipworkszip20s$(D).lib" $(ZLIB_PATH)\Release64$(D)\vc15_arm\zlib.lib Lib64$(D)\vc15_arm\ipworkszip.res Lib64$(D)\vc15_arm\evtstr.obj Lib64$(D)\vc15_arm\stream.obj StaticLib64$(D)/vc15_arm/c_ipworkszip.obj
-mkdir ..\kits\cpp\libarm64\static
copy Release64$(D)\vc15_arm\ipworkszip20s$(D).lib ..\kits\cpp\libarm64\static\ipworkszip20s$(D).lib
_plat_static_vc15: j2cp $(STATICLIB_OBJ_FILES_VC15) $(LIB_OBJ_FILES_VC15)
set PATH=$(PATH_VC15)
-mkdir Release64$(D)\vc15
rc /l 0x409 /fo"Lib64$(D)/vc15/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
lib /MACHINE:x64 /out:"Release64$(D)\vc15\$(PLAT)ipworkszip20s.lib" $(ZLIB_PATH)\Release64$(D)\vc15\zlib.lib Lib64$(D)\vc15\ipworkszip.res Lib64$(D)\vc15\evtstr.obj Lib64$(D)\vc15\stream.obj StaticLib64$(D)/vc15/c_ipworkszip.obj
_plat_static_vc15_arm: j2cp $(STATICLIB_OBJ_FILES_VC15_ARM) $(LIB_OBJ_FILES_VC15_ARM)
set PATH=$(PATH_VC15_ARM)
set INCLUDE=$(INCLUDE_VC15)
-mkdir Release64$(D)\vc15_arm
rc /l 0x409 /fo"Lib64$(D)/vc15_arm/ipworkszip.res" /d "NDEBUG" ipworkszip.rc
echo building static library...
set LIB=$(LIB_VC15_ARM)
lib /MACHINE:ARM64 /out:"Release64$(D)/vc15_arm/$(PLAT)ipworkszip20s.lib" $(ZLIB_PATH)\Release64$(D)\vc15_arm\zlib.lib Lib64$(D)\vc15_arm\ipworkszip.res Lib64$(D)\vc15_arm\evtstr.obj Lib64$(D)\vc15_arm\stream.obj StaticLib64$(D)/vc15_arm/c_ipworkszip.obj
.makefile: