4.4BSD/usr/src/contrib/news/inn/MakeRnews

#! /bin/sh
##  $Revision: 1.6 $
##  Script to build an easy-to-ship single directory that contains
##  everything needed to build rnews on a machine.

##  Optional first argument is the destination architecture, like "sun4"
DIR=rnews.${1-dist}
if [ -d ${DIR} ] ; then
    echo ${DIR} exists!
    exit 1
fi
mkdir ${DIR}

##  Copy the files.
for I in \
	config/subst.c config/subst.sh config/config.data \
	doc/rnews.1 doc/inn.conf.5 frontends/rnews.c \
	include/clibrary.h include/configdata.h include/libinn.h \
	include/logging.h include/macros.h include/mydir.h include/mystring.h \
	include/mymemory.h include/nntp.h include/paths.h \
	lib/closeonexec.c lib/findheader.c lib/getconfig.c lib/getfqdn.c \
	lib/localopen.c lib/remopen.c lib/sendarticle.c lib/sendpass.c \
	lib/strerror.c lib/waitnb.c lib/xmemerr.c lib/xmalloc.c \
	lib/xrealloc.c \
	site/inn.conf site/passwd.nntp ; do \
    cp $I ${DIR}
done

##  Write the Makefile.  We duplicate the RCS revision string of the
##  script into the Makefile on purpose.
cat <<\EOF >${DIR}/Makefile
##  $Revision: 1.6 $
SHELL	= /bin/sh
MAKE	= make

##  Configuration dependencies -- edit as appropriate
DEFS	=
CFLAGS	= $(DEFS) -g
LDFLAGS	= -Bstatic
LINTFLAGS=-b -h $(DEFS)

##  Manual pages -- install as appropriate for your system
DOC	= rnews.1 inn.conf.5

##  Configuration files -- install in /usr/lib/news
CONF	= inn.conf passwd.nntp

##  Program sources.
HEADERS	= \
	clibrary.h configdata.h libinn.h macros.h nntp.h paths.h
SOURCES	= \
	closeonexec.c findheader.c getconfig.c getfqdn.c localopen.c \
	remopen.c rnews.c sendarticle.c sendpass.c strerror.c waitnb.c \
	xmalloc.c xmemerr.c xrealloc.c
OBJECTS	= \
	closeonexec.o findheader.o getconfig.o getfqdn.o localopen.o \
	remopen.o rnews.o sendarticle.o sendpass.o strerror.o waitnb.o \
	xmalloc.o xmemerr.o xrealloc.o

##  First target, just compile everything.
all:		rnews $(DOC) $(CONF)
	date >all

##  Edit these lines as appropriate for your system
install:	all
	cp rnews /usr/bin/rnews
	cp $(CONF) /usr/lib/news
	cp rnews.1 /usr/man/man1
	cp inn.conf.5 /usr/man/man5

##  Clean up, remove non-essentials.
clobber clean:
	rm -f rnews core tags lint a.out *.o

lint:           rnews
	lint $(LINTFLAGS) $(SOURCES) >lint

rnews:		$(OBJECTS)
	rm -f rnews
	$(CC) $(LDFLAGS) -o rnews $(CFLAGS) $(OBJECTS)

subst:		subst.c subst.sh
	make c || make sh || { rm -f subst ; echo Failed 1>&2 ; }

config:		subst config.data $(DOC) $(HEADERS) Makefile
	./subst -f config.data $(DOC) $(HEADERS) Makefile
	date >config

c:
	@rm -f subst
	$(CC) -o subst subst.c
sh:
	@rm -f subst
	cp subst.sh subst
	chmod +x subst

##  Dependencies.  Default list, below, is probably good enough.
depend:         Makefile $(SOURCES)
	makedepend $(DEFS) $(SOURCES)

# DO NOT DELETE THIS LINE -- make depend depends on it.
$(OBJECTS):	$(HEADERS)
EOF