forked from alimpfard/citron
-
Notifications
You must be signed in to change notification settings - Fork 0
/
makefile
93 lines (71 loc) · 2.19 KB
/
makefile
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
LEXTRACF := ${LEXTRACF} -flto
fv := $(strip $(shell ldconfig -p | grep libgc.so | cut -d ">" -f2 | head -n1))
ifeq ($(strip ${WITH_ICU}),)
CFLAGS = -Wall -Wextra -Wno-unused-parameter -mtune=native\
-march=native -D withTermios -D forLinux\
-D CTR_STD_EXTENSION_PATH=\"`pwd`\"
else
CFLAGS = -Wall -Wextra -Wno-unused-parameter -mtune=native\
-march=native -D withTermios -D forLinux\
-D CTR_STD_EXTENSION_PATH=\"`pwd`\" -D withICU
LEXTRACF := ${LEXTRACF} -L/usr/lib -licui18n -licuuc -licudata
endif
ifeq ($(strip ${WITHOUT_BOEHM_GC}),)
CFLAGS := ${CFLAGS} "-D withBoehmGC"
LEXTRACF := ${LEXTRACF} ${fv}
else
endif
ifeq ($(strip ${WITH_TYPED_GC}),)
else
CFLAGS := ${CFLAGS} "-D withBoehmGC_P"
endif
.PHONY: gc_check
gc_check:
@if [ "${fv}x" == "x" ]; then echo "Could not find libgc.so."; echo Failing; exit 1; else echo "Found libgc.so at ${fv}"; fi
-include gc_check
OBJS = siphash.o utf8.o memory.o util.o base.o collections.o file.o system.o \
world.o lexer.o lexer_plug.o parser.o walker.o marshal.o reflect.o fiber.o\
importlib.o coroutine.o symbol.o generator.o base_extensions.o citron.o
COBJS = ${OBJS} compiler.o
.SUFFIXES: .o .c
all: CFALGS := $(CFLAGS) -O2
all: ctr
debug: CFLAGS := ${CFLAGS} -DDEBUG_BUILD -Og -g3 -ggdb3 -Wno-unused-function
#LEXTRACF := -lefence ${LEXTRACF}
debug: ctr
install:
echo -e "install directly from source not allowed.\nUse citron_autohell instead for installs"
exit 1;
ctr: $(OBJS)
$(CC) -fopenmp $(OBJS) -rdynamic -lm -ldl -lbsd -lpcre -lpthread ${LEXTRACF} -o ctr
libctr: CFLAGS := $(CFLAGS) -fPIC -DCITRON_LIBRARY
libctr: $(OBJS)
$(CC) $(OBJS) -shared -export-dynamic -ldl -lbsd -lpcre -lpthread -o libctr.so
compiler: CFLAGS := $(CFLAGS) -D comp=1
compiler: $(COBJS)
$(CC) $(COBJS) -rdynamic -lm -ldl -lbsd -lpcre -lprofiler -lpthread ${LEXTRACF} -o ctrc
.c.o:
$(CC) -fopenmp $(CFLAGS) -c $<
define SHVAL =
for f in *.c; do\
echo "Formatting $f";\
indent -l150 -hnl -bbo $f;\
done
endef
format:
mkdir -p .bac
rm -rf .bac/*.c
cp *.c .bac/
$(value SHVAL)
rm -rf *.c~
.ONESHELL:
unback:
cp .bac/*.c .
clean:
rm -rf ${OBJS} ctr
cclean:
rm -rf ${COBJS} ctrc
love:
echo "Not war?"
war:
echo "Not love?"