forked from wineasio/wineasio
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.mk
More file actions
104 lines (83 loc) · 2.52 KB
/
Makefile.mk
File metadata and controls
104 lines (83 loc) · 2.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#!/usr/bin/make -f
# Makefile for WineASIO #
# --------------------- #
# Created by falkTX
# Initially generated by winemaker
#
ifeq ($(ARCH),)
$(error incorrect use of Makefile, ARCH var is missing)
endif
ifeq ($(M),)
$(error incorrect use of Makefile, M var is missing)
endif
wineasio_dll_MODULE = wineasio$(M).dll
PREFIX = /usr
DLLS = $(wineasio_dll_MODULE) $(wineasio_dll_MODULE).so
### Tools
CC = gcc
WINEBUILD = winebuild
WINECC = winegcc
### Common settings
CEXTRA = -m$(M) -D_REENTRANT -fPIC -Wall -pipe
CEXTRA += -fno-strict-aliasing -Wdeclaration-after-statement -Wwrite-strings -Wpointer-arith
CEXTRA += -Werror=implicit-function-declaration
RCEXTRA =
INCLUDE_PATH = -I.
ifeq ($(DEBUG),true)
CEXTRA += -O0 -DDEBUG -g -D__WINESRC__
else
CEXTRA += -O2 -DNDEBUG -fvisibility=hidden
endif
ifneq ($(WINEBUILD_INCLUDEDIR),)
INCLUDE_PATH += -I$(WINEBUILD_INCLUDEDIR)
else
INCLUDE_PATH += \
-I$(PREFIX)/include/wine \
-I$(PREFIX)/include/wine/windows \
-I$(PREFIX)/include/wine-development \
-I$(PREFIX)/include/wine-development/wine/windows \
-I/opt/wine-stable/include \
-I/opt/wine-stable/include/wine/windows \
-I/opt/wine-staging/include \
-I/opt/wine-staging/include/wine/windows
endif
wineasio_dll_C_SRCS = asio.c \
jackbridge.c \
main.c \
regsvr.c
wineasio_dll_LDFLAGS = -shared \
-m$(M) \
wineasio.dll.spec
ifneq ($(WINEBUILD_LIBDIR),)
wineasio_dll_LDFLAGS += -L$(WINEBUILD_LIBDIR)
else
wineasio_dll_LDFLAGS += \
-L/usr/lib$(M)/wine \
-L/usr/lib/wine \
-L/usr/lib/$(ARCH)-linux-gnu/wine \
-L/usr/lib/$(ARCH)-linux-gnu/wine-development \
-L/opt/wine-stable/lib \
-L/opt/wine-stable/lib/wine \
-L/opt/wine-stable/lib$(M) \
-L/opt/wine-stable/lib$(M)/wine \
-L/opt/wine-staging/lib \
-L/opt/wine-staging/lib/wine \
-L/opt/wine-staging/lib$(M) \
-L/opt/wine-staging/lib$(M)/wine
endif
wineasio_dll_OBJS = $(wineasio_dll_C_SRCS:%.c=build$(M)/%.c.o)
### Generic targets
all:
build: $(DLLS:%=build$(M)/%)
### Build rules
.PHONY: all
# Implicit rules
build$(M)/%.c.o: %.c
@$(shell mkdir -p build$(M))
$(CC) -c $(INCLUDE_PATH) $(CFLAGS) $(CEXTRA) -o $@ $<
### Target specific build rules
build$(M)/$(wineasio_dll_MODULE): $(wineasio_dll_OBJS)
$(WINEBUILD) -m$(M) --dll --fake-module -E wineasio.dll.spec $^ -o $@
build$(M)/$(wineasio_dll_MODULE).so: $(wineasio_dll_OBJS)
$(WINECC) $^ $(wineasio_dll_LDFLAGS) \
-lodbc32 -lole32 -luuid -lwinmm -o $@