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