274 lines
8.0 KiB
Makefile
274 lines
8.0 KiB
Makefile
##########################################################################
|
|
# Makefile for GLFW on Windows using MSYS
|
|
#-------------------------------------------------------------------------
|
|
# To compile GLFW using this makefile, run:
|
|
# make -f Makefile.win32.msys
|
|
##########################################################################
|
|
|
|
PREFIX ?= /usr/local
|
|
|
|
##########################################################################
|
|
# GLFW version
|
|
##########################################################################
|
|
VERMAJOR = 2
|
|
VERMINOR = 7
|
|
|
|
|
|
##########################################################################
|
|
# Compiler settings
|
|
##########################################################################
|
|
CC = gcc
|
|
CFLAGS = -c -I. -I.. -Wall -mwin32 -O2
|
|
CFLAGS_DLL = $(CFLAGS) -mdll -DGLFW_BUILD_DLL -D_GLFW_NO_DLOAD_GDI32 -D_GLFW_NO_DLOAD_WINMM
|
|
|
|
HEADERS = ../../include/GL/glfw.h ../internal.h platform.h
|
|
|
|
##########################################################################
|
|
# Library builder settings
|
|
##########################################################################
|
|
# Static library
|
|
MKLIB = ar
|
|
LIBFLAGS = -rcs
|
|
|
|
# DLL
|
|
LINKFLAGS = -shared -s -Wl,--kill-at,--major-image-version,$(VERMAJOR),--minor-image-version,$(VERMINOR)
|
|
LINKLIBS = -lopengl32 -lwinmm -lgdi32
|
|
|
|
DLLTOOL = dlltool
|
|
|
|
SED = sed
|
|
INSTALL = install
|
|
|
|
|
|
##########################################################################
|
|
# Object files for static 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 \
|
|
win32_enable.o \
|
|
win32_fullscreen.o \
|
|
win32_glext.o \
|
|
win32_init.o \
|
|
win32_joystick.o \
|
|
win32_thread.o \
|
|
win32_time.o \
|
|
win32_window.o
|
|
|
|
|
|
##########################################################################
|
|
# Object files for dynamic library
|
|
##########################################################################
|
|
DLLOBJS = \
|
|
enable_dll.o \
|
|
fullscreen_dll.o \
|
|
glext_dll.o \
|
|
image_dll.o \
|
|
init_dll.o \
|
|
input_dll.o \
|
|
joystick_dll.o \
|
|
stream_dll.o \
|
|
tga_dll.o \
|
|
thread_dll.o \
|
|
time_dll.o \
|
|
window_dll.o \
|
|
win32_dllmain_dll.o \
|
|
win32_enable_dll.o \
|
|
win32_fullscreen_dll.o \
|
|
win32_glext_dll.o \
|
|
win32_init_dll.o \
|
|
win32_joystick_dll.o \
|
|
win32_thread_dll.o \
|
|
win32_time_dll.o \
|
|
win32_window_dll.o
|
|
|
|
|
|
##########################################################################
|
|
# Default: Build static and dynamic versions of GLFW
|
|
##########################################################################
|
|
all: libglfw.a glfw.dll
|
|
|
|
##########################################################################
|
|
# 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
|
|
$(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
|
|
|
|
|
|
##########################################################################
|
|
# Clean up generated files
|
|
##########################################################################
|
|
clean:
|
|
rm -f $(OBJS) $(DLLOBJS)
|
|
rm -f libglfw.a glfw.dll libglfw.pc
|
|
|
|
|
|
##########################################################################
|
|
# Rule for building libglfw.pc
|
|
##########################################################################
|
|
libglfw.pc: libglfw.pc.in
|
|
$(SED) -e 's,\@PREFIX\@,$(PREFIX),' libglfw.pc.in > libglfw.pc
|
|
|
|
|
|
##########################################################################
|
|
# Rule for building static library
|
|
##########################################################################
|
|
libglfw.a: $(OBJS)
|
|
$(MKLIB) $(LIBFLAGS) libglfw.a $(OBJS)
|
|
|
|
|
|
##########################################################################
|
|
# Rule for building dynamic library
|
|
##########################################################################
|
|
glfw.dll: $(DLLOBJS)
|
|
$(CC) -shared -o $@ -Wl,--output-def,libglfwdll.def $(DLLOBJS) $(LINKLIBS)
|
|
$(CC) -shared -o $@ -Wl,--kill-at $(DLLOBJS) $(LINKFLAGS) $(LINKLIBS)
|
|
$(DLLTOOL) --kill-at --output-lib libglfwdll.a --dllname $@ --def libglfwdll.def
|
|
|
|
|
|
##########################################################################
|
|
# Rules for building static library object files
|
|
##########################################################################
|
|
enable.o: ../enable.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../enable.c
|
|
|
|
fullscreen.o: ../fullscreen.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../fullscreen.c
|
|
|
|
glext.o: ../glext.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../glext.c
|
|
|
|
image.o: ../image.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../image.c
|
|
|
|
init.o: ../init.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../init.c
|
|
|
|
input.o: ../input.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../input.c
|
|
|
|
joystick.o: ../joystick.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../joystick.c
|
|
|
|
stream.o: ../stream.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../stream.c
|
|
|
|
tga.o: ../tga.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../tga.c
|
|
|
|
thread.o: ../thread.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../thread.c
|
|
|
|
time.o: ../time.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../time.c
|
|
|
|
window.o: ../window.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ ../window.c
|
|
|
|
win32_enable.o: win32_enable.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_enable.c
|
|
|
|
win32_fullscreen.o: win32_fullscreen.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_fullscreen.c
|
|
|
|
win32_glext.o: win32_glext.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_glext.c
|
|
|
|
win32_init.o: win32_init.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_init.c
|
|
|
|
win32_joystick.o: win32_joystick.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_joystick.c
|
|
|
|
win32_thread.o: win32_thread.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_thread.c
|
|
|
|
win32_time.o: win32_time.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_time.c
|
|
|
|
win32_window.o: win32_window.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -o $@ win32_window.c
|
|
|
|
|
|
##########################################################################
|
|
# Rules for building dynamic library object files
|
|
##########################################################################
|
|
enable_dll.o: ../enable.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../enable.c
|
|
|
|
fullscreen_dll.o: ../fullscreen.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../fullscreen.c
|
|
|
|
glext_dll.o: ../glext.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../glext.c
|
|
|
|
image_dll.o: ../image.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../image.c
|
|
|
|
init_dll.o: ../init.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../init.c
|
|
|
|
input_dll.o: ../input.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../input.c
|
|
|
|
joystick_dll.o: ../joystick.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../joystick.c
|
|
|
|
stream_dll.o: ../stream.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../stream.c
|
|
|
|
tga_dll.o: ../tga.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../tga.c
|
|
|
|
thread_dll.o: ../thread.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../thread.c
|
|
|
|
time_dll.o: ../time.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../time.c
|
|
|
|
window_dll.o: ../window.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ ../window.c
|
|
|
|
win32_dllmain_dll.o: win32_dllmain.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_dllmain.c
|
|
|
|
win32_enable_dll.o: win32_enable.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_enable.c
|
|
|
|
win32_fullscreen_dll.o: win32_fullscreen.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_fullscreen.c
|
|
|
|
win32_glext_dll.o: win32_glext.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_glext.c
|
|
|
|
win32_init_dll.o: win32_init.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_init.c
|
|
|
|
win32_joystick_dll.o: win32_joystick.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_joystick.c
|
|
|
|
win32_thread_dll.o: win32_thread.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_thread.c
|
|
|
|
win32_time_dll.o: win32_time.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_time.c
|
|
|
|
win32_window_dll.o: win32_window.c $(HEADERS)
|
|
$(CC) $(CFLAGS_DLL) -o $@ win32_window.c
|
|
|