From: Ghislain Antony Vaillant <ghisvail@gmail.com>
Date: Thu, 5 Nov 2015 22:47:13 +0000
Subject: Use system dependencies.

This commit patches the build system to use the packaged dependencies
for building FreeImage and FreeImagePlus. This patch also modifies some
targets in the corresponding Makefiles to help with the package build process.

Origin: Debian
[ismael@iodev.co.uk: Merged with PKG_CONFIG var patch]
---
 Makefile.fip | 45 +++++++++++++++++----------------------------
 Makefile.gnu | 41 ++++++++++++++++++++---------------------
 2 files changed, 37 insertions(+), 49 deletions(-)

diff --git a/Makefile.fip b/Makefile.fip
index b59c419..98733cf 100644
--- a/Makefile.fip
+++ b/Makefile.fip
@@ -11,27 +11,17 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
 # Converts cr/lf to just lf
 DOS2UNIX = dos2unix
 
-LIBRARIES = -lstdc++
+PKG_CONFIG ?= pkg-config
+LIBRARIES = -lstdc++ -ljxrglue $(shell ${PKG_CONFIG} --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm
 
 MODULES = $(SRCS:.c=.o)
 MODULES := $(MODULES:.cpp=.o)
-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
-# OpenJPEG
-CFLAGS += -DOPJ_STATIC
-# LibRaw
-CFLAGS += -DNO_LCMS
-# LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-# LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
-
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
-	CFLAGS += -fPIC
-	CXXFLAGS += -fPIC
-endif
+CFLAGS ?= -O3 -fPIC
+override CFLAGS += -fexceptions -fvisibility=hidden
+override CFLAGS += $(INCLUDE) -IDist
+CXXFLAGS ?= -O3 -fPIC
+override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+override CXXFLAGS += $(INCLUDE) -IDist
 
 TARGET  = freeimageplus
 STATICLIB = lib$(TARGET).a
@@ -48,31 +37,31 @@ all: dist
 
 dist: FreeImage
 	mkdir -p Dist
-	cp *.a Dist/
-	cp *.so Dist/
-	cp Source/FreeImage.h Dist/
-	cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/
+	cp $(STATICLIB) Dist/
+	cp $(SHAREDLIB) Dist/
+	cp $(HEADERFIP) Dist/
+	ln -sf $(SHAREDLIB) Dist/$(VERLIBNAME)
+	ln -sf $(VERLIBNAME) Dist/$(LIBNAME)
 
 dos2unix:
-	@$(DOS2UNIX) $(SRCS)
+	@$(DOS2UNIX) $(SRCS) $(HEADERFIP)
 
 FreeImage: $(STATICLIB) $(SHAREDLIB)
 
 .c.o:
-	$(CC) $(CFLAGS) -c $< -o $@
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
 
 .cpp.o:
-	$(CXX) $(CXXFLAGS) -c $< -o $@
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
 
 $(STATICLIB): $(MODULES)
 	$(AR) r $@ $(MODULES)
 
 $(SHAREDLIB): $(MODULES)
-	$(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+	$(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
 
 install:
 	install -d $(INCDIR) $(INSTALLDIR)
-	install -m 644 -o root -g root $(HEADER) $(INCDIR)
 	install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
 	install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
 	install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
@@ -80,5 +69,5 @@ install:
 	ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)	
 
 clean:
-	rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+	rm -f Dist/lib$(TARGET)* Dist/FreeImagePlus.h $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
 
diff --git a/Makefile.gnu b/Makefile.gnu
index 92f6358..4e61efa 100644
--- a/Makefile.gnu
+++ b/Makefile.gnu
@@ -11,27 +11,25 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
 # Converts cr/lf to just lf
 DOS2UNIX = dos2unix
 
-LIBRARIES = -lstdc++
+PKG_CONFIG ?= pkg-config
+LIBRARIES := -lstdc++ -ljxrglue $(shell ${PKG_CONFIG} --libs libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib) -lm
 
 MODULES = $(SRCS:.c=.o)
 MODULES := $(MODULES:.cpp=.o)
-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
+CFLAGS ?= -O3 -fPIC
+override CFLAGS += -fexceptions -fvisibility=hidden
 # OpenJPEG
-CFLAGS += -DOPJ_STATIC
+override CFLAGS += -DOPJ_STATIC
 # LibRaw
-CFLAGS += -DNO_LCMS
+override CFLAGS += -DNO_LCMS
 # LibJXR
-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+override CFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell ${PKG_CONFIG} --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib)
+CXXFLAGS ?= -O3 -fPIC
+override CXXFLAGS += -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
 # LibJXR
-CXXFLAGS += -D__ANSI__
-CXXFLAGS += $(INCLUDE)
-
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
-	CFLAGS += -fPIC
-	CXXFLAGS += -fPIC
-endif
+override CXXFLAGS += -D__ANSI__
+override CXXFLAGS += $(INCLUDE) -I/usr/include/jxrlib $(shell ${PKG_CONFIG} --cflags libjpeg libopenjp2 libpng libraw libtiff-4 libwebpmux OpenEXR zlib)
 
 TARGET  = freeimage
 STATICLIB = lib$(TARGET).a
@@ -48,9 +45,11 @@ all: dist
 
 dist: FreeImage
 	mkdir -p Dist
-	cp *.a Dist/
-	cp *.so Dist/
-	cp Source/FreeImage.h Dist/
+	cp $(STATICLIB) Dist/
+	cp $(SHAREDLIB) Dist/
+	cp $(HEADER) Dist/
+	ln -sf $(SHAREDLIB) Dist/$(VERLIBNAME)
+	ln -sf $(VERLIBNAME) Dist/$(LIBNAME)
 
 dos2unix:
 	@$(DOS2UNIX) $(SRCS) $(INCLS)
@@ -58,16 +57,16 @@ dos2unix:
 FreeImage: $(STATICLIB) $(SHAREDLIB)
 
 .c.o:
-	$(CC) $(CFLAGS) -c $< -o $@
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
 
 .cpp.o:
-	$(CXX) $(CXXFLAGS) -c $< -o $@
+	$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
 
 $(STATICLIB): $(MODULES)
 	$(AR) r $@ $(MODULES)
 
 $(SHAREDLIB): $(MODULES)
-	$(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+	$(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
 
 install:
 	install -d $(INCDIR) $(INSTALLDIR)
@@ -79,5 +78,5 @@ install:
 #	ldconfig
 
 clean:
-	rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+	rm -f Dist/lib$(TARGET)* Dist/FreeImage.h $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
 
