Makefile 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. .POSIX:
  2. PREFIX = /usr/local
  3. BINDIR = $(PREFIX)/bin
  4. MANDIR = $(PREFIX)/share/man
  5. DATADIR = $(PREFIX)/share/inaban
  6. PACKAGE = inaban
  7. DEPS = xkbcommon wlroots wayland-server
  8. EXE = inaban
  9. TRANS =
  10. CC = cc
  11. CFLAGS = -g -Wall -Wextra -Wconversion -Wsign-conversion
  12. CDEPS = `pkg-config --cflags $(DEPS)` -DDATADIR=\"$(DATADIR)\" -DPACKAGE=\"$(PACKAGE)\" -D_POSIX_C_SOURCE=200809L -DWLR_USE_UNSTABLE
  13. LIBS = `pkg-config --libs $(DEPS)`
  14. WAYLAND_PROTOCOLS=$(shell pkg-config --variable=pkgdatadir wayland-protocols)
  15. WAYLAND_SCANNER=$(shell pkg-config --variable=wayland_scanner wayland-scanner)
  16. all: xdg-shell-protocol.c $(EXE) $(TRANS)
  17. po/messages.pot: $(EXE).c
  18. xgettext --keyword=_ --language=C -o $@ --add-comments --sort-output -j $<
  19. po/%.po: po/messages.pot
  20. msgmerge --update $@ $<
  21. ${TRANS}: po/${@:.mo=.po}
  22. mkdir -p locale/${@:.mo=}/LC_MESSAGES
  23. msgfmt -o locale/${@:.mo=}/LC_MESSAGES/$(PACKAGE).mo po/${@:.mo=.po}
  24. .c:
  25. $(CC) -std=c99 -I. $(CFLAGS) $(CDEPS) -o $@ $< $(LDFLAGS) $(LIBS)
  26. xdg-shell-protocol.h:
  27. $(WAYLAND_SCANNER) server-header $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
  28. xdg-shell-protocol.c: xdg-shell-protocol.h
  29. $(WAYLAND_SCANNER) private-code $(WAYLAND_PROTOCOLS)/stable/xdg-shell/xdg-shell.xml $@
  30. install: all
  31. mkdir -p $(DESTDIR)$(BINDIR)
  32. cp -p $(EXE) $(DESTDIR)$(BINDIR)/$(EXE)
  33. #mkdir -p $(DESTDIR)$(MANDIR)/man1
  34. #cp -p $(EXE).1 $(DESTDIR)$(MANDIR)/man1
  35. #mkdir -p $(DESTDIR)$(DATADIR)/locale
  36. #cp -r locale/ $(DESTDIR)$(DATADIR)
  37. clean:
  38. rm -fr locale $(EXE) xdg-shell-protocol.c xdg-shell-protocol.h
  39. format: *.c *.h
  40. clang-format -style=file -assume-filename=.clang-format -i *.c *.h
  41. .PHONY: clean install