summaryrefslogtreecommitdiff
path: root/Makefile.osx
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.osx')
-rw-r--r--Makefile.osx93
1 files changed, 93 insertions, 0 deletions
diff --git a/Makefile.osx b/Makefile.osx
new file mode 100644
index 0000000..369d977
--- /dev/null
+++ b/Makefile.osx
@@ -0,0 +1,93 @@
+# -*- Makefile -*-
+# Mac OSX makefile for FreeImage
+
+# This file can be generated by ./gensrclist.sh
+include Makefile.srcs
+
+# General configuration variables:
+CC_PPC = gcc-4.0
+CC_I386 = gcc-4.0
+CPP_PPC = g++-4.0
+CPP_I386 = g++-4.0
+COMPILERFLAGS = -Os -fexceptions -fvisibility=hidden -DNO_LCMS
+COMPILERFLAGS_PPC = -arch ppc
+COMPILERFLAGS_I386 = -arch i386
+COMPILERPPFLAGS = -Wno-ctor-dtor-privacy
+INCLUDE +=
+INCLUDE_PPC = -isysroot /Developer/SDKs/MacOSX10.3.9.sdk
+INCLUDE_I386 = -isysroot /Developer/SDKs/MacOSX10.4u.sdk
+CFLAGS_PPC = $(COMPILERFLAGS) $(COMPILERFLAGS_PPC) $(INCLUDE) $(INCLUDE_PPC)
+CFLAGS_I386 = $(COMPILERFLAGS) $(COMPILERFLAGS_I386) $(INCLUDE) $(INCLUDE_I386)
+CPPFLAGS_PPC = $(COMPILERPPFLAGS) $(CFLAGS_PPC)
+CPPFLAGS_I386 = $(COMPILERPPFLAGS) $(CFLAGS_I386)
+LIBRARIES_PPC = -Wl
+LIBRARIES_I386 = -Wl
+LIBTOOL = libtool
+LIPO = lipo
+
+TARGET = freeimage
+STATICLIB = lib$(TARGET).a
+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).dylib
+LIBNAME = lib$(TARGET).$(VER_MAJOR).dylib
+HEADER = Source/FreeImage.h
+
+.SUFFIXES: .o-ppc .o-i386
+MODULES_PPC = $(SRCS:.c=.o-ppc)
+MODULES_I386 = $(SRCS:.c=.o-i386)
+MODULES_PPC := $(MODULES_PPC:.cpp=.o-ppc)
+MODULES_I386 := $(MODULES_I386:.cpp=.o-i386)
+
+PREFIX = /usr/local
+INSTALLDIR = $(PREFIX)/lib
+INCDIR = $(PREFIX)/include
+
+default: all
+
+all: dist
+
+dist: FreeImage
+ cp *.a Dist
+ cp *.dylib Dist
+ cp Source/FreeImage.h Dist
+
+FreeImage: $(STATICLIB) $(SHAREDLIB)
+
+$(STATICLIB): $(STATICLIB)-ppc $(STATICLIB)-i386
+ $(LIPO) -create $(STATICLIB)-ppc $(STATICLIB)-i386 -output $(STATICLIB)
+
+$(STATICLIB)-ppc: $(MODULES_PPC)
+ $(LIBTOOL) -arch_only ppc -o $@ $(MODULES_PPC)
+
+$(STATICLIB)-i386: $(MODULES_I386)
+ $(LIBTOOL) -arch_only i386 -o $@ $(MODULES_I386)
+
+$(SHAREDLIB): $(SHAREDLIB)-ppc $(SHAREDLIB)-i386
+ $(LIPO) -create $(SHAREDLIB)-ppc $(SHAREDLIB)-i386 -output $(SHAREDLIB)
+
+$(SHAREDLIB)-ppc: $(MODULES_PPC)
+ $(CPP_PPC) -arch ppc -dynamiclib $(LIBRARIES_PPC) -o $@ $(MODULES_PPC)
+
+$(SHAREDLIB)-i386: $(MODULES_I386)
+ $(CPP_I386) -arch i386 -dynamiclib $(LIBRARIES_I386) -o $@ $(MODULES_I386)
+
+.c.o-ppc:
+ $(CC_PPC) $(CFLAGS_PPC) -c $< -o $@
+
+.c.o-i386:
+ $(CC_I386) $(CFLAGS_I386) -c $< -o $@
+
+.cpp.o-ppc:
+ $(CPP_PPC) $(CPPFLAGS_PPC) -c $< -o $@
+
+.cpp.o-i386:
+ $(CPP_I386) $(CPPFLAGS_I386) -c $< -o $@
+
+install:
+ install -d -m 755 -o root -g wheel $(INCDIR) $(INSTALLDIR)
+ install -m 644 -o root -g wheel $(HEADER) $(INCDIR)
+ install -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR)
+ ranlib -sf $(INSTALLDIR)/$(STATICLIB)
+ ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME)
+
+clean:
+ rm -f core Dist/*.* u2dtmp* $(MODULES_PPC) $(MODULES_I386) $(STATICLIB) $(STATICLIB)-ppc $(STATICLIB)-i386 $(SHAREDLIB) $(SHAREDLIB)-ppc $(SHAREDLIB)-i386