Blob Blame History Raw
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
--- FreeImage/Makefile.fip	2018-08-01 00:43:34.294735504 +0200
+++ FreeImage-new/Makefile.fip	2018-08-01 00:43:34.299735503 +0200
@@ -3,6 +3,14 @@
 # This file can be generated by ./genfipsrclist.sh
 include fipMakefile.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
+
 # General configuration variables:
 DESTDIR ?= /
 INCDIR ?= $(DESTDIR)/usr/include
@@ -24,24 +32,21 @@ override CFLAGS += -DNO_LCMS
 override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
 override CFLAGS += $(INCLUDE)
 CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+override CXXFLAGS += -DFIP_EXPORTS
 # LibJXR
 override CXXFLAGS += -D__ANSI__
 override CXXFLAGS += $(INCLUDE)
 LDFLAGS ?=
-override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
-
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
-	override CFLAGS += -fPIC
-	override CXXFLAGS += -fPIC
-endif
+override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR) -lgdi32
 
 TARGET  = freeimageplus
 STATICLIB = lib$(TARGET).a
-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
-LIBNAME	= lib$(TARGET).so
-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
+SHAREDLIB = $(TARGET)-$(VER_MAJOR).dll
+IMPORTLIB = $(TARGET).dll.a
+EXPORTLIB = $(TARGET).exp
 HEADER = Source/FreeImage.h
 HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h
+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc
 
 
 default: all
@@ -51,7 +56,8 @@ all: dist
 dist: FreeImage
 	mkdir -p Dist
 	cp *.a Dist/
-	cp *.so Dist/
+	cp *.dll Dist/
+	cp *.dll.a Dist/
 	cp Source/FreeImage.h Dist/
 	cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/
 
@@ -66,21 +72,14 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
 .cpp.o:
 	$(CXX) $(CXXFLAGS) -c $< -o $@
 
-$(STATICLIB): $(MODULES)
-	$(AR) r $@ $(MODULES)
+%.coff: %.rc
+	$(RC) $(RCFLAGS) -o $@ $<
 
-$(SHAREDLIB): $(MODULES)
-	$(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)
-	ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-	ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)	
+$(STATICLIB): $(MODULES)
+	$(AR) rs $@ $(MODULES)
 
-clean:
-	rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
+	$(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
 
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
+	$(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
--- FreeImage/Makefile.gnu	2018-08-01 00:43:34.294735504 +0200
+++ FreeImage-new/Makefile.gnu	2018-08-01 00:43:34.299735503 +0200
@@ -3,6 +3,14 @@
 # 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
+
 # General configuration variables:
 DESTDIR ?= /
 INCDIR ?= $(DESTDIR)/usr/include
@@ -16,18 +24,15 @@ LIBRARIES = -lstdc++
 MODULES = $(SRCS:.c=.o)
 MODULES := $(MODULES:.cpp=.o)
 CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
-override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
-override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+override CFLAGS += $(INCLUDE) -D__ANSI__ -DFREEIMAGE_EXPORTS -I/usr/$(MINGW_TARGET)/sys-root/mingw/include/jxrlib $(shell $(PKG_CONFIG) --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell $(PKG_CONFIG) --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
 
-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
-	override CFLAGS += -fPIC
-endif
 
 TARGET  = freeimage
 STATICLIB = lib$(TARGET).a
-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
-LIBNAME	= lib$(TARGET).so
-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
+SHAREDLIB = $(TARGET)-$(VER_MAJOR).dll
+IMPORTLIB = $(TARGET).dll.a
+EXPORTLIB = $(TARGET).exp
 HEADER = Source/FreeImage.h
 
 
@@ -39,7 +44,8 @@ all: dist
 dist: FreeImage
 	mkdir -p Dist
 	cp *.a Dist/
-	cp *.so Dist/
+	cp *.dll Dist/
+	cp *.dll.a Dist/
 	cp Source/FreeImage.h Dist/
 
 dos2unix:
@@ -54,20 +60,10 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
 	$(CXX) $(CFLAGS) -c $< -o $@
 
 $(STATICLIB): $(MODULES)
-	$(AR) r $@ $(MODULES)
-
-$(SHAREDLIB): $(MODULES)
-	$(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 $(STATICLIB) $(INSTALLDIR)
-	install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-	ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
-	ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)	
-#	ldconfig
+	$(AR) rs $@ $(MODULES)
 
-clean:
-	rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
+	$(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
 
+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
+	$(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)