# Linux makefile for FreeImage # This file can be generated by ./gensrclist.sh include Makefile.srcs # General configuration variables: CC ?= gcc CXX ?= g++ AR = ar INCDIR = ${PREFIX}/include INSTALLDIR = ${PREFIX}/lib # Converts cr/lf to just lf DOS2UNIX = dos2unix COMPILERFLAGS := ${CFLAGS} LIBRARIES = -lstdc++ MODULES = $(SRCS:.c=.o) MODULES := $(MODULES:.cpp=.o) CFLAGS = $(COMPILERFLAGS) -fPIC $(INCLUDE) CXXFLAGS = $(COMPILERFLAGS) -fPIC -Wno-ctor-dtor-privacy $(INCLUDE) TARGET = freeimage STATICLIB = lib$(TARGET).a SHAREDLIB = lib$(TARGET).so.$(VER_MAJOR) LIBNAME = lib$(TARGET).so VERLIBNAME = $(LIBNAME).$(VER_MAJOR) HEADER = Source/FreeImage.h default: all all: dist dist: FreeImage cp *.a Dist cp *.so.* Dist cp Source/FreeImage.h 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 -Wl,-soname,$(VERLIBNAME) -o $@ $(MODULES) $(LIBRARIES) install: install -m 644 -o root -g wheel $(HEADER) $(INCDIR) install -m 644 -o root -g wheel $(STATICLIB) $(INSTALLDIR) install -m 755 -o root -g wheel $(SHAREDLIB) $(INSTALLDIR) ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME) ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME) clean: rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)