1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
Includes the OpenEXR3 patch as well as support for building with USE=-X,
as the relevant lines are deeply embedded in the automagic stuff.
--- a/src/Makefile
+++ b/src/Makefile
@@ -226,8 +226,10 @@
# Enable parallelization in CImg, using OpenMP.
# (http://www.openmp.org/)
+ifeq ($(GMIC_USE_OPENMP),yes)
OPENMP_CFLAGS = -fopenmp -Dcimg_use_openmp
OPENMP_LIBS = -lgomp
+endif
# Enable software debugging.
# (Use address sanitizer and thus slows down the code)
@@ -249,9 +251,13 @@
# Enable image display, using X11 (Unix).
# (Keep /usr/ dirname here since X11 is located in /usr/ on Mac too)
ifneq ($(OS),Darwin)
+ifeq ($(GMIC_USE_X11),yes)
X11_CFLAGS = -Dcimg_display=1 $(shell pkg-config --cflags x11 || echo -I/usr/X11R6/include) #-Dcimg_use_xrandr
X11_LIBS = $(shell pkg-config --libs x11 || echo -L/usr/X11R6/lib -lX11) -lpthread # $(shell pkg-config --libs xrandr || echo -lXrandr)
else
+X11_CFLAGS = -Dcimg_display=0
+endif
+else
ifeq (,$(wildcard /usr/X11))
X11_CFLAGS = -Dcimg_display=0 #-Dcimg_use_xrandr
X11_LIBS = -lpthread # $(shell pkg-config --libs xrandr || echo -lXrandr)
@@ -263,8 +269,10 @@
# Enable faster X11 display, using XShm extension.
# (ftp://www.x.org/pub/X11R7.7/doc/man/man3/XShm.3.xhtml)
+ifeq ($(GMIC_USE_XSHM),yes)
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
+endif
# Enable image display, using GDI32 (Windows).
GDI32_CFLAGS = -Dcimg_display=2
@@ -273,8 +281,10 @@
# Enable native support of PNG image files, using the PNG library.
# (http://www.libpng.org/pub/png/libpng.html)
ifneq ($(OS),Darwin)
+ifeq ($(GMIC_USE_PNG),yes)
PNG_CFLAGS = -Dcimg_use_png $(shell pkg-config --cflags libpng)
PNG_LIBS = $(shell pkg-config --libs libpng || echo -lpng -lz)
+endif
else
ifeq (,$(wildcard /tmp/skl))
PNG_CFLAGS = -Dcimg_use_png $(shell pkg-config --cflags libpng)
@@ -287,56 +297,76 @@
# Enable native support of JPEG image files, using the JPEG library.
# (http://libjpeg.sourceforge.net/)
+ifeq ($(GMIC_USE_JPEG),yes)
JPEG_CFLAGS = -Dcimg_use_jpeg $(shell pkg-config --cflags libjpeg)
JPEG_LIBS = $(shell pkg-config --libs libjpeg || echo -ljpeg)
+endif
# Enable native support of TIFF image files, using the TIFF library.
# (http://www.libtiff.org/)
+ifeq ($(GMIC_USE_TIFF),yes)
TIFF_CFLAGS = -Dcimg_use_tiff $(shell pkg-config --cflags libtiff-4)
TIFF_LIBS = $(shell pkg-config --libs libtiff-4 || echo -ltiff)
+endif
# Enable native support for loading HEIC/AVIF image files, using the libheif library.
# ( https://github.com/strukturag/libheif )
+ifeq ($(GMIC_USE_HEIF),yes)
HEIF_CFLAGS = -Dcimg_use_heif
HEIF_LIBS = -lheif
+endif
# Enable native support of MINC2 image files, using the MINC2 library.
# ( http://en.wikibooks.org/wiki/MINC/Reference/MINC2.0_Users_Guide )
+ifeq ($(GMIC_USE_MINC2),yes)
MINC2_CFLAGS = -Dcimg_use_minc2 -I${HOME}/local/include
MINC2_LIBS = -lminc_io -lvolume_io2 -lminc2 -lnetcdf -lhdf5 -lz -L${HOME}/local/lib
+endif
# Enable native support for downloading files from the network.
# ( http://curl.haxx.se/libcurl/ )
+ifeq ($(GMIC_USE_CURL),yes)
CURL_CFLAGS = -Dcimg_use_curl $(shell pkg-config --cflags libcurl)
CURL_LIBS = $(shell pkg-config --libs libcurl || echo -lcurl)
+endif
# Enable native support of webcams and video streaming, using the OpenCV library.
# (https://opencv.org/)
+ifeq ($(GMIC_USE_OPENCV),yes)
OPENCV_CFLAGS = -Dcimg_use_opencv $(shell pkg-config opencv --cflags) -I/usr/include/opencv -I/usr/include/opencv4
OPENCV_LIBS = $(shell pkg-config opencv --libs || echo -lopencv_core -lopencv_highgui -lopencv_videoio)
+endif
# Enable support of most classical image file formats, using the GraphicsMagick++ library.
# (http://www.graphicsmagick.org/Magick++/)
+ifeq ($(GMIC_USE_GRAPHICSMAGICK),yes)
MAGICK_CFLAGS = -Dcimg_use_magick $(shell pkg-config --cflags GraphicsMagick++ || echo -I$(USR)/$(INCLUDE)/GraphicsMagick)
MAGICK_LIBS = $(shell pkg-config --libs GraphicsMagick++ || echo -lGraphicsMagick++)
+endif
# Enable native support of EXR image files, using the OpenEXR library.
# (http://www.openexr.com/)
-OPENEXR_CFLAGS = -Dcimg_use_openexr $(shell pkg-config --cflags OpenEXR || echo -I$(USR)/$(INCLUDE)/OpenEXR)
-OPENEXR_LIBS = $(shell pkg-config --libs OpenEXR || echo -lIlmImf -lHalf)
+ifeq ($(GMIC_USE_EXR),yes)
+OPENEXR_CFLAGS = -Dcimg_use_openexr $(shell pkg-config --cflags OpenEXR || echo -I$(USR)/$(INCLUDE)/OpenEXR -I$(USR)/$(INCLUDE)/Imath)
+OPENEXR_LIBS = $(shell pkg-config --libs OpenEXR || echo -lOpenEXR -lImath)
+endif
# Enable Fast Fourier Transforms, using the FFTW3 library.
# (http://www.fftw.org/)
+ifeq ($(GMIC_USE_FFTW),yes)
FFTW_CFLAGS = -Dcimg_use_fftw3 $(shell pkg-config --cflags fftw3)
FFTW_LIBS = $(shell pkg-config --libs fftw3 || echo -lfftw3)
ifneq ($(OS),Windows)
FFTW_LIBS += -lfftw3_threads
endif
+endif
# Enable native support of the BOARD library.
# (https://github.com/c-koi/libboard)
+ifeq ($(GMIC_USE_BOARD),yes)
BOARD_CFLAGS = -Dcimg_use_board
BOARD_LIBS = -lboard
+endif
GMIC_STD_CFLAGS = $(MANDATORY_CFLAGS) $(ABORT_CFLAGS) $(PARALLEL_CFLAGS) $(FFTW_CFLAGS) $(CURL_CFLAGS) $(PNG_CFLAGS) $(JPEG_CFLAGS) $(TIFF_CFLAGS)
GMIC_STD_LIBS = $(MANDATORY_LIBS) $(PARALLEL_LIBS) $(FFTW_LIBS) $(CURL_LIBS) $(PNG_LIBS) $(JPEG_LIBS) $(TIFF_LIBS)
|