--- a/src/Makefile +++ b/src/Makefile @@ -230,6 +230,7 @@ # Enable parallelization in CImg, using OpenMP. # (http://www.openmp.org/) +ifeq ($(GMIC_USE_OPENMP),yes) ifdef IS_CLANG OPENMP_CFLAGS = -I/usr/lib/gcc/x86_64-linux-gnu/9/include -Dcimg_use_openmp -fopenmp=libomp OPENMP_LIBS = @@ -237,6 +238,7 @@ OPENMP_CFLAGS = -fopenmp -Dcimg_use_openmp OPENMP_LIBS = -lgomp endif +endif # Enable software debugging. # (Use address sanitizer and thus slows down the code) @@ -258,9 +260,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) @@ -272,8 +278,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$(PREFIX)/X11R6/lib) -lXext +endif # Enable image display, using GDI32 (Windows). GDI32_CFLAGS = -Dcimg_display=2 @@ -282,8 +290,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) @@ -296,54 +306,74 @@ # 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$(PREFIX)/$(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$(PREFIX)/$(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) FFTW_LIBS += -lfftw3_threads +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)