1# Installation directories following GNU conventions 2prefix ?= /usr/local 3exec_prefix = $(prefix) 4bindir = $(exec_prefix)/bin 5sbindir = $(exec_prefix)/sbin 6datarootdir = $(prefix)/share 7datadir = $(datarootdir) 8includedir = $(prefix)/include 9mandir = $(datarootdir)/man 10 11BIN=bin 12OBJ=obj 13SRC=src 14 15CC ?= gcc 16CFLAGS ?= -Wextra -Wall 17 18.PHONY: all install uninstall clean 19 20nms: $(OBJ)/nmscharset.o $(OBJ)/nmstermio.o $(OBJ)/nmseffect.o $(OBJ)/nms.o | $(BIN) 21 $(CC) $(CFLAGS) -o $(BIN)/$@ $^ 22 23sneakers: $(OBJ)/nmscharset.o $(OBJ)/nmstermio.o $(OBJ)/nmseffect.o $(OBJ)/sneakers.o | $(BIN) 24 $(CC) $(CFLAGS) -o $(BIN)/$@ $^ 25 26all: nms sneakers 27 28all-ncurses: nms-ncurses sneakers-ncurses 29 30nms-ncurses: $(OBJ)/nmscharset.o $(OBJ)/nmstermio_ncurses.o $(OBJ)/nmseffect.o $(OBJ)/nms.o | $(BIN) 31 $(CC) $(CFLAGS) -o $(BIN)/nms $^ -lncurses 32 33sneakers-ncurses: $(OBJ)/nmscharset.o $(OBJ)/nmstermio_ncurses.o $(OBJ)/nmseffect.o $(OBJ)/sneakers.o | $(BIN) 34 $(CC) $(CFLAGS) -o $(BIN)/sneakers $^ -lncurses 35 36$(OBJ)/%.o: $(SRC)/%.c | $(OBJ) 37 $(CC) $(CFLAGS) -o $@ -c $< 38 39$(BIN): 40 mkdir $(BIN) 41 42$(OBJ): 43 mkdir $(OBJ) 44 45clean: 46 rm -rf $(BIN) 47 rm -rf $(OBJ) 48 49install: 50 install -d $(DESTDIR)$(mandir)/man6 51 install -m644 nms.6 sneakers.6 $(DESTDIR)$(mandir)/man6 52 install -d $(DESTDIR)$(bindir) 53 cd $(BIN) && install * $(DESTDIR)$(bindir) 54 55uninstall: 56 rm -f $(DESTDIR)$(bindir)/nms; 57 rm -f $(DESTDIR)$(bindir)/sneakers; 58 rm -f $(DESTDIR)$(mandir)/man6/nms.6 59 rm -f $(DESTDIR)$(mandir)/man6/sneakers.6 60