X-Git-Url: http://pileus.org/git/?p=lackey;a=blobdiff_plain;f=makefile;h=14d6a71dda7331b616033a4a3b083f28a4f79a56;hp=e3f36381118b90abac4990c83480b1d2456c5e66;hb=9a9c6808d386091c75bbc00b764d308034ac1c0f;hpb=f896842729cc916a17d828484821c85ae4140317 diff --git a/makefile b/makefile index e3f3638..14d6a71 100644 --- a/makefile +++ b/makefile @@ -1,38 +1,63 @@ +# lackey - curses calendar program +# See COPYING file for license details. + -include config.mk # Settings -CC ?= gcc -CFLAGS ?= -Wall --std=c99 -CPPFLAGS ?= -Isrc -LDFLAGS ?= -lncursesw -lical +VERSION ?= 0.1-rc1 +PREFIX ?= /usr/local +MANPREFIX ?= $(PREFIX)/share/man + +# Compiler +GCC ?= gcc +CFLAGS ?= -Wall --std=c99 +LDFLAGS ?= -lncursesw -lical # Sources -PROG = lackey -PROG_SRC = main screen date event util -TEST = test -TEST_SRC = test date util -VIEWS = day week month year events todo settings help -CALS = dummy ical +PROG ?= lackey +PROG_SRC ?= main view date cal args conf util +TEST ?= test +TEST_SRC ?= test date cal conf util +VIEWS ?= day week month year events todo settings help edit +CALS ?= dummy ical + +# Objects +views/%.o cals/%.o: CFLAGS += -Isrc +src/view.o views/%.o: CFLAGS += $(strip $(shell pkg-config --cflags ncursesw)) # Targets -all: $(PROG) $(TEST) +all: $(PROG) + +clean: + rm -f src/*.o views/*.o cals/*.o $(PROG) $(TEST) -run-$(PROG): $(PROG) - @urxvt -e ./$< - @cat /tmp/lackey.log +dist: + tar -czf $(PROG)-$(VERSION).tar.gz --transform s::$(PROG)-$(VERSION)/: \ + README COPYING config.mk.example makefile */*.txt */*.1 */*.c */*.h -run-$(TEST): $(TEST) - ./$< +install: all + install -m 755 -D $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG) + install -m 644 -D doc/$(PROG).1 $(DESTDIR)$(MANPREFIX)/man1/$(PROG).1 -clean: - rm -f src/*.o view/*.o cal/*.o $(PROG) $(TEST) +uninstall: + rm -f $(DESTDIR)$(PREFIX)/bin/$(PROG) + rm -f $(DESTDIR)$(MANPREFIX)/man1/$(PROG).1 + +memcheck: $(PROG) + valgrind --log-file=valgrind.out \ + --track-origins=yes \ + --leak-check=full \ + --leak-resolution=high \ + ./$(PROG) # Rules -$(PROG): $(PROG_SRC:%=src/%.o) $(VIEWS:%=view/%.o) $(CALS:%=cal/%.o) - $(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS) +$(PROG): $(PROG_SRC:%=src/%.o) $(VIEWS:%=views/%.o) $(CALS:%=cals/%.o) + $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS) + +$(TEST): $(TEST_SRC:%=src/%.o) $(CALS:%=cals/%.o) + $(GCC) $(CFLAGS) -o $@ $+ $(LDFLAGS) -$(TEST): $(TEST_SRC:%=src/%.o) $(CALS:%=cal/%.o) - $(CC) $(CFLAGS) -o $@ $+ $(LDFLAGS) +%.o: %.c $(wildcard src/*.h makefile config.mk) + $(GCC) $(CFLAGS) -c -o $@ $< -%.o: %.c $(wildcard src/*.h) makefile - $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< +.PHONY: all clean dist install uninstall