Makefile (1061B)
1 .POSIX: 2 .SUFFIXES: 3 .PHONY: clean install uninstall test 4 5 BIN = sttemp 6 SRCS = main.c token.c files.c strings.c 7 OBJC = ${SRCS:.c=.o} 8 CFLAGS = -Wall -Werror -Os 9 LDFLAGS = -s 10 11 PREFIX = /usr/local 12 MANPREFIX = ${PREFIX}/share/man 13 14 all: $(BIN) README.md 15 16 strings.o: src/strings.c src/strings.h 17 $(CC) $(CFLAGS) -c src/strings.c 18 19 files.o : src/files.c src/files.h 20 $(CC) $(CFLAGS) -c src/files.c 21 22 token.o: src/token.c src/token.h 23 $(CC) $(CFLAGS) -c src/token.c 24 25 main.o : src/main.c src/config.h 26 $(CC) $(CFLAGS) -c src/main.c 27 28 $(BIN): main.o files.o strings.o token.o 29 $(CC) main.o files.o strings.o token.o -o $(BIN) 30 31 README.md: $(BIN).1 32 pandoc $(BIN).1 -o README.md 33 34 clean: 35 rm -f $(BIN) 36 rm -f *.o 37 38 install: $(BIN) 39 mkdir -p $(DESTDIR)$(PREFIX)/bin 40 mkdir -p $(DESTDIR)$(MANPREFIX)/man1 41 install -m 775 $(BIN) $(DESTDIR)$(PREFIX)/bin/ 42 install -m 644 $(BIN).1 $(DESTDIR)$(MANPREFIX)/man1/ 43 44 uninstall: 45 rm -f $(DESTDIR)$(PREFIX)/bin/$(BIN) 46 rm -f $(DESTDIR)$(MANPREFIX)/man1/$(BIN).1 47 48 test: $(BIN) 49 ./$(BIN) test && cat test && rm -f test 50