forked from singlestore-labs/wasix
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
50 lines (40 loc) · 1.13 KB
/
Makefile
File metadata and controls
50 lines (40 loc) · 1.13 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
# Root directory of the WASI SDK
WASI_SDK_PATH ?=/opt/wasi-sdk
# Custom CFLAGS
WASI_CFLAGS ?=
# Install target
DESTDIR ?=/opt
CC=$(WASI_SDK_PATH)/bin/clang
WASI_BASE_CFLAGS= \
--sysroot=$(WASI_SDK_PATH)/share/wasi-sysroot \
-g \
--target=wasm32-unknown-wasi \
-D_WASI_EMULATED_SIGNAL \
-I$(WASI_SDK_PATH)/share/wasi-sysroot/include \
-isystem ./include
AR=$(WASI_SDK_PATH)/bin/llvm-ar
INSTALL=install
HEADERS_INCLUDE=$(wildcard include/*.h)
HEADERS_INCLUDE_SYS=$(wildcard include/sys/*.h)
HEADERS=$(HEADERS_INCLUDE) $(HEADERS_INCLUDE_SYS)
OBJS=$(patsubst %.c, %.o, $(wildcard src/*.c))
LIBWASIX_A=libwasix.a
.PHONY: all
all: $(LIBWASIX_A)
.PHONY: all_abort
all_abort:
$(MAKE) clean
$(MAKE) all WASI_CFLAGS="-D_WASIX_ABORT_ON_ERROR"
$(LIBWASIX_A): $(OBJS)
$(AR) rcs $@ $^
$(OBJS): $(HEADERS)
.c.o:
$(CC) $(WASI_BASE_CFLAGS) $(WASI_CFLAGS) -o $@ -c $<
.PHONY: clean
clean:
rm -rf $(LIBWASIX_A) $(OBJS)
.PHONY: install
install: $(LIBWASIX_A) $(HEADERS)
$(INSTALL) -D -p -t $(DESTDIR)/include $(HEADERS_INCLUDE)
$(INSTALL) -D -p -t $(DESTDIR)/include/sys $(HEADERS_INCLUDE_SYS)
$(INSTALL) -D -p -t $(DESTDIR)/lib $(LIBWASIX_A)