Files
MINGW-packages/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch

406 lines
11 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--- FreeImage/Makefile.fip.orig 2014-04-16 18:58:24.825800000 +0400
+++ FreeImage/Makefile.fip 2014-04-16 19:12:58.956000000 +0400
@@ -1,81 +1,97 @@
-# Linux makefile for FreeImagePlus
+# Mingw makefile for FreeImagePlus
# This file can be generated by ./genfipsrclist.sh
include fipMakefile.srcs
-# General configuration variables:
-DESTDIR ?= /
-INCDIR ?= $(DESTDIR)/usr/include
-INSTALLDIR ?= $(DESTDIR)/usr/lib
-
-# Converts cr/lf to just lf
-DOS2UNIX = dos2unix
-
-LIBRARIES = -lstdc++
-
-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
+CC = $(MINGW_TARGET)-gcc
+CXX = $(MINGW_TARGET)-g++
+LD = $(MINGW_TARGET)-g++
+AR = ar
+DLLTOOL = dlltool
+RC = windres
+PKGCONFIG = pkg-config
+
+CP = cp
+MD = mkdir
+RM = rm
+
+# General configuration variables.
+DESTDIR ?= $(SystemRoot)
+INSTALLDIR ?= $(DESTDIR)/system32
+DISTDIR ?= Dist
+SRCDIR ?= Wrapper/FreeImagePlus/
+HEADER = FreeImagePlus.h
+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc
+
+# Uncomment this variable to make a static library. This may
+# also be specified as an environment variable and can hold
+# any of STATIC and SHARED and must be in uppercase letters.
+# The FreeImage library type defaults to SHARED.
+FREEIMAGE_LIBRARY_TYPE ?= SHARED
+
+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
+WIN32_SHARED_FLAGS = -DFIP_EXPORTS
+
+# Converts cr/lf to just lf
+DOS2UNIX = dos2unix
+
+LIBRARIES = -lstdc++ -lfreeimage-$(VER_MAJOR).$(VER_MINOR) -L.
+MODULES = $(SRCS:.c=.o)
+MODULES := $(MODULES:.cpp=.o)
+RESOURCE = $(RCFILE:.rc=.coff)
+CFLAGS += -ISource $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
+CXXFLAGS += -ISource $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
+LDFLAGS += -LDist -lfreeimage -lgdi32
-TARGET = freeimageplus
+TARGET = freeimageplus
STATICLIB = lib$(TARGET).a
-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
-LIBNAME = lib$(TARGET).so
-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
-HEADER = Source/FreeImage.h
-HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
+IMPORTLIB = lib$(TARGET).dll.a
+EXPORTLIB = $(TARGET).exp
+SOLIBNAME = $(SHAREDLIB)
+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
-default: all
-
-all: dist
+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
-dist: FreeImage
- cp *.a Dist
- cp *.so Dist
- cp Source/FreeImage.h Dist
- cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist
+default: all
-dos2unix:
- @$(DOS2UNIX) $(SRCS)
+all: $(TARGETLIB) $(TARGETDIST)
-FreeImage: $(STATICLIB) $(SHAREDLIB)
+rebuild: clean all
-.c.o:
+%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
-.cpp.o:
+%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
+%.coff: %.rc
+ $(RC) $(RCFLAGS) -o $@ $<
+
+$(DISTDIR)/%: %
+ $(CP) $< $@
+
+$(DISTDIR)/%: $(SRCDIR)/%
+ $(CP) $< $@
+
$(STATICLIB): $(MODULES)
- $(AR) r $@ $(MODULES)
+ $(AR) rs $@ $(MODULES)
+
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
+
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
-$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+$(DISTDIR):
+ $(MD) $(DISTDIR)
-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)
+$(TARGETDIST): $(DISTDIR)
clean:
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
--- FreeImage/Makefile.gnu 2014-01-16 00:27:04.000000000 +0100
+++ FreeImage-new/Makefile.gnu 2014-01-16 00:49:42.335523267 +0100
@@ -11,7 +11,8 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
# Converts cr/lf to just lf
DOS2UNIX = dos2unix
-LIBRARIES = -lstdc++
+INCLUDE += $(shell pkg-config --cflags libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp)
+LIBRARIES = -lstdc++ $(shell pkg-config --libs libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -lwebp
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
--- FreeImage/Makefile.mingw.orig 2014-03-15 22:52:28.000000000 +0400
+++ FreeImage/Makefile.mingw 2014-04-16 19:12:32.030400000 +0400
@@ -1,136 +1,94 @@
-# MinGW makefile for FreeImage
-
-# This file can be generated by ./gensrclist.sh
-include Makefile.srcs
-
-# General configuration variables.
-DESTDIR ?= $(SystemRoot)
-INSTALLDIR ?= $(DESTDIR)/system32
-DISTDIR ?= Dist
-SRCDIR ?= Source
-HEADER = FreeImage.h
-RCFILE = FreeImage.rc
-
-# Uncomment this variable to make a static library. This may
-# also be specified as an environment variable and can hold
-# any of STATIC and SHARED and must be in uppercase letters.
-# Default: SHARED
-#FREEIMAGE_LIBRARY_TYPE = STATIC
-
-# Redefine the compiler (CC defaults to ´cc´ for MinGW's make,
-# however there's only ´gcc´ available with MinGW).
-CC = gcc
-
-# Redefine the linker (we use ´g++´ for linking, since MinGW's
-# command ´ld´ comes with wrong (Linux) standard library search
-# paths).
-LD = g++
-
-#Define the ´dlltool´ command.
-DLLTOOL = dlltool
-
-#Define the resource compiler.
-RC = windres
-
-# Define the ´copy´ command.
-CP = cp
-
-# Define the ´mkdir´ command.
-MD = mkdir
-
-# Define the ´remove´ command.
-RM = rm
-
-# Define additional libraries needed.
-# libstdc++ is included by default with MinGW, however for
-# WIN32 based builds, LibRawLite needs the winsock libraries.
-LIBRARIES = -lws2_32
-
-# Define some additional symboles needed for WIN32 based builds.
-WIN32_CFLAGS = -DWINVER=0x0500 $(LIB_TYPE_FLAGS) -DOPJ_STATIC
-WIN32_CXXFLAGS = $(WIN32_CFLAGS) -DLIBRAW_NODLL
-
-# Workaround for LibRawLite, which does not include C++ header
-# file stdexcept, which is casually included with MSVC but not
-# with MinGW. This can be removed after LibRawLite got control
-# over its includes again.
-WIN32_CXXFLAGS += -include stdexcept
-
-# Define DLL image header information flags for the linker.
-WIN32_LDFLAGS = -Wl,--subsystem,windows:5.0,--major-os-version,5
-
-WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
-WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
-
-MODULES = $(SRCS:.c=.o)
-MODULES := $(MODULES:.cpp=.o)
-RESOURCE = $(RCFILE:.rc=.coff)
-CFLAGS ?= -O3 -fexceptions -DNDEBUG -DDISABLE_PERF_MEASUREMENT $(WIN32_CFLAGS)
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fexceptions -Wno-ctor-dtor-privacy -DNDEBUG $(WIN32_CXXFLAGS)
-CXXFLAGS += $(INCLUDE)
-RCFLAGS ?= -DNDEBUG
-LDFLAGS ?= -s -shared -static -Wl,-soname,$(SOLIBNAME) $(WIN32_LDFLAGS)
-DLLTOOLFLAGS ?= --add-stdcall-underscore
-
-TARGET = FreeImage
-STATICLIB = lib$(TARGET).a
-SHAREDLIB = $(TARGET).dll
-IMPORTLIB = $(TARGET).lib
-EXPORTLIB = $(TARGET).exp
-SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR)
-
-DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
-DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
-
-# The FreeImage library type defaults to SHARED.
-FREEIMAGE_LIBRARY_TYPE ?= SHARED
-
-TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
-TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
-LIB_TYPE_FLAGS = $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
-
-default: all
-
-all: mkdist
-
-rebuild: clean all
-
-mkdist: FreeImage $(TARGETDIST)
-
-FreeImage: $(TARGETLIB)
-
-%.o: %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
-%.o: %.cpp
- $(CXX) $(CXXFLAGS) -c $< -o $@
-
-%.coff: %.rc
- $(RC) $(RCFLAGS) -o $@ $<
-
-$(DISTDIR)/%: %
- $(CP) $< $@
-
-$(DISTDIR)/%: $(SRCDIR)/%
- $(CP) $< $@
-
-$(STATICLIB): $(MODULES)
- $(AR) rs $@ $(MODULES)
-
-$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
- $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
-
-$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
- $(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES)
-
-$(DISTDIR):
- $(MD) $(DISTDIR)
-
-$(TARGETDIST): $(DISTDIR)
-
-install:
- $(CP) $(SHAREDLIB) $(INSTALLDIR)
-
-clean:
- $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
+# MinGW makefile for FreeImage
+
+# This file can be generated by ./gensrclist.sh
+include Makefile.srcs
+
+CC = gcc
+CXX = g++
+LD = g++
+AR = ar
+DLLTOOL = dlltool
+RC = windres
+PKGCONFIG = pkg-config
+
+CP = cp
+MD = mkdir
+RM = rm
+
+# General configuration variables.
+DESTDIR ?= $(SystemRoot)
+INSTALLDIR ?= $(DESTDIR)/system32
+DISTDIR ?= Dist
+SRCDIR ?= Source
+HEADER = FreeImage.h
+RCFILE = FreeImage.rc
+
+# Uncomment this variable to make a static library. This may
+# also be specified as an environment variable and can hold
+# any of STATIC and SHARED and must be in uppercase letters.
+# The FreeImage library type defaults to SHARED.
+FREEIMAGE_LIBRARY_TYPE ?= SHARED
+
+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
+WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
+
+MODULES = $(SRCS:.c=.o)
+MODULES := $(MODULES:.cpp=.o)
+RESOURCE = $(RCFILE:.rc=.coff)
+CFLAGS += $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
+CFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp)
+CXXFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
+CXXFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp)
+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
+LDFLAGS += $(shell $(PKGCONFIG) --libs libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg
+
+TARGET = freeimage
+STATICLIB = lib$(TARGET).a
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
+IMPORTLIB = lib$(TARGET).dll.a
+EXPORTLIB = $(TARGET).exp
+SOLIBNAME = $(SHAREDLIB)
+
+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
+
+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
+
+default: all
+
+all: $(TARGETLIB) $(TARGETDIST)
+
+rebuild: clean all
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c $< -o $@
+
+%.o: %.cpp
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+%.coff: %.rc
+ $(RC) $(RCFLAGS) -o $@ $<
+
+$(DISTDIR)/%: %
+ $(CP) $< $@
+
+$(DISTDIR)/%: $(SRCDIR)/%
+ $(CP) $< $@
+
+$(STATICLIB): $(MODULES)
+ $(AR) rs $@ $(MODULES)
+
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
+
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
+
+$(DISTDIR):
+ $(MD) $(DISTDIR)
+
+$(TARGETDIST): $(DISTDIR)
+
+clean:
+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)