-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
38 lines (27 loc) · 748 Bytes
/
Copy pathMakefile
File metadata and controls
38 lines (27 loc) · 748 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
PREFIX ?= /usr/local
BINDIR := $(PREFIX)/bin
MANDIR := $(PREFIX)/share/man/man1
CC := cc
CFLAGS := -O2 -Wall
BINARY := argc
SOURCE := argc.c
SOURCE_ASM := argc.asm
.PHONY: all hash clean install uninstall
all: $(BINARY)
hash: $(BINARY)
sha256sum $(BINARY) > $(BINARY).sha256
$(BINARY): $(SOURCE)
$(CC) $(CFLAGS) -o $@ $<
argcasm: $(SOURCE_ASM)
nasm -f elf64 $< -o $(BINARY).o
gcc -no-pie $(BINARY).o -o $@
clean:
rm -f $(BINARY) $(BINARY).o
install: $(BINARY) $(BINARY).1
install -Dm755 $(BINARY) $(BINDIR)/$(BINARY)
install -Dm644 $(BINARY).1 $(MANDIR)/$(BINARY).1
@echo "$(BINARY): installed to $(BINDIR), manpage to $(MANDIR)"
uninstall:
rm -f $(BINDIR)/$(BINARY)
rm -f $(MANDIR)/$(BINARY).1
@echo "$(BINARY): uninstalled"