ES-DE/external/CImg/examples/Makefile

614 lines
16 KiB
Makefile
Raw Permalink Normal View History

#
# File : Makefile
# ( Makefile for GNU 'make' utility )
#
# Description : Makefile for compiling CImg-based code on Unix.
# This file is a part of the CImg Library project.
# ( http://cimg.eu )
#
# Copyright : David Tschumperlé
# ( http://tschumperle.users.greyc.fr/ )
#
# License : CeCILL v2.0
# ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html )
#
# This software is governed by the CeCILL license under French law and
# abiding by the rules of distribution of free software. You can use,
# modify and/ or redistribute the software under the terms of the CeCILL
# license as circulated by CEA, CNRS and INRIA at the following URL
# "http://www.cecill.info".
#
# As a counterpart to the access to the source code and rights to copy,
# modify and redistribute granted by the license, users are provided only
# with a limited warranty and the software's author, the holder of the
# economic rights, and the successive licensors have only limited
# liability.
#
# In this respect, the user's attention is drawn to the risks associated
# with loading, using, modifying and/or developing or reproducing the
# software by the user in light of its specific status of free software,
# that may mean that it is complicated to manipulate, and that also
# therefore means that it is reserved for developers and experienced
# professionals having in-depth computer knowledge. Users are therefore
# encouraged to load and test the software's suitability as regards their
# requirements in conditions enabling the security of their systems and/or
# data to be ensured and, more generally, to use and operate it in the
# same conditions as regards security.
#
# The fact that you are presently reading this means that you have had
# knowledge of the CeCILL license and that you accept its terms.
#
#-------------------------------------------------------
# Define the list of files to be compiled
# (name of the source files without the .cpp extension)
#-------------------------------------------------------
# Files which do not necessarily require external libraries to run.
FILES = CImg_demo \
captcha \
curve_editor2d \
dtmri_view3d \
edge_explorer2d \
fade_images \
gaussian_fit1d \
generate_loop_macros \
hough_transform2d \
image_registration2d \
image2ascii \
image_surface3d \
jawbreaker \
mcf_levelsets2d \
mcf_levelsets3d \
odykill \
pde_heatflow2d \
pde_TschumperleDeriche2d \
plotter1d \
radon_transform2d \
scene3d \
spherical_function3d \
tetris \
tron \
tutorial \
wavelet_atrous \
use_chlpca \
use_draw_gradient \
use_nlmeans \
use_skeleton \
use_RGBclass \
# Files which requires external libraries to run.
EXTRA_FILES = use_tiff_stream use_jpeg_buffer
#---------------------------------
# Set correct variables and paths
#---------------------------------
VERSION = $(shell grep 'cimg_version\ ' ../CImg.h | tail -c4 | head -c3)
VERSION1 = $(shell grep 'cimg_version\ ' ../CImg.h | tail -c4 | head -c1)
VERSION2 = $(shell grep 'cimg_version\ ' ../CImg.h | tail -c3 | head -c1)
VERSION3 = $(shell grep 'cimg_version\ ' ../CImg.h | tail -c2 | head -c1)
SVERSION = $(VERSION1).$(VERSION2).$(VERSION3)
X11PATH = /usr/X11R6
EXE_PRE =
EXE_EXT =
ifeq ($(MSYSTEM),MINGW32)
EXE_EXT = .exe
endif
ifeq ($(MSYSTEM),MINGW64)
EXE_EXT = .exe
endif
ifeq ($(shell echo $(notdir $(CXX)) | head -c3),g++)
IS_GCC = 1
endif
ifeq ($(shell echo $(notdir $(CXX)) | head -c7),clang++)
IS_CLANG = 1
endif
ifeq ($(shell echo $(notdir $(CXX)) | head -c4),icpc)
IS_ICPC = 1
endif
CXXVER = $(CXX)
CFLAGS = -I.. -Wall -Wextra -Wfatal-errors -Werror=unknown-pragmas -Werror=unused-label
LIBS = -lm
ifdef IS_GCC
CXXVER = $(shell $(CXX) -v 2>&1 | tail -n 1)
endif
ifdef IS_CLANG
CXXVER = $(shell $(CXX) -v 2>&1 | head -n 1)
endif
ifdef IS_ICPC
CXXVER = $(shell $(CXX) -v 2>&1)
CFLAGS = -I..
LIBS =
endif
ifdef IS_GCC
GCC_VER_GTEQ5 = $(shell expr `$(CXX) -dumpversion | cut -f1 -d.` \>= 5)
ifeq ($(GCC_VER_GTEQ5),1)
CFLAGS += -Wshadow
endif
endif
#--------------------------------------------------
# Set compilation flags allowing to customize CImg
#--------------------------------------------------
# Flags to enable strict code standards
ifeq ($(notdir $(CXX)),icpc)
ANSI_CFLAGS = -std=c++11
else
ANSI_CFLAGS = -std=c++11 -pedantic
endif
# Flags to enable code debugging.
DEBUG_CFLAGS = -Dcimg_verbosity=3 -Dcimg_strict_warnings -g -fsanitize=address
# Flags to enable color output messages.
# (requires a VT100 compatible terminal)
VT100_CFLAGS = -Dcimg_use_vt100
# Flags to enable code optimization by the compiler.
OPT_CFLAGS = -Ofast
ifdef IS_GCC
Squashed 'external/CImg/' changes from c0becdf88..4d061dcd6 4d061dcd6 math_parser(): Add function 'map()'. ac599e123 . b9fa7354f . 673cfe3d5 math_parser(): add mutex to protect access to image list statistics. 862b2c7b1 Fix bug in math evaluator function 'find()', and improve 'colormap' in 'full-colormap' mode. 44b1d556c draw_text(): Fix (non-standard) passing reference to va_start() macro. 6db20df4f . 03b2203ea . f9619587b math_parser::da_remove(): Improve error message when trying to remove element in empty dynamic array. 3486b3ee7 Remove unused version of _sprintf(). 07040bb0e Fix warning about using 'vsprintf()' with clang-12. 5f667e2c7 . e6c7b23c9 . 099447df4 . e89b77dfa . 1d5505416 . 163cf1caa . 40a666909 . 86e55504c . 381ba0bfa . b886800ad . 31648450a . 2e82b7cd9 . 2daf2862f . c6e4360df . 6c94a6b20 . d212c0ce3 . 5ff6f38d5 . 3e7a4f21d . ccf1db65e . a411cc180 . e0018918b . 23903475c . 6a8b81169 Command 'text': Custom font can be specified. a2dea0866 . d31902272 Fix bug in 3D convolution operator. 210b728a3 math_parser(): add new predefined variable 'v' (eq. to 'u(-1,-1)'). b030ea4e6 math_parser() : Fix parsing arguments for function 'permut()'. f90e52c4d math_parser: Allow 'norm()' to return a const value when possible. 17b8f5bb5 . 6ffe10e13 . 3c7b877b3 Improve inner/outer parallelization decision in 'correlate/convolve' methods. 56e2268b4 . f4eeec4d2 . 00ce10760 . bf0f5dcb2 . 45df40a35 . 43950e631 . a73a2f129 . 1d033f1da math_parser: Start implementation of function 'offset()'. 0f673c279 . 59a34f2fe . 815c40021 . 422d6ecc3 . b0ab9037b . e2af0d091 . b41f7850e . aebccaad9 . 9d60f335e . c65104e8c . 9ac2b7ae1 . 43558edca . 6cd4e15e6 . fc2ca5606 . aa5b1149b math_parser: Refactor function 'draw()', and prepare for variant that draws in vector-valued variables. 6c47625f3 . 8d1bbe3ef . d5fcd765c . 6c43cf325 . 0d54f89e7 . 56cc9a806 . 60411ef05 . 009594d2d . acf1a2a70 . 8d3bfe7fc . 7078e25a5 . 3d56cac0c . ea0074152 . 4977f9500 math_parser: Prepare code for implementing 'crop()' on vector-valued variables. 382ad1b59 . 8834a487e cimg_math_parser(): Be more strict in the use of vector-valued arguments for some functions. c33802810 . 4b3653922 Remove useless test with 'is_relative' for math_parser's function. 732986f3e . 94f12f994 Allow creation of animated .gif with transparent backgrounds. f3a5ba719 . 866b6d752 . f2dc3ef7b Fix issue #368. 55ff59944 . 386fd1871 . a456e9010 . 28a857b69 . 110ca2d87 . 404303418 . 2e2e0c5e8 . bf7b13196 . 91b63f722 . be47c0a33 . 7d232bdbf . e6012687d Merge pull request #367 from GreycLab/master 642cebcfd . f650e941d . 50a4ab03f . cdedc97f8 . 9ec047a1b . 65c462cab . 2eb56a718 Merge pull request #366 from marsh0/develop a8939b6ef . 334b3e9c1 Fixed unsigned int 64 to unsigned int warning 8e72d80fd . e3cc84697 . b1c13dfc5 . fb79a9d3e Improve computation of matrix pseudoinverse with LU solver. 76fae2fcd Add option 'use_LU' to command 'solve' and math function 'solve()'. bb03df435 . d86916333 Merge commands and math functions 'invert' and 'pseudoinvert'. 49f61eb8a Merge commands and math functions 'invert' and 'pseudoinvert'. a63492bcd Merge commands and math functions 'invert' and 'pseudoinvert'. a403c817e Add 'lambda' option to the various 'pseudoinvert()' functions. ca21c1d73 . e0a825b1a . 931b498a5 . 9112b4711 . f52871859 . 31dabfb13 Start work on next version 3.2.0. 1e1078317 . 7f3157a04 . 03f877161 _cimg_math_parser(): Slightly change behavior of 'isin()' to allow testing vectors. c63cf71c7 . 1921b379a . ec000cd2e cimg_math_parser(): Fix bug in accessing predefined variables 'i0,...i9'. c3cef822b Merge branch 'master' of github.com:GreycLab/CImg a28648518 . 9a0f19ded cimg_math_parser(): Fix incorrect handling of 'yM' (regression). bbad387b3 Merge pull request #359 from bkmgit/ci c5dcd933e Add badge with build status b3059fa96 Update branch name bd0eff91d Merge branch 'master' of github.com:GreycLab/CImg c6f53e867 _cimg_math_parser(): New predefined variable 'id' (std of current image). 7d5619934 Merge pull request #358 from bkmgit/ci db2e449fd Add 3 new postcards. 21c168170 Fix wrong detection of multi-threaded expression error in 'CImg<T>::fill()'. ecfc076a5 Update MacOS dependencies 67ce48f35 Update MacOS dependencies 9c14a9000 Update MacOS dependencies 4184a25ba Update dependencies 813ed36bc Update dependencies 94b62e7fb More formatting fixes ab395bb38 Formatting fixes 052e71ba7 Enable testing 3405584e2 . 5ad3d1af1 Add math parser function 'da_freeze'. f53b5ab9c . 957ecc309 . 5934122c9 Add postcard #77. cb93f21c1 Add postcard #77. 2835ec2e2 . 27ffac840 . f68f333dd . f25f7e1e8 . 80e582a0c . 406fbd072 Merge pull request #355 from Poohl/develop a580234ef font size doc ae654a628 Final release 3.1.4 e35d78341 Auto-commit for release 3.1.4_pre 54ff2d7af . 25bd0c3c6 . 3bb6458fc Simplify error handling in 'get()'. 39b4f963a . 568b34c4a Make 'swap()' return 'nan'. 0cdfb6714 Make 'set()' return 'nan'. 69a03bf83 Make 'copy()' return 'nan'. da854d5ae Invert argument order in math function 'store()'. 8f493f7cd Invert argument order in math function 'set()'. 6f1ea6eab . e82ed2c61 . f511bb5c8 . a35cb93e7 . a452d475c . 2bc84810b . ab4381619 Merge pull request #353 from amyspark/amyspark/support-msvc aa4455fe4 Support MSVC's OpenMP 2.0 5f26c8745 . 6f8ee7c07 . a01439210 Change variable name '_res' to '_resu' to avoid conflict with other badly written libraries. 480b2f0fb Add command 'eye'. 921772323 Start work on 3.1.3 version. 21ba6b4db . 8637d8f4d Define 'cimg_max_buf_size' to another value for 32-bits architectures. d8bb494d6 Define 'cimg_max_buf_size' to another value for 32-bits architectures. e8affb299 . 47e249d38 Fix bug with 'break'. 8fe779e8a Final release 3.1.1 e01419fc5 . 52b3d735a . c4ddd6131 Update plug-in 'cvMat.h'. 104cfb8a6 Start 3.1.1: Fix possible misinterpretation of arithmetic expression in ':=' assignment. 1d1c75c36 . bc010ab25 . d27c30fe1 . 254a4cf7b . 5801be3d2 Merge pull request #348 from 7unn3l/master 37cf0c1e5 add global hardening against RAM exhaustions in safe_size 6b78c3b3f . 7b7688dc8 . c3c8c22d6 . 471083bbd . efd8d2965 . 577bf7b50 . 9d03892e3 . f8dba12b8 . 3ca5dcea2 . 29bdc1dce . a63b71bf0 . 22f226f4c . 761d5c085 . 1665172bb . c7ee7bc9b . 193abd7b2 Add macro 'cimg_max_file_size' to control maximum allowed file size when reading image files. 0f7f7fb45 . 619cb58dd CImg<>::load_bmp() and CImg<>::load_pandore(): Check that dimensions encoded in file does not exceed file size. d0f152d53 Fix offset issue when dealing with large images in 'CImg<T>::erode()' and 'CImg<T>::dilate()'. 607aea7c8 Fix 'get()' in math parser. 8824c078d . 0da4cb0ac . d9a56919a . 52bc43848 . a02df736a Allow command 'store' to manage bigger images. 0cf328ab6 . d54761b9b . 72e5e6314 Remove unused variables in 'CImg<T>::opening()' and 'CImg<T>::closing()' 466022095 Format code to 120 max char./line. 790710040 Merge pull request #340 from amyspark/amyspark/powershell 712078d3f load_network: add Powershell fallback for Windows e7eb920b7 . fc6ba0eec Add 'CImg<T>::otsu()'. 8404b81a0 . 877ba9da8 CImg<T>::opening() and CImg<T>::closing(): Use min/max of type T rather than min/max of image values, for initialization. 3cd82ea4f Add methods 'CImg<T>::opening()' and 'CImg<T>::get_opening()' 640195d02 Add methods 'CImg<T>::closing()' and 'CImg<T>::get_closing()' 94a7c7f13 . 4171fb912 . b5f2177c5 . 3200701db . fddf9334f . 555019468 . 353cd8fbe . c864cb0ac . 97c2923c0 . 366977648 . 66261e676 . baf9a8009 . a87a42217 . 2e99e630c . 23c738e85 . 8a17cb81a . 8b23cf36b . 1190e3f98 . ae4c10e71 . b6febab4c . 891d91621 Fix libtiff compilation issues with uint16_t and uint32 datatypes. ee4dc2f93 . 1189d5050 . 0a260f407 . 983c502b4 . 376ac7316 . d51bccfce . 82d6b436d . 3b7421231 Update README.md d7ea859fc . 4efbe8a4f . fb39f7c96 . abbcd69f2 . 5651a141f . 6816343ca . 96661b16f . 159baf24f Improve default image normalization behavior with CImgDisplay with integer types. 349274537 . 53cf0df32 Fix multithreading in 'structuretensors()' computation. 1bff57ea5 . 44df5b111 Fix compilation errors for type T=half. dd1139da4 . b4365b74b Auto-commit for release 3.0.3_pre 410a7eaad . 52cdaf7ff . e09678a3d Start work on 3.0.3. e15278726 Final release 3.0.2 927fee511 . 798007eaa . a7eebc5c4 . a27910604 . 032128ac2 . ac7980fc6 Start work on 3.0.2. 99a27d921 . ed6984ca2 . 51295de3e . 7c81d801c . d822b418f . bcdbaeb61 . 2798b9ea7 . a5465c18a . 8ad66d28d Final release 3.0.1 0a7c58232 . d67062b57 . b86e97ba5 . 0a346c624 _cimg_math_parser: Fix 'da_remove()' when used with multi-channel arrays. 6300c47a1 . 4cd0579d4 math_parser : Add functions 'printc()' and 'printcs()'. 0bda75c10 Fix #337. d3190b26f . c5b1a4ce0 Simplify _cimg_math_parser() by merging listin and listout into imglist variable. db7586fb4 . de80b8a82 . 93e45d310 [math-core-301] Fix floating point exception when functions da_*() are used with no images on the list. d4cc50b95 . f88c9148f . ba89271ed Final release 3.0.0 e6ef1ad73 . f687c4629 . 30991fb16 . 26e166b8d . c0995a47f . 3f4dc79a2 . 4d331435d . 64952efb9 . dbc19c290 . 9adb5bdb0 . f72d88d63 . 4d8ee52e6 . 73fef7018 . 175a53870 . e6cfba22a . 87bd9d126 . 10abd5fac . 00e896a07 . 1cffd322a . e2e9baab6 . b05d14e3e Add more boundary conditions to 'boxfilter'. c39bb2503 . aebc12a82 . fa5f067e0 . 63312e7d8 . a93108d4e Fix bug in 'correlate()'. e1e77b7c6 . 62bc6b134 math_parser, function merge(): check that specified variable is not a linked reference. 132bb175b . e0fd8a9b4 . 637eb4c2c . 237a1f4b8 . 481df9dbe . 8d502a5fe . 2ee5b1670 . 63a4fa78d . 5c4860ef3 math_parser: Add functions 'da_back()' and 'da_pop()'. 50c0d9839 math_parser: Add functions 'da_back()' and 'da_pop()'. 67f8c6e4b . 2d2c7f953 . bb98b67b7 . 6acf1c19e . c60635e01 . d6c50bfee . 9798f569d . 5f63bc3d8 . b2f29613e . f30babb43 . 920965b0d . 8e01f2833 . 93408dc74 . 6faf752ff . 5a1a2bd92 . bbecd96f2 . af9c0a434 . 035125b20 Fix CImg<T>::draw_triangle(), with color-interpolated triangles (Fix #332). 8f949732d . 22190d30e . bc0160d79 . c2022354d . 72378e8e3 . 04638b8cd . 527aa2233 . a6d4956bc . f09c2b145 . c967157af . bedf7d5ea . de0612004 . 62d3898a9 . 254d842ee . c0a74ff77 . 5c13300f3 . 2352831c1 . 6e5a14a23 . e020fdf47 . 60bf6e4ec . 4e9f06083 . a95a0dcdb . bd37c5755 . ba155fd42 . 1a6e02309 . f1ba20b82 . 04b3f1e29 . c9eabd65d . 7089938f6 . 47d3a2ea6 . bcf797fea . 04e037028 . 79ea94dd4 . 7bdd3f9ba . fbd0be3a1 . b4f703517 Start the work for supporting new type 'list' in math parser. f6860f51b Merge pull request #329 from Irgy0/master 41f0d3777 . 8eaf50b64 . 2b7e44e57 . 535924dca Set PNG interlacing on to avoid an error message when reading interlaced pngs. df4e034f8 . 6c051eb27 Improve detection of .raw files (CR2,NEF,DNG,ARW). 25aaf3850 . 48173196c Fix a few int-overflow bug that could happen in draw_line(). bcfe7c7b2 Start work on v.3.0.0. Fix bug in CImg<T>::draw_polygon() when large integers are used. cd95217c0 Final release 2.9.9 506fcb51b . b33dcc8f9 . 96114de6d . 25612a629 . 4ffd314d9 . 4314d6e25 . 90dba23bc . 06dc60988 . e3e62d883 Add a few optimized pattern detected to evaluate simple math expressions. c4a7e078a . 595c34a29 . 288e6b8d5 . c82328019 Optimize CImg<T>::_correlate(). 2d83233c4 Merge pull request #322 from xen0n/fix-f1996f1 70876dde3 . 3544285d1 Auto-commit for release 2.9.9_pre 5304630b6 . eb50adb88 Bump to development version 2.99 2d2731eb6 examples: probe for -mtune=generic support, fix wrong LoongArch support 2e01be63d . c89f21f73 . 2a1fc8892 . 1258803c0 . 06e7b4c50 . 69f88f3d3 . 634ec5cb7 . 9f8bcec92 . 6a80064f7 . c62788122 . a6d3453ca . e0ba6764e . b2b2587f6 . 82030f386 . 60c8331bc . 92933de51 . a021efcde . def3d2053 . c498c1d4a . bc62b89bb . 8485f6964 . 3778d6470 . 6642c07af . dbe72a293 . 48885df73 . ac0890316 . a1a0296e8 . d7fa86a15 . 62d4b793d . a154473a4 . 72d6622d2 . 4951ce53a . 4df351bda . 8488374fa . 6c5d95e91 . bd5ad98b0 . 4baff4a38 . 011cf98e9 . 46f09676f . f9fc7ec05 . 64214b216 . 2c6199e6c Optimize CImg<T>::_correlate(). 1ae6b689a . 6c7dab3a6 . 463a7a9e9 . 7ab29098f . 128d06351 . 0fb83de04 . 2f91d0522 . 64ae3ee54 . 025e85ea5 . c7ed44f42 . 91ef37e53 . f92c0ead4 . 29066e1b0 . 00c8c6ba7 . 5a408e8cc . 87226897c . 44b78c7fb . 0bfb8739b Merge pull request #321 from Lucky-Na/master f1996f10f delete -mtune option on loongarch architecture 3d72e8721 Fix variable prepending operator '..=' 499719e16 . 30a5cd2a0 . 43a6228be . 6dabed31d . 4fca316ed correlate() : Fix when used with 3x3,5x5 or 3x3x3 kernels and dirichlet boundary conditions. c72acfb3a cimg_math_parser() : Allow strings with blank characters to define empty 'begin[_t]()' and 'end[_t]()' blocs. 9423744d5 . 59ffa01f5 . b1816a335 . e29daa5b6 cimg_math_parser(): Fix argument counting in functions convolve()/correlate(). b9d347240 . 43af18673 . a79cada5f . 0275b3d84 . 2b0af18cf . bf67c30d8 . 6ca2fdcde . e38d56a2f . b14e79f6e Fix CImg<T>::convolve() and correlate() for channel_mode==0. a996c28cf Fix CImg<T>::convolve() and correlate() for channel_mode==0. 63d40db5e CImg<T>::convolve()/correlate() : Fix bug with small kernels and channel_mode==2. 8b2e46ca5 . d9e5e9551 _cimg_math_parser() : better manage inclusion of begin(), begin_t(), end() and end_t() blocs. 46f043f34 _cimg_math_parser() : allow begin(), begin_t(), end() and end_t() to have empty arguments, and fix possible bug with returned value when multiple end() separated by semicolons. 6fb8ca212 . 59464c694 _cimg_math_parsers(): Fix thread number when math expression is evaluated in parallel. f8cc94faa . 7c414c67b . 7232ea760 . 9aaf75076 CImg<T>::cimg_math_parser() : Add predefined variable T (max number of threads). ee59a3f87 . f5ff164b6 Add commands 'deg2rad' and 'rad2deg'. 28b0562b6 Add 'erf' function. f7308afab . d984ca0ea . 96eab6c69 Auto-commit for release 2.9.8_pre ae16ae5ef . be4612f61 . 87e8f38b7 cimg_math_parser : Add postfix operator '°' for degree to radian conversion. 6351adce1 . a68b594bd CImg<T>::_cimg_math_parser() : Add functions 'deg2rad()' and 'rad2deg()'. a95d03e8b . a285f0fca cimg_math_parser: Add function 'erfinv()' (Inverse of the gaussian error function). 948cc956c cimg_math_parser: Add function 'errf' (Gaussian error function). 340d0a4c8 . 55e370660 Fix #319 c00abf5f0 Command 'input' : when loading a tiff file, bit depth is now set to status. 7222933de Change 'bits_per_pixel' to 'bits_per_value' in CImg<T>::load_png(). 16979f3b3 . 5876d4f7d . 0d9a3c56c . 33a28fddf Temporary disable openmp clauses that slow down execution of CImg<T>::draw_text(). efa524d6d . b726708e6 Implementation of the operator$() in math parser. 5f4914222 Start support of '$varname' expressions in math parser. ad7ea9ef1 Improve comments. 0d1e92f3f factorizes the use of 'is_varname()' in 'cimg_math_parser'. 3039446df . 2c5628639 Make function echo() of the math parser accepts no arguments. 0fa6b92a5 . 5f15b8c60 . 37559271f . d079374d8 . d7bd9f018 . e68a184eb . 749bc70ab . f4b53f6e5 . cc3c1f1da . 14c95cc60 . 075a7225b . dd8888fe6 Auto-commit for release 2.9.8_pre b0f47208f . 68e98b6bf . 68dbb754b . 1a2ff4ed5 . 6c5f78646 . 1d51d0113 . aa0eaa35c . f6bf39296 . 771fed51f . ae07e9402 . c2ea55532 Simplify memtype values to avoid optimizations in mathparser. b0bf3f942 Merge branch 'master' of github.com:dtschump/CImg 218efcf9b . 670c4b96b . 91c79ddbe . b2364dfe6 . 70aaa01e7 . 2970997fc . 4d07ae7cc . 7c15e7916 . 8e381d9ef . 5bcba71c9 . fde76337e . 7886267e6 . 979de2c2a . f7d659758 . 30761a532 . bb00749e6 . 317e5ac5c . 38b70c3cf . 009203b1f . 3ad6a9ae5 . 0794bbb21 . 03781c95a Fix bug in 'draw_text()' when background color provided. 09b9509ae . b7cd009a5 . 65c6ddc16 . 29ab0faff . db81f5dd3 . 3645f4fe1 . 8bdba276f . f4138047f . 30f6b4b06 . 306e56fe6 . 9a1ba9432 . 515bd31a1 . 6ca343326 . 766163fb8 . 9a95c0580 Try to fix warning in _load_cimg(). c9ad21c03 . a5a6d8145 . 11b76c6be . acc89aa12 . 50830d050 . 79c98a562 . 4a7bb5179 . c4b3fa7de . 227ac1511 . 96918daa6 . 32b165ef3 . a66d1967a . 0b499d9ad Auto-commit for release 2.9.8_pre f1f7eb052 . 0f67297eb . a70a9fe8a Final release 2.9.7 f96abe1f9 . bbc902b73 . 9aafe8661 . 6e2fe28f8 . 84999fc90 . 50010156f . 070ded77c . b6b16a833 . 19cfa4a58 . df9386eb1 . 6d2e1b033 . 54362bece . 6b6563f80 . 3aea1583d . 72aebaf5a Merge pull request #307 from lrusak/heic 94427018a . 9546e99a6 . bd5588194 add heic and avif support via libheif 089aeaa1f . 54eb48990 . 1b0e54e4e . 7109b5f09 . e8aed2a42 . 8174e8777 . 338f4b6c4 . 1838aef33 . e48345ab6 . f30d034a9 . e15eac073 . b2129184e . d9ef878a2 . 5f4047615 . d3eb0c5eb . 2f7a1ebf1 . 90baf1b6b . e5084c208 . 391a440af . 70a4532a3 . eca1daace . 9efa52eb7 . 0cdc54bcf . a79a2f1c3 . de1205f66 . 063d9e09a . ec3f66877 . 324c7d1cc . 1244801b1 . 58196cec7 . 2363d1935 . ccc362050 . 5c98c31b0 . c6be2b83a . 8f79526f0 . 1ef7c78d7 . f913ffa5e . 7db6d0835 Merge pull request #295 from cleeus/fix-pnm-heap-overflows 4f184f89f Fix multiple heap buffer overflows 580d74777 . 755cf717a . ce329c07f . 33824c014 . 9978daaaf . f37b255ca . 1222eea73 . b8a7af571 Merge pull request #282 from Chuvi-w/FIX_VTK 96e5c9e14 Fix syntax error in vtk.h ea2b86fef . 833b1a589 . 654d46278 . 15d25b190 . d6955b5e9 . 3f2b7a3a7 . 612044515 . 6f3cacdc3 . 94f6b51e5 . e0763f2fd . 8f0dcc789 . d069d8048 . d501aa3a0 . 9bcfc5b8c . 3a6cd9df0 . 46def454c Merge pull request #263 from UlysseV/MC_improvement 16f2496b6 change func call pattern for isoline3D d577a6b28 change func call pattern f71695057 . fffee0ae0 . c15123bff . d0257a2f9 . 01edd73e1 . bb02b35ea . 92b407d53 . b26716f3b Merge branch 'master' of github.com:dtschump/CImg bc2446460 . a93c51b98 . ecc8b7337 . c3960f08f . f77588f32 Merge pull request #253 from dtschump/develop git-subtree-dir: external/CImg git-subtree-split: 4d061dcd67c08e9a36a01875e78b53ee86501dd7
2023-01-06 10:47:13 +00:00
# Add -mtune=generic for GCC if supported.
NO_MTUNE_GENERIC = $(shell $(CXX) -mtune=generic -E - < /dev/null > /dev/null 2>&1; echo $$?)
ifeq ($(NO_MTUNE_GENERIC),0)
OPT_CFLAGS += -mtune=generic
endif
endif
ifdef IS_ICPC
OPT_CFLAGS = -fast
endif
# Flags to enable OpenMP support.
OPENMP_DEFINE = -Dcimg_use_openmp -fopenmp
OPENMP_INCDIR =
OPENMP_CFLAGS = $(OPENMP_DEFINE) $(OPENMP_INCDIR)
ifdef IS_ICPC
OPENMP_CFLAGS = #-Dcimg_use_openmp -openmp -i-static # -> Seems to bug the compiler!
endif
ifdef IS_CLANG
OPENMP_CFLAGS =
endif
# Flags to enable OpenCV support.
OPENCV_DEFINE = -Dcimg_use_opencv
OPENCV_INCDIR = $(shell pkg-config opencv --cflags || echo -I/usr/include/opencv) -I/usr/include/opencv -I/usr/include/opencv4
OPENCV_CFLAGS = $(OPENCV_DEFINE) $(OPENCV_INCDIR)
OPENCV_LIBS = $(shell pkg-config opencv --libs || echo -lopencv_core -lopencv_highgui)
# Flags used to disable display capablities of CImg
NODISPLAY_CFLAGS = -Dcimg_display=0
# Flags to enable the use of the X11 library.
# (X11 is used by CImg to handle display windows)
X11_DEFINE = -Dcimg_display=1
X11_INCDIR = $(shell pkg-config --cflags x11 || echo -I/usr/X11R6/include)
X11_CFLAGS = $(X11_DEFINE) $(X11_INCDIR)
X11_LIBS = $(shell pkg-config --libs x11 || echo -L/usr/X11R6/lib -lX11) -lpthread
# Flags to enable fast image display, using the XSHM library (when using X11).
# !!! Seems to randomly crash when used on MacOS and 64bits systems, so use it only when necessary !!!
XSHM_CFLAGS = # -Dcimg_use_xshm $(shell pkg-config --cflags xcb-shm)
XSHM_LIBS = # $(shell pkg-config --libs xcb-shm || echo -L$(USR)/X11R6/lib -lXext)
# Flags to enable GDI32 display (Windows native).
GDI32_DEFINE = -mwindows
GDI32_INCDIR =
GDI32_CFLAGS = $(GDI32_DEFINE) $(GDI32_INCDIR)
GDI32_LIBS = -lgdi32
# Flags to enable screen mode switching, using the XRandr library (when using X11).
# ( http://www.x.org/wiki/Projects/XRandR )
# !!! Not supported by the X11 server on MacOS, so do not use it on MacOS !!!
XRANDR_DEFINE = -Dcimg_use_xrandr
XRANDR_INCDIR =
XRANDR_CFLAGS = $(XRANDR_DEFINE) $(XRANDR_INCDIR)
XRANDR_LIBS = -lXrandr
# Flags to enable native support for PNG image files, using the PNG library.
# ( http://www.libpng.org/ )
PNG_DEFINE = -Dcimg_use_png
PNG_INCDIR =
PNG_CFLAGS = $(PNG_DEFINE) $(PNG_INCDIR)
PNG_LIBS = -lpng -lz
# Flags to enable native support for JPEG image files, using the JPEG library.
# ( http://www.ijg.org/ )
JPEG_DEFINE = -Dcimg_use_jpeg
JPEG_INCDIR =
JPEG_CFLAGS = $(JPEG_DEFINE) $(JPEG_INCDIR)
JPEG_LIBS = -ljpeg
# Flags to enable native support for TIFF image files, using the TIFF library.
# ( http://www.libtiff.org/ )
TIFF_DEFINE = -Dcimg_use_tiff
TIFF_INCDIR =
TIFF_CFLAGS = $(TIFF_DEFINE) $(TIFF_INCDIR)
TIFF_LIBS = -ltiff
# Flags to enable native support for loading HEIF image files, using the libheif library.
# ( https://github.com/strukturag/libheif )
HEIF_DEFINE = -Dcimg_use_heif
HEIF_INCDIR =
HEIF_CFLAGS = $(HEIF_DEFINE) $(HEIF_INCDIR)
HEIF_LIBS = -lheif
# Flags to enable native support for MINC2 image files, using the MINC2 library.
# ( http://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_Users_Guide )
MINC2_DEFINE = -Dcimg_use_minc2
MINC2_INCDIR = -I${HOME}/local/include
MINC2_CFLAGS = $(MINC2_DEFINE) $(MINC2_INCDIR)
MINC2_LIBS = -lminc_io -lvolume_io2 -lminc2 -lnetcdf -lhdf5 -lz -L${HOME}/local/lib
# Flags to enable native support for EXR image files, using the OpenEXR library.
# ( http://www.openexr.com/ )
OPENEXR_DEFINE = -Dcimg_use_openexr
OPENEXR_INCDIR = -I/usr/include/OpenEXR
OPENEXR_CFLAGS = $(OPENEXR_DEFINE) $(OPENEXR_INCDIR)
OPENEXR_LIBS = -lIlmImf -lHalf
# Flags to enable native support for various video files, using the FFMPEG library.
# ( http://www.ffmpeg.org/ )
FFMPEG_DEFINE = -Dcimg_use_ffmpeg -D__STDC_CONSTANT_MACROS
FFMPEG_INCDIR = -I/usr/include/libavcodec -I/usr/include/libavformat -I/usr/include/libswscale -I/usr/include/ffmpeg
FFMPEG_CFLAGS = $(FFMPEG_DEFINE) $(FFMPEG_INCDIR)
FFMPEG_LIBS = -lavcodec -lavformat -lswscale
# Flags to enable native support for compressed .cimgz files, using the Zlib library.
# ( http://www.zlib.net/ )
ZLIB_DEFINE = -Dcimg_use_zlib
ZLIB_INCDIR = $(shell pkg-config --cflags zlib || echo -I$(USR)/$(INCLUDE))
ZLIB_CFLAGS = $(ZLIB_DEFINE) $(ZLIB_INCDIR)
ZLIB_LIBS = $(shell pkg-config --libs zlib || echo -lz)
# Flags to enable native support for downloading files from the network.
# ( http://curl.haxx.se/libcurl/ )
CURL_DEFINE = -Dcimg_use_curl
CURL_INCDIR =
CURL_CFLAGS = $(CURL_DEFINE)
CURL_LIBS = -lcurl
# Flags to enable native support of most classical image file formats, using the Magick++ library.
# ( http://www.imagemagick.org/Magick++/ )
MAGICK_DEFINE = -Dcimg_use_magick
MAGICK_INCDIR = $(shell pkg-config --cflags GraphicsMagick++ || echo -I$(USR)/$(INCLUDE)/GraphicsMagick)
MAGICK_CFLAGS = $(MAGICK_DEFINE) $(MAGICK_INCDIR)
MAGICK_LIBS = $(shell pkg-config --libs GraphicsMagick++ || echo -lGraphicsMagick++)
# Flags to enable faster Discrete Fourier Transform computation, using the FFTW3 library
# ( http://www.fftw.org/ )
FFTW3_DEFINE = -Dcimg_use_fftw3
FFTW3_INCDIR =
FFTW3_CFLAGS = $(FFTW3_DEFINE) $(FFTW3_INCDIR)
ifeq ($(OSTYPE),msys)
FFTW3_LIBS = -lfftw3-3
else
FFTW3_LIBS = -lfftw3 -lfftw3_threads
endif
# Flags to enable the use of LAPACK routines for matrix computation
# ( http://www.netlib.org/lapack/ )
LAPACK_DEFINE = -Dcimg_use_lapack
LAPACK_INCDIR =
LAPACK_CFLAGS = $(LAPACK_DEFINE) $(LAPACK_INCDIR)
LAPACK_LIBS = -lblas -llapack
# Flags to enable the use of the Board library
# ( https://github.com/c-koi/libboard )
BOARD_DEFINE = -Dcimg_use_board
BOARD_INCDIR = -I/usr/include/board
BOARD_CFLAGS = $(BOARD_DEFINE) $(BOARD_INCDIR)
BOARD_LIBS = -lboard
# Flags to compile GIMP plug-ins.
ifeq ($(MSYSTEM),MINGW32)
GIMP_CFLAGS = -mwindows
endif
#-------------------------
# Define Makefile entries
#-------------------------
.cpp:
@echo
@echo "** Compiling '$* ($(SVERSION))' with '$(CXXVER)'"
@echo
$(CXX) -o $(EXE_PRE)$*$(EXE_EXT) $< $(CFLAGS) $(CONF_CFLAGS) $(LIBS) $(CONF_LIBS)
ifeq ($(STRIP_EXE),true)
strip $(EXE_PRE)$*$(EXE_EXT)
endif
menu:
@echo
@echo "CImg Library $(SVERSION) : Examples"
@echo "-----------------------------"
@echo " > linux : Linux/BSD target, X11 display, optimizations disabled."
@echo " > dlinux : Linux/BSD target, X11 display, debug mode."
@echo " > olinux : Linux/BSD target, X11 display, optimizations enabled."
@echo " > mlinux : Linus/BSD target, no display, minimal features, optimizations enabled."
@echo " > Mlinux : Linux/BSD target, X11 display, maximal features, optimizations enabled."
@echo
@echo " > macos : MacOS target, X11 display, optimizations disabled."
@echo " > dmacos : MacOS target, X11 display, debug mode."
@echo " > omacos : MacOS target, X11 display, optimizations enabled."
@echo " > mmacos : MacOS target, no display, minimal features, optimizations enabled."
@echo " > Mmacos : MacOS target, X11 display, maximal features, optimizations enabled."
@echo
@echo " > windows : Windows target, GDI32 display, optimizations disabled."
@echo " > dwindows : Windows target, GDI32 display, debug mode."
@echo " > owindows : Windows target, GDI32 display, optimizations enabled."
@echo " > mwindows : Windows target, no display, minimal features, optimizations enabled."
@echo " > Mwindows : Windows target, GDI32 display, maximal features, optimizations enabled."
@echo
@echo " > clean : Clean generated files."
@echo
@echo "Choose your option :"
@read CHOICE; echo; $(MAKE) $$CHOICE; echo; echo "> Next time, you can bypass the menu by typing directly 'make $$CHOICE'"; echo;
all: $(FILES)
clean:
rm -rf *.exe *.o *.obj *~ \#* $(FILES) $(EXTRA_FILES)
ifneq ($(EXE_PRE),)
rm -f $(EXE_PRE)*
endif
# Custom user-defined target
custom:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(VT100_CFLAGS) \
$(TIFF_CFLAGS) \
$(HEIF_CFLAGS) \
$(X11_CFLAGS) \
$(LAPACK_CFLAGS) \
$(XSHM_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(TIFF_LIBS) \
$(HEIF_LIBS) \
$(LAPACK_LIBS) \
$(XSHM_LIBS)" \
all $(EXTRA_FILES)
# Linux/BSD/Mac OSX targets, with X11 display.
#A target for Travis-CI
travis:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS) \
$(FFTW3_CFLAGS) \
$(PNG_CFLAGS) \
$(JPEG_CFLAGS) \
$(ZLIB_CFLAGS) \
$(CURL_CFLAGS) \
$(XSHM_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(FFTW3_LIBS) \
$(PNG_LIBS) \
$(JPEG_LIBS) \
$(ZLIB_LIBS) \
$(CURL_LIBS) \
$(XSHM_LIBS)" \
all
linux:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS) \
$(XSHM_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(XSHM_LIBS)" \
all
dlinux:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(DEBUG_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS) \
$(XSHM_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(XSHM_LIBS)" \
all
olinux:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(OPT_CFLAGS) \
$(OPENMP_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS) \
$(XSHM_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(XSHM_LIBS)" \
"STRIP_EXE=true" \
all
mlinux:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(NODISPLAY_CFLAGS) \
$(OPT_CFLAGS)" \
"STRIP_EXE=true" \
all
Mlinux:
@$(MAKE) \
"CONF_CFLAGS = \
$(OPT_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS) \
$(XSHM_CFLAGS) \
$(XRANDR_CFLAGS) \
$(TIFF_CFLAGS) \
$(HEIF_CFLAGS) \
$(OPENEXR_CFLAGS) \
$(PNG_CFLAGS) \
$(JPEG_CFLAGS) \
$(ZLIB_CFLAGS) \
$(CURL_CFLAGS) \
$(OPENCV_CFLAGS) \
$(MAGICK_CFLAGS) \
$(FFTW3_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(XSHM_LIBS) \
$(XRANDR_LIBS) \
$(TIFF_LIBS) -ltiffxx \
$(HEIF_LIBS) \
$(OPENEXR_LIBS) \
$(PNG_LIBS) \
$(JPEG_LIBS) \
$(ZLIB_LIBS) \
$(CURL_LIBS) \
$(OPENCV_LIBS) \
$(MAGICK_LIBS) \
$(FFTW3_LIBS)" \
"STRIP_EXE=true" \
all $(EXTRA_FILES)
# MacOs targets, with X11 display.
macos:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS)" \
all
dmacos:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(DEBUG_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS)" \
all
omacos:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(OPT_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS)" \
all
mmacos:
@$(MAKE) \
"CONF_CFLAGS = \
$(ANSI_CFLAGS) \
$(NODISPLAY_CFLAGS) \
$(OPT_CFLAGS)" \
all
Mmacos:
@$(MAKE) \
"CONF_CFLAGS = \
$(OPT_CFLAGS) \
$(VT100_CFLAGS) \
$(X11_CFLAGS) \
$(TIFF_CFLAGS) \
$(HEIF_CFLAGS) \
$(MINC2_CFLAGS) \
$(OPENEXR_CFLAGS) \
$(PNG_CFLAGS) \
$(JPEG_CFLAGS) \
$(ZLIB_CFLAGS) \
$(OPENCV_CFLAGS) \
$(MAGICK_CFLAGS) \
$(FFTW3_CFLAGS)" \
"CONF_LIBS = \
$(X11_LIBS) \
$(TIFF_LIBS) \
$(HEIF_LIBS) \
$(MINC2_LIBS) \
$(OPENEXR_LIBS) \
$(PNG_LIBS) \
$(JPEG_LIBS) \
$(ZLIB_LIBS) \
$(OPENCV_LIBS) \
$(MAGICK_LIBS) \
$(FFTW3_LIBS)" \
all $(EXTRA_FILES)
# Windows targets, with GDI32 display.
windows:
@$(MAKE) \
"CONF_CFLAGS = " \
"CONF_LIBS = \
$(GDI32_LIBS)" \
all
dwindows:
@$(MAKE) \
"CONF_CFLAGS = \
$(DEBUG_CFLAGS)" \
"CONF_LIBS = \
$(GDI32_LIBS)" \
all
owindows:
@$(MAKE) \
"CONF_CFLAGS = \
$(OPT_CFLAGS)" \
"CONF_LIBS = \
$(GDI32_LIBS)" \
"STRIP_EXE=true" \
all
mwindows:
@$(MAKE) \
"CONF_CFLAGS = \
$(NODISPLAY_CFLAGS) \
$(OPT_CFLAGS)" \
"STRIP_EXE=true" \
all
Mwindows:
@$(MAKE) \
"CONF_CFLAGS = \
$(OPT_CFLAGS) \
$(TIFF_CFLAGS) \
$(HEIF_CFLAGS) \
$(PNG_CFLAGS) \
$(JPEG_CFLAGS) \
$(ZLIB_CFLAGS) \
$(OPENCV_CFLAGS) \
$(FFTW3_CFLAGS)" \
"CONF_LIBS = \
$(GDI32_LIBS) \
$(TIFF_LIBS) \
$(HEIF_LIBS) \
$(PNG_LIBS) \
$(JPEG_LIBS) \
$(ZLIB_LIBS) \
$(OPENCV_LIBS) \
$(FFTW3_LIBS)" \
"STRIP_EXE=true" \
all $(EXTRA_FILES)
# End of makefile