# 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 | |
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) | |