# Linux 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 | |
LIBRARIES = -lstdc++ | |
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 | |
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 | |
default: all | |
all: dist | |
dist: FreeImage | |
cp *.a Dist | |
cp *.so Dist | |
cp Source/FreeImage.h Dist | |
cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist | |
dos2unix: | |
@$(DOS2UNIX) $(SRCS) | |
FreeImage: $(STATICLIB) $(SHAREDLIB) | |
.c.o: | |
$(CC) $(CFLAGS) -c $< -o $@ | |
.cpp.o: | |
$(CXX) $(CXXFLAGS) -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 $(HEADERFIP) $(INCDIR) | |
install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR) | |
install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR) | |
clean: | |
rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME) | |