1
2# Darwin /dev/kmem-based lsof Makefile
3#
4# $Id: Makefile,v 1.8 2008/10/21 16:15:34 abe Exp $
5
6PROG=	lsof
7
8BIN=	${DSTROOT}/usr/sbin
9
10DOC=	${DSTROOT}/usr/share/man/man8
11
12I=/usr/include
13S=/usr/include/sys
14L=/usr/include/local
15P=
16
17CDEF=	${RC_CFLAGS}
18CDEFS=	${CDEF} ${CFGF}
19INCL=	${DINC}
20override CFLAGS= ${CDEFS} ${INCL} ${DEBUG}
21
22GRP= 
23
24HDR=    lsof.h lsof_fields.h dlsof.h machine.h proto.h dproto.h
25
26SRC=    ddev.c dfile.c dmnt.c dnode.c dnode1.c dproc.c dsock.c dstore.c \
27	arg.c main.c misc.c node.c print.c proc.c store.c usage.c util.c
28
29OBJ=	ddev.o dfile.o dmnt.o dnode.o dnode1.o dproc.o dsock.o dstore.o \
30	arg.o main.o misc.o node.o print.o proc.o store.o usage.o util.o
31
32MAN=	lsof.8
33
34OTHER=	
35
36SHELL=	/bin/sh
37
38SOURCE=	Makefile ${OTHER} ${MAN} ${HDR} ${SRC}
39
40all: ${PROG}
41
42${PROG}: ${LIB} ${P} ${OBJ}
43	${CC} -o $@ ${CFLAGS} ${OBJ} ${CFGL}
44
45clean: FRC
46	rm -f Makefile.bak ${PROG} a.out core errs lint.out tags *.o version.h
47	rm -f machine.h.old new_machine.h
48	(cd lib; ${MAKE} -f Makefile.skel clean)
49
50install-strip: all FRC
51	mkdir -p ${BIN}
52	install -c -s -m 2755 -g kmem ${PROG} ${BIN}
53	mkdir -p ${DOC}
54	install -c -m 444 ${MAN} ${DOC}
55
56install: all FRC
57	@echo ''
58	@echo 'Please write your own install rule.  Lsof for Darwin below 8'
59	@echo 'should be installed setgid to the group that has permission'
60	@echo 'to read /dev/kmem, often kmem or sys.  Lsof for Darwin 8 and'
61	@echo 'above should be installed setuid-root.  Your install rule'
62	@echo 'actions for Darwin below 8 might look something like this:'
63	@echo ''
64	@echo '    install -m 2xxx -g $${GRP} $${PROG} $${BIN}'
65	@echo '    install -m 444 $${MAN} $${DOC}'
66	@echo ''
67	@echo 'Your install rule actions for Darwin 8 and above might look'
68	@echo 'something like this:'
69	@echo ''
70	@echo '    install -m 4xxx -o root $${PROG} $${BIN}'
71	@echo '    install -m 444 $${MAN} $${DOC}'
72	@echo ''
73	@echo 'You will have to complete the xxx modes, the GRP value, and'
74	@echo 'the skeletons for the BIN and DOC strings, given at the'
75	@echo 'beginning of this Makefile, e.g.,'
76	@echo ''
77	@echo '    BIN= $${DESTDIR}/usr/local/etc'
78	@echo '    DOC= $${DESTDIR}/usr/man/man8'
79	@echo '    GRP= kmem'
80	@echo ''
81
82${LIB}: FRC
83	(cd lib; ${MAKE} DEBUG="${DEBUG}" CFGF="${CFGF}")
84
85version.h:	FRC
86	@echo Constructing version.h
87	@rm -f version.h
88	@echo '#define	LSOF_BLDCMT	"${LSOF_BLDCMT}"' > version.h;
89	@echo '#define	LSOF_CC		"${CC}"' >> version.h
90	@echo '#define	LSOF_CCV	"${CCV}"' >> version.h
91	@echo '#define	LSOF_CCDATE	"'`date`'"' >> version.h
92	@echo '#define	LSOF_CCFLAGS	"'`echo ${CFLAGS} | sed 's/\\\\(/\\(/g' | sed 's/\\\\)/\\)/g' | sed 's/"/\\\\"/g'`'"' >> version.h
93	@echo '#define  LSOF_CINFO      "${CINFO}"' >> version.h
94	@if [ "X${LSOF_HOST}" = "X" ]; then \
95	  echo '#define	LSOF_HOST	"'`uname -n`'"' >> version.h; \
96	else \
97	  if [ "${LSOF_HOST}" = "none" ]; then \
98	    echo '#define	LSOF_HOST	""' >> version.h; \
99	  else \
100	    echo '#define	LSOF_HOST	"${LSOF_HOST}"' >> version.h; \
101	  fi \
102	fi
103	@echo '#define	LSOF_LDFLAGS	"${CFGL}"' >> version.h
104	@if [ "X${LSOF_LOGNAME}" = "X" ]; then \
105	  echo '#define	LSOF_LOGNAME	"${LOGNAME}"' >> version.h; \
106	else \
107	  if [ "${LSOF_LOGNAME}" = "none" ]; then \
108	    echo '#define	LSOF_LOGNAME	""' >> version.h; \
109	  else \
110	    echo '#define	LSOF_LOGNAME	"${LSOF_LOGNAME}"' >> version.h; \
111	  fi; \
112	fi
113	@if [ "X${LSOF_SYSINFO}" = "X" ]; then \
114	    echo '#define	LSOF_SYSINFO	"'`uname -a`'"' >> version.h; \
115	else \
116	  if [ "${LSOF_SYSINFO}" = "none" ]; then \
117	    echo '#define	LSOF_SYSINFO	""' >> version.h; \
118	  else \
119	    echo '#define	LSOF_SYSINFO	"${LSOF_SYSINFO}"' >> version.h; \
120	  fi \
121	fi
122	@if [ "X${LSOF_USER}" = "X" ]; then \
123	  echo '#define	LSOF_USER	"${USER}"' >> version.h; \
124	else \
125	  if [ "${LSOF_USER}" = "none" ]; then \
126	    echo '#define	LSOF_USER	""' >> version.h; \
127	  else \
128	    echo '#define	LSOF_USER	"${LSOF_USER}"' >> version.h; \
129	  fi \
130	fi
131	@sed '/VN/s/.ds VN \(.*\)/#define	LSOF_VERSION	"\1"/' < version >> version.h
132
133FRC:
134
135# DO NOT DELETE THIS LINE - make depend DEPENDS ON IT
136
137ddev.o:		${HDR} ddev.c
138
139dfile.o:	${HDR} dfile.c
140
141dmnt.o:		${HDR} dmnt.c
142
143dnode.o:	${HDR} dnode.c
144
145dnode1.o:	${HDR} dnode1.c
146
147dproc.o:	${HDR} dproc.c
148
149dsock.o:	${HDR} dsock.c
150
151dstore.o:	${HDR} dstore.c
152
153arg.o:		${HDR} arg.c
154
155main.o:		${HDR} main.c
156
157misc.o:		${HDR} misc.c
158
159node.o:		${HDR} node.c
160
161print.o:	${HDR} print.c
162
163proc.o:		${HDR} proc.c
164
165store.o:	${HDR} store.c
166
167usage.o:	${HDR} version.h usage.c
168
169util.o:		${HDR} util.c
170
171# *** Do not add anything here - It will go away. ***
172