# Cygwin makefile for FreeImage # This file can be generated by ./gensrclist.sh include Makefile.srcs # General configuration variables: CC = gcc CXX = g++ AR = ar INSTALLDIR = /usr # Converts cr/lf to just lf DOS2UNIX = dos2unix COMPILERFLAGS = -O3 -DNO_LCMS LIBRARIES = -lstdc++ MODULES = $(SRCS:.c=.o) MODULES := $(MODULES:.cpp=.o) CFLAGS = $(COMPILERFLAGS) $(INCLUDE) CXXFLAGS = $(COMPILERFLAGS) -Wno-ctor-dtor-privacy $(INCLUDE) TARGET = freeimage STATICLIB = lib$(TARGET).a SHAREDLIB = cyg$(TARGET)-$(VER_MAJOR).$(VER_MINOR).dll LIBNAME = lib$(TARGET).dll.a HEADER = Source/FreeImage.h default: all all: dist dist: FreeImage mkdir -p Dist cp *.a Dist/ cp *.dll Dist/ cp *.dll.a Dist/ cp $(HEADER) Dist/ dos2unix: @$(DOS2UNIX) $(SRCS) $(INCLS) FreeImage: $(STATICLIB) $(SHAREDLIB) .c.o: $(CC) $(CFLAGS) -c $< -o $@ .cpp.o: $(CXX) $(CXXFLAGS) -c $< -o $@ $(STATICLIB): $(MODULES) $(AR) r $@ $(MODULES) $(SHAREDLIB): $(MODULES) $(CC) -s -shared -o $@ \ -Wl,--out-implib=$(LIBNAME) \ -Wl,--export-all-symbols \ -Wl,--enable-auto-import \ -Wl,--enable-auto-image-base \ -Wl,--whole-archive $(STATICLIB) \ -Wl,--no-whole-archive $(LIBRARIES) install: install -m 644 $(STATICLIB) $(INSTALLDIR)/lib install -m 644 $(LIBNAME) $(INSTALLDIR)/lib install -m 755 $(SHAREDLIB) $(INSTALLDIR)/bin install -m 644 $(HEADER) $(INSTALLDIR)/include clean: rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)