1#!/bin/sh
2#
3# Copyright (c) 2000, 2017  Peter Pentchev
4# All rights reserved.
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25# SUCH DAMAGE.
26
27BDECFLAGS=	-W -Wall -Wbad-function-cast -Wcast-align \
28		-Wcast-qual -Wchar-subscripts -Wconversion -Wno-sign-conversion -Winline \
29		-Wmissing-prototypes -Wnested-externs -Wpointer-arith \
30		-Wredundant-decls -Wshadow -Wstrict-prototypes -Wwrite-strings
31
32CC		?= cc
33
34CPPFLAGS_STD	?= -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700
35
36CFLAGS_WARN	?= -Wall -W -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings ${BDECFLAGS}
37CFLAGS_OPT	?=
38#CFLAGS_OPT	?= -O2 -pipe
39CFLAGS_DBG	?= -ggdb -g3
40#CFLAGS_DBG	?=
41CFLAGS_STD	?= -std=c99 -pedantic
42
43CPPFLAGS	?=
44CPPFLAGS	+= ${CPPFLAGS_STD}
45
46CFLAGS		?= ${CFLAGS_WARN} ${CFLAGS_OPT} ${CFLAGS_DBG}
47CFLAGS		+= ${CFLAGS_STD}
48
49LDFLAGS		?=
50
51RM		?= rm -f
52MKDIR		?= mkdir -p
53ECHO		?= echo
54
55INSTALL		?= /usr/bin/install
56
57BINOWN		?= root
58BINGRP		?= root
59BINMODE		?= 555
60
61SHAREOWN	?= ${BINOWN}
62SHAREGRP	?= ${BINGRP}
63SHAREMODE	?= 444
64
65INST_COPY	?= -c
66INST_MODE_P	?= -m 755
67INST_MODE_D	?= -m 644
68INST_OWN_P	?= -o root
69INST_OWN_D	?= -o root
70
71INSTALL_PROGRAM	?= ${INSTALL} ${INST_COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE}
72INSTALL_DATA	?= ${INSTALL} ${INST_COPY} -o ${SHAREOWN} -g ${SHAREGRP} -m ${SHAREMODE}
73
74PREFIX		?= /usr/local
75BINDIR		?= ${PREFIX}/bin
76MANDIR		?= ${PREFIX}/share/man
77MAN1DIR		?= ${MANDIR}/man1
78
79TGT		= rname
80OBJS		= rname.o
81SRCS		= rname.c
82LIBS		=
83MAN1		= ${TGT}.1
84MAN1Z		= ${MAN1}.gz
85
86all:		${TGT} ${MAN1Z}
87
88clean:
89		${RM} ${TGT} ${OBJS} ${MAN1Z}
90
91install:	install-bin install-man
92
93install-bin:	${TGT}
94		${MKDIR} ${DESTDIR}${BINDIR}
95		${INSTALL_PROGRAM} ${TGT} ${DESTDIR}${BINDIR}
96
97install-man:	${MAN1Z}
98		${MKDIR} ${DESTDIR}${MAN1DIR}
99		${INSTALL_DATA} ${MAN1Z} ${DESTDIR}${MAN1DIR}
100
101install-share:
102
103${TGT}:		${OBJS}
104		${CC} ${LDFLAGS} -o ${TGT} ${OBJS} ${LIBS}
105
106.c.o:
107		${CC} -c ${CPPFLAGS} ${CFLAGS} $<
108
109%.1.gz:		%.1
110		gzip -nc $< > $@ || (rm -f -- $@; false)
111
112test:		all
113		prove t
114