From d46183860c1f3f10095e95023adcb79b1896ab0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 22 Mar 2019 20:11:11 +0100 Subject: Move C and Scheme code into subdirs. --- Makefile | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'Makefile') 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 -- cgit v1.2.3