diff options
Diffstat (limited to '')
-rw-r--r-- | Makefile | 77 |
1 files changed, 65 insertions, 12 deletions
@@ -1,3 +1,10 @@ +PREFIX = /usr +BINDIR = $(PREFIX)/bin +DATADIR = $(PREFIX)/share +MANDIR = $(DATADIR)/man +MAN1DIR = $(MANDIR)/man1 +LICENSEDIR = $(DATADIR)/licenses + PKGNAME = coopgammad COMMAND = coopgammad @@ -19,19 +26,9 @@ SRC = \ types/message \ types/ring -OPTIMISE = -Og -g - -WARN = -Wall -Wextra -pedantic -Wdouble-promotion -Wformat=2 -Winit-self -Wmissing-include-dirs \ - -Wtrampolines -Wfloat-equal -Wshadow -Wmissing-prototypes -Wmissing-declarations \ - -Wredundant-decls -Wnested-externs -Winline -Wno-variadic-macros -Wsync-nand \ - -Wunsafe-loop-optimizations -Wcast-align -Wstrict-overflow -Wdeclaration-after-statement \ - -Wundef -Wbad-function-cast -Wcast-qual -Wwrite-strings -Wlogical-op -Waggregate-return \ - -Wstrict-prototypes -Wold-style-definition -Wpacked -Wvector-operation-performance \ - -Wunsuffixed-float-constants -Wsuggest-attribute=const -Wsuggest-attribute=noreturn \ - -Wsuggest-attribute=pure -Wsuggest-attribute=format -Wnormalized=nfkc -Wconversion +OPTIMISE = -O2 -FFLAGS = -fstrict-aliasing -fstrict-overflow -fipa-pure-const -ftree-vrp -fstack-usage \ - -funsafe-loop-optimizations +WARN = -Wall -Wextra -pedantic CPP_linux = -DHAVE_LINUX_PROCFS CPP_linux-libre = $(CPP_linux) @@ -44,9 +41,16 @@ CPPFLAGS += -DUSE_VALGRIND endif + .PHONY: all all: bin/coopgammad +.PHONY: base +base: cmd + +.PHONY: cmd +cmd: bin/coopgammad + bin/coopgammad: $(foreach S,$(SRC),obj/$(S).o) @mkdir -p -- "$$(dirname -- "$@")" $(CC) $(LDFLAGS) -o $@ $^ @@ -56,6 +60,55 @@ obj/%.o: src/%.c src/*.h src/*/*.h $(CC) $(CCFLAGS) $(CPPFLAGS) -c -o $@ $< + +.PHONY: install +install: install-base install-doc + +.PHONY: install-base +install-base: install-cmd install-copyright + +.PHONY: install-copyright +install-copyright: install-license install-copying + +.PHONY: install-doc +install-doc: install-man + +.PHONY: install-cmd +install-cmd: bin/coopgammad + mkdir -p -- "$(DESTDIR)$(BINDIR)" + cp -- bin/coopgammad "$(DESTDIR)$(BINDIR)/$(COMMAND)" + chmod 0755 -- "$(DESTDIR)$(BINDIR)/$(COMMAND)" + +.PHONY: install-license +install-license: + mkdir -p -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" + cp -- LICENSE "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/LICENSE" + chmod 0644 -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/LICENSE" + +.PHONY: install-copying +install-copying: + mkdir -p -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" + cp -- COPYING "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/COPYING" + chmod 0644 -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/COPYING" + +.PHONY: install-man +install-man: + mkdir -p -- "$(DESTDIR)$(MAN1DIR)" + cp -- doc/coopgammad.1 "$(DESTDIR)$(MAN1DIR)/$(COMMAND).1" + chmod 644 -- "$(DESTDIR)$(MAN1DIR)/$(COMMAND).1" + + + +.PHONY: uninstall +uninstall: + -rm -- "$(DESTDIR)$(MAN1DIR)/$(COMMAND).1" + -rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/COPYING" + -rm -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)/LICENSE" + -rmdir -- "$(DESTDIR)$(LICENSEDIR)/$(PKGNAME)" + -rm -- "$(DESTDIR)$(BINDIR)/$(COMMAND)" + + + .PHONY: clean clean: -rm -r bin obj |