From d18bd78ad0cf58083734c9506ef3f64f5f94f29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 13 Jul 2020 13:56:30 +0200 Subject: Clean up makefile. --- Makefile | 70 ++++++++++++---------------------------------------------------- 1 file changed, 13 insertions(+), 57 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 9ad9f533..dc5c4c51 100644 --- a/Makefile +++ b/Makefile @@ -1,23 +1,7 @@ -.PHONY: all clean tests html +.PHONY: all clean test -CC := gcc - -export LD_LIBRARY_PATH=$(PWD)/lib -export GUILE_AUTO_COMPILE=0 - -CFLAGS = -std=gnu11 -Wall -Wextra -ggdb -fPIC $(shell guile-config compile) -LDFLAGS = $(shell guile-config link) - -LIBS = libguile-calendar.so -SO_FILES = $(addprefix lib/, $(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) - -O_FILES = $(C_FILES:src/%.c=obj/%.o) +GUILE_SITE_DIR=$(shell guile -c "(display (%site-dir))") +GUILE_CCACHE_DIR=$(shell guile -c "(display (%site-ccache-dir))") SCM_FILES = $(shell find module/ -type f -name \*.scm) GO_FILES = $(SCM_FILES:%=obj/%.go) @@ -28,50 +12,22 @@ GUILE_C_FLAGS = -Lmodule \ -Wmacro-use-before-definition -Warity-mismatch \ -Wduplicate-case-datum -Wbad-case-datum -.SECONDARY: $(X_FILES) $(O_FILES) - - - -all: $(SO_FILES) $(GO_FILES) +all: $(GO_FILES) -src/%.x : src/%.scm.c - guile-snarf -o $@ $< $(CFLAGS) - -obj/%.scm.o : src/%.scm.c src/%.x - @mkdir -p obj - $(CC) -c $(CFLAGS) -o $@ $< - -obj/%.o : src/%.c # $(H_FILES) $(X_FILES) - @mkdir -p obj - $(CC) -c $(CFLAGS) -o $@ $< - -lib/%.so: $(O_FILES) - @mkdir -p lib - $(CC) -shared -o $@ $^ $(LDFLAGS) - -obj/module/vcomponent/primitive.scm.go: module/vcomponent/primitive.scm $(SO_FILES) +obj/%.scm.go: %.scm @mkdir -p obj guild compile $(GUILE_C_FLAGS) -o $@ $< -obj/%.scm.go: %.scm - @mkdir -p obj - guild compile $(GUILE_C_FLAGS) -o $@ $< - -html: $(GO_FILES) - mkdir -p html - ln -sf ../static html - module/main.scm html -f 2019-10-01 -t 2019-12-31 > html/index.html - -tags: $(C_FILES) $(H_FILES) - ctags -R - ./rfc-tags rfc5545.txt >> tags - clean: - -rm -r html -rm -r obj - -rm -r lib - -rm src/*.x +install: + install -d $(DESTDIR)$(GUILE_SITE_DIR) $(DESTDIR)$(GUILE_CCACHE_DIR) + rsync -a module/ $(DESTDIR)$(GUILE_SITE_DIR) + rsync -a obj/ $(DESTDIR)$(GUILE_CCACHE_DIR) + install -d $(DESTDIR)/usr/share/calp/www + rsync -a static $(DESTDIR)/usr/share/calp/www + # TODO main, tzget -tests: +test: tests/run-tests.scm -- cgit v1.2.3