# Copyright: 2016-2023 Paul Obermeier (obermeier@tcl3d.org) # Distributed under BSD license. # # BuildType Windows: Makefile / gcc # BuildType Linux : MSys / gcc # BuildType Darwin : MSys / gcc proc Init_ZLib { libName libVersion } { SetScriptAuthor $libName "Paul Obermeier" "obermeier@tcl3d.org" SetLibHomepage $libName "http://www.zlib.net/" SetLibDependencies $libName "None" SetPlatforms $libName "All" SetWinCompilers $libName "gcc" } proc Build_ZLib { libName libVersion buildDir instDir devDir distDir } { set buildDirMSys [MSysPath $buildDir] set instDirMSys [MSysPath $instDir] if { [UseStage "Extract" $libName] } { ExtractLibrary $libName $buildDir if { [IsWindows] } { ReplaceLine "$buildDir/win32/Makefile.gcc" \ "\$(STRIP) $@" \ "#\$(STRIP) $@" } } if { [UseStage "Configure" $libName] } { if { [IsUnix] } { set cmd "" append cmd "$buildDirMSys/configure " append cmd "--prefix=$instDirMSys " #if { [IsDebugBuild] } { # append cmd "--enable-symbols " #} else { # append cmd "--disable-symbols " #} MSysRun $libName "${libName}_Configure" $buildDir "$cmd" } } if { [UseStage "Compile" $libName] } { if { [IsUnix] } { MSysBuild $libName $buildDir "install" } else { set cmd "" append cmd "make -f win32/Makefile.gcc clean ; " append cmd "make -f win32/Makefile.gcc " if { [IsDebugBuild] } { append cmd "CFLAGS=-g " } MSysRun $libName "${libName}_Compile" $buildDir "$cmd" SingleFileCopy "$buildDir/zconf.h" "$instDir/include" SingleFileCopy "$buildDir/zlib.h" "$instDir/include" MultiFileCopy "$buildDir" "$instDir/lib" "*.dll *.a" if { [NeedDll2Lib $libName] } { Dll2Lib $libName "$instDir/lib" "zlib[GetMajor $libVersion].dll" "zlib.def" "zlib.lib" } } } if { [UseStage "Distribute" $libName] } { StripLibraries "$instDir" # Note: Copying of *.a files is needed for other MSys compiled libraries. if { [IsWindows] } { MultiFileCopy "$instDir/lib" "$distDir/lib" "*.dll" MultiFileCopy "$instDir/lib" "$devDir/lib" "*.dll *.a" if { [UseWinCompiler $libName "vs"] || [NeedDll2Lib $libName] } { MultiFileCopy "$instDir/lib" "$devDir/lib" "*.lib" } } else { LibFileCopy "$instDir" "$distDir" "*.dylib *.so*" LibFileCopy "$instDir" "$devDir" "*.dylib *.so* *.a" } MultiFileCopy "$instDir/include" "$devDir/include" } return true }