/
Makefile
120 lines (87 loc) · 3.17 KB
1
2
# Set this variable if you need to.
WINDOWS_JDK_PATH := C:\\Program\ Files\\Java\\jdk1.6.0_02\\
3
LINUX_JDK_PATH := /usr/lib/j2se/1.4/
4
5
linux := false
6
macosx := false
7
cygwin := false
8
9
10
uname_s := $(shell uname -s)
ifeq ($(strip $(uname_s)),Darwin)
11
macosx := true
12
13
else
uname_o := $(shell uname -o)
14
endif
15
ifeq ($(strip $(uname_s)),Linux)
16
17
linux := true
endif
18
19
20
ifeq ($(strip $(uname_o)),Cygwin)
cygwin := true
endif
21
22
CFLAGS += -O0 -Wall -g -c
23
CFLAGS += -I.
24
25
26
#CFLAGS += -ISDL-1.2.8/include
#LDFLAGS += -LSDL-1.2.8/lib -lSDL -lSDLmain
27
28
29
30
31
32
CC := gcc
LD := gcc
ifeq ($(strip $(macosx)),true)
LDFLAGS += -framework Carbon -framework IOKit
33
JAVAC := javac
34
MANYMOUSEJNILIB := libManyMouse.jnilib
35
JNICFLAGS += -I/System/Library/Frameworks/JavaVM.framework/Headers
36
JNILDFLAGS += -bundle -framework JavaVM
37
38
endif
39
ifeq ($(strip $(linux)),true)
40
41
42
43
44
45
46
CFLAGS += -fPIC -I/usr/src/linux/include
LDFLAGS += -ldl
JDKPATH := $(LINUX_JDK_PATH)
JAVAC := $(JDKPATH)bin/javac
MANYMOUSEJNILIB := libManyMouse.so
JNICFLAGS += -I$(JDKPATH)include -I$(JDKPATH)include/linux
JNILDFLAGS += -shared -Wl,-soname,$(MANYMOUSEJNILIB)
47
48
endif
49
50
51
52
53
ifeq ($(strip $(cygwin)),true)
CFLAGS += -mno-cygwin
LDFLAGS += -mno-cygwin
JDKPATH := $(WINDOWS_JDK_PATH)
JAVAC := $(JDKPATH)bin\\javac
54
55
56
MANYMOUSEJNILIB := ManyMouse.dll
JNICFLAGS += -I$(JDKPATH)include -I$(JDKPATH)include\\win32
JNILDFLAGS += -Wl,--add-stdcall-alias -shared
57
58
59
60
endif
61
BASEOBJS := linux_evdev.o macosx_hidutilities.o macosx_hidmanager.o windows_wminput.o x11_xinput2.o manymouse.o
62
63
64
.PHONY: clean all
65
all: detect_mice test_manymouse_stdio test_manymouse_sdl mmpong manymousepong
66
67
clean:
68
rm -rf *.o *.obj *.exe *.class $(MANYMOUSEJNILIB) example/*.o example/*.obj test_manymouse_stdio test_manymouse_sdl detect_mice mmpong manymousepong
69
70
%.o : %c
71
$(CC) $(CFLAGS) -o $@ $<
72
73
example/test_manymouse_sdl.o : example/test_manymouse_sdl.c
74
$(CC) $(CFLAGS) -o $@ $< `sdl-config --cflags`
75
76
77
78
example/mmpong.o : example/mmpong.c
$(CC) $(CFLAGS) -o $@ $< `sdl-config --cflags`
79
80
81
example/manymousepong.o : example/manymousepong.c
$(CC) $(CFLAGS) -o $@ $< `sdl-config --cflags`
82
detect_mice: $(BASEOBJS) example/detect_mice.o
83
$(LD) -o $@ $+ $(LDFLAGS)
84
85
test_manymouse_stdio: $(BASEOBJS) example/test_manymouse_stdio.o
86
$(LD) -o $@ $+ $(LDFLAGS)
87
88
test_manymouse_sdl: $(BASEOBJS) example/test_manymouse_sdl.o
89
$(LD) -o $@ $+ `sdl-config --libs` $(LDFLAGS)
90
91
mmpong: $(BASEOBJS) example/mmpong.o
92
$(LD) -o $@ $+ `sdl-config --libs` $(LDFLAGS)
93
94
manymousepong: $(BASEOBJS) example/manymousepong.o
95
$(LD) -o $@ $+ `sdl-config --libs` $(LDFLAGS)
96
97
98
99
100
101
102
103
# Java support ...
.PHONY: java
java: $(MANYMOUSEJNILIB) ManyMouse.class ManyMouseEvent.class TestManyMouse.class
ManyMouse.class: contrib/java/ManyMouse.java $(MANYMOUSEJNILIB)
104
$(JAVAC) -d . -classpath contrib/java $<
105
106
ManyMouseEvent.class: contrib/java/ManyMouseEvent.java ManyMouse.class
107
$(JAVAC) -d . -classpath contrib/java $<
108
109
TestManyMouse.class: contrib/java/TestManyMouse.java ManyMouse.class ManyMouseEvent.class
110
$(JAVAC) -d . $<
111
112
ManyMouseJava.o: contrib/java/ManyMouseJava.c
113
$(CC) $(CFLAGS) -o $@ $< $(JNICFLAGS)
114
115
116
$(MANYMOUSEJNILIB): $(BASEOBJS) ManyMouseJava.o
@mkdir -p $(dir $@)
117
$(LD) $(LDFLAGS) -o $@ $^ $(JNILDFLAGS)
118
119
# end of Makefile ...