1# -*- Makefile -*- 2# Mac OSX makefile for FreeImage 3 4# This file can be generated by ./gensrclist.sh 5include Makefile.srcs 6 7# Find SDK path via xcode-select, backwards compatible with Xcode vers < 4.5 8MACOSX_SYSROOT = $(shell xcrun --show-sdk-path) 9# Specify deployement target here 10MACOSX_DEPLOYMENT_TARGET = 10.11 11 12# General configuration variables: 13CC_I386 = $(shell xcrun -find clang) 14CC_X86_64 = $(shell xcrun -find clang) 15CPP_I386 = $(shell xcrun -find clang++) 16CPP_X86_64 = $(shell xcrun -find clang++) 17MACOSX_DEPLOY = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) 18COMPILERFLAGS = -Os -fexceptions -fvisibility=hidden -DNO_LCMS -D__ANSI__ 19COMPILERFLAGS_I386 = -arch i386 20COMPILERFLAGS_X86_64 = -arch x86_64 21COMPILERPPFLAGS = -Wno-ctor-dtor-privacy -D__ANSI__ -std=c++11 -stdlib=libc++ -Wc++11-narrowing 22INCLUDE += 23INCLUDE_I386 = -isysroot $(MACOSX_SYSROOT) 24INCLUDE_X86_64 = -isysroot $(MACOSX_SYSROOT) 25CFLAGS_I386 = $(COMPILERFLAGS) $(COMPILERFLAGS_I386) $(INCLUDE) $(INCLUDE_I386) $(MACOSX_DEPLOY) 26CFLAGS_X86_64 = $(COMPILERFLAGS) $(COMPILERFLAGS_X86_64) $(INCLUDE) $(INCLUDE_X86_64) $(MACOSX_DEPLOY) 27CPPFLAGS_I386 = $(COMPILERPPFLAGS) $(CFLAGS_I386) 28CPPFLAGS_X86_64 = $(COMPILERPPFLAGS) $(CFLAGS_X86_64) 29LIBRARIES_I386 = $(MACOSX_DEPLOY) -Wl,-syslibroot $(MACOSX_SYSROOT) 30LIBRARIES_X86_64 = $(MACOSX_DEPLOY) -Wl,-syslibroot $(MACOSX_SYSROOT) 31LIBTOOL = libtool 32LIPO = lipo 33 34TARGET = freeimage 35STATICLIB = lib$(TARGET).a 36SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).dylib 37LIBNAME = lib$(TARGET).$(VER_MAJOR).dylib 38HEADER = Source/FreeImage.h 39 40.SUFFIXES: .o-i386 .o-x86_64 41MODULES_I386 = $(SRCS:.c=.o-i386) 42MODULES_X86_64 = $(SRCS:.c=.o-x86_64) 43MODULES_I386 := $(MODULES_I386:.cpp=.o-i386) 44MODULES_X86_64 := $(MODULES_X86_64:.cpp=.o-x86_64) 45 46PREFIX = /usr/local 47INSTALLDIR = $(PREFIX)/lib 48INCDIR = $(PREFIX)/include 49 50default: all 51 52all: dist 53 54# ONLY STATIC AND 64 BIT // START --- 55 56dist: FreeImage 57 cp *.a Dist 58 cp Source/FreeImage.h Dist 59 60FreeImage: $(STATICLIB) 61 62$(STATICLIB): $(STATICLIB)-x86_64 63 cp -p $(STATICLIB)-x86_64 $(STATICLIB) 64 65# --- END 66 67# STATIC AND DYNAMIC 32 and 64 BIT // START --- 68 69#dist: FreeImage 70# cp *.a Dist 71# cp *.dylib Dist 72# cp Source/FreeImage.h Dist 73 74# FreeImage: $(STATICLIB) $(SHAREDLIB ) 75 76#$(STATICLIB): $(STATICLIB)-i386 $(STATICLIB)-x86_64 77# $(LIPO) -create $(STATICLIB)-i386 $(STATICLIB)-x86_64 -output $(STATICLIB) 78 79# --- END 80 81$(STATICLIB)-i386: $(MODULES_I386) 82 $(LIBTOOL) -arch_only i386 -o $@ $(MODULES_I386) 83 84$(STATICLIB)-x86_64: $(MODULES_X86_64) 85 $(LIBTOOL) -arch_only x86_64 -o $@ $(MODULES_X86_64) 86 87$(SHAREDLIB): $(SHAREDLIB)-i386 $(SHAREDLIB)-x86_64 88 $(LIPO) -create $(SHAREDLIB)-i386 $(SHAREDLIB)-x86_64 -output $(SHAREDLIB) 89 90$(SHAREDLIB)-i386: $(MODULES_I386) 91 $(CPP_I386) -arch i386 -dynamiclib $(LIBRARIES_I386) -o $@ $(MODULES_I386) 92 93$(SHAREDLIB)-x86_64: $(MODULES_X86_64) 94 $(CPP_X86_64) -arch x86_64 -dynamiclib $(LIBRARIES_X86_64) -o $@ $(MODULES_X86_64) 95 96.c.o-i386: 97 $(CC_I386) $(CFLAGS_I386) -c $< -o $@ 98 99.c.o-x86_64: 100 $(CC_X86_64) $(CFLAGS_X86_64) -c $< -o $@ 101 102.cpp.o-i386: 103 $(CPP_I386) $(CPPFLAGS_I386) -c $< -o $@ 104 105.cpp.o-x86_64: 106 $(CPP_X86_64) $(CPPFLAGS_X86_64) -c $< -o $@ 107 108install: 109 install -d -m 755 -o root -g wheel $(INCDIR) $(INSTALLDIR) 110 install -m 644 -o root -g wheel $(HEADER) $(INCDIR) 111 install -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR) 112 ranlib -sf $(INSTALLDIR)/$(STATICLIB) 113 ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME) 114 115clean: 116 rm -f core Dist/*.* u2dtmp* $(MODULES_I386) $(MODULES_X86_64) $(STATICLIB) $(STATICLIB)-i386 $(SHAREDLIB) $(SHAREDLIB)-i386 $(SHAREDLIB)-x86_64 117