File: Makefile

package info (click to toggle)
psmisc 19-2
  • links: PTS
  • area: main
  • in suites: potato
  • size: 164 kB
  • ctags: 190
  • sloc: ansic: 1,624; makefile: 89; sh: 9
file content (58 lines) | stat: -rw-r--r-- 1,794 bytes parent folder | download
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
CC=cc
CFLAGS=-O2 -DPSMISC_VERSION=\"`cat VERSION`\" \
  -D_GNU_SOURCE \
  -Wall -Wno-parentheses -Wwrite-strings \
  # -Wcast-align -Wconversion -g
LDFLAGS=#-s -N #-Xlinker -qmagic
REAL_CPP=cc -E
PROGS=killall pstree fuser
EBINDIR=/bin		# essential binaries
BINDIR=/usr/bin		# not so essential ones
MANDIR=/usr/man/man1	# all man pages

all:		$(PROGS)

signames.h:	/usr/include/signal.h
		$(REAL_CPP) -dM - </usr/include/signal.h | \
		tr -s '\t ' ' ' | sort -n +2 | sed \
	's:#define SIG\([A-Z]\+[0-9]*\) \([0-9]\+\) *\(\|/\*.*\)$$:{\
\2,"\1" },:p;d' | \
		  grep -v '[0-9][0-9][0-9]' >signames.h || \
		  { rm -f signames.h; exit 1; }
		grep '^{ 1,"HUP" },$$' signames.h >/dev/null || \
		  { rm -f signames.h; exit 1; }

signals.o:	signals.h signals.c signames.h Makefile

fuser.o:	fuser.c comm.h signals.h Makefile VERSION
killall.o:	killall.c comm.h signals.h Makefile VERSION

fuser:		fuser.o signals.o
killall:	killall.o signals.o

pstree:		pstree.c comm.h Makefile VERSION
		$(CC) $(CFLAGS) $(LDFLAGS) -o pstree pstree.c -lncurses

install:	$(PROGS)
#		EBINDIR is expected to exist, so we don't try to create it
		install -o 0 -g 0 -m 555 fuser $(EBINDIR)
		[ -d $(BINDIR) ] || install -d -o 0 -g 0 -m 755 $(BINDIR)
		install -o 0 -g 0 -m 555 killall $(BINDIR)
		install -o 0 -g 0 -m 555 pstree $(BINDIR)
		[ -d $(MANDIR) ] || install -d -o 0 -g 0 -m 755 $(MANDIR)
		install -o 0 -g 0 -m 444 fuser.1 $(MANDIR)
		install -o 0 -g 0 -m 444 killall.1 $(MANDIR)
		install -o 0 -g 0 -m 444 pstree.1 $(MANDIR)

install-pidof:
		@[ -x `echo $(BINDIR)`/killall ] || { \
		  echo "Need `echo $(BINDIR)`/killall to install pidof"; \
		  exit 1; }
		ln -sf killall `echo $(BINDIR)`/pidof
		install -o 0 -g 0 -m 444 pidof.1 $(MANDIR)

clean:
		rm -f *.o signames.h

spotless:	clean
		rm -f $(PROGS)