recreated the msvc project to build a static library
[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/')
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 ifeq ($(sys)-$(isx86), Linux-x86)
21         LDFLAGS = -lX11 -lGL
22 else
23         # for other UNIX or non-x86 where sys_ and trig functions are not
24         # implemented, just use libc
25         CFLAGS += -DMINIGLUT_USE_LIBC
26         LDFLAGS = -lX11 -lGL -lm
27         ifeq ($(sys), IRIX)
28                 CC = gcc
29         endif
30 endif
31
32 $(bin): $(otest) $(alib)
33         $(CC) -o $@ $(otest) $(alib) $(LDFLAGS)
34
35 $(alib): $(olib)
36         $(AR) rcs $@ $(olib)
37
38 %.w32.o: %.c
39         $(CC) -o $@ $(CFLAGS) -c $<
40
41 .PHONY: clean
42 clean:
43         rm -f $(alib) $(olib) $(otest) $(bin)
44
45 .PHONY: install
46 install: $(alib)
47         mkdir -p $(DESTDIR)$(PREFIX)/include $(DESTDIR)$(PREFIX)/lib
48         cp miniglut.h $(DESTDIR)$(PREFIX)/include/miniglut.h
49         cp $(alib) $(DESTDIR)$(PREFIX)/lib/libminiglut.a
50
51 .PHONY: uninstall
52 uninstall:
53         rm -f $(DESTDIR)$(PREFIX)/include/miniglut.h
54         rm -f $(DESTDIR)$(PREFIX)/lib/libminiglut.a
55
56 .PHONY: cross
57 cross:
58         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw
59
60 .PHONY: cross-clean
61 cross-clean:
62         $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean