blob: 124f612bbe72685f3d2912288b8a4774316d6927 [file] [log] [blame]
# 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)