diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 6c2037cd7b..3e59b0e33e 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -94,7 +94,7 @@ SYSTEM_LIBS = libroot.so libroot-addon-icu.so libscreensaver.so libtextencoding.so libtiff.so libtracker.so libtranslation.so - libz.so + $(HAIKU_ZLIB_CURRENT_LIB) $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) $(HAIKU_FREETYPE_CURRENT_LIB) ; @@ -352,6 +352,12 @@ AddSymlinkToHaikuHybridImage system lib : $(HAIKU_JPEG_CURRENT_LIB:BS) AddSymlinkToHaikuHybridImage system lib : $(HAIKU_JPEG_CURRENT_LINK) : libjpeg.so : : true ; +# zlib.so links to the current zlib +AddSymlinkToHaikuHybridImage system lib : $(HAIKU_ZLIB_CURRENT_LIB:BS) + : $(HAIKU_ZLIB_CURRENT_LINK) : : true ; +AddSymlinkToHaikuHybridImage system lib : $(HAIKU_ZLIB_CURRENT_LINK) + : libzlib.so : : true ; + # servers AddFilesToHaikuImage system servers : $(SYSTEM_SERVERS) ; diff --git a/build/jam/OptionalBuildFeatures b/build/jam/OptionalBuildFeatures index 6028a25479..31227844e4 100644 --- a/build/jam/OptionalBuildFeatures +++ b/build/jam/OptionalBuildFeatures @@ -581,3 +581,43 @@ if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 { } else { Echo "jpeg support not available on $(TARGET_ARCH)" ; } + +# zlib +local zlibBaseURL = $(baseURL)/lib ; +if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 { + if $(TARGET_ARCH) = ppc { + HAIKU_ZLIB_FILE = zlib-1.2.7-ppc-gcc4-2012-10-30.zip ; + } else if $(HAIKU_GCC_VERSION[1]) >= 4 { + HAIKU_ZLIB_FILE = zlib-1.2.7-x86-gcc4-2012-10-30.zip ; + } else { + HAIKU_ZLIB_FILE = zlib-1.2.7-x86-gcc2-2012-10-30.zip ; + } + + local zlibZipFile = [ DownloadFile $(HAIKU_ZLIB_FILE) + : $(zlibBaseURL)/$(HAIKU_ZLIB_FILE) ] ; + + HAIKU_ZLIB_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) + $(HAIKU_ZLIB_FILE:B) ] ; + + HAIKU_ZLIB_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_ZLIB_DIR) + : common/include : $(zlibZipFile) + : extracted-zlib ] ; + + HAIKU_ZLIB_LIB = [ ExtractArchive $(HAIKU_ZLIB_DIR) + : + common/lib/libz.so + : $(zlibZipFile) + : extracted-zlib ] ; + HAIKU_ZLIB_CURRENT_LIB = [ ExtractArchive $(HAIKU_ZLIB_DIR) + : + common/lib/libz.so.1.2.7 + : $(zlibZipFile) + : extracted-zlib ] ; + Depends $(HAIKU_ZLIB_LIB) $(HAIKU_ZLIB_CURRENT_LIB) : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; + + HAIKU_ZLIB_CURRENT_LINK = libz.so.1 ; + + HAIKU_ZLIB_HEADERS = [ FDirName $(HAIKU_ZLIB_DIR) common include ] ; +} else { + Echo "zlib support not available on $(TARGET_ARCH)" ; +} diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 65f94a5498..255d6387ea 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -846,7 +846,6 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 { AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ; AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ; AddHeaderDirectoryToHaikuImage libs tiff : 3rdparty ; - AddHeaderDirectoryToHaikuImage libs zlib : 3rdparty ; CopyDirectoryToHaikuImage develop headers : [ FDirName $(HAIKU_FREETYPE_DIR) develop headers 3rdparty ] ; @@ -854,6 +853,8 @@ if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] && $(TARGET_ARCH) = x86 { : 3rdparty ; CopyDirectoryToHaikuImage develop headers : $(HAIKU_LIBPNG_HEADERS) : 3rdparty ; + CopyDirectoryToHaikuImage develop headers : $(HAIKU_ZLIB_HEADERS) + : 3rdparty ; # cpp headers if $(HAIKU_GCC_VERSION[1]) = 2 { diff --git a/src/add-ons/media/plugins/ffmpeg/Jamfile b/src/add-ons/media/plugins/ffmpeg/Jamfile index 0ac75227b0..0d88d5bb32 100644 --- a/src/add-ons/media/plugins/ffmpeg/Jamfile +++ b/src/add-ons/media/plugins/ffmpeg/Jamfile @@ -56,7 +56,7 @@ Addon ffmpeg : be media - libz.a + $(HAIKU_ZLIB_LIB) $(TARGET_LIBSUPC++) $(TARGET_NETWORK_LIBS) ; diff --git a/src/add-ons/translators/exr/openexr/ilmimf/Jamfile b/src/add-ons/translators/exr/openexr/ilmimf/Jamfile index 3bbe147182..7351941281 100644 --- a/src/add-ons/translators/exr/openexr/ilmimf/Jamfile +++ b/src/add-ons/translators/exr/openexr/ilmimf/Jamfile @@ -11,7 +11,10 @@ if $(HAIKU_LIBSTDC++) = libstdc++.r4.so { SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; } -UseLibraryHeaders zlib ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; + +Includes [ FGristFiles ImfPxr24Compressor.cpp ImfZipCompressor.cpp ] + : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; #StaticLibrary libilmimf.a : SharedLibrary libilmimf.so : @@ -73,6 +76,7 @@ ImfVecAttribute.cpp ImfVersion.cpp ImfWav.cpp ImfZipCompressor.cpp -: libhalf.a libiex.a libimath.a libilmthread.a $(TARGET_LIBSTDC++) z +: libhalf.a libiex.a libimath.a libilmthread.a $(TARGET_LIBSTDC++) + $(HAIKU_ZLIB_LIB) ; diff --git a/src/add-ons/translators/hpgs/Jamfile b/src/add-ons/translators/hpgs/Jamfile index d485776c97..d42549c35e 100644 --- a/src/add-ons/translators/hpgs/Jamfile +++ b/src/add-ons/translators/hpgs/Jamfile @@ -2,7 +2,8 @@ SubDir HAIKU_TOP src add-ons translators hpgs ; SubDirSysHdrs [ FDirName $(SUBDIR) lib ] ; SubDirCcFlags -DHPGS_SHARED -std=c99 ; -UseLibraryHeaders zlib ; +UseLibraryHeaders iconv ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; UseHeaders $(HAIKU_LIBPNG_HEADERS) : true ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; @@ -42,13 +43,15 @@ hpgszostream.c Includes [ FGristFiles hpgsimage.c ] : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles hpgszostream.c ] + : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; Translator HPGSTranslator : # HPGSTranslator classes ConfigView.cpp HPGSTranslator.cpp $(sources) - : be translation $(HAIKU_LIBPNG_LIB) libtextencoding.so libz.so + : be translation $(HAIKU_LIBPNG_LIB) libtextencoding.so $(HAIKU_ZLIB_LIB) libtranslatorsutils.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) : true ; diff --git a/src/add-ons/translators/png/Jamfile b/src/add-ons/translators/png/Jamfile index ebaa98b26c..f1b7df60ed 100644 --- a/src/add-ons/translators/png/Jamfile +++ b/src/add-ons/translators/png/Jamfile @@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons translators png ; SetSubDirSupportedPlatformsBeOSCompatible ; -UseLibraryHeaders zlib ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; UseHeaders $(HAIKU_LIBPNG_HEADERS) : true ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; @@ -20,7 +20,8 @@ Translator PNGTranslator : PNGTranslator.cpp PNGView.cpp - : be translation $(HAIKU_LIBPNG_LIB) z libtranslatorsutils.a $(TARGET_LIBSUPC++) + : be translation $(HAIKU_LIBPNG_LIB) $(HAIKU_ZLIB_LIB) + $(TARGET_LIBSUPC++) libtranslatorsutils.a $(HAIKU_LOCALE_LIBS) : true ; diff --git a/src/add-ons/translators/wonderbrush/Jamfile b/src/add-ons/translators/wonderbrush/Jamfile index 1396e4e0ab..7d0e80a929 100644 --- a/src/add-ons/translators/wonderbrush/Jamfile +++ b/src/add-ons/translators/wonderbrush/Jamfile @@ -5,11 +5,14 @@ SetSubDirSupportedPlatformsBeOSCompatible ; # Include support sub folder SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons translators wonderbrush support ] ; -UseLibraryHeaders zlib ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; AddResources WonderBrushTranslator : WonderBrushTranslator.rdef ; +Includes [ FGristFiles bitmap_compression.cpp ] + : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; + Translator WonderBrushTranslator : Canvas.cpp Layer.cpp @@ -23,8 +26,8 @@ Translator WonderBrushTranslator : blending.cpp lab_convert.cpp - : be translation z libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + : be translation $(HAIKU_ZLIB_LIB) libtranslatorsutils.a + $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) : true ; diff --git a/src/apps/installedpackages/Jamfile b/src/apps/installedpackages/Jamfile index 415d23a904..ba753e9e03 100644 --- a/src/apps/installedpackages/Jamfile +++ b/src/apps/installedpackages/Jamfile @@ -11,7 +11,7 @@ Application InstalledPackages : main.cpp UninstallWindow.cpp UninstallView.cpp - : be tracker translation z $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be tracker translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) ; DoCatalogs InstalledPackages : diff --git a/src/apps/packageinstaller/Jamfile b/src/apps/packageinstaller/Jamfile index 41370706b7..6753cf1bbd 100644 --- a/src/apps/packageinstaller/Jamfile +++ b/src/apps/packageinstaller/Jamfile @@ -1,10 +1,13 @@ SubDir HAIKU_TOP src apps packageinstaller ; UsePrivateHeaders shared interface ; -SubDirHdrs $(HAIKU_TOP) headers libs zlib ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; #SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits interface ] ; +Includes [ FGristFiles PackageItem.cpp ] + : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; + Application PackageInstaller : main.cpp PackageWindow.cpp @@ -16,7 +19,8 @@ Application PackageInstaller : PackageTextViewer.cpp PackageImageViewer.cpp InstalledPackageInfo.cpp - : be $(HAIKU_LOCALE_LIBS) tracker translation z $(TARGET_LIBSUPC++) + : be $(HAIKU_LOCALE_LIBS) tracker translation $(HAIKU_ZLIB_LIB) + $(TARGET_LIBSUPC++) : PackageInstaller.rdef ; diff --git a/src/kits/package/Jamfile b/src/kits/package/Jamfile index a73037b36f..f62c2755ff 100644 --- a/src/kits/package/Jamfile +++ b/src/kits/package/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src kits package ; -UseLibraryHeaders zlib ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; UsePrivateHeaders kernel @@ -8,6 +8,9 @@ UsePrivateHeaders SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src kits package hpkg ] ; +Includes [ FGristFiles ZlibCompressionBase.cpp ] + : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; + HPKG_SOURCES = AttributeDataReader.cpp BlockBufferCache.cpp @@ -72,5 +75,5 @@ SharedLibrary libpackage.so $(HPKG_SOURCES) : - libshared.a be z $(TARGET_LIBSTDC++) + libshared.a be $(HAIKU_ZLIB_LIB) $(TARGET_LIBSTDC++) ; diff --git a/src/libs/Jamfile b/src/libs/Jamfile index 19c7a38276..b8c745a33c 100644 --- a/src/libs/Jamfile +++ b/src/libs/Jamfile @@ -24,4 +24,4 @@ SubInclude HAIKU_TOP src libs termcap ; SubInclude HAIKU_TOP src libs tiff ; SubInclude HAIKU_TOP src libs udis86 ; SubInclude HAIKU_TOP src libs util ; -SubInclude HAIKU_TOP src libs zlib ; + diff --git a/src/libs/tiff/Jamfile b/src/libs/tiff/Jamfile index 64d5482a4a..9402c316ba 100644 --- a/src/libs/tiff/Jamfile +++ b/src/libs/tiff/Jamfile @@ -1,7 +1,8 @@ SubDir HAIKU_TOP src libs tiff ; -UseLibraryHeaders tiff zlib ; +UseLibraryHeaders tiff ; UseHeaders $(HAIKU_JPEG_HEADERS) : true ; +UseHeaders $(HAIKU_ZLIB_HEADERS) : true ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; @@ -47,10 +48,12 @@ local shared_files = Includes [ FGristFiles tif_jpeg.c tif_ojpeg.c ] : $(HAIKU_JPEG_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles tif_pixarlog.c tif_zip.c ] + : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ; Objects $(shared_files) ; SharedLibrary libtiff.so : [ FGristFiles $(shared_files:S=.o) ] - : $(HAIKU_JPEG_LIB) z : 3.8 ; + : $(HAIKU_JPEG_LIB) $(HAIKU_ZLIB_LIB) : 3.8 ; StaticLibrary libtiff.a : [ FGristFiles $(shared_files:S=.o) ] ;