-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
45 lines (33 loc) · 772 Bytes
/
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
CC = cc
SCDOC = scdoc
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
MANPREFIX = $(PREFIX)/share/man
CFLAGS = -g -Wall -Wextra
PROGRAM = pfork
OBJECTS = main.o pfork.o
HEADERS = pfork.h
MAN1_PAGES = pfork.1
INTERNAL_CFLAGS = \
-std=c23 \
-I. \
$(CFLAGS)
all: $(PROGRAM) $(MAN1_PAGES)
$(PROGRAM): $(OBJECTS)
$(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LDLIBS)
$(OBJECTS): $(HEADERS)
clean:
rm -rf $(PROGRAM) $(MAN1_PAGES) *.o
# user should first run make all
install:
mkdir -p $(DESTDIR)$(PREFIX)/bin
cp -f $(PROGRAM) $(DESTDIR)$(BINDIR)
mkdir -p $(DESTDIR)$(MANPREFIX)/man1
cp -f $(MAN1_PAGES) $(DESTDIR)$(MANPREFIX)/man1
uninstall:
rm -f $(DESTDIR)$(BINDIR)/$(PROGRAM)
.SUFFIXES: .c .o .scd
.c.o:
$(CC) $(INTERNAL_CFLAGS) -c -o $@ $<
.scd:
$(SCDOC) < $< > $@