tiff/0000755000175100001440000000000014531324160011217 5ustar hornikuserstiff/NAMESPACE0000644000175100001440000000007714531222327012444 0ustar hornikusersuseDynLib(tiff, read_tiff, write_tiff) exportPattern(".*TIFF") tiff/tools/0000755000175100001440000000000014531222327012361 5ustar hornikuserstiff/tools/winlibs.R0000644000175100001440000000060314531222327014152 0ustar hornikusers# Build against libtiff compiled with Rtools if (!file.exists("../windows/libtiff-4.1.0/mingw64/include/tiff.h")) { if(getRversion() < "3.3.0") setInternet2() download.file("https://github.com/rwinlib/libtiff/archive/v4.1.0.zip", "lib.zip", quiet = TRUE) dir.create("../windows", showWarnings = FALSE) unzip("lib.zip", exdir = "../windows") unlink("lib.zip") } tiff/man/0000755000175100001440000000000014531222327011774 5ustar hornikuserstiff/man/writeTIFF.Rd0000644000175100001440000000452514531222327014074 0ustar hornikusers\name{writeTIFF} \alias{writeTIFF} \title{ Write one or more bitmap images in TIFF format } \description{ Writes images into a TIFF file or a raw vector representing such. } \usage{ writeTIFF(what, where, bits.per.sample = 8L, compression = c("LZW", "none", "PackBits", "RLE", "JPEG", "deflate"), reduce = TRUE) } \arguments{ \item{what}{either an image or a list of images. An image is a real matrix or array of three dimensions, or an object of the class \code{"nativeRaster"}.} \item{where}{file name or a raw vector} \item{bits.per.sample}{number of bits per sample (numeric scalar). Supported values in this version are 8, 16, and 32.} \item{compression}{desired compression algorithm (string). Optionally, it can be specified as a numeric value corresponding to the compression TIFF tag, but it needs to be also supported by the underlying TIFF library} \item{reduce}{if \code{TRUE} then \code{writeTIFF} will attempt to reduce the number of planes in native rasters by analyzing the image to choose one of RGBA, RGB, GA or G formats, whichever uses the least planes without any loss. Otherwise the image is always saved with four planes (RGBA).} } \value{ If \code{where} is a raw vector then the value is the raw vector containg the TIFF contents, otherwise a scalar integer specifying the number of images written in the file. } %\references{ %} \author{ Simon Urbanek } \details{ By default \code{writeTIFF} uses the same number of planes as there are planes in the input image. For native images it is always four unless \code{reduce = TRUE} is set (see above). Consequently, color maps are not used. The output always uses contiguous planar configuration (baseline TIFF). The output is tagged with a photometric tag of either RGB (3 or 4 planes) or zero-is-black (1 or 2 planes). If \code{what} is a list then the TIFF output will be a directory of the corresponding number of images (in TIFF speak - not to be confused with file directories). } \seealso{ \code{\link{readTIFF}} } \examples{ img <- readTIFF(system.file("img", "Rlogo.tiff", package="tiff")) # write without the alpha channel tiff <- writeTIFF(img[,,-4], raw(0)) # read as native i2 <- readTIFF(tiff, native=TRUE) # write reduced - should be the same as tiff t2 <- writeTIFF(i2, raw(0), reduce=TRUE) } \keyword{IO} tiff/man/readTIFF.Rd0000644000175100001440000001315714531222327013656 0ustar hornikusers\name{readTIFF} \alias{readTIFF} \title{ Read a bitmap image stored in the TIFF format } \description{ Reads an image from a TIFF file/content into a raster array. } \usage{ readTIFF(source, native = FALSE, all = FALSE, convert = FALSE, info = FALSE, indexed = FALSE, as.is = FALSE, payload = TRUE) } \arguments{ \item{source}{Either name of the file to read from or a raw vector representing the TIFF file content.} \item{native}{logical, determines the image representation - if \code{FALSE} (the default) then the result is an array, if \code{TRUE} then the result is a native raster representation (suitable for plotting).} \item{all}{logical scalar or integer vector. TIFF files can contain more than one image. If \code{all=TRUE} then all images are returned in a list of images. If \code{all} is a vector, it gives the (1-based) indices of images to return. Otherwise only the first image is returned.} \item{convert}{logical, if \code{TRUE} then first convert the image into 8-bit RGBA samples and then to an array, see below for details.} \item{info}{logical, if set to \code{TRUE} then the resulting image(s) will also contain information from TIFF tags as attributes} \item{indexed}{logical, if set to \code{TRUE} then indexed images will be returned in the indexed form, i.e., as a matrix of integer indices referencing into a color map which is returned in the \code{"color.map"} attribute. This flag cannot be combined with \code{convert} or \code{native} and has no effect on images that are not indexed.} \item{as.is}{logical, if \code{TRUE} an attempt will be made to return the original integer values without re-scaling where possible} \item{payload}{logical, if \code{FALSE} then only metadata about the image(s) is returned, but not the actual image. Implies \code{info=TRUE} and all image-related flags are ignored.} } \value{ If \code{native} is \code{FALSE} then an array of the dimensions height x width x channels. If there is only one channel the result is a matrix. The values are reals between 0 and 1 (except for 32-bit floating point sample storage which are unscaled reals, and for indexed and \code{as.is=TRUE} which are integers). If \code{native} is \code{TRUE} then an object of the class \code{nativeRaster} is returned instead. The latter cannot be easily computed on but is the most efficient way to draw using \code{rasterImage}. If \code{all} is \code{TRUE} or a vector of image indices, then the result is a list of the above with zero or more elements. If \code{all} is a vector of indices, the result will have exactly the same length as \code{all}. If an index does not appear in the file, the corresponding list entry will be \code{NULL}. If \code{payload=FALSE} then the result is equivalent to \code{info=TRUE} but without the image data and returned as a data frame. If \code{all} is either \code{TRUE} or a vector then the result will be a data frame with each row corresponding to one image. } \details{ Most common files decompress into RGB (3 channels), RGBA (4 channels), Grayscale (1 channel) or GA (2 channels). Note that G and GA images cannot be directly used in \code{\link{rasterImage}} unless \code{native} is set to \code{TRUE} because \code{rasterImage} requires RGB or RGBA format (\code{nativeRaster} is always 8-bit RGBA). TIFF images can have a wide range of internal representations, but only the most common in image processing are directly supported (8-bit, 16-bit integer and 32-bit float samples). Other formats (color maps, sub-8-bit images, etc.) are only supported via \code{convert=TRUE} which uses the built-in facilities of the TIFF library to convert the image into RGBA format with 8-bit samples (i.e. total of 32-bit per pixel) and then store the relevant components from there into real arrays. This is the same path as used by \code{native=TRUE} and so differs only in the output value. Note that conversion may result in different values than direct acccess as it is intended mainly for viewing and not computation. } %\references{ %} \author{ Simon Urbanek Kent Johnson } \note{ Some non-standard formats such as 12-bit TIFFs are partially supported (there is no standard for packing order for TIFFs beoynd 8-bit so we assume big-endian packing similar to the default fill order and only support single channel or indexed). The \code{as.is=TRUE} option is experimental, cannot be used with \code{native} or \code{convert} and only works for integer storage TIFFs. } \seealso{ \code{\link{rasterImage}}, \code{\link{writeTIFF}} } \examples{ Rlogo <- system.file("img", "Rlogo.tiff", package="tiff") # read a sample file (R logo) img <- readTIFF(Rlogo) # read it also in native format img.n <- readTIFF(Rlogo, native=TRUE) # and also in converted img.c <- readTIFF(Rlogo, convert=TRUE) # read all contained images str(readTIFF(Rlogo, all=TRUE)) # pick some images str(readTIFF(Rlogo, all=c(5, 1, 3))) # only show information str(readTIFF(Rlogo, payload=FALSE)) # if your R supports it, we'll plot it if (exists("rasterImage")) { # can plot only in R 2.11.0 and higher plot(1:2, type='n') if (names(dev.cur()) == "windows") { # windows device doesn't support semi-transparency so we'll need # to flatten the image transparent <- img[,,4] == 0 img <- as.raster(img[,,1:3]) img[transparent] <- NA # interpolate must be FALSE on Windows, otherwise R will # try to interpolate transparency and fail rasterImage(img, 1.2, 1.27, 1.8, 1.73, interpolate=FALSE) } else { # any reasonable device will be fine using alpha rasterImage(img, 1.2, 1.27, 1.8, 1.73) rasterImage(img.n, 1.5, 1.5, 1.9, 1.8) } } } \keyword{IO} tiff/DESCRIPTION0000644000175100001440000000123014531324160012721 0ustar hornikusersPackage: tiff Version: 0.1-12 Title: Read and Write TIFF Images Author: Simon Urbanek [aut, cre], Kent Johnson [ctb] Maintainer: Simon Urbanek Depends: R (>= 2.9.0) Description: Functions to read, write and display bitmap images stored in the TIFF format. It can read and write both files and in-memory raw vectors, including native image representation. License: GPL-2 | GPL-3 SystemRequirements: tiff and jpeg libraries URL: https://www.rforge.net/tiff/ NeedsCompilation: yes Packaged: 2023-11-27 23:23:08 UTC; rforge Repository: CRAN Date/Publication: 2023-11-28 08:44:32 UTC tiff/configure.ac0000644000175100001440000000545414531222327013517 0ustar hornikusersAC_INIT([tiff],[1.0],[Simon.Urbanek@r-project.org]) AC_CONFIG_SRCDIR(src/common.c) # find R home and set correct compiler + flags : ${R_HOME="`R RHOME`"} if test -z "${R_HOME}"; then AC_MSG_ERROR([cannot determine R_HOME. Make sure you use R CMD INSTALL!]) fi RBIN="${R_HOME}/bin/R" : ${PKG_MODULE=libtiff-4} # pick all flags for testing from R : ${CC=`"${RBIN}" CMD config CC`} : ${CFLAGS=`"${RBIN}" CMD config CFLAGS`} : ${CPPFLAGS=`"${RBIN}" CMD config CPPFLAGS`} : ${LDFLAGS=`"${RBIN}" CMD config LDFLAGS`} : ${CPP="$CC -E"} # honor PKG_xx overrides LIBS="${LIBS} ${PKG_LIBS}" # for CPPFLAGS we will superfluously double R's flags # since we'll set PKG_CPPFLAGS with this, but that shouldn't hurt CPPFLAGS="${CPPFLAGS} ${PKG_CPPFLAGS}" AC_PATH_PROG([PKG_CONFIG], [pkg-config]) AC_LANG(C) AC_CHECK_HEADERS([unistd.h]) AC_CHECK_LIB([tiff],[TIFFClientOpen],,[ AC_MSG_NOTICE([Using libtiff directly doesn't work, falling back to pkg-config.]) AC_MSG_NOTICE([Note that you can provide correct PKG_LIBS to allow installation without pkg-config.]) AC_MSG_CHECKING([for pkg-config]) AS_IF(["$PKG_CONFIG" --version], , [AC_MSG_RESULT([no]) AC_MSG_ERROR([Provided flags don't work and pkg-config is not present. You can either set PKG_LIBS to the correct flags or install pkg-config.])]) AC_MSG_CHECKING([whether pkg-config knows about $PKG_MODULE]) AS_IF([$PKG_CONFIG $PKG_MODULE], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT([no]) AC_MSG_ERROR([Install libtiff-dev or equivalent first (or set PKG_MODULE if non-standard)])]) TIFF_CPPFLAGS="`$PKG_CONFIG --cflags $PKG_MODULE`" TIFF_LIBS="`$PKG_CONFIG --libs $PKG_MODULE`" LIBS0="$LIBS" LIBS="$LIBS0 ${TIFF_LIBS}" CPPFLAGS="$CPPFLAGS ${TIFF_CPPFLAGS}" AC_MSG_CHECKING([whether ${TIFF_CPPFLAGS} ${TIFF_LIBS} works]) AC_LINK_IFELSE([AC_LANG_CALL([], [TIFFClientOpen])], AC_MSG_RESULT([yes]), [ AC_MSG_RESULT([no]) AC_MSG_CHECKING([whether --static helps]) TIFF_LIBS="`$PKG_CONFIG --static --libs $PKG_MODULE`" LIBS="$LIBS0 ${TIFF_LIBS}" AC_LINK_IFELSE([AC_LANG_CALL([], [TIFFClientOpen])], AC_MSG_RESULT([yes]),,[ AC_MSG_RESULT([no]) AC_MSG_ERROR([Cannot get libtiff to work, check config.log for details.]) ]) ]) ]) AC_MSG_NOTICE([ PKG_CPPFLAGS: $CPPFLAGS]) AC_MSG_NOTICE([ PKG_LIBS : $LIBS]) ## check headers only after we're done with pkg-config AC_CHECK_HEADERS([tiff.h tiffio.h],, [AC_MSG_ERROR([TIFF headers are not usable. Please make sure you have installed development files for libtiff.])]) AC_ARG_VAR([PKG_CPPFLAGS],[custom C preprocessor flags for package compilation]) AC_ARG_VAR([PKG_LIBS],[custom libraries for package compilation]) AC_ARG_VAR([PKG_CONFIG],[path to the pkg-config executable (pkg-config)]) AC_ARG_VAR([PKG_MODULE],[name of the tiff pkg-config module (libtiff-4)]) AC_CONFIG_FILES(src/Makevars) AC_OUTPUT tiff/src/0000755000175100001440000000000014531222327012010 5ustar hornikuserstiff/src/read.c0000644000175100001440000005550014531222327013074 0ustar hornikusers#include #include #include #include #include "common.h" #include /* avoid protection issues with setAttrib where new symbols may trigger GC problems */ static void setAttr(SEXP x, const char *name, SEXP val) { PROTECT(val); setAttrib(x, Rf_install(name), val); UNPROTECT(1); } /* add information attributes according to the TIFF tags. Only a somewhat random set (albeit mostly baseline) is supported */ static void TIFF_add_info(TIFF *tiff, SEXP res) { uint32_t i32; uint16_t i16; float f; char *c = 0; if (TIFFGetField(tiff, TIFFTAG_IMAGEWIDTH, &i32)) setAttr(res, "width", ScalarInteger(i32)); if (TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &i32)) setAttr(res, "length", ScalarInteger(i32)); if (TIFFGetField(tiff, TIFFTAG_IMAGEDEPTH, &i32)) setAttr(res, "depth", ScalarInteger(i32)); if (TIFFGetField(tiff, TIFFTAG_BITSPERSAMPLE, &i16)) setAttr(res, "bits.per.sample", ScalarInteger(i16)); if (TIFFGetField(tiff, TIFFTAG_SAMPLESPERPIXEL, &i16)) setAttr(res, "samples.per.pixel", ScalarInteger(i16)); if (TIFFGetField(tiff, TIFFTAG_SAMPLEFORMAT, &i16)) { char uv[24]; const char *name = 0; switch (i16) { case 1: name = "uint"; break; case 2: name = "int"; break; case 3: name = "float"; break; case 4: name = "undefined"; break; case 5: name = "complex int"; break; case 6: name = "complex float"; break; default: snprintf(uv, sizeof(uv), "unknown (%d)", i16); name = uv; } setAttr(res, "sample.format", mkString(name)); } if (TIFFGetField(tiff, TIFFTAG_PLANARCONFIG, &i16)) { if (i16 == PLANARCONFIG_CONTIG) setAttr(res, "planar.config", mkString("contiguous")); else if (i16 == PLANARCONFIG_SEPARATE) setAttr(res, "planar.config", mkString("separate")); else { char uv[24]; snprintf(uv, sizeof(uv), "unknown (%d)", i16); setAttr(res, "planar.config", mkString(uv)); } } if (TIFFGetField(tiff, TIFFTAG_ROWSPERSTRIP, &i32)) setAttr(res, "rows.per.strip", ScalarInteger(i32)); if (TIFFGetField(tiff, TIFFTAG_TILEWIDTH, &i32)) { setAttr(res, "tile.width", ScalarInteger(i32)); TIFFGetField(tiff, TIFFTAG_TILELENGTH, &i32); setAttr(res, "tile.length", ScalarInteger(i32)); } if (TIFFGetField(tiff, TIFFTAG_COMPRESSION, &i16)) { char uv[24]; const char *name = 0; switch (i16) { case 1: name = "none"; break; case 2: name = "CCITT RLE"; break; case 32773: name = "PackBits"; break; case 3: name = "CCITT Group 3 fax"; break; case 4: name = "CCITT Group 4 fax"; break; case 5: name = "LZW"; break; case 6: name = "old JPEG"; break; case 7: name = "JPEG"; break; case 8: name = "deflate"; break; case 9: name = "JBIG b/w"; break; case 10: name = "JBIG color"; break; default: snprintf(uv, sizeof(uv), "unknown (%d)", i16); name = uv; } setAttr(res, "compression", mkString(name)); } if (TIFFGetField(tiff, TIFFTAG_THRESHHOLDING, &i16)) setAttr(res, "threshholding", ScalarInteger(i16)); if (TIFFGetField(tiff, TIFFTAG_XRESOLUTION, &f)) setAttr(res, "x.resolution", ScalarReal(f)); if (TIFFGetField(tiff, TIFFTAG_YRESOLUTION, &f)) setAttr(res, "y.resolution", ScalarReal(f)); if (TIFFGetField(tiff, TIFFTAG_XPOSITION, &f)) setAttr(res, "x.position", ScalarReal(f)); if (TIFFGetField(tiff, TIFFTAG_YPOSITION, &f)) setAttr(res, "y.position", ScalarReal(f)); if (TIFFGetField(tiff, TIFFTAG_RESOLUTIONUNIT, &i16)) { const char *name = "unknown"; switch (i16) { case 1: name = "none"; break; case 2: name = "inch"; break; case 3: name = "cm"; break; } setAttr(res, "resolution.unit", mkString(name)); } #ifdef TIFFTAG_INDEXED /* very recent in libtiff even though it's an old tag */ if (TIFFGetField(tiff, TIFFTAG_INDEXED, &i16)) setAttr(res, "indexed", ScalarLogical(i16)); #endif if (TIFFGetField(tiff, TIFFTAG_ORIENTATION, &i16)) { const char *name = ""; switch (i16) { case 1: name = "top.left"; break; case 2: name = "top.right"; break; case 3: name = "bottom.right"; break; case 4: name = "bottom.left"; break; case 5: name = "left.top"; break; case 6: name = "right.top"; break; case 7: name = "right.bottom"; break; case 8: name = "left.bottom"; break; } setAttr(res, "orientation", mkString(name)); } if (TIFFGetField(tiff, TIFFTAG_COPYRIGHT, &c) && c) setAttr(res, "copyright", mkString(c)); if (TIFFGetField(tiff, TIFFTAG_ARTIST, &c) && c) setAttr(res, "artist", mkString(c)); if (TIFFGetField(tiff, TIFFTAG_DOCUMENTNAME, &c) && c) setAttr(res, "document.name", mkString(c)); if (TIFFGetField(tiff, TIFFTAG_DATETIME, &c) && c) setAttr(res, "date.time", mkString(c)); if (TIFFGetField(tiff, TIFFTAG_IMAGEDESCRIPTION, &c) && c) setAttr(res, "description", mkString(c)); if (TIFFGetField(tiff, TIFFTAG_SOFTWARE, &c) && c) setAttr(res, "software", mkString(c)); if (TIFFGetField(tiff, TIFFTAG_PHOTOMETRIC, &i16)) { char uv[24]; const char *name = 0; switch (i16) { case 0: name = "white is zero"; break; case 1: name = "black is zero"; break; case 2: name = "RGB"; break; case 3: name = "palette"; break; case 4: name = "mask"; break; case 5: name = "separated"; break; case 6: name = "YCbCr"; break; case 8: name = "CIELAB"; break; case 9: name = "ICCLab"; break; case 10: name = "ITULab"; break; default: snprintf(uv, sizeof(uv), "unknown (%d)", i16); name = uv; } setAttr(res, "color.space", mkString(name)); } } SEXP read_tiff(SEXP sFn, SEXP sNative, SEXP sAll, SEXP sConvert, SEXP sInfo, SEXP sIndexed, SEXP sOriginal, SEXP sPayload) { SEXP res = R_NilValue, multi_res = R_NilValue, multi_tail = R_NilValue, dim = R_NilValue; const char *fn; int native = asInteger(sNative), all = (isLogical(sAll) && asInteger(sAll) > 0), n_img = 0, convert = (asInteger(sConvert) == 1), add_info = (asInteger(sInfo) == 1), indexed = (asInteger(sIndexed) == 1), original = (asInteger(sOriginal) == 1), info_only = (asInteger(sPayload) == 0); tiff_job_t rj; TIFF *tiff; FILE *f; int *pick = (isInteger(sAll) ? INTEGER(sAll) : 0); int picks = pick ? LENGTH(sAll) : 0; SEXP pick_res = pick ? PROTECT(allocVector(VECSXP, picks)) : 0; /* make sure people don't use vector logicals - they must use which() if that's what they want */ if (!((isLogical(sAll) && LENGTH(sAll) == 1) || isInteger(sAll))) Rf_error("`all' must be either a scalar logical (TRUE/FALSE) or an integer vector"); if (indexed && (convert || native)) Rf_error("indexed and native/convert cannot both be TRUE as they are mutually exclusive"); if (TYPEOF(sFn) == RAWSXP) { rj.data = (char*) RAW(sFn); rj.len = LENGTH(sFn); rj.alloc = rj.ptr = 0; rj.f = f = 0; } else { if (TYPEOF(sFn) != STRSXP || LENGTH(sFn) < 1) Rf_error("invalid filename"); fn = CHAR(STRING_ELT(sFn, 0)); f = fopen(fn, "rb"); if (!f) Rf_error("unable to open %s", fn); rj.f = f; } tiff = TIFF_Open("rmc", &rj); /* no mmap, no chopping */ if (!tiff) Rf_error("Unable to open TIFF"); int cur_dir = 0; /* 1-based image number */ int nprot = 0; while (1) { /* loop over separate image in a directory if desired */ int pick_index = -1; /* not picked */ cur_dir++; /* If sAll is a numeric vector, only read images referenced in it */ if (pick) { /* We don't use match() as it re-builds the hash table on every call. */ int i = 0; while (i < picks) { if (pick[i] == cur_dir) { pick_index = i; break; } i++; } if (pick_index == -1) { /* No match */ if (TIFFReadDirectory(tiff)) /* skip */ continue; else break; } } if (info_only) { /* dummy result object */ res = PROTECT(allocVector(INTSXP, 0)); TIFF_add_info(tiff, res); if (isLogical(sAll) && asInteger(sAll) == 0) { UNPROTECT(1); TIFFClose(tiff); return res; } n_img++; if (pick_index >= 0) SET_VECTOR_ELT(pick_res, pick_index, res); else { if (multi_res == R_NilValue) { multi_tail = multi_res = CONS(res, R_NilValue); PROTECT(multi_res); nprot++; } else { SEXP q = CONS(res, R_NilValue); SETCDR(multi_tail, q); multi_tail = q; } } UNPROTECT(1); if (!TIFFReadDirectory(tiff)) break; continue; } uint32_t imageWidth = 0, imageLength = 0, imageDepth; uint32_t tileWidth, tileLength; uint32_t x, y; uint16_t config, bps = 8, spp = 1, sformat = 1, out_spp; tdata_t buf; double *ra = 0; uint16_t *colormap[3] = {0, 0, 0}; int is_float = 0; TIFFGetField(tiff, TIFFTAG_IMAGEWIDTH, &imageWidth); TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &imageLength); if (!TIFFGetField(tiff, TIFFTAG_IMAGEDEPTH, &imageDepth)) imageDepth = 0; if (TIFFGetField(tiff, TIFFTAG_TILEWIDTH, &tileWidth)) TIFFGetField(tiff, TIFFTAG_TILELENGTH, &tileLength); else /* no tiles */ tileWidth = tileLength = 0; TIFFGetField(tiff, TIFFTAG_PLANARCONFIG, &config); TIFFGetField(tiff, TIFFTAG_BITSPERSAMPLE, &bps); TIFFGetField(tiff, TIFFTAG_SAMPLESPERPIXEL, &spp); out_spp = spp; TIFFGetField(tiff, TIFFTAG_COLORMAP, colormap, colormap + 1, colormap + 2); if (TIFFGetField(tiff, TIFFTAG_SAMPLEFORMAT, &sformat) && sformat == SAMPLEFORMAT_IEEEFP) is_float = 1; if (spp == 1 && !indexed) { /* modify out_spp for colormaps */ if (colormap[2]) out_spp = 3; else if (colormap[1]) out_spp = 2; } #ifdef TIFF_DEBUG Rprintf("image %d x %d x %d, tiles %d x %d, bps = %d, spp = %d (output %d), config = %d, colormap = %s,\n", imageWidth, imageLength, imageDepth, tileWidth, tileLength, bps, spp, out_spp, config, colormap[0] ? "yes" : "no"); Rprintf(" float = %d\n", is_float); #endif if (native || convert) { /* use built-in RGBA conversion - fortunately, libtiff uses exactly the same RGBA representation as R ... *but* flipped y coordinate :( */ SEXP tmp = R_NilValue; /* FIXME: TIFF handle leak in case this fails */ if (convert) PROTECT(tmp = allocVector(REALSXP, imageWidth * imageLength * out_spp)); res = PROTECT(allocVector(INTSXP, imageWidth * imageLength)); TIFFReadRGBAImage(tiff, imageWidth, imageLength, (uint32_t*) INTEGER(res), 0); /* TIFF uses flipped y-axis, so we need to invert it .. argh ... */ if (imageLength > 1) { int *line = INTEGER(allocVector(INTSXP, imageWidth)); int *src = INTEGER(res), *dst = INTEGER(res) + imageWidth * (imageLength - 1), ls = imageWidth * sizeof(int); int *el = src + imageWidth * (imageLength / 2); while (src < el) { memcpy(line, src, ls); memcpy(src, dst, ls); memcpy(dst, line, ls); src += imageWidth; dst -= imageWidth; } } if (convert) { uint16_t s; uint32_t *data = (uint32_t*) INTEGER(res); ra = REAL(tmp); for (x = 0; x < imageWidth; x++) for (y = 0; y < imageLength; y++) { if (out_spp == 1) { /* single plane (gray) just take R */ ra[imageLength * x + y] = ((double)(data[x + y * imageWidth] & 255)) / 255.0; } else if (out_spp == 2 /* G+A */) { /* this is a bit odd as we need to copy R and A */ ra[imageLength * x + y] = ((double)(data[x + y * imageWidth] & 255)) / 255.0; ra[imageWidth * imageLength + imageLength * x + y] = ((double)((data[x + y * imageWidth] >> 16) & 255)) / 255.0; } else /* 3-4 are simply sequential copies */ for (s = 0; s < out_spp; s++) ra[(imageLength * imageWidth * s) + imageLength * x + y] = ((double) ((data[x + y * imageWidth] >> (s * 8)) & 255)) / 255.0; } UNPROTECT(1); /* res */ res = tmp; dim = allocVector(INTSXP, (out_spp > 1) ? 3 : 2); INTEGER(dim)[0] = imageLength; INTEGER(dim)[1] = imageWidth; if (out_spp > 1) INTEGER(dim)[2] = out_spp; setAttrib(res, R_DimSymbol, dim); if (add_info) TIFF_add_info(tiff, res); UNPROTECT(1); } else { SEXP R_ChannelsSymbol = Rf_install("channels"); dim = allocVector(INTSXP, 2); INTEGER(dim)[0] = imageLength; INTEGER(dim)[1] = imageWidth; setAttrib(res, R_DimSymbol, dim); setAttrib(res, R_ClassSymbol, mkString("nativeRaster")); setAttrib(res, R_ChannelsSymbol, ScalarInteger(out_spp)); if (add_info) TIFF_add_info(tiff, res); UNPROTECT(1); } if (!all && !picks) { TIFFClose(tiff); return res; } n_img++; if (pick_index >= 0) SET_VECTOR_ELT(pick_res, pick_index, res); else { if (multi_res == R_NilValue) { multi_tail = multi_res = CONS(res, R_NilValue); PROTECT(multi_res); nprot++; } else { SEXP q = CONS(res, R_NilValue); SETCDR(multi_tail, q); multi_tail = q; } } if (!TIFFReadDirectory(tiff)) break; continue; } /* end native || convert */ if (bps != 8 && bps != 16 && bps != 32 && ( bps != 12 || spp != 1 )) { TIFFClose(tiff); Rf_error("image has %d bits/sample which is unsupported in direct mode - use native=TRUE or convert=TRUE", bps); } if (original && is_float) { TIFFClose(tiff); Rf_error("as.is=TRUE is not supported for floating point images"); } if (sformat == SAMPLEFORMAT_INT && !original) Rf_warning("tiff package currently only supports unsigned integer or float sample formats in direct mode, but the image contains signed integer format - it will be treated as unsigned (use as.is=TRUE, native=TRUE or convert=TRUE depending on your intent)"); /* FIXME: TIFF handle leak in case this fails */ res = allocVector((spp == 1 && (original || (indexed && colormap[0]))) ? INTSXP : REALSXP, imageWidth * imageLength * out_spp); if (!(spp == 1 && (original || (indexed && colormap[0])))) ra = REAL(res); #define DE12A(v) ((((unsigned int) v[0]) << 4) | (((unsigned int) v[1]) >> 4)) #define DE12B(v) (((((unsigned int) v[1]) & 0x0f) << 8) | ((unsigned int) v[2])) if (tileWidth == 0) { tstrip_t strip; tsize_t plane_offset = 0; x = 0; y = 0; buf = _TIFFmalloc(TIFFStripSize(tiff)); #ifdef TIFF_DEBUG Rprintf(" - %d x %d strips\n", TIFFNumberOfStrips(tiff), TIFFStripSize(tiff)); #endif for (strip = 0; strip < TIFFNumberOfStrips(tiff); strip++) { tsize_t n = TIFFReadEncodedStrip(tiff, strip, buf, (tsize_t) -1); if (spp == 1) { /* config doesn't matter for spp == 1 */ if (colormap[0] && !indexed) { tsize_t i, step = bps / 8; int *ia = original ? INTEGER(res) : 0; if (bps == 12) step += 2; for (i = 0; i < n; i += step) { unsigned int ci = 0, ci2 = 0; const unsigned char *v = (const unsigned char*) buf + i; if (bps == 8) ci = v[0]; else if (bps == 16) ci = ((const unsigned short int*)v)[0]; else if (bps == 32) ci = ((const unsigned int*)v)[0]; else if (bps == 12) { ci = DE12A(v); ci2 = DE12B(v); } if (original) { ia[imageLength * x + y] = colormap[0][ci]; /* color maps are always 16-bit */ /* FIXME: bps==12 is broken with color map lookup !!! */ if (bps == 12) ia[imageLength * ++x + y] = colormap[0][ci2]; if (colormap[1]) { ia[(imageLength * imageWidth) + imageLength * x + y] = colormap[1][ci]; if (colormap[2]) ia[(2 * imageLength * imageWidth) + imageLength * x + y] = colormap[2][ci]; } } else { ra[imageLength * x + y] = ((double)colormap[0][ci]) / 65535.0; /* color maps are always 16-bit */ if (bps == 12) ra[imageLength * ++x + y] = ((double)colormap[0][ci2]) / 65535.0; if (colormap[1]) { ra[(imageLength * imageWidth) + imageLength * x + y] = ((double)colormap[1][ci]) / 65535.0; if (colormap[2]) ra[(2 * imageLength * imageWidth) + imageLength * x + y] = ((double)colormap[2][ci]) / 65535.0; } } x++; if (x >= imageWidth) { x -= imageWidth; y++; } } } else if (colormap[0] || original) { /* indexed requested */ tsize_t i, step = bps / 8; int *ia = INTEGER(res), ix_base = original ? 0 : 1; if (bps == 12) step = 3; for (i = 0; i < n; i += step) { int val = NA_INTEGER; const unsigned char *v = (const unsigned char*) buf + i; if (bps == 8) val = ix_base + v[0]; else if (bps == 16) val = ix_base + ((const unsigned short int*)v)[0]; else if (bps == 32) val = ix_base + ((const unsigned int*)v)[0]; else if (bps == 12) { ia[imageLength * x++ + y] = ix_base + DE12A(v); val = ix_base + DE12B(v); } ia[imageLength * x++ + y] = val; if (x >= imageWidth) { x -= imageWidth; y++; } } } else { /* direct gray */ tsize_t i, step = bps / 8; if (bps == 12) step = 3; for (i = 0; i < n; i += step) { double val = NA_REAL; const unsigned char *v = (const unsigned char*) buf + i; if (bps == 8) val = ((double) v[0]) / 255.0; else if (bps == 16) val = ((double) ((const unsigned short int*)v)[0]) / 65535.0; else if (bps == 32) { if (is_float) val = (double) ((const float*)v)[0]; else val = ((double) ((const unsigned int*)v)[0]) / 4294967296.0; } if (bps == 12) { ra[imageLength * x++ + y] = ((double) DE12A(v)) / 4096.0; val = ((double) DE12B(v)) / 4096.0; } ra[imageLength * x + y] = val; x++; if (x >= imageWidth) { x -= imageWidth; y++; } } } } else if (config == PLANARCONFIG_CONTIG) { /* interlaced */ tsize_t i, j, step = spp * bps / 8; for (i = 0; i < n; i += step) { const unsigned char *v = (const unsigned char*) buf + i; if (bps == 8) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * x + y] = ((double) v[j]) / 255.0; } else if (bps == 16) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * x + y] = ((double) ((const unsigned short int*)v)[j]) / 65535.0; } else if (bps == 32 && !is_float) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * x + y] = ((double) ((const unsigned int*)v)[j]) / 4294967296.0; } else if (bps == 32 && is_float) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * x + y] = (double) ((const float*)v)[j]; } x++; if (x >= imageWidth) { x -= imageWidth; y++; } } } else { /* separate */ tsize_t step = bps / 8, i; for (i = 0; i < n; i += step) { const unsigned char *v = (const unsigned char*) buf + i; if (bps == 8) ra[plane_offset + imageLength * x + y] = ((double) v[0]) / 255.0; else if (bps == 16) ra[plane_offset + imageLength * x + y] = ((double) ((const unsigned short int*)v)[0]) / 65535.0; else if (bps == 32 && !is_float) ra[plane_offset + imageLength * x + y] = ((double) ((const unsigned int*)v)[0]) / 4294967296.0; else if (bps == 32 && is_float) ra[plane_offset + imageLength * x + y] = (double) ((const float*)v)[0]; } x++; if (x >= imageWidth) { x -= imageWidth; y++; if (y >= imageLength) { y -= imageLength; plane_offset += imageWidth * imageLength; } } } } } else { /* tiled image */ if (indexed || colormap[0] || bps == 12) Rf_error("Indexed and 12-bit tiled images are not supported."); if (spp > 1 && config != PLANARCONFIG_CONTIG) Rf_error("Planar format tiled images are not supported"); #ifdef TIFF_DEBUG Rprintf(" - %d x %d tiles\n", TIFFNumberOfTiles(tiff), TIFFTileSize(tiff)); #endif x = 0; y = 0; buf = _TIFFmalloc(TIFFTileSize(tiff)); for (y = 0; y < imageLength; y += tileLength) for (x = 0; x < imageWidth; x += tileWidth) { tsize_t n = TIFFReadTile(tiff, buf, x, y, 0 /*depth*/, 0 /*plane*/); if (spp == 1) { /* config doesn't matter for spp == 1 */ /* direct gray */ tsize_t i, step = bps / 8; uint32_t xoff=0, yoff=0; for (i = 0; i < n; i += step) { double val = NA_REAL; const unsigned char *v = (const unsigned char*) buf + i; if (bps == 8) val = ((double) v[0]) / 255.0; else if (bps == 16) val = ((double) ((const unsigned short int*)v)[0]) / 65535.0; else if (bps == 32) { if (is_float) val = (double) ((const float*)v)[0]; else val = ((double) ((const unsigned int*)v)[0]) / 4294967296.0; } if (x + xoff < imageWidth && y + yoff < imageLength) ra[imageLength * (x + xoff) + y + yoff] = val; xoff++; if (xoff >= tileWidth) { xoff -= tileWidth; yoff++; } } } else if (config == PLANARCONFIG_CONTIG) { /* interlaced */ tsize_t i, j, step = spp * bps / 8; uint32_t xoff=0, yoff=0; for (i = 0; i < n; i += step) { const unsigned char *v = (const unsigned char*) buf + i; if (x + xoff < imageWidth && y + yoff < imageLength) { if (bps == 8) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * (x + xoff) + y + yoff] = ((double) v[j]) / 255.0; } else if (bps == 16) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * (x + xoff) + y + yoff] = ((double) ((const unsigned short int*)v)[j]) / 65535.0; } else if (bps == 32 && !is_float) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * (x + xoff) + y + yoff] = ((double) ((const unsigned int*)v)[j]) / 4294967296.0; } else if (bps == 32 && is_float) { for (j = 0; j < spp; j++) ra[(imageLength * imageWidth * j) + imageLength * (x + xoff) + y + yoff] = (double) ((const float*)v)[j]; } } xoff++; if (xoff >= tileWidth) { xoff -= tileWidth; yoff++; } } /* for i */ } /* PLANARCONFIG_CONTIG */ } /* for x */ } _TIFFfree(buf); PROTECT(res); dim = allocVector(INTSXP, (out_spp > 1) ? 3 : 2); INTEGER(dim)[0] = imageLength; INTEGER(dim)[1] = imageWidth; if (out_spp > 1) INTEGER(dim)[2] = out_spp; setAttrib(res, R_DimSymbol, dim); if (colormap[0] && TYPEOF(res) == INTSXP && indexed) { int nc = 1 << bps, i; SEXP cm = allocMatrix(REALSXP, 3, nc); double *d = REAL(cm); for (i = 0; i < nc; i++) { d[3 * i] = ((double) colormap[0][i]) / 65535.0; d[3 * i + 1] = ((double) colormap[1][i]) / 65535.0; d[3 * i + 2] = ((double) colormap[2][i]) / 65535.0; } setAttr(res, "color.map", cm); } if (add_info) TIFF_add_info(tiff, res); UNPROTECT(1); if (isLogical(sAll) && asInteger(sAll) == 0) { TIFFClose(tiff); return res; } n_img++; if (pick_index >= 0) SET_VECTOR_ELT(pick_res, pick_index, res); else { if (multi_res == R_NilValue) { multi_tail = multi_res = CONS(res, R_NilValue); PROTECT(multi_res); nprot++; } else { SEXP q = CONS(res, R_NilValue); SETCDR(multi_tail, q); multi_tail = q; } } if (!TIFFReadDirectory(tiff)) break; } TIFFClose(tiff); /* if picked, we already have the result list */ if (pick) { UNPROTECT(nprot + 1 /* pick_res is the +1 */); return pick_res; } /* convert LISTSXP into VECSXP */ PROTECT(res = allocVector(VECSXP, n_img)); nprot++; { int i = 0; while (multi_res != R_NilValue) { SET_VECTOR_ELT(res, i, CAR(multi_res)); i++; multi_res = CDR(multi_res); } } UNPROTECT(nprot); return res; } tiff/src/reg.c0000644000175100001440000000113714531222327012733 0ustar hornikusers#include #include #include /* read.c */ extern SEXP read_tiff(SEXP sFn, SEXP sNative, SEXP sAll, SEXP sConvert, SEXP sInfo, SEXP sIndexed, SEXP sOriginal, SEXP sPayload); /* write.c */ extern SEXP write_tiff(SEXP image, SEXP where, SEXP sBPS, SEXP sCompr, SEXP sReduce); static const R_CallMethodDef CAPI[] = { {"read_tiff", (DL_FUNC) &read_tiff , 8}, {"write_tiff", (DL_FUNC) &write_tiff, 5}, {NULL, NULL, 0} }; void R_init_tiff(DllInfo *dll) { R_registerRoutines(dll, NULL, CAPI, NULL, NULL); R_useDynamicSymbols(dll, FALSE); } tiff/src/write.c0000644000175100001440000001765714531222327013326 0ustar hornikusers#include #include #include #include #include "common.h" #include #include #define INIT_SIZE (256 * 1024) #define HAS_ALPHA 0x01 #define IS_GRAY 0x02 #define IS_RGB 0x04 /* if neither GRAY/RGB is set then it's B/W */ int analyze_native(const unsigned int *what, int length) { int alpha = 0, ac = 0, i; for (i = 0; i < length; i++) { if (!alpha && (what[i] & 0xff000000) != 0xff000000) alpha = 1; if (ac < 2 && ((what[i] & 0xff) != ((what[i] >> 8) & 0xff) || (what[i] & 0xff) != ((what[i] >> 16) & 0xff))) ac = 2; if (ac == 0 && (what[i] & 0xffffff) != 0xffffff && (what[i] & 0xffffff)) ac = 1; if (ac == 2 && alpha) break; /* no need to continue */ } return alpha | (ac << 1); } SEXP write_tiff(SEXP image, SEXP where, SEXP sBPS, SEXP sCompr, SEXP sReduce) { SEXP dims, img_list = 0; tiff_job_t rj; TIFF *tiff; FILE *f; int native = 0, raw_array = 0, bps = asInteger(sBPS), compression = asInteger(sCompr), reduce = asInteger(sReduce), img_index = 0, n_img = 1; uint32_t width, height, planes = 1; if (TYPEOF(image) == VECSXP) { if ((n_img = LENGTH(image)) == 0) { Rf_warning("empty image list, nothing to do"); return R_NilValue; } img_list = image; } if (bps != 8 && bps != 16 && bps != 32) Rf_error("currently bits.per.sample must be 8, 16 or 32"); if (TYPEOF(where) == RAWSXP) { rj.alloc = INIT_SIZE; if (!(rj.data = malloc(rj.alloc))) Rf_error("unable to allocate memory for the in-memory output buffer"); rj.len = 0; rj.ptr = 0; rj.f = f = 0; } else { const char *fn; if (TYPEOF(where) != STRSXP || LENGTH(where) < 1) Rf_error("invalid filename"); fn = CHAR(STRING_ELT(where, 0)); f = fopen(fn, "w+b"); if (!f) Rf_error("unable to create %s", fn); rj.f = f; } tiff = TIFF_Open("wm", &rj); if (!tiff) { if (!rj.f) free(rj.data); Rf_error("cannot create TIFF structure"); } while (1) { if (img_list) image = VECTOR_ELT(img_list, img_index++); if (inherits(image, "nativeRaster") && TYPEOF(image) == INTSXP) native = 1; if (TYPEOF(image) == RAWSXP) raw_array = 1; if (!native && !raw_array && TYPEOF(image) != REALSXP) Rf_error("image must be a matrix or array of raw or real numbers"); dims = Rf_getAttrib(image, R_DimSymbol); if (dims == R_NilValue || TYPEOF(dims) != INTSXP || LENGTH(dims) < 2 || LENGTH(dims) > 3) Rf_error("image must be a matrix or an array of two or three dimensions"); if (raw_array && LENGTH(dims) == 3) { /* raw arrays have either bpp, width, height or width, height dimensions */ planes = INTEGER(dims)[0]; width = INTEGER(dims)[1]; height = INTEGER(dims)[2]; } else { /* others have width, height[, bpp] */ width = INTEGER(dims)[1]; height = INTEGER(dims)[0]; if (LENGTH(dims) == 3) planes = INTEGER(dims)[2]; } if (planes < 1 || planes > 4) Rf_error("image must have either 1 (grayscale), 2 (GA), 3 (RGB) or 4 (RGBA) planes"); if (native) { /* nativeRaster should have a "channels" attribute if it has anything else than 4 channels */ SEXP cha = getAttrib(image, install("channels")); if (cha != R_NilValue) { planes = asInteger(cha); if (planes < 1 || planes > 4) planes = 4; } else planes = 4; } if (raw_array) { if (planes != 4) Rf_error("Only RGBA format is supported as raw data"); native = 1; /* from now on we treat raw arrays like native */ } TIFFSetField(tiff, TIFFTAG_IMAGEWIDTH, width); TIFFSetField(tiff, TIFFTAG_IMAGELENGTH, height); TIFFSetField(tiff, TIFFTAG_PLANARCONFIG, 1); TIFFSetField(tiff, TIFFTAG_SOFTWARE, "tiff package, R " R_MAJOR "." R_MINOR); if (native) { TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 8); if (reduce) { int an = analyze_native((const unsigned int*) INTEGER(image), width * height); if (an == (HAS_ALPHA | IS_RGB)) reduce = 0; else { /* we only reduce to RGB, GA or G */ int out_spp = ((an & HAS_ALPHA) ? 1 : 0 ) + ((an & IS_RGB) ? 3 : 1); uint32_t i = 1, n = width * height; tdata_t buf; unsigned char *data8; const unsigned int *nd = (const unsigned int*) INTEGER(image); TIFFSetField(tiff, TIFFTAG_SAMPLESPERPIXEL, out_spp); TIFFSetField(tiff, TIFFTAG_ROWSPERSTRIP, height); TIFFSetField(tiff, TIFFTAG_COMPRESSION, compression); TIFFSetField(tiff, TIFFTAG_PHOTOMETRIC, (out_spp > 2) ? PHOTOMETRIC_RGB : PHOTOMETRIC_MINISBLACK); buf = _TIFFmalloc(width * height * out_spp); data8 = (unsigned char*) buf; if (out_spp == 1) for (i = 0; i < n; i++) /* G */ data8[i] = nd[i] & 255; else if (out_spp == 2) { if (((const char*)&i)[0] == 1) /* little-endian */ for (i = 0; i < n; i++) { /* GA */ *(data8++) = nd[i] & 255; *(data8++) = (nd[i] >> 24) & 255; } else /* big-endian */ for (i = 0; i < n; i++) { /* GA */ *(data8++) = (nd[i] >> 24) & 255; *(data8++) = nd[i] & 255; } } else if (out_spp == 3) { if (((const char*)&i)[0] == 1) /* little-endian */ for (i = 0; i < n; i++) { /* RGB */ *(data8++) = nd[i] & 255; *(data8++) = (nd[i] >> 8) & 255; *(data8++) = (nd[i] >> 16) & 255; } else /* big-endian */ for (i = 0; i < n; i++) { /* RGB */ *(data8++) = (nd[i] >> 16) & 255; *(data8++) = (nd[i] >> 8) & 255; *(data8++) = nd[i] & 255; } } TIFFWriteEncodedStrip(tiff, 0, buf, width * height * out_spp); _TIFFfree(buf); } } if (!reduce) { TIFFSetField(tiff, TIFFTAG_SAMPLESPERPIXEL, 4); TIFFSetField(tiff, TIFFTAG_ROWSPERSTRIP, height); TIFFSetField(tiff, TIFFTAG_COMPRESSION, compression); TIFFSetField(tiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_RGB); TIFFWriteEncodedStrip(tiff, 0, INTEGER(image), width * height * 4); } } else { uint32_t x, y, pl; tdata_t buf; unsigned char *data8; unsigned short *data16; unsigned int *data32; double *ra = REAL(image); uint32_t i, N = LENGTH(image); for (i = 0; i < N; i++) /* do a pre-flight check */ if (ra[i] < 0.0 || ra[i] > 1.0) { Rf_warning("The input contains values outside the [0, 1] range - storage of such values is undefined"); break; } TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, bps); TIFFSetField(tiff, TIFFTAG_SAMPLESPERPIXEL, planes); TIFFSetField(tiff, TIFFTAG_ROWSPERSTRIP, height); TIFFSetField(tiff, TIFFTAG_COMPRESSION, compression); TIFFSetField(tiff, TIFFTAG_PHOTOMETRIC, (planes > 2) ? PHOTOMETRIC_RGB : PHOTOMETRIC_MINISBLACK); buf = _TIFFmalloc(width * height * planes * (bps / 8)); data8 = (unsigned char*) buf; data16 = (unsigned short*) buf; data32 = (unsigned int*) buf; if (!buf) Rf_error("cannot allocate output image buffer"); if (bps == 8) for (y = 0; y < height; y++) for (x = 0; x < width; x++) for (pl = 0; pl < planes; pl++) data8[(x + y * width) * planes + pl] = (unsigned char) (ra[y + x * height + pl * width * height] * 255.0); else if (bps == 16) for (y = 0; y < height; y++) for (x = 0; x < width; x++) for (pl = 0; pl < planes; pl++) data16[(x + y * width) * planes + pl] = (unsigned short) (ra[y + x * height + pl * width * height] * 65535.0); else if (bps == 32) for (y = 0; y < height; y++) for (x = 0; x < width; x++) for (pl = 0; pl < planes; pl++) data32[(x + y * width) * planes + pl] = (unsigned int) (ra[y + x * height + pl * width * height] * 4294967295.0); TIFFWriteEncodedStrip(tiff, 0, buf, width * height * planes * (bps / 8)); _TIFFfree(buf); } if (img_list && img_index < n_img) TIFFWriteDirectory(tiff); else break; } if (!rj.f) { SEXP res; TIFFFlush(tiff); res = allocVector(RAWSXP, rj.len); #if TIFF_DEBUG Rprintf("convert to raw %d bytes (ptr=%d, alloc=%d)\n", rj.len, rj.ptr, rj.alloc); #endif memcpy(RAW(res), rj.data, rj.len); TIFFClose(tiff); return res; } TIFFClose(tiff); return ScalarInteger(n_img); } tiff/src/common.c0000644000175100001440000001167714531222327013460 0ustar hornikusers#include "common.h" #include #include #include static int need_init = 1; static char txtbuf[2048]; static TIFF *last_tiff; /* this to avoid leaks */ static void TIFFWarningHandler_(const char* module, const char* fmt, va_list ap) { /* we can't pass it directly since R has no vprintf entry point */ vsnprintf(txtbuf, sizeof(txtbuf), fmt, ap); Rf_warning("%s: %s", module, txtbuf); } static int err_reenter = 0; static void TIFFErrorHandler_(const char* module, const char* fmt, va_list ap) { if (err_reenter) return; /* prevent re-entrance which can happen as TIFF is happy to call another error from Close */ err_reenter = 1; /* FIXME: if TIFFClose below fails we may get stuck without errors!! */ /* we can't pass it directly since R has no vprintf entry point */ vsnprintf(txtbuf, sizeof(txtbuf), fmt, ap); /* we have to close the TIFF that caused it as it will not come back -- recursive calls won't work under errors but that is hopefully unlikely/impossible */ if (last_tiff) TIFFClose(last_tiff); /* this will also reset last_tiff */ err_reenter = 0; Rf_error("%s: %s", module, txtbuf); } static void init_tiff(void) { if (need_init) { TIFFSetWarningHandler(TIFFWarningHandler_); TIFFSetErrorHandler(TIFFErrorHandler_); need_init = 0; } } static tsize_t TIFFReadProc_(thandle_t usr, tdata_t buf, tsize_t length) { tiff_job_t *rj = (tiff_job_t*) usr; tsize_t to_read = length; if (rj->f) return fread(buf, 1, to_read, rj->f); #if TIFF_DEBUG Rprintf("read [@%d %d/%d] -> %d\n", rj->ptr, rj->len, rj->alloc, length); #endif if (to_read > (rj->len - rj->ptr)) to_read = (rj->len - rj->ptr); if (to_read > 0) { memcpy(buf, rj->data + rj->ptr, to_read); rj->ptr += to_read; } return to_read; } static int guarantee_write_buffer(tiff_job_t *rj, long where) { if (where > rj->alloc) { /* need to resize buffer? */ void *new_data; unsigned long new_alloc = rj->alloc; while (new_alloc <= where) new_alloc <<= 1; new_data = realloc(rj->data, new_alloc); if (!new_data) /* FAILED */ return 0; rj->data = new_data; rj->alloc = new_alloc; } return 1; } static tsize_t TIFFWriteProc_(thandle_t usr, tdata_t buf, tsize_t length) { tiff_job_t *rj = (tiff_job_t*) usr; if (rj->f) return (tsize_t) fwrite(buf, 1, length, rj->f); #if TIFF_DEBUG Rprintf("write [@%d %d/%d] <- %d\n", rj->ptr, rj->len, rj->alloc, length); #endif if (!guarantee_write_buffer(rj, rj->ptr + length)) return 0; memcpy(rj->data + rj->ptr, buf, length); rj->ptr += length; if (rj->ptr > rj->len) rj->len = rj->ptr; return length; } static toff_t TIFFSeekProc_(thandle_t usr, toff_t offset, int whence) { tiff_job_t *rj = (tiff_job_t*) usr; if (rj->f) { int e = fseeko(rj->f, offset, whence); if (e != 0) { Rf_warning("fseek failed on a file in TIFFSeekProc"); return -1; } return ftello(rj->f); } #if TIFF_DEBUG Rprintf("seek [@%d %d/%d] %d (%d)\n", rj->ptr, rj->len, rj->alloc, offset, whence); #endif if (whence == SEEK_CUR) offset += rj->ptr; else if (whence == SEEK_END) offset += rj->len; else if (whence != SEEK_SET) { Rf_warning("invalid `whence' argument to TIFFSeekProc callback called by libtiff"); return -1; } if (rj->alloc && rj->len < offset) { if (offset >= rj->alloc) { /* need more space? */ if (!guarantee_write_buffer(rj, offset)) return -1; } else /* enough space but need to zero out */ memset(rj->data + rj->len, 0, offset - rj->len); rj->len = offset; } if (offset < 0 || offset > rj->len) { Rf_warning("libtiff attempted to seek beyond the data end"); return -1; } return (toff_t) (rj->ptr = offset); } static int TIFFCloseProc_(thandle_t usr) { tiff_job_t *rj = (tiff_job_t*) usr; if (rj->f) fclose(rj->f); else if (rj->alloc) { free(rj->data); rj->data = 0; rj->alloc = 0; } last_tiff = 0; return 0; } static toff_t TIFFSizeProc_(thandle_t usr) { tiff_job_t *rj = (tiff_job_t*) usr; if (rj->f) { off_t cur = ftello(rj->f), end; fseek(rj->f, 0, SEEK_END); end = ftello(rj->f); fseeko(rj->f, cur, SEEK_SET); return end; } return (toff_t) rj->len; } static int TIFFMapFileProc_(thandle_t usr, tdata_t* map, toff_t* off) { Rf_warning("libtiff attempted to use TIFFMapFileProc on non-file which is unsupported"); return -1; } static void TIFFUnmapFileProc_(thandle_t usr, tdata_t map, toff_t off) { Rf_warning("libtiff attempted to use TIFFUnmapFileProc on non-file which is unsupported"); } /* actual interface */ TIFF *TIFF_Open(const char *mode, tiff_job_t *rj) { if (need_init) init_tiff(); #if AGGRESSIVE_CLEANUP if (last_tiff) TIFFClose(last_tiff); #endif return (last_tiff = TIFFClientOpen("pkg:tiff", mode, (thandle_t) rj, TIFFReadProc_, TIFFWriteProc_, TIFFSeekProc_, TIFFCloseProc_, TIFFSizeProc_, TIFFMapFileProc_, TIFFUnmapFileProc_) ); } tiff/src/Makevars.win0000644000175100001440000000040114531222327014273 0ustar hornikusersRWINLIB = ../windows/libtiff-4.1.0/mingw$(WIN) PKG_CPPFLAGS = -I$(RWINLIB)/include PKG_LIBS = -L$(RWINLIB)/lib -ltiff -ljpeg -lz all: clean winlibs winlibs: "${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe" "../tools/winlibs.R" clean: rm -f $(SHLIB) $(OBJECTS) tiff/src/Makevars.ucrt0000644000175100001440000000047414531222327014465 0ustar hornikusersifeq (,$(shell pkg-config --version 2>/dev/null)) LIBSHARPYUV = $(or $(and $(wildcard $(R_TOOLS_SOFT)/lib/libsharpyuv.a),-lsharpyuv),) PKG_LIBS = -ltiff -ljpeg -lz -lzstd -lwebp $(LIBSHARPYUV) -llzma else PKG_LIBS = $(shell pkg-config --libs libtiff-4) endif all: clean clean: rm -f $(SHLIB) $(OBJECTS) tiff/src/common.h0000644000175100001440000000041614531222327013452 0ustar hornikusers#ifndef PKG_TIFF_COMMON_H__ #define PKG_TIFF_COMMON_H__ #include #include #include typedef struct tiff_job { FILE *f; long ptr, len, alloc; char *data; } tiff_job_t; TIFF *TIFF_Open(const char *mode, tiff_job_t *rj); #endif tiff/src/Makevars.in0000644000175100001440000000005014531222327014104 0ustar hornikusersPKG_LIBS=@LIBS@ PKG_CPPFLAGS=@CPPFLAGS@ tiff/NEWS0000644000175100001440000000475314531222327011731 0ustar hornikusersNEWS/Changelog 0.1-12 2023-11-28 o updated Windows flags (#12) o replace () with (void) in a declaration 0.1-11 2022-01-31 o add Windows UCRT support 0.1-10 2021-11-05 o Silence benign warnings in some compilers. 0.1-9 2021-08-13 o bugfix: readTIFF(..., native=TRUE) returned incorrect results when the all parameter was used to pick individual images. (#10) 0.1-8 2021-03-31 o add support for readTIFF(..., payload=FALSE) which only retrieves metadata information from the file -- The following features have been inspired or ported from https://github.com/akoyabio/tiff fork by Kent Johnson: o Add limited support for tiled images. Supports 8-, 16- and 32-bit integer and float images with spp=1 or 3. No support for indexed, color map, as.is, or planar format color. o add the ability to read (or get info on) selected images by passing a vector in the `all` parameter o add width, length, x.position, y.position, and, if available, rows.per.strip, tile.width, tile.length to the directory info returned when `info=TRUE`. o stop with an error if `as.is=TRUE` is used with a float image o fixed documentation typos o writeTIFF() uses path.expand() on supplied path 0.1-7 2021-02-04 o unix: use autoconf to detect libtiff flags to support static builds and optional tiff capabilities o add C-level function registration o minor updates to DESCRIPTION 0.1-5 2013-09-03 o bugfix: output of readTIFF(..., as.is=TRUE) with integer values was shifted by one (i.e., stored integer value x was returned as x + 1) o writeTIFF() now supports 32-bit (integer) output o writeTIFF() issues a warning if the input data range is outside [0, 1] 0.1-4 2013-02-19 o remove debugging output (it is now only shown if tiff is compiled with -DTIFF_DEBUG=1) 0.1-3 2012-11-05 o add support for 12-bit grayscale TIFF images in readTIFF() (Note that 12-bit TIFFs are outside of the standard, so we assume big-endian packing order) o add readTIFF(..., as.is=TRUE) which preserves the integer values used in the TIFF as they are (if applicable) instead of rescaling to reals 0.1-2 2012-08-30 o fixed a bug in writeTIFF() for 16-bit images 0.1-1 2012-08-24 o add readTIFF(..., indexed=TRUE) which return indexed images as color map and an index matrix. o fixed a bug in writing a TIFF file consisting of multiple subimages o prevent TIFF from re-entering error calls 0.1-0 2012-08-04 o first CRAN release tiff/R/0000755000175100001440000000000014531222327011422 5ustar hornikuserstiff/R/read.R0000644000175100001440000000240114531222327012455 0ustar hornikusersreadTIFF <- function(source, native=FALSE, all=FALSE, convert=FALSE, info=FALSE, indexed=FALSE, as.is=FALSE, payload=TRUE) { if (payload) .Call(read_tiff, if (is.raw(source)) source else path.expand(source), native, if (is.numeric(all)) as.integer(all) else all, convert, info, indexed, as.is, TRUE) else { ## for payload=FALSE we have to extract the info from the attributes x <- .Call(read_tiff, if (is.raw(source)) source else path.expand(source), FALSE, if (is.numeric(all)) as.integer(all) else all, FALSE, TRUE, FALSE, FALSE, FALSE) if (is.integer(x)) as.data.frame(attributes(x), stringsAsFactors=FALSE) else { ## fetch tag from each image x <- lapply(x, attributes) ## construct a union of all tags u <- unique(unlist(lapply(x, names))) ## match tags from each image using NA for missing d <- do.call("rbind.data.frame", lapply(x, function(o) { o <- c(o, list(`NA`=NA)) d <- o[match(u, names(o), length(o))] names(d)=u d })) ## clear row names so they are sequential row.names(d) <- NULL d } } } tiff/R/write.R0000644000175100001440000000111514531222327012675 0ustar hornikuserswriteTIFF <- function(what, where, bits.per.sample = 8L, compression = c("LZW", "none", "PackBits", "RLE", "JPEG", "deflate"), reduce = TRUE) { if (!is.numeric(compression) || length(compression) != 1L) { compressions <- c(none=1L, RLE=2L, PackBits=32773L, fax3=3L, fax4=4L, LZW=5L, JPEG=7L, deflate=8L) compression <- match.arg(compression) compression <- compressions[match(compression, names(compressions))] } .Call(write_tiff, what, if (is.raw(where)) where else path.expand(where), bits.per.sample, compression, reduce) } tiff/MD50000644000175100001440000000157614531324160011540 0ustar hornikusers5c7dbf3570bccc39d967b51e7c6b913d *DESCRIPTION 859acc2878dcf689f6f87e8a0fb49db2 *NAMESPACE 475a599f4870ecdbe96db4a60b92e2ad *NEWS aea7b2318135c79490d3613e068b4602 *R/read.R 2b6be5244a4db18f0f8e2cb953446569 *R/write.R 4b24b3df7af69b95e62bc5ebc3f7d2b7 *configure 3e0d087f1526501cae02410692be99fd *configure.ac 39ab4d2a0fc38ce4f556b2f4ce71104e *inst/img/Rlogo.tiff a88de4ef20cfe6bbbf4185a3584067f9 *man/readTIFF.Rd 1246a701cce89e0856ecfa18ad76a273 *man/writeTIFF.Rd 299df8e9b2039f8cda14d88c0570feeb *src/Makevars.in 9f14c7a5a5701ccc4de8fef90afd5bae *src/Makevars.ucrt 839ae60a23783c249b43d20392ed7404 *src/Makevars.win 6c6f6bf403df67f189ead04760e81d82 *src/common.c ca1d1edf6d0f3392afcb3d6ec20c43cc *src/common.h f39cda8fa1e651811450ccd7aadf7241 *src/read.c 64c902cd7021e19cea22a7e2c08cb32d *src/reg.c 6f12dbd9c7535d1f52a3a62fe4bfc314 *src/write.c 995e002271189bab1928d405626865c6 *tools/winlibs.R tiff/inst/0000755000175100001440000000000014531222327012176 5ustar hornikuserstiff/inst/img/0000755000175100001440000000000014531222327012752 5ustar hornikuserstiff/inst/img/Rlogo.tiff0000644000175100001440000003314014531222327014707 0ustar hornikusersMM*5n€ P8$ „BaP¸d6ˆD`ìfCÒi´BOwÃØ<øß’0«úLÊAÒgè Ÿ¯çèúœ=·ÜÑüîP^#¬Gt„‚!'(D%tˆ$GìJ­W¬VkUºåv½_°C“IäÀãgN"×ü˜Y3 ­¯á Íú ”¿À›ÜSÀïRù³îG~âovØzÅÞ¯˜ûìA|à@.gÖ@­ h0Î$‘ɱp°\þ°ìv[=¦×mX`0—À£Y¨+z½^„aþâ_Œž@çôzPn„>øì$o¸,ùÏÇ_ð@õþçäó_äÛ.ÃÏëòLò €Þ¢1ðŒ _õ|!aœ+Š‚ÊªÛÁL«åa^UÇ!ÊrgÌ,(9BS¼ Š# ÇCÎŒ>ƺNªÍ/®s¨è¥-ƒê§ä»`‚>njôò²S“GqúLòHok⪸ò<`šHƒ°ª [? Yf àÉj8 ƒ‘íL Ä®–¥¹f›ç ¾£‡¸À~0›~‚N“ñD±AÄ‘3ÁÅnšÀÅ D€ 3¾Å»LTï²±ëÒÉ1‹ãà¾=ìdç%½’6åF S½NDG­Y@HPàøB^ ƒ@ÜØLu­m%!>ÇÜ/NàÔÃaR ÄQ$lÇ sÁDv}¥Ù ÿ?:®tüé:îÍ7FI6e !¼T,€ôS·JöòÝ])u<ëµBØ^W«ª§ÝõF»ôÛ°œT90 ‚À¹6?D Ù[á˜jL„¨({£ƒ•ô}+°!j(6[5fcÖUÙ‘Â_“IµÅ"Gw$…Z!1Chä–tO›+QìRóSÏ•?Ѫª}"hR,˜øFJ¬e~ÆNÔàí0Àõ}Ôn‰îàABÒ„AC‘ç±ÌéBM‚'™æyÉÁô6/àfVËÇñi±Ê lÂPÀ( c¸¸|#œò|Q7Úùde;Ú^™Kè&Ù=cù¦p†²h?;Aψ2þ¸iÎù÷©Ñ:}ðÅÉiù&i}. îpIùQ½§Ð Ý“òÀ0B¤rlž*´Te0ugPÐ|ôäÖ Ñù=¥Ë06@ Q2Žúc§£‚(z‡ž¥Ó²œšltCCù4T3³ï»þù¾d¹ üz™êùj(ÕQª56¥à02Œéi'ò‚öYÈ&ÙÊ7÷æ}y|Nq —w £JhÅ}:eö¾‡Ðƒ¯¬î쪀P‹ pˆ¦ RûƇDL‰Á, ‡³-,8"eÜÍDF8зø`ÀØŽ€ÓÀ탮!cžÝÑ{~Q ú  HUQJ'“¸¤îÀ2Òi·82AœBqÕÁ;äÐ×2ìP¨‘B­dTc[ºd ÔÍ7y²ÑÂOìÆx¥dvê$œ(˜Faݬ^jp¥ B˜PøàÀ<†‘,$Dȸ‡l0S ‘H‡pî¢|“€é »*‘ÐE»É@fCöQ¶-Â8›ïWÇÎI(ã$›Û’ÀMÐåX@€%Oj ¶)d¾pG¬íKä‚MÊu¿ƒMT %O¤Ãß ‹úÎ\ì­™ ‚|ÙLJcæ5=ÈÖêÝÛÔY¬vƒ¨p¨Ä“{ˬØyÝ ‡Ôžóª:’=`ÜPUB~Ðà!DˆRÌÛ‰Á>&9ƒ7ÇY#œàÎJ/FGä@l¡²ˆò2Bs;¹&ãX’¥)L€ µ‚±Ly¼x¡]:Ô{OÕLßñ£É~Ê6¥Hk¼)޲•ÄÊf¨aÉB1KB—ÄB|iÓ´X‚QgöãÞ²Ro4À¿·%$ŽÃ{rV&lÀ Á6ž“®;׸½ ÇÇ…N Ð$€˜XâHM ÊhWáè– $€| S$h;ýD3` ÜPR€˜cŽ¥¤3ÀïºQ&3Õ¶³üOµéÔ 6°Ó™ïËØS;§}m­cÕõ6§Õ]ÀAØIÖˆ mjgê¼ Ô àÚ ˆ@ˆÚä,a0 ôÆ>G(´*ÀmþZ*˜a°\ZëľðÌD³Ê¾0ôD FTVÿ«@­A潇Î} Úž-<À÷`Á® ãÑ+ì½ÀÞô€™.DX\ö_"¸@þ&Œž Kø £Ö¨š¼Œ¦'o–Äi¶Î/ æ×0ëà Á\Add@@ZpîPÈqÂlà*àÀhíàq¨dÇ;éºË)º´J̵€P àJÌgÓ+Û/@ŠÁÔà2¼ ªc„¾J>ˆ'é¡Ô«Áõ NAPU±U##l úÀ Gš ѤƒÜ °1t¨n¬ÄN/ Êñ€¾Ç!üßÀ’AL¡t6AFáB.$Aœ.`Që¨Ðtàw !¤–¡JvJ¼˜é’å@`P5 ]<ëÜÍè®,!´ŠžÁœ ~mlÕGÅ#ò¸ &ÀPNáNaR}B\€ú¡ÌàËì2²4VÄvF!ønÎ&@ À<`*àN`8€b Dü"á& ²Àܽö<U(ÒØŠß`´ ¬ä™ŒØØ‚|@K8`^!*‘.+Á.a*ƒ¶l2rR°`p€0LjA8 Ęñ>›ñŒ›êŒwÀà\ ÑÅB*¯¥ òÆØ)âšR`áŸ-‚0(²ŒââKÚØ¨³À@H€F ánu â¬,a*z C°GÚ}³ACÄtèઠÀ|B àø€6©tÆÜ ÒPŠL¨êÅRßAÀ#8ÎlØÒÏA`h`¢+fÌ`^®a˜\G"q퀠fÑx Oðai‘ÉYÏÖœ°`^³Ñ@ŽôP²ƒHj¦SÞ‰šñ#k¢W¬ê¦søjF°ÀÎ ÀÎ@Î ¦2+a¡d³ô€Õ<Ïâ?¨¤|³BäGŒïN…& ŽpìXµGNqüAúÀ(J@^àò  žP!!DÆ ¡ž€ÊÓÁé ÒŒQpµX´òÎ1ûP0 ñ’!d*ìrx„ ‡(É$€BÝna $¡ ¦a¤ßk<œIÆñëY@£]€OhHjfª*¦}Ôh¶„‚°á®ÎLß ôö| 9a ¨ÝÁ’eQuQàÔV(€Ô±_ðÞAá&06¨.whØj¾0ªòo;7ɘ·Ҧaïž+<áàJÐÀÞ ¡SEàö€^è!ÞÂ^€DÊFúŽ#á`èJ¦Fá´ÀŠÀX`ðø!qœ@~Å!€¢,ýoÚ`€€aŠ@áS*n¬œl‹Dê¼+Ç¥Œ] ’PßNa´h΂v¡ª“{& áqN‚àá¿/ P x!}EÃkbÕ!-Πi @Ö¾¶Q–>,"`Q4ÖˆãL¼ÀS+±IÄKÆWtÌÓycŒâ­ªf&—DàDÁ Ø‚ 2òÜìʎ*¹{pŸH—8 qÊ¡«éVœ£ú«åØ~Âlß+@AúGõ—â/Aù½÷I¬-¾À!w œ\ЩuP!Êú ?JÀ]4ÂáT ©¡°IFg¸Ž!x¡y?,â `TbȬÎVŠ}ÐK1ç ¡M•kŒ¬*Æì :VQ U+ª¸ò+ìÎ÷¤ˆÝÀ‰mAÒ™wH¹‡,ã¢@, A¬a°çÊû‘Ë;—¨…¹â 4¼oT Á—ÚááÚSyÖì+è/B6³r›€œ "kÆ`:ý ¦@7µËA½‚!½Áî}AÀ¡­´*Ì ÈÇÎLè @ €€@Ü Õú*ÁAö:ÁpEᦧ\¥qÀÁ2gž¤!. =â "!6Ñy “€ôà`Zr» z /,ÍÌàþFYÁa_Ü]·=»$ òÁÒ ¾ à>¼ƒÇ‹ÝW;Ý™cÝÛ¨‚;—zã!žxžÉ¡Àž~{Ȥ(íõàAþ*£ÄË ¾›¯Ú€N¾™ `Fº*½Šfy˜Ë åŒ ã%!¥|áá赌ª¤ëaÄöaÐl@rnÌfsb*ÁzávÞ”ᢔ`]·€S°í&|TX ñä^sÕ‰È~ÏÑܲ“¢:&š ]’º¾+¼ü|Ž…ÄÔ^1ÌÉçˆAÓ Ÿö °4 G7-Ó˜ ‡Câ”N)C¥VIWc¹èj ÇÀQ Äˆ@ÂÁ`à¨b7"à ¬@.Ói®Ï6ÚÌÐ}¶Ñ …¢Ö`d6dLê×ýL«<€ Iîø}‹Þ/7°Þ´ ‚ P. …B°9–Å p€J/V@•{ü?ólöz¼À ÖÕÐäoâQåh±T0Q4rIsyéÑÍP[­Â€ê¤zM™©¿ŒÀ[ÅWtˆD`‹I c1îÁU¬(Cá8˜OG_‚¡@°ðø{€Ïpãåá4ø«•ÒÜçs:¯Úìw€b±Q~¼`—m "hº2£¨ø2¤i*N%)ZZ—¯é“B K"oŠ´j€á°Ÿg°¢ „B”å)>>@q‚MåP^c™f™Ly‡ØTNØFÌ(™%ó؆Aðàš °@P€ÄËžg‹Æm§ Êq@8 ÆóúZ81ŠO$àLsç)²*ÀPS”àø~ŸÅé JÅ;T}‹0 * #ƒÀøe™¦PiJ0"‚Ncœ ƒNL:Ëð ‚,iî{<yÚG‘âã ±‚a Òt/‰Ô1ǹü+Šâ° F‘D{!6ÙjŒ #ˆò@‘$‰2P•%‰ra)ª0¼2nÃpì?Äq,OÅql_fYe1X]ƒ¦išçéþ`Ð4?]FN“rö.@ðFÊP€ Ötœ¯¡Öø&±œ‡®йêb˜EÚou¡„ICj° Yc{[FFGÙø}‹ =F0 žz†¡¦Æ5MÕjWO­Á@N€hVx©ìz>‡m\xG€a•Ác˜ÕÉÒuW¨þ2n­ÙêŠYÐ=£Zpm­Û0¤nÃPá¿D±rÅTYnÖaFå!ÔvžBØ( ‚éf:H¯àô¢(@ dª‡•\sL@¬iR§»‚@€I&·fda€^@y–UzÂc‘„IOÇàÛDÑmÓàz~m̆¹®k…5N€Ò˜Ìõ\Ô ~®zºÙÚw!ã°ì{)’§Ž¦ÔÃGY@A®5Ër4‡7… ‚PZÔAÈAl!2bàÄ\.!r"gº|F4M Pì8Ç0í T °l A˜btIày°= ¥ý;  €Qv o 4Æ{h#q¡0"ðÏ£!+·Q$Ä`°…X'Š8À«Ñض¢DE‡¡ò>‡È…±´cvJ sÄ‘¦4€V{ QŸÔ A)Õ´"Ý{ô>Üò62HÇbŒ5r:\X Gl5àd$°A-$µPz×BKj -åÀá—‰Ds¸åÕ)‘Âè:Ž!Ê;QÙ%`Ø9ñ8%„Pí| „@È0&„ 7º<‚®!~%aÁ€ Du èªç"À’‚¹”…6&ÄàÉüN³ ª=§ÐªQL0Ý0À @dY£4f ðMÀ J X € $À@,æÚÁŽ‘¯àò¶¤5 0½¢ñ´¶±Ø;q #ThpA.¥)Yò½Ê˜++BÐmo¸W¸ÜT¶q«¦™  'Eà›rÃÌ2º !‹Aì8 ÂPuFÂ;DpæRÃ@d€ª4AD@а á˜2Æ<3nªG Ä•{Aà,.&Ĩ%¥#¬m(Ö£L m0#öÇ AËà VUÂðìÐà´’à:¤Néß~ÍxxŸqÀ8GÂÜZÔæ}Ø#è~À@puAÜïÔu—)›Ôo²­¿Á‡„LÜ?ƒµ Z®j‹îã¼TÌkè AÎ áx.ÌÎ"@Q   Tàµ1Ä9#¸ÂØüh µp7FÃ7EN½‰@>¸Tk0M á0ÇÔjbÈY 1ò7ÐÜèlp$Ò"Äpˆ ƒÈy!gc »:‹¦|“¾7{ToQ-Qø€ T”@ल‹âÂܬ2(îU¼°Ž1È8€¾?§·ZžAÞ¬ž@á˜2†`Hƒeà{„¨n:o¹n6çÊ¥@Â¥ˆÜHl ¹Dö>ÇËP@õò£|ËÈxÕº˜ŸÊɰÝoq«‚ B¤JE¤T ÃèÙÜ€]z³á§€¸ ÊND”¢äWvÒ€Ô‹ÆÌ1P›#âhJ 6jDpKŠ€ÀÜz¨“!Â}Ѐ oŒSÁ ˜ ”QE¬˜‡‡0s"E‡ª=€k]•1«¡p•Ž™Qу§«­+½$ˆe$ j†¨j!ÃÄšÀzÀp AX) X¸W¼±f©¡¼²‚œ73*)ãÏ ©>ŒˆmA(B sY”X €¨µ Ê+€Â ‰Õ›°Ø Ð[”ŽhçØTø]…ȸ70£¡Ôð#‚¸×Ȉ !쀀଩NpgÐ\¡æòƒœ0â§«Õƒ`6ƒp"HD0^–`ONœ‡¨e†³‡hXpX€hà€àVHWÀˆ„Bƒè>;8|8@;²1{•Q¸p8”[ŠÀ‰S±`µ,êC¦"12+¤yY5ª²a†#²;² »”hjp&‚p 8ƒ¸}Á‘A¢·"Ⲛ®HŠ )·’Ññ€û`¢iØåੌ$v¡ô'›¨J!¡q(€¸ š¸}‡Ó"¦IÑ…PR'˜ƒ×ð#Á'°‡Š±+“1(Š@€VˆdŒcî…Šý¨:p£ÐvT!Xð^…ÚiªÀ„ \ó L„ÀL€„‡°Q o™„HF(Û„#ʼn5™†,pıüJJdµÙžŽsÌšÛļºó"†xh°nØÆ:ðÈé?»¹€Ø P@âËh†K{(©Êã·AŒ w‡b;†ÈjÀoŸÒÂd–ì½¥$w )Õ•8•˜#H'³hª,&kÔŒB}=[e;øp†ø¸j‰ðÅ"@uMœc‡ nv+$,wƒ0ƒ!è>ƒÝ“hP‘hÊèy†sԇ؄£€¤ „èm†Àn9)„Êd€@n·xi§¨$¢#y»³;Aׇ È#iE€\!E¨!pí¸Ð¡íÆ¿ADùOÁ‡¢Ä{oxÀM„¸ONËPd¼ÜÆñ % @Ç»¥½]F«<ª’™E7YòŽp!€T* Hp›Y:@b}@qú2(vtc·˜ðiµ’é^hu« vMG‡¡°‹ˆ†à04x'ÍÈ9Ÿe´ÀQ€QX‡ˆ`Œ ü:pYèh†xh‡Øð¨Y¹µ–X@ >‚gˆ^È`Nê8a;’¸{¼:X}Eˆ·X£Ê|¨€™Ógò••^x¹KŠ0sÅ‚}ú€€0f€ˆ# @0û²mN<ÔnKš×àUˆŒ!÷6„ñL…üÁC- ïà{ ú‘.2w›Y.smhÈÐNƒ1ƒ :){"–X[…ÐZ€KÀXGØ}‚j±(y5V€ŠÍð14 gúÀ>ƒ¨DŒpzƒ´XŠ€#sÅ•HïÉa·¶E„#™'(HGˆJ’ú›g2,®2-H(úú˜Ó\H”‰¶8†aô€È$¨H„Ê•¥Õ–ÆÜ¹P6¢éÕ€à ‰X ‰î¬yº\j•€È!ÈÈ{ÕÇ{éˆj€ŒJŠÀl“ _…ÔŒnÁ(Ç „óÈ|YUZ0y›îšÜ âA0X·°% <ƒÀ:Ò™u…S…Žð|„S0ùXv„øO £˜…`"‘@*„°I„ÂRS@K%ã†À^RØÛí~ ÝÀÅ2WMƒÌ‘  z¡t÷à2­È€Ó²(|Þ– 8œøË‡(rUäW'øm˜æ‚hM„°ONª™4l¼ÍÔP{Î)ÈÝA°àÀ‡qmÐÒØ=M‚Ñ+Žý_½‚Çxh¢¸l H`dDH /èwVY€i«”Iž1PyZxcͰ…¸&`%…`+¨)‚8U…( VøW‡Ô}´ÿ}ú‡Ó³†ÈظT(U“&„ D„ t†1?‡èÎí¾×íHÐðÄ\ £|Y„·YMàèROADJå‹'ÕÍÄc£±,<ŒƒÅ‡–Tƒ#JøU›µÓËŽAШ”iÕø !X=Xh†€ŸÀk-ée¦ˆy)Ø9 ¶Ñ«Àî›x™LKl•@}ñÕàE•hør;½£PsQЂš¸$H%‡H€è „A~K‰½[&…Rð!Eh{ Õà ɘ}ˆ2Ó‡ˆvHýÓî…öKh<Û¸܈cI`~€ÄYµ‚7Në²§¡·&˜¬¹3cyEé-…¹JŒŽÞQÜž²(î½Z5=]{Åyˆ6Pû™°ÄU°…¥ƒˆC„Eæ<æc 3ÚDµÞh  ´DŽ˜„†1%¾¤XÇ €qN=Î;¢˜Ì8w±¼À»¨€Qî‡ht¼X› ,H’Žh”âjPãžà‡IÞhRÞ„(‚X f0T… 0XC`ø|ƒh†øs¾R…(S`à°‡¶ à †PcYJÐP‰„Cƒø“˜s…æ…é"'툞óâøX1 EÓÎ5áT`¤‰ZŽàî­¢4îekh)Q_šÍ€u(J¿œð…34Ud·F›K†¨ÔùœæÙ ˜e$Àjƒ&"l Å”6ˆ¬‰‚•Aœàšˆ=‚ˆJšŠ ,Òa12€ôˆìÉP³`=A½I·¼¬VŽøï\}½\}å£d(~(ÈàƒØ'HêpˆÓî¿ׂSHÕ¯ÏàÆ:r×Þ˜| ¸Ð'è]ýŸm`Ѓ;xŸ˜zÙê8ÙÜÛðª±'X4Â`8íÄô>Ε~ŸŽðïàý‚ãõ‚æ­Cj$Ç݃@i+ðƒé÷xYîè4Yj„F鉨›†þŠ ð (8o ›Èh€ÁP ¿ˆ™·€ Šè~‚}‡ñÒ‘øí•8í¶<’;„©Ž¨mÀ£wˆØ QšÉU¤âfn…<2,VšÙUØ€h0€‚ 4ƒ+†8NÎ »8|„ñà‡Gxav˜Pe(=7`€èYZv·"`><€°ùPX#H|Í~#q뻢˜`ékX£–úå+XÎìôNî„S¼wPX&$º_€£R•]Hl³¶0inÀG'N…@zð„lÆÖbj•š’奊 ¥¡Å¥º£ S…`[`e…r‡8và‚”à €²ˆ9öTXf¤¡F‹Ð¶Øk†§Ç*0‹ð§htÁ´•厫 ñû˜€HV0nŠ˜~ȇr¬À[a,Àb€€8l¤p]…À^èßp›¨FxD€8n XHõ3¹Y+×ã¶Ó×)5ˆ!ý¾£š!¨y5›¶fQÇ}½n?0îhÕX.…óLj‡¾_g‚Ø*Åh°‡€~™PÁµ—]Nk®RŸxó,ª-¥Árd€HY…Àaã4ÖýÏp)Ž«€$LˆQωI(ã ˆ@rÑÐt‡2ÕØÈ,¨çÀ ~¾œåsÒ ò€°’$-œçɆ_ò ˜g õÜ!î¸H/pU…ŽH{{/`8ƒH,»ÐKéˆ`8€Š1p ‰Àèd8û~?‡Ëàú|¾¥rÉî]%“?¯ÐÚM2—A‘ðP|¢£Aˆ9€`à¨b7"€ Zµ[®V‚HºÞní¦¨¸Øg€nÀŠD!!TêTùò»{¾V• åèu|Âfµ_/·ð4  ‚±PŽÄ_õpŒP3«€£Ùj´±ìv:œ€#³¤u9@á” ÏÜN +ÁÜé«?Ÿ`8”"f³ZGc°þ~¿ßAP¨Pðc1³I³/}îw{Ýÿ‡Âr;›Ã¯Bmî÷{óÑèl)FcQùÔ ûBBÂà: #À<««nœ&‰Š\–¦gÛŸ®bF‚îX (j*ޤ©jjž¨ªj¬ñ6kIJ,ËBÔ¶-Ë‚äº.ËÂõ;„9"SF¹´p @à6ŸÀhñnàLà Cʲ²®²îbLwmqÊq, ¨-“8tœçxçX|žçtÒsµ``™ Ð6 ùv`š‘Õ BÐÔ;¼V•åP]¥Ð²zg™Š¾âL¡Ú¢( ùà@ÿÀˆ(A'ý`Ëçõd˦õ¢Hß§€ê}¸gÉþ ÃàÊŒ¤)Jbœ¨*J¤±,¼*ú±¬«:Òµ­«zâ#ˆÂ*"Ùxžg‘èÿÕÍÐH¸ø‚P¹ú Õ€2ˆ€Á¹Žfqô~£Àx F&y’=g¸…A¥Z¡OhvçQ1HB·føwâÀ$x°&Á< ‹Ä¡"K'FišæÙ©Càq¾pã¹ì{£‰ý¢5sàû¡ÔÊEV?Tý6>°ŠUh°¬èµ¥aZk à{HÇ‘ñ#(–$CcÄ–TOfÅV„[iÆ´f¸‡âlA;VÕÕª¹WN^‹¿p| 8Ÿk Îvpr SàèXEérY€ P€ˆ*ŸËì¶~%Æñ²h3ª²%ç&@Ý7Žˆ"sC(¼¢vyfýÿàÇC°ô9ƒG1ÎrŽÇǘ3A N–ü>4 ¦!ú¯RÔ06¥N"¨¢„ïÊÎñì¶‹Y-—AoáiEö¬el8Ž8@EÄëî!L"’ ¨Ü@. ÑA¸Ã iYÆ,àpNÀÖuCÀwŽð cyu§„ËQâœàÙE 7ÑÒš€í5 q§@n Aˆ",?'…áä=;à>P.9G(ä Œ,3¢dPCR$DH‡‘Ø÷^ÌU ïeMŨˆxüHy`,&Îú[RÉDË2,ôXü–¢1ZèÐ)…0”p/()Á™s¶¬UвV†€Ðr³ ÐXî$˜mÀJM hŸ 0†Åظ ‚@V˜(NŒïòpjFºmMà IÒÜ8†ë!£ Œ€P>¸T ÀÌ2†¬4áô½—Òô?öÇåa]q ĺÈ>^cü‘DbtQTp=Hš~Éðoô€†ûÛJ#ŒÏµ·?Ö‹£kt~ÁD) ã±VjÅ­“’nKÇÊq]#Øö2DÐ<¨$0Rj¤Çp– Ç A1À7Kˆè˜àÀnGÀ1a<\}qæÈÕ R–Jë#ŽS£‚FAÀ ‚@Ü¿§ÔþÀâAìc¬,’òIHøêÂhé§üÔŠn%Äà)&À`Ï¢r¾¶Ù|jZ3±¹¿Th ÁÀ.Hàu ’Ut… sWQ(‘’ZêNkÐü$•ì†A<1&€0€Àx ‘l+€| °FV–qÞ2ãÈvуn6Àm2D9Óˆ÷€%€†ÃØv Bš [›u/Ãxs €„t‘ИXGA¡f9´âüÒr l03[§"Ɯϱ¶Æ“ÀükCôåÄR*RiÌVˆ58QúM§Ñ&½h:¾ßÝ>Ú°ø€È&v%CÀ` ì4Õú.8@>• ¤‚ Bìáß9“õÔ:¨ UŒòÕvÉÀ Á 2…ÐR‚&LxFÀÛ¦xR‹a†:Pî€.ÿF %2p]A‚ _‚¬ F”zQެ‘ºsàHÆŽ9XØ%|±CòZ„à`%ÑiÓ{ÿ€Kñ%E•ƒ¸z­SuëImó¯&ëì\Ë©w/:dNŠQn†Ç#h`( h&ÆÈ^IiPV EÕÑòF>)ÚÅ´†™Ç¨C¢˜&äà 0"à: …LéïéÝ=Dp> ÁøO ¬Y"tÖfã¬'r4âˆß‹ïðò ÄØµƒ˜u„­±Á!©Ê× 3*Ôl»ÿ¹Îò´•ør1¤ø%]ª”`”óÛbÂÕµ BŸ¨y$Šº—á)]n¯:.ÖKârµ¿Å‘Λb¨]‚á€1FxÏ^p ›H7É’p½ ‡0 <ÁbX3ò„å×N6FŠ­&_ € /†pØ Hs ÌîB ATÉýŸ´V¼¯Tó ¢ë éÁII!&|mZ_Îc*Ã` Dc úï¢FÞ“¨Á ÆGã ´‘§"í§úVc~áša ž @²• REJzáêdÁ~Qê8,+„£ † 4ÒnA¯ÆûpJòOºòèÆ`bsÁZAF1À`£eØPÂ.@†„µájAV-A®»äjâ¤pêNá~a~0®AøËÀ"ö&àP¶IJÀPª®P¥\+$ðUæ#”ª.!ºiJµkÀ@² à àÄ  ¨.0MÍ7ðöAô硲ª ìQ²YÃÐNÂ¥cïí.Âò@þ>á¼,>r „M.€AŠô‡h+)¶y‚TèDÚ” NaxÅ¡EïLPò¡Ôâ AØ Á´ø«Ö$Éz€&‚wÆ>5bæ.Àô¯"Áj€6A|A²Áð@È•§dÅpd,1¼AöŸ ˜ @Š  ð`ΑgÊ|"Á*¡„€Ô-%‚TVI|T¬ªCê‡|.`†Fá=o²AA¡ˆ€îá¤Ä½n>­° To¤ Pú r4qß$Ç‚Á* ¡”àŠÖ n · y&Ã@àbA:! ¡UÁn’!dAb*\~ò&¾å„[ÀŒ² €—… dL6@L5e6H6P(=RS6X%® %® tiff/configure0000755000175100001440000040566614531222334013147 0ustar hornikusers#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.71 for tiff 1.0. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="as_nop=: if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else \$as_nop case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else \$as_nop exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else $as_nop as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else $as_nop as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else $as_nop if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and $0: Simon.Urbanek@r-project.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_nop # --------- # Do nothing but, unlike ":", preserve the value of $?. as_fn_nop () { return $? } as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='tiff' PACKAGE_TARNAME='tiff' PACKAGE_VERSION='1.0' PACKAGE_STRING='tiff 1.0' PACKAGE_BUGREPORT='Simon.Urbanek@r-project.org' PACKAGE_URL='' ac_unique_file="src/common.c" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_c_list= ac_subst_vars='LTLIBOBJS LIBOBJS PKG_MODULE PKG_LIBS PKG_CPPFLAGS OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC PKG_CONFIG target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS PKG_CPPFLAGS PKG_LIBS PKG_CONFIG PKG_MODULE' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: \`$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures tiff 1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/tiff] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of tiff 1.0:";; esac cat <<\_ACEOF Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory PKG_CPPFLAGS custom C preprocessor flags for package compilation PKG_LIBS custom libraries for package compilation PKG_CONFIG path to the pkg-config executable (pkg-config) PKG_MODULE name of the tiff pkg-config module (libtiff-4) Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF tiff configure 1.0 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else $as_nop eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by tiff $as_me 1.0, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' // Does the compiler advertise C99 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' // Does the compiler advertise C11 conformance? #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # find R home and set correct compiler + flags : ${R_HOME="`R RHOME`"} if test -z "${R_HOME}"; then as_fn_error $? "cannot determine R_HOME. Make sure you use R CMD INSTALL!" "$LINENO" 5 fi RBIN="${R_HOME}/bin/R" : ${PKG_MODULE=libtiff-4} # pick all flags for testing from R : ${CC=`"${RBIN}" CMD config CC`} : ${CFLAGS=`"${RBIN}" CMD config CFLAGS`} : ${CPPFLAGS=`"${RBIN}" CMD config CPPFLAGS`} : ${LDFLAGS=`"${RBIN}" CMD config LDFLAGS`} : ${CPP="$CC -E"} # honor PKG_xx overrides LIBS="${LIBS} ${PKG_LIBS}" # for CPPFLAGS we will superfluously double R's flags # since we'll set PKG_CPPFLAGS with this, but that shouldn't hurt CPPFLAGS="${CPPFLAGS} ${PKG_CPPFLAGS}" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_PKG_CONFIG+y} then : printf %s "(cached) " >&6 else $as_nop case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 printf "%s\n" "$PKG_CONFIG" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else $as_nop ac_file='' fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else $as_nop { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_nop printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else $as_nop cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else $as_nop ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else $as_nop ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else $as_nop CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else $as_nop ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else $as_nop ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else $as_nop if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes then : printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIFFClientOpen in -ltiff" >&5 printf %s "checking for TIFFClientOpen in -ltiff... " >&6; } if test ${ac_cv_lib_tiff_TIFFClientOpen+y} then : printf %s "(cached) " >&6 else $as_nop ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char TIFFClientOpen (); int main (void) { return TIFFClientOpen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_tiff_TIFFClientOpen=yes else $as_nop ac_cv_lib_tiff_TIFFClientOpen=no fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFClientOpen" >&5 printf "%s\n" "$ac_cv_lib_tiff_TIFFClientOpen" >&6; } if test "x$ac_cv_lib_tiff_TIFFClientOpen" = xyes then : printf "%s\n" "#define HAVE_LIBTIFF 1" >>confdefs.h LIBS="-ltiff $LIBS" else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using libtiff directly doesn't work, falling back to pkg-config." >&5 printf "%s\n" "$as_me: Using libtiff directly doesn't work, falling back to pkg-config." >&6;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Note that you can provide correct PKG_LIBS to allow installation without pkg-config." >&5 printf "%s\n" "$as_me: Note that you can provide correct PKG_LIBS to allow installation without pkg-config." >&6;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pkg-config" >&5 printf %s "checking for pkg-config... " >&6; } if "$PKG_CONFIG" --version then : else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } as_fn_error $? "Provided flags don't work and pkg-config is not present. You can either set PKG_LIBS to the correct flags or install pkg-config." "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pkg-config knows about $PKG_MODULE" >&5 printf %s "checking whether pkg-config knows about $PKG_MODULE... " >&6; } if $PKG_CONFIG $PKG_MODULE then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } as_fn_error $? "Install libtiff-dev or equivalent first (or set PKG_MODULE if non-standard)" "$LINENO" 5 fi TIFF_CPPFLAGS="`$PKG_CONFIG --cflags $PKG_MODULE`" TIFF_LIBS="`$PKG_CONFIG --libs $PKG_MODULE`" LIBS0="$LIBS" LIBS="$LIBS0 ${TIFF_LIBS}" CPPFLAGS="$CPPFLAGS ${TIFF_CPPFLAGS}" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${TIFF_CPPFLAGS} ${TIFF_LIBS} works" >&5 printf %s "checking whether ${TIFF_CPPFLAGS} ${TIFF_LIBS} works... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char TIFFClientOpen (); int main (void) { return TIFFClientOpen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else $as_nop { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether --static helps" >&5 printf %s "checking whether --static helps... " >&6; } TIFF_LIBS="`$PKG_CONFIG --static --libs $PKG_MODULE`" LIBS="$LIBS0 ${TIFF_LIBS}" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ char TIFFClientOpen (); int main (void) { return TIFFClientOpen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: PKG_CPPFLAGS: $CPPFLAGS" >&5 printf "%s\n" "$as_me: PKG_CPPFLAGS: $CPPFLAGS" >&6;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: PKG_LIBS : $LIBS" >&5 printf "%s\n" "$as_me: PKG_LIBS : $LIBS" >&6;} ## check headers only after we're done with pkg-config for ac_header in tiff.h tiffio.h do : as_ac_Header=`printf "%s\n" "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes" then : cat >>confdefs.h <<_ACEOF #define `printf "%s\n" "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF else $as_nop as_fn_error $? "TIFF headers are not usable. Please make sure you have installed development files for libtiff." "$LINENO" 5 fi done ac_config_files="$ac_config_files src/Makevars" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else $as_nop case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else $as_nop as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else $as_nop as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by tiff $as_me 1.0, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ tiff config.status 1.0 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" Copyright (C) 2021 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "src/Makevars") CONFIG_FILES="$CONFIG_FILES src/Makevars" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi