From: Daniel Carl Date: Sat, 24 Jan 2015 23:13:48 +0000 (+0100) Subject: Use own Makefile for src directory. X-Git-Url: https://git.owens.tech/editable-focus.html/editable-focus.html/git?a=commitdiff_plain;h=b3b86fd3f76a777ef6a49d07016c82d64a67db94;p=vimb.git Use own Makefile for src directory. --- diff --git a/.gitignore b/.gitignore index 0d7d2d5..fee9ca5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,9 @@ *.[oad] -*.[ld]o -vimb -vimb_dbg +*.lo *.tar.gz src/hints.js.h src/config.h +src/vimb tests/* !tests/Makefile !tests/*.c diff --git a/Makefile b/Makefile index 9e79c81..02f9d7d 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ include config.mk -all: $(TARGET) -test: $(LIBTARGET) - @$(MAKE) $(MFLAGS) -s -C tests +SRCDIR=src +DOCDIR=doc +all: $(TARGET) options: @echo "$(PROJECT) build options:" @echo "LIBS = $(LIBS)" @@ -11,26 +11,25 @@ options: @echo "LDFLAGS = $(LDFLAGS)" @echo "CC = $(CC)" -install: $(TARGET) doc/$(MAN1) +test: $(LIBTARGET) + @$(MAKE) $(MFLAGS) -s -C tests + +clean: + @$(MAKE) $(MFLAGS) -C src clean + @$(MAKE) $(MFLAGS) -C tests clean + +install: $(TARGET) $(DOCDIR)/$(MAN1) install -d $(DESTDIR)$(BINDIR) - install -d $(DESTDIR)$(MANDIR1) - install -m 755 $(TARGET) $(DESTDIR)$(BINDIR)/$(TARGET) - @echo "install -m 644 src/$(MAN1) $(DESTDIR)$(MANDIR1)/$(MAN1)" + install -d $(DESTDIR)$(MANDIR)/man1 + install -m 755 $(SRCDIR)/$(TARGET) $(DESTDIR)$(BINDIR)/$(TARGET) + @echo "install -m 644 $(SRCDIR)/$(MAN1) $(DESTDIR)$(MANDIR)/man1/$(MAN1)" @sed -e "s/VERSION/$(VERSION)/g" \ - -e "s/DATE/`date +'%m %Y'`/g" < doc/$(MAN1) > $(DESTDIR)$(MANDIR1)/$(MAN1) - @chmod 644 $(DESTDIR)$(MANDIR1)/$(MAN1) + -e "s/DATE/`date +'%m %Y'`/g" < $(DOCDIR)/$(MAN1) > $(DESTDIR)$(MANDIR)/man1/$(MAN1) + @chmod 644 $(DESTDIR)$(MANDIR)/man1/$(MAN1) uninstall: $(RM) $(DESTDIR)$(BINDIR)/$(TARGET) - $(RM) $(DESTDIR)$(MANDIR1)/$(MAN1) - -clean: test-clean - $(RM) src/*.o src/*.lo src/hints.js.h - $(RM) $(TARGET) - -test-clean: - $(RM) $(LIBTARGET) - @$(MAKE) $(MFLAGS) -C tests clean + $(RM) $(DESTDIR)$(MANDIR)/man1/$(MAN1) dist: dist-clean @echo "Creating tarball." @@ -39,36 +38,10 @@ dist: dist-clean dist-clean: $(RM) $(DIST_FILE) -src/hints.o: src/hints.js.h -src/hints.lo: src/hints.js.h - -src/hints.js.h: src/hints.js - @echo "minify $<" - @cat $< | src/js2h.sh > $@ - -$(OBJ): src/config.h config.mk -$(LOBJ): src/config.h config.mk - -$(TARGET): $(OBJ) - @echo "$(CC) $@" - @$(CC) $(OBJ) -o $@ $(LDFLAGS) - -$(LIBTARGET): $(LOBJ) - @echo "$(CC) $@" - @$(CC) -shared ${LOBJ} -o $@ $(LDFLAGS) - -src/config.h: - @echo create $@ from src/config.def.h - @cp src/config.def.h $@ - -%.o: %.c %.h - @echo "${CC} $@" - @$(CC) $(CFLAGS) -c -o $@ $< - -%.lo: %.c %.h - @echo "${CC} $@" - @$(CC) -DTESTLIB $(CFLAGS) -fPIC -c -o $@ $< +$(TARGET): + @$(MAKE) $(MFLAGS) -C src $(TARGET) --include $(DEPS) +$(LIBTARGET): + @$(MAKE) $(MFLAGS) -C src $(LIBTARGET) -.PHONY: clean debug all install uninstall options dist dist-clean test test-clean +.PHONY: clean all install uninstall options dist dist-clean test diff --git a/config.mk b/config.mk index 3197d95..a1e3275 100644 --- a/config.mk +++ b/config.mk @@ -50,14 +50,9 @@ CFLAGS += -Wno-overlength-strings -Werror=format-security CFLAGS += ${CPPFLAGS} LDFLAGS += ${LIBFLAGS} -OBJ = $(patsubst %.c, %.o, $(wildcard src/*.c)) -LOBJ = $(patsubst %.c, %.lo, $(wildcard src/*.c)) -DEPS = $(OBJ:%.o=%.d) - TARGET = $(PROJECT) -LIBTARGET = tests/lib$(PROJECT).so +LIBTARGET = lib$(PROJECT).so DIST_FILE = $(PROJECT)_$(VERSION).tar.gz -MANDIR1 = $(MANDIR)/man1 MAN1 = $(PROJECT).1 -MFLAGS = +MFLAGS = --no-print-directory diff --git a/src/Makefile b/src/Makefile new file mode 100644 index 0000000..406caee --- /dev/null +++ b/src/Makefile @@ -0,0 +1,47 @@ +BASEDIR=.. +include $(BASEDIR)/config.mk + +OBJ = $(patsubst %.c, %.o, $(wildcard *.c)) +LOBJ = $(patsubst %.c, %.lo, $(wildcard *.c)) + +all: $(TARGET) + +clean: clean-lib + $(RM) $(TARGET) *.o *.lo hints.js.h + +clean-lib: + $(RM) $(LIBTARGET) + +hints.o: hints.js.h +hints.lo: hints.js.h + +hints.js.h: hints.js + @echo "minify $<" + @cat $< | ./js2h.sh > $@ + +$(OBJ): config.h $(BASEDIR)/config.mk +$(LOBJ): config.h $(BASEDIR)/config.mk + +$(TARGET): $(OBJ) + @echo "$(CC) $@" + @$(CC) $(OBJ) -o $@ $(LDFLAGS) + +$(LIBTARGET): $(LOBJ) + @echo "$(CC) $@" + @$(CC) -shared ${LOBJ} -o $@ $(LDFLAGS) + +config.h: + @echo create $@ from config.def.h + @cp config.def.h $@ + +%.o: %.c %.h + @echo "${CC} $@" + @$(CC) $(CFLAGS) -c -o $@ $< + +%.lo: %.c %.h + @echo "${CC} $@" + @$(CC) -DTESTLIB $(CFLAGS) -fPIC -c -o $@ $< + +-include $(OBJ:.o=.d) + +.PHONY: all clean clean-lib diff --git a/tests/Makefile b/tests/Makefile index 9998f1a..8653ecd 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,6 +1,8 @@ -include ../config.mk +BASEDIR=.. +SRCDIR=$(BASEDIR)/src +include $(BASEDIR)/config.mk -CPPFLAGS += -I ../ +CPPFLAGS += -I $(BASEDIR)/ CFLAGS += -fPIC -Wpedantic TEST_PROGS = test-handlers \ @@ -11,7 +13,7 @@ TEST_PROGS = test-handlers \ all: $(TEST_PROGS) LD_LIBRARY_PATH="$(LD_LIBRARY_PATH):." gtester --verbose $(TEST_PROGS) -${TEST_PROGS}: $(notdir $(LIBTARGET)) +${TEST_PROGS}: $(SRCDIR)/$(LIBTARGET) clean: - rm -f $(TEST_PROGS) + $(RM) -f $(TEST_PROGS)