diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
--- FreeImage/Makefile.fip 2014-01-16 00:39:40.612051380 +0100
+++ FreeImage-new/Makefile.fip 2014-01-16 00:40:27.273664018 +0100
@@ -1,74 +1,91 @@
-# 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
-
-INCLUDE += -ISource
-LIBRARIES = -lstdc++ -lfreeimage-$(VER_MAJOR).$(VER_MINOR) -L.
-
-MODULES = $(SRCS:.c=.o)
-MODULES := $(MODULES:.cpp=.o)
-CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -DNO_LCMS
-CFLAGS += $(INCLUDE)
-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
-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 = $(MINGW_TARGET)-ar
+DLLTOOL = $(MINGW_TARGET)-dlltool
+RC = $(MINGW_TARGET)-windres
+PKGCONFIG = $(MINGW_TARGET)-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
+
+MODULES = $(SRCS:.cpp=.o)
+RESOURCE = $(RCFILE:.rc=.coff)
+CFLAGS += -ISource $(INCLUDE) $(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 = $(TARGET)-$(VER_MAJOR).dll
+IMPORTLIB = $(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)
-$(SHAREDLIB): $(MODULES)
- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
-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)
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
-clean:
- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+$(DISTDIR):
+ $(MD) $(DISTDIR)
+$(TARGETDIST): $(DISTDIR)
+
+clean:
+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
diff -rupN FreeImage/Makefile.mingw FreeImage-new/Makefile.mingw
--- FreeImage/Makefile.mingw 2014-01-16 00:27:04.041527817 +0100
+++ FreeImage-new/Makefile.mingw 2014-01-16 00:40:27.274664032 +0100
@@ -3,6 +3,18 @@
# This file can be generated by ./gensrclist.sh
include Makefile.srcs
+CC = $(MINGW_TARGET)-gcc
+CXX = $(MINGW_TARGET)-g++
+LD = $(MINGW_TARGET)-g++
+AR = $(MINGW_TARGET)-ar
+DLLTOOL = $(MINGW_TARGET)-dlltool
+RC = $(MINGW_TARGET)-windres
+PKGCONFIG = $(MINGW_TARGET)-pkg-config
+
+CP = cp
+MD = mkdir
+RM = rm
+
# General configuration variables.
DESTDIR ?= $(SystemRoot)
INSTALLDIR ?= $(DESTDIR)/system32
@@ -14,50 +26,8 @@ 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 = -lwsock32 -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
+# The FreeImage library type defaults to SHARED.
+FREEIMAGE_LIBRARY_TYPE ?= SHARED
WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
@@ -65,41 +35,32 @@ WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
MODULES = $(SRCS:.c=.o)
MODULES := $(MODULES:.cpp=.o)
RESOURCE = $(RCFILE:.rc=.coff)
-CFLAGS ?= -O3 -fexceptions -DNDEBUG $(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
+CFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
+CFLAGS += $(shell $(PKGCONFIG) --cflags libopenjpeg OpenEXR libpng libraw zlib libtiff-4)
+CXXFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
+CXXFLAGS += $(shell $(PKGCONFIG) --cflags libopenjpeg OpenEXR libpng libraw zlib libtiff-4)
+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
+LDFLAGS += $(shell $(PKGCONFIG) --libs libopenjpeg OpenEXR libpng libraw zlib libtiff-4) -ljpeg
-TARGET = FreeImage
+TARGET = freeimage
STATICLIB = lib$(TARGET).a
-SHAREDLIB = $(TARGET).dll
-IMPORTLIB = $(TARGET).lib
+SHAREDLIB = $(TARGET)-$(VER_MAJOR).dll
+IMPORTLIB = $(TARGET).dll.a
EXPORTLIB = $(TARGET).exp
-SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR)
+SOLIBNAME = $(SHAREDLIB)
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
+all: $(TARGETLIB) $(TARGETDIST)
rebuild: clean all
-mkdist: FreeImage $(TARGETDIST)
-
-FreeImage: $(TARGETLIB)
-
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
@@ -122,15 +83,12 @@ $(IMPORTLIB) $(EXPORTLIB): $(MODULES)
$(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
- $(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES)
+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
$(DISTDIR):
$(MD) $(DISTDIR)
$(TARGETDIST): $(DISTDIR)
-install:
- $(CP) $(SHAREDLIB) $(INSTALLDIR)
-
clean:
$(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)