blob: e7dae809102368db4dc99cf01f09089d15c693f2 (
plain)
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
|
.PHONY: all clean tests guild-stuff guile-none
CC := gcc
OBJDIR = obj
SRCDIR = src
LIBDIR = lib
CFLAGS = -std=gnu11 -Wall -Wextra \
-ggdb -fPIC \
$(shell guile-config compile)
LDFLAGS = -fPIC $(shell guile-config link)
LIBS = libguile-calendar.so
SO_FILES = $(addprefix $(LIBDIR)/, $(LIBS))
H_FILES = $(wildcard src/*.h)
C_FILES = $(wildcard src/*.c)
SCM_C_FILES = $(wildcard src/*.scm.c)
X_FILES = $(SCM_C_FILES:.scm.c=.x)
.SECONDARY: $(X_FILES)
O_FILES = $(C_FILES:src/%.c=obj/%.o)
all: parse $(SO_FILES) guild-stuff guile-none
guild-stuff:
guild compile module/vcomponent/primitive.scm
guile-none:
module/main.scm none
parse: $(O_FILES)
$(CC) -o $@ $^ $(LDFLAGS)
$(O_FILES): | $(OBJDIR)
$(SO_FILES): | $(LIBDIR)
src/%.x : src/%.scm.c
guile-snarf -o $@ $< $(CFLAGS)
$(OBJDIR)/%.scm.o : src/%.scm.c src/%.x
$(CC) -c $(CFLAGS) -o $@ $<
$(OBJDIR)/%.o : src/%.c # $(H_FILES) $(X_FILES)
$(CC) -c $(CFLAGS) -o $@ $<
$(OBJDIR):
mkdir -p $(OBJDIR)
$(LIBDIR):
mkdir -p $(LIBDIR)
$(LIBDIR)/%.so: $(O_FILES)
$(CC) -shared -o $@ $^ $(LDFLAGS)
.SECONDARY += %.dot
%.dot: testcal/%.ics parse
./parse $< -g $@
%.pdf: %.dot
dot -Tpdf -o $@ $<
tags: $(C_FILES) $(H_FILES)
ctags -R
./rfc-tags rfc5545.txt >> tags
clean:
-rm parse
-rm $(OBJDIR)/*.o
-rmdir $(OBJDIR)
-rm $(LIBDIR)/*.so
-rm $(SRCDIR)/*.x
-rm -r $$HOME/.cache/guile/ccache/2.2-LE-8-3.A/$$PWD
tests:
tests/run-tests.scm
|