summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* Update postal address in file headersChris Liddell2023-04-041-3/+3
|
* Fix typo in SO_PDFEXPORT_LIB configure logic.Robin Watts2023-03-021-1/+1
| | | | | I actually fixed this BEFORE the previous commit, but somehow I failed to include it in the commit.
* Tweak configure logic for so pdf export lib.Robin Watts2023-03-011-2/+18
| | | | | | | | Attempt to autodetect between linux and darwin. 32bit/64bit/arm options are just gravy. Credit to Chris for the original version of this (that I've probably broken).
* Bug 705895: Do not allow --enable-dynamic and --enable-hidden-visibilityChris Liddell2023-03-011-1/+5
| | | | | | | | | The "dynamic" X11 devices rely on accessing symbols that are not part of our "public API", symbols that are "hidden" with --enable-hidden-visibility (now the default). So, in configure, throw an error if --enable-dynamic is used without opting out of hidden symbols (--disable-hidden-visibility).
* Don't link libpaper for the Artifex releaseChris Liddell2023-02-211-1/+19
|
* Add -Wno-unused-local-typedefs to gcc CFLAGSChris Liddell2023-01-041-1/+1
|
* Fix a little bitrot in the cross-compiling logicChris Liddell2022-11-251-2/+2
| | | | | | Removing the option to disable FAPI meant configuring for cross compiling would fail because the option being passed to the sub-call to configure would include an unknown command line option.
* Add checks for openjpeg specific memaligned allocation APIs.Sebastian Rasmussen2022-10-141-2/+31
|
* Update GPDL SO target.Robin Watts2022-09-271-0/+3
| | | | Link with an external SO lib, rather than calling out to an exe.
* Add gpdl support for SmartOffice integration.Robin Watts2022-09-191-0/+16
| | | | | No actual SmartOffice code here, just the framework for adding the (private) "SO" interpreter.
* Explicitly disable LERC for "local" libtiff buildChris Liddell2022-09-021-1/+1
|
* Make jbig2 and jpx decoders mandatoryChris Liddell2022-09-011-0/+8
| | | | When PDF is included.
* Check for "make" before checking for GNU makeChris Liddell2022-08-171-0/+10
| | | | | | | | | | | | | | | | If left to its defaults, the build system on Unix will assume GNU make, and use GNU make features to speed up the build process. configure would check for GNU make for this reason, but wasn't checking if there was a "make" program available first, leading to a potentiall confusing error message. This checks that a "make" program exists, before trying to check it's GNU make. Secondly, in recognition that some systems (Solaris, for example) have their own make, but often have GNU make available as "gmake", add a "--with-make=" option allowing a user to set a custom name for the make executable to look for and check the version.
* Bug 705685: Add png16malpha to configure.ac device listChris Liddell2022-07-251-1/+1
|
* ug 705279: Make hidden symbols the default in the .so build.Chris Liddell2022-06-011-11/+15
| | | | | | | | | | This avoids symbol name clashes when linking our shared library with something that also links to over shared libraries. This also enforces a defined API in our shared library, like the Windows DLL does. Requires commit 64bffc6bd
* Update freetype to 2.12.1Chris Liddell2022-05-051-11/+0
|
* More fixes for CAL optimisation inclusionChris Liddell2022-05-021-0/+3
|
* Add configure check for _mm_extract_epi64 as part of HAVE_SSE4_2.Robin Watts2022-04-291-0/+1
|
* Add extra test for AVX2 (for CAL)Chris Liddell2022-04-281-0/+1
| | | | | This commit (from Chris) should have been rolled into the previous one (from me). Apologies.
* Bug #705035 "PCLm mode neds 8-bit Grayscale mode"Ken Sharp2022-03-141-1/+1
| | | | | | | | | Add a new device 'pclm8' which outputs in DeviceGray, for use with 'WiFi Direct Print' enabled monochrome printers. While the printer is supposed to be able to accept RGB, and print to gray, it's quicker to send Gray instead of RGB when we know it is required.
* Fix building with "local" cups sourcesChris Liddell2022-02-241-0/+3
| | | | | | Also cups device: Ignore deprecated function warnings Using gcc pragmas
* "cups" output device: Support for Apple Raster (URF) outputTill Kamppeter2022-02-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apple Raster (aka URF) output: With -sDEVICE=appleraster or -sDEVICE=urf (instead of -sDEVICE=cups) the output is in the Apple Raster format and not in CUPS Raster format. The format is used by Apple's AirPrint which allows printing from iOS devices. Due to this practically all modern printers understand this format and so providing it allows easy, driverless printing. Before, in order to output Apple Raster, the gstoraster filter of cups-filters had used the "cups" output device of Ghostscript to produce CUPS Raster and after that the rastertopwg filter of CUPS had to turn this into Apple Raster. With this commit a future version of cups-filters can let gstoraster (the ghostscript() filter function) directly output Apple Raster and this way save one filter step. Outputting Apple Raster instead of PWG Raster (which we could already do via -sDEVICE=pwgraster) is trivial. One has only to tell the cupsRasterOpen() function of libcups to write Apple Raster headers instead of PWG Raster headers by a simple flag, so this commit consists mainly of the definition of the output device names "appleraster" and "urf" and make the output device set said flag when one of these device names is used. I have defined two device names for exactly the same thing, as I am not really sure which one is the better or if one could cause any problems. We could remove one later if needed. The output is absolutely identical for both. Apple Raster support was introduced to libcups in CUPS 2.2.2, so the CUPS 2.2 API does not contain it necessarily, therefore the 2.3 CUPS API is the minimum requirement by the ./configure script to build Ghostscript with Apple Raster/URF output support. The libcups which is included with the Ghostscript source is too old, and when you build with it (--with-local-cups) you will not get Apple Raster support. But remember that this build option is only for development and debugging and not for production. The commit also contains a bug fix: devs.mak hard-coded -I./cups/libs/ in the compilation command line of gdevcups.c, making always the included cups/raster.h being used instead of the system's one and so always having a too old cups/raster.h which suggests that Apple Raster is not supported. This I have fixed by removing the -I./cups/libs/, --with-local-cups works also without.
* Add psdcmyktags and psdcmyktags16 devicesMichael Vhrel2022-01-111-1/+1
| | | | | | | | | | | | | | | | Add example tags devn devices, both 8 and 16 bit. The tags plane is always placed as the last plane in the data (i.e it follows any spots that get added). Changes were made to remove tags conditionals in the planar memory device code, since it really should not care what the extra planes are used for and it should not add components to the device based upon the tags support. The target device should handle any of this sort of setup. There were also some changes needed in the pdf14 code, as the tags information was not getting properly communicated when we had knockout objects and devn colors. Also, fix various whitespace issues.
* Bug 704243: configure.ac - avoid comparisons with empty variablesChris Liddell2021-11-101-16/+16
| | | | | | | | | | | | If the compiler is not identified as gcc, either the GCC variable will be unset or an empty string, either way $GCC will expand to nothing, meaning a clause like: if test $GCC = yes; then is invalid. Ensure that can't happen.
* Runtime safety of non threadsafe devices and rework globals.Robin Watts2021-11-051-73/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some devices within Ghostscript (currently the x11 devices, uniprint and opvp/oprp) use non const static variables, so cannot be run in multiple instances at a time. We now maintain a core "count" of how many non-threadsafe devices are being used at any time. This value can be atomically adjusted by calls to gs_lib_ctx_nts_adjust. Non threadsafe devices now call gx_init_non_threadsafe_device either as or as part of their initialise_device proc. This function attempts to increment the non-threadsafe count and fails to init if there is already a non-threadsafe device running. On success, the device finalize method is modified so that it will decrement the count at the end. The known non-threadsafe devices are updated to call this. In order to have somewhere safe to store this count, we introduce a gs_globals structure, shared between instances. Setting this up without race conditions requires some new gp_ functions that can make use of platform specific threading primitives. We have these implemented for both windows and pthread based platforms. On other platforms, we drop back to the old unsafe mechanism for counting instances. While we do this work, we take the opportunity to push the gs_memory_t pointer used for non-threadsafe debug printing into thread local storage. This enables us to remove the remaining GS_THREADSAFE guarded compilation from the source code. What is left is broadly down to allowing debugging collection for statistics, and these are now controlled by specific COLLECT_STATS_XXX defines. It is assumed that anyone wanting to collect such stats is smart enough to not try to do so while using Ghostscript in a multi-instance environment.
* Tweak eprn and pcl3 devices to remove non const statics.Robin Watts2021-10-271-1/+0
| | | | This should make the devices threadsafe.
* Disable gpdf build with no pcl available.Chris Liddell2021-09-181-2/+6
| | | | | | | | gpdf is based on the gpdl infrastructure, so relies on the pcl/pl/ level APIs. And pcl/pl/ is only available if we include pcl in the available products. So disable gpdf when pcl isn't being built (the same as already done for gpdl and gxps).
* Only try to build gpdf if pcl/pl is availableChris Liddell2021-09-151-2/+3
| | | | | Since the standalone gpdf is based on the pl API layer, we need to leave it out when only the gs source is available (i.e. gs release archives)
* Add some quoting, for consistencyChris Liddell2021-08-171-7/+7
|
* Have configure check for c++17 compatibilityChris Liddell2021-08-131-102/+123
| | | | | | | | | | If tesseract/leptonica is present, check if the the compiler is g++ (or compatible) and if so, check it understands the -std=c++17 option. If not, drop the OCR devices, and emit a warning message at the end of configure. If the compiler is not g++ (or compatible) carry on, but emit a warning to the effect that it's up to the user to ensure the compiler they use can handle c++17.
* Update configure.ac for newer autoconf versionsAlex Cherepanov2021-08-131-93/+82
| | | | | Also tweak order of operations in autogen.sh so config.guess and install-sh are in place before we call autoreconf
* Commit pdfi to master.Robin Watts2021-08-121-1/+48
| | | | | | | | | | | This is a commit of the pdfi branch to master, eliminating the traditional merge step. The full history of the pdfi branch can be seen in the repo, and that branch is effectively frozen from this point onwards. This commit actually differs from pdfi in a small number of whitespace changes (trailing spaces etc).
* Disable libdeflate use for libtiffChris Liddell2021-06-031-1/+1
| | | | | | | | | | | | | | | | | | | | As part of the Ghostscript/GhostPDL configure script, we also run the libtiff configure. If libdeflate was present, and running Ubuntu 21.04 (or later?) and using our shipped libtiff sources, it would attempt to build with libdeflate support, but not include the library to link to, and cause a build error. We don't need libdeflate support, so disable it explicitly when we call the libtiff configure Also, add an environment variable (GS_TIFF_CONFIGURE_OPTS) to the libtiff configure command line, as an easy "end user" workaround for similar future problems. So doing: ./configure GS_TIFF_CONFIGURE_OPTS="--disable-libdeflate" Would work around the libdeflate issue.
* Bug 703880: Fix lines/line endings in alignment testChris Liddell2021-05-251-39/+41
|
* Add some relevant flags to the cups compilationChris Liddell2021-05-071-0/+4
| | | | | | | Specifically: HAVE_STRLCAT, HAVE_STRLCPY, HAVE_SNPRINTF, HAVE_VSNPRINTF In the hope it might resolve the strange and unpredictable compilation failures on the 32 bit cluster auto tests.
* Fix MacOS/tesseract build problems on Unix systemsChris Liddell2021-04-051-1/+1
| | | | | Improve the configure test for valid C++ compiler options by having the test include a header.
* configure.ac: improved description of --with-extract-dir option.Julian Smith2021-04-021-1/+3
|
* Automate tesseract build compatibility with clang++Chris Liddell2021-03-221-1/+19
| | | | | | | | | | | | | | On MacOS (at least), clang++ requires the addition of the -std=c++17 to enable support of the features that tesseract uses. Also, on Linux (at least) clang++ requires -stdlib=libstdc++ in order to pickup a usable stdc++ library. So, tweak configure to test whether the compiler accepts the options to do both the above, and if so, add them to the CXXFLAGS used to build tesseract. In addition, in configure, pickup CXXFLAGS so custom options can be set on the configure command line.
* Make --disable-threads incompatible with including OCRChris Liddell2021-03-171-1/+3
| | | | | | | | | | | | Tesseract requires threading, even though Ghostscript doesn't actually call any of the parts of tesseract that use threading, there is no sensible way to leave it out. So, throw an error if --disable-threads is used when tesseract/leptonica is present. The error includes a note to use "--without-tesseract" to avoid the error. Also, fix a typo from a03ce3d6a130c843cb4dd91b7e767706973b4e22
* Pick up C++ compiler from configure scriptChris Liddell2021-03-171-1/+1
| | | | Rather than rely on the GNU make predefine.
* Update copyright to 2021Chris Liddell2021-03-151-1/+1
|
* Check for extract in a "default" locationChris Liddell2021-03-021-2/+7
| | | | | | i.e. ghostpdl/extract as well as still allowing --with-extract-dir for custom locations.
* Remove Luratech integration code/makefilesChris Liddell2021-02-221-76/+1
|
* Added docxwrite device; uses extract library to write docx output.Julian Smith2021-02-151-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This adds a new docxwrite device which generates docx files. Unlike the txtwrite device, we don't output xml for later use by extract-exe or store information about spans in arrays. Instead we call extract functions such as extract_add_char() directly. Code changes: Have moved txtwrite and docxwrite common code into new devices/vector/doc_common.{c,h}. Shared types and functions are currently: txt_glyph_width_t txt_glyph_widths_t txt_glyph_widths() txt_get_unicode() txt_char_widths_to_uts() txt_calculate_text_size() Building: By default we do not build with Extract and there will be no docxwrite device in the final executables. To build with Extract, specify the location of the extract checkout to build and link with. Unix: ./autogen.sh --with-extract-dir=<extract-dir> Windows: Set environmental variable EXTRACT_DIR=<extract-dir> when building, e.g.: EXTRACT_DIR=<extract-dir> devenv.com windows/GhostPDL.sln /Build Debug /Project ghostscript On both Unix and Windows we exit with an error message if the specified location does not exist.
* Revert "Remove deprecated opvp/oprp devices from default build"Chris Liddell2020-10-131-8/+5
| | | | | | | | This reverts commit 66c2469c7d4543f32d6dc93edf1d649e809b8419. A user got in touch to say that he maintains a printer driver "back end" that uses the opvp device. So reinstating it - at least we know it's getting tested.
* Update tesseract traineddata loader with new path search.Robin Watts2020-10-131-0/+10
| | | | | | | | | | | | | | First, we look in TESSDATA_PREFIX (if defined). If not found there, we look in ROMFS (in tessdata). If not found there, we look at the configured "tessdata" path (which defaults to ${datadir}/tessdata). (${datadir} defaults to ${prefix}/share on unix, and ${gsrootdir} on windows.) If not found there, we look in the current directory. Update doc/Devices.html (and fix some indexing).
* Added PDL_DYNAMIC_LDFLAGS to $host *bsd* sectionJulian Smith2020-10-061-0/+1
| | | | to match the other platforms.
* Use pkg-config to get CFLAGS for libidnChris Liddell2020-10-061-0/+1
| | | | | We already get the libs, missing the CFLAGS (mainly the -I) was just an omission.
* Allow configure caller to choose a sanitizerChris Liddell2020-09-241-3/+14
| | | | | | | | | Our "sanitize" target just uses address sanitizer. With this commit, we'll still default to address, but the caller can do: --with-santizer=memory to opt for the "memory" sanitizer instead.
* Bug 702904: Another fix to check for shared libjpeg/libtiffChris Liddell2020-09-161-1/+1
| | | | | | | | | | We cannot combine shared and not shared libjpeg and libtiff - they either both need to be "local" or both shared, and configure checks that and fails when the two are incompatible. However, that check would fail when either libjpeg or libtiff were not being included at all. Since it is libtiff that is the "problem" for this compatibility, now check if TIFF is included, and if not, skip the check.