aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-22 20:11:11 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-22 20:17:52 +0100
commitd46183860c1f3f10095e95023adcb79b1896ab0e (patch)
treedd331a0efe9777bfe84160139da1e39df3226b71 /Makefile
parentAdd stuff to test.scm. (diff)
downloadcalp-d46183860c1f3f10095e95023adcb79b1896ab0e.tar.gz
calp-d46183860c1f3f10095e95023adcb79b1896ab0e.tar.xz
Move C and Scheme code into subdirs.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile32
1 files changed, 21 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 59c611df..e0dbd87c 100644
--- a/Makefile
+++ b/Makefile
@@ -3,42 +3,52 @@
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)
-H_FILES = $(wildcard *.h)
-C_FILES = $(wildcard *.c)
+LIBS = libguile-calendar.so libtermios.so
+SO_FILES = $(addprefix $(LIBDIR)/, $(LIBS))
-SCM_C_FILES = $(wildcard *.scm.c)
+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:%.c=obj/%.o)
+O_FILES = $(C_FILES:src/%.c=obj/%.o)
-all: parse libguile-calendar.so libtermios.so
+all: parse $(SO_FILES)
parse: $(O_FILES)
$(CC) -o $@ $^ $(LDFLAGS)
$(O_FILES): | $(OBJDIR)
-%.x : %.scm.c
+$(SO_FILES): | $(LIBDIR)
+
+src/%.x : src/%.scm.c
guile-snarf -o $@ $< $(CFLAGS)
-$(OBJDIR)/%.scm.o : %.scm.c %.x
+$(OBJDIR)/%.scm.o : src/%.scm.c src/%.x
$(CC) -c $(CFLAGS) -o $@ $<
-$(OBJDIR)/%.o : %.c # $(H_FILES) $(X_FILES)
+$(OBJDIR)/%.o : src/%.c # $(H_FILES) $(X_FILES)
$(CC) -c $(CFLAGS) -o $@ $<
$(OBJDIR):
mkdir -p $(OBJDIR)
-%.so: $(O_FILES)
+$(LIBDIR):
+ mkdir -p $(LIBDIR)
+
+$(LIBDIR)/%.so: $(O_FILES)
$(CC) -shared -o $@ $^ $(LDFLAGS)
.SECONDARY += %.dot
@@ -56,8 +66,8 @@ clean:
-rm parse
-rm $(OBJDIR)/*.o
-rmdir $(OBJDIR)
- -rm *.so
- -rm *.x
+ -rm $(LIBDIR)/*.so
+ -rm $(SRCDIR)/*.x
clean-scheme:
rm -r $$HOME/.cache/guile/ccache/2.2-LE-8-3.A/$$PWD