########################################################################## # Makefile for GLFW on Mac OS X using GCC (Apple SDK). #------------------------------------------------------------------------- # To compile GLFW using this makefile, run: # make -f Makefile.macosx.gcc ########################################################################## ########################################################################## # Installation prefix (default to /usr/local) ########################################################################## PREFIX ?= /usr/local ########################################################################## # Default: Build GLFW static library ########################################################################## default: libglfw.a ########################################################################## # Compiler settings ########################################################################## CC = gcc FATFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 CFLAGS = -c -I. -I.. -Wall -Os -fno-common $(FATFLAGS) # Some modules should be optimized for speed (e.g. image decoding) CFLAGS_SPEED = -c -I. -I.. -Wall -O3 -ffast-math -fno-common $(FATFLAGS) ########################################################################## # Library builder settings ########################################################################## # Static library SED = sed INSTALL = install MKLIB = ar LIBFLAGS = -rcs RANLIB = ranlib ########################################################################## # Install GLFW header and static library ########################################################################## install: libglfw.a libglfw.pc $(INSTALL) -d $(PREFIX)/lib $(INSTALL) -c -m 644 libglfw.a $(PREFIX)/lib/libglfw.a $(RANLIB) $(PREFIX)/lib/libglfw.a $(INSTALL) -d $(PREFIX)/include/GL $(INSTALL) -c -m 644 ../../include/GL/glfw.h $(PREFIX)/include/GL/glfw.h $(INSTALL) -d $(PREFIX)/lib/pkgconfig $(INSTALL) -c -m 644 libglfw.pc $(PREFIX)/lib/pkgconfig/libglfw.pc ########################################################################## # Rule for cleaning up generated files ########################################################################## clean: @rm -f *.o libglfw.a libglfw.pc ########################################################################## # Object files which are part of the GLFW library ########################################################################## OBJS = \ enable.o \ fullscreen.o \ glext.o \ image.o \ init.o \ input.o \ joystick.o \ stream.o \ tga.o \ thread.o \ time.o \ window.o \ macosx_enable.o \ macosx_fullscreen.o \ macosx_glext.o \ macosx_init.o \ macosx_joystick.o \ macosx_thread.o \ macosx_time.o \ macosx_window.o ########################################################################## # Rule for building libglfw.pc ########################################################################## libglfw.pc: libglfw.pc.in $(SED) -e 's,\@PREFIX\@,$(PREFIX),' libglfw.pc.in > libglfw.pc ########################################################################## # Rule for building library ########################################################################## libglfw.a: $(OBJS) rm -f $@ $(MKLIB) $(LIBFLAGS) $@ $(OBJS) $(RANLIB) $@ ########################################################################## # Rules for building library object files ########################################################################## enable.o: ../enable.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../enable.c fullscreen.o: ../fullscreen.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../fullscreen.c glext.o: ../glext.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../glext.c image.o: ../image.c ../internal.h platform.h $(CC) $(CFLAGS_SPEED) -o $@ ../image.c init.o: ../init.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../init.c input.o: ../input.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../input.c joystick.o: ../joystick.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../joystick.c stream.o: ../stream.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../stream.c tga.o: ../tga.c ../internal.h platform.h $(CC) $(CFLAGS_SPEED) -o $@ ../tga.c thread.o: ../thread.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../thread.c time.o: ../time.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../time.c window.o: ../window.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ ../window.c macosx_enable.o: macosx_enable.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_enable.c macosx_fullscreen.o: macosx_fullscreen.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_fullscreen.c macosx_glext.o: macosx_glext.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_glext.c macosx_init.o: macosx_init.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_init.c macosx_joystick.o: macosx_joystick.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_joystick.c macosx_thread.o: macosx_thread.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_thread.c macosx_time.o: macosx_time.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_time.c macosx_window.o: macosx_window.c ../internal.h platform.h $(CC) $(CFLAGS) -o $@ macosx_window.c