backported fixes from deeprunner
[miniglut] / Makefile
index 9c5f31f..c110e36 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,38 +1,60 @@
-src = miniglut.c test.c
-obj = $(src:.c=.o)
+PREFIX = /usr/local
+
+olib = miniglut.o
+otest = test.o
+alib = libminiglut.a
 bin = test
 
 CFLAGS = -pedantic -Wall -g
 
 isx86 ?= $(shell uname -m | sed 's/x86_64/x86/; s/i.86/x86/')
 
-sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/')
+sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/; s/IRIX.*/IRIX/')
 ifeq ($(sys), mingw)
-       obj = $(src:.c=.w32.o)
+       olib = miniglut.w32.o
+       otest = test.w32.o
+       alib = libminiglut-w32.a
        bin = test.exe
 
        LDFLAGS = -mconsole -lopengl32 -lgdi32 -lwinmm
-else ifeq ($(sys)-$(isx86), Linux-x86)
-       LDFLAGS = -lX11 -lGL
 else
-       # for other UNIX or non-x86 where sys_ and trig functions are not
-       # implemented, just use libc
-       CFLAGS += -DMINIGLUT_USE_LIBC
-       LDFLAGS = -lX11 -lGL -lm
-       ifeq ($(sys), IRIX)
-               CC = gcc
+       ifeq ($(sys)-$(isx86), Linux-x86)
+               CFLAGS += -I/usr/X11R6/include
+               LDFLAGS = -L/usr/X11R6/lib -lX11 -lGL
+       else
+               # for other UNIX or non-x86 where sys_ and trig functions are not
+               # implemented, just use libc
+               CFLAGS += -DMINIGLUT_USE_LIBC
+               LDFLAGS = -lX11 -lGL -lm
+               ifeq ($(sys), IRIX)
+                       CC = gcc
+               endif
        endif
 endif
 
-$(bin): $(obj)
-       $(CC) -o $@ $(obj) $(LDFLAGS)
+$(bin): $(otest) $(alib)
+       $(CC) -o $@ $(otest) $(alib) $(LDFLAGS)
+
+$(alib): $(olib)
+       $(AR) rcs $@ $(olib)
 
 %.w32.o: %.c
        $(CC) -o $@ $(CFLAGS) -c $<
 
 .PHONY: clean
 clean:
-       rm -f $(obj) $(bin)
+       rm -f $(alib) $(olib) $(otest) $(bin)
+
+.PHONY: install
+install: $(alib)
+       mkdir -p $(DESTDIR)$(PREFIX)/include $(DESTDIR)$(PREFIX)/lib
+       cp miniglut.h $(DESTDIR)$(PREFIX)/include/miniglut.h
+       cp $(alib) $(DESTDIR)$(PREFIX)/lib/libminiglut.a
+
+.PHONY: uninstall
+uninstall:
+       rm -f $(DESTDIR)$(PREFIX)/include/miniglut.h
+       rm -f $(DESTDIR)$(PREFIX)/lib/libminiglut.a
 
 .PHONY: cross
 cross: