Makefile (1052B)
1 .POSIX: 2 .SUFFIXES: 3 4 CC = cc 5 VERSION = 1.0 6 TARGET = ccc 7 MANPAGE = $(TARGET).1 8 CONF = config.h 9 PREFIX ?= /usr/local 10 BINDIR = $(PREFIX)/bin 11 MANDIR = $(PREFIX)/share/man/man1 12 13 # Flags 14 CFLAGS = -O3 -march=native -mtune=native -pipe -s -flto -std=c99 -pedantic -Wall -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 15 16 SRC = $(TARGET).c 17 18 $(TARGET): $(SRC) $(CONF) 19 $(CC) $(SRC) -o $@ $(CFLAGS) 20 21 dist: install 22 mkdir -p $(TARGET)-$(VERSION) 23 cp -R README.md $(MANPAGE) $(TARGET) $(TARGET)-$(VERSION) 24 tar -cf $(TARGET)-$(VERSION).tar $(TARGET)-$(VERSION) 25 gzip $(TARGET)-$(VERSION).tar 26 rm -rf $(TARGET)-$(VERSION) 27 28 install: $(TARGET) 29 mkdir -p $(DESTDIR)$(BINDIR) 30 mkdir -p $(DESTDIR)$(MANDIR) 31 cp -p $(TARGET) $(DESTDIR)$(BINDIR)/$(TARGET) 32 chmod 755 $(DESTDIR)$(BINDIR)/$(TARGET) 33 sed "s/VERSION/${VERSION}/g" < $(MANPAGE) > $(DESTDIR)/$(MANDIR)/$(MANPAGE) 34 chmod 644 $(DESTDIR)$(MANDIR)/$(MANPAGE) 35 36 uninstall: 37 $(RM) $(DESTDIR)$(BINDIR)/$(TARGET) 38 $(RM) $(DESTDIR)$(MANDIR)/$(MANPAGE) 39 40 clean: 41 $(RM) $(TARGET) 42 43 all: $(TARGET) 44 45 .PHONY: all dist install uninstall clean