backported fixes from deeprunner
[miniglut] / Makefile
1 PREFIX = /usr/local
2
3 olib = miniglut.o
4 otest = test.o
5 alib = libminiglut.a
6 bin = test
7
8 CFLAGS = -pedantic -Wall -g
9
10 isx86 ?= $(shell uname -m | sed 's/x86_64/x86/; s/i.86/x86/')
11
12 sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/; s/IRIX.*/IRIX/')
13 ifeq ($(sys), mingw)
14         olib = miniglut.w32.o
15         otest = test.w32.o
16         alib = libminiglut-w32.a
17         bin = test.exe
18
19         LDFLAGS = -mconsole -lopengl32 -lgdi32 -lwinmm
20 else
21         ifeq ($(sys)-$(isx86), Linux-x86)
22                 CFLAGS += -I/usr/X11R6/include
23                 LDFLAGS = -L/usr/X11R6/lib -lX11 -lGL
24         else
25                 # for other UNIX or non-x86 where sys_ and trig functions are not
26                 # implemented, just use libc
27                 CFLAGS += -DMINIGLUT_USE_LIBC
28                 LDFLAGS = -lX11 -lGL -lm
29                 ifeq ($(sys), IRIX)
30                         CC = gcc
31                 endif
32         endif
33 endif
34
35 $(bin): $(otest) $(alib)
36         $(CC) -o $@ $(otest) $(alib) $(LDFLAGS)
37
38 $(alib): $(olib)
39         $(AR) rcs $@ $(olib)
40
41 %.w32.o: %.c
42         $(CC) -o $@ $(CFLAGS) -c $<
43
44 .PHONY: clean
45 clean:
46         rm -f $(alib) $(olib) $(otest) $(bin)
47
48 .PHONY: install
49 install: $(alib)
50         mkdir -p $(DESTDIR)$(PREFIX)/include $(DESTDIR)$(PREFIX)/lib
51         cp miniglut.h $(DESTDIR)$(PREFIX)/include/miniglut.h
52         cp $(alib) $(DESTDIR)$(PREFIX)/lib/libminiglut.a
53
54 .PHONY: uninstall
55 uninstall:
56         rm -f $(DESTDIR)$(PREFIX)/include/miniglut.h
57         rm -f $(DESTDIR)$(PREFIX)/lib/libminiglut.a
58
59 .PHONY: cross
60 cross:
61         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
62
63 .PHONY: cross-clean
64 cross-clean:
65         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean