Makefile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. TARGET=bim
  2. CFLAGS ?=-g -O2 -std=gnu11 -Wvla -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-result
  3. LDFLAGS ?=-rdynamic
  4. CFLAGS += $(shell docs/git-tag)
  5. ifeq (Darwin,$(shell uname -s))
  6. LDLIBS=/usr/local/lib/libkuroko.a
  7. else
  8. LDLIBS=-l:libkuroko.a
  9. endif
  10. ifeq (klange,$(shell echo $$USER))
  11. CFLAGS += -I../kuroko/src
  12. LDLIBS=../kuroko/libkuroko.a
  13. endif
  14. LDLIBS += -ldl -lpthread
  15. prefix=/usr/local
  16. exec_prefix=$(prefix)
  17. bindir=$(exec_prefix)/bin
  18. datarootdir=$(prefix)/share
  19. datadir=$(datarootdir)
  20. INSTALL=install
  21. INSTALL_PROGRAM=$(INSTALL)
  22. INSTALL_DATA=$(INSTALL) -m 644
  23. .PHONY: all clean distclean install install-strip uninstall
  24. all: $(TARGET)
  25. *.o: bim.h
  26. bim: bim.o
  27. clean:
  28. -rm -f $(TARGET) bim.o
  29. distclean: clean
  30. install: all
  31. mkdir -p $(DESTDIR)$(bindir)
  32. $(INSTALL_PROGRAM) $(TARGET) $(DESTDIR)$(bindir)/$(TARGET)
  33. mkdir -p $(DESTDIR)$(datadir)/bim/themes
  34. $(INSTALL_DATA) themes/*.krk $(DESTDIR)$(datadir)/bim/themes/
  35. mkdir -p $(DESTDIR)$(datadir)/bim/syntax
  36. $(INSTALL_DATA) syntax/*.krk $(DESTDIR)$(datadir)/bim/syntax/
  37. install-strip: all
  38. $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
  39. uninstall:
  40. rm -f $(DESTDIR)$(bindir)/$(TARGET)
  41. .PHONY: tags
  42. tags:
  43. ctags --c-kinds=+lx bim.c bim.h syntax/*
  44. # Action definitions create functions with the same name
  45. ctags --langdef=bim --language-force=bim --regex-bim='/^BIM_ACTION.([a-zA-Z_]*),/\1/f/' --append bim.c
  46. # Command definitions are prefixed with bim_command_
  47. ctags --langdef=bim --language-force=bim --regex-bim='/^BIM_COMMAND.([a-zA-Z_]*),/bim_command_\1/f/' --append bim.c
  48. ctags --langdef=bim --language-force=bim --regex-bim='/^BIM_PREFIX_COMMAND.([a-zA-Z_]*),/bim_command_\1/f/' --append bim.c
  49. # Flexible arrays create arrays, functions, count, and space objects
  50. ctags --langdef=bim --language-force=bim --regex-bim='/^FLEXIBLE_ARRAY.([a-zA-Z_]*),/\1/v/' --append bim.c
  51. ctags --langdef=bim --language-force=bim --regex-bim='/^FLEXIBLE_ARRAY.[a-zA-Z_]*,([a-zA-Z_]*),/\1/f/' --append bim.c
  52. ctags --langdef=bim --language-force=bim --regex-bim='/^FLEXIBLE_ARRAY.([a-zA-Z_]*),/flex_\1_count/v/' --append bim.c
  53. ctags --langdef=bim --language-force=bim --regex-bim='/^FLEXIBLE_ARRAY.([a-zA-Z_]*),/flex_\1_space/v/' --append bim.c