-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
63 lines (48 loc) · 1.31 KB
/
Makefile
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#
# Makefile
#
# Author : Finn Rayment <finn@rayment.fr>
# Date created : 23/11/2021
#
DEBUG:=0
VERSION:=1.0.0
BINARY:=bdiff
PREFIX:=/usr/local
MAN_PREFIX:=/usr/local/man
CC:=gcc
LD:=$(CC)
CCFLAGS:=--std=c89
CXXFLAGS:=-Wall -Wextra -Wpedantic -Werror --pedantic-errors \
-O3 -DVERSION=\"${VERSION}\" -D_POSIX_C_SOURCE=2
LDFLAGS:=
ifeq ($(DEBUG),1)
CXXFLAGS+=-g -DDEBUG=1
endif
CSOURCES:=$(wildcard src/*.c) $(wildcard src/*/*.c)
COBJECTS:=$(patsubst src/%,obj/%,$(patsubst %.c,%.o,$(CSOURCES)))
INCLUDE:=
DISTFILES:=Makefile COPYING README
DISTDIRS:=man src
all: $(COBJECTS)
mkdir -p build
$(LD) $(LDFLAGS) $(COBJECTS) $(LIBLIBS) -o build/$(BINARY)
obj/%.o: src/%.c
mkdir -p $(shell dirname $@)
$(CC) $(CCFLAGS) $(CXXFLAGS) $(LIBFLAGS) $(INCLUDE) -c $< -o $@
dist:
rm -rf $(BINARY)-$(VERSION)
mkdir -p $(BINARY)-$(VERSION)
cp -R $(DISTFILES) $(DISTDIRS) $(BINARY)-$(VERSION)
tar -cJf $(BINARY)-$(VERSION).tar.xz $(BINARY)-$(VERSION)
rm -rf $(BINARY)-$(VERSION)
install:
install -d $(PREFIX)/bin
install -m 751 build/$(BINARY) $(PREFIX)/bin/$(BINARY)
install -d $(MAN_PREFIX)/man1
install -m 644 man/$(BINARY).1 $(MAN_PREFIX)/man1/$(BINARY).1
uninstall:
rm -f $(PREFIX)/bin/$(BINARY)
rm -f $(MAN_PREFIX)/man1/$(BINARY).1
clean:
rm -rf build obj $(BINARY)
.PHONY: all dist install uninstall clean