$NetBSD: patch-ab,v 1.8 2000/09/04 11:29:36 tron Exp $ --- Makefile.orig Mon Sep 4 10:37:54 2000 +++ Makefile Mon Sep 4 10:55:54 2000 @@ -0,0 +1,475 @@ +# +# Makefile for faces, an icon face server, plus associated software. +# +# Graphical versions for NeWS, SunView, X11 and XView. +# +# @(#)Makefile.dist 1.10 91/11/19 +# +# Copyright (c) Rich Burridge. +# Sun Microsystems, Australia - All rights reserved. +# +# Permission is given to distribute these sources, as long as the +# copyright messages are not removed, and no monies are exchanged. +# +# No responsibility is taken for any errors inherent either +# to the comments or the code of this program, but if reported +# to me then an attempt will be made to fix them. +# +#======================================================================== +# +# There are various small changes needed when compiling faces on +# different systems. These have been isolated here, and should be +# uncommented and set accordingly, if needed. +# +#======================================================================== +# Installation prefix. +#PREFIX ?=/usr/local +#------------------------------------------------------------------------ +# If you want audio support, then the following line should be uncommented. +# +AUDIO_SUPPORT = -DAUDIO_SUPPORT +#======================================================================== +# There is a default command (/usr/demo/SOUND/play), which is used to +# play audio files. Alternatively you can specify your own custom +# command here. Uncomment the following line and set appropriately. +# +AUDIO_CMD = -DAUDIO_CMD=\"$(PREFIX)/bin/rplay\" +#======================================================================== +# Faces displays a background pattern in its' window. When the window +# is not completely full, this gives the appearance of trying to blend +# in with the background. By default, this is a root gray color, but you +# can specify the name of a file containing an alternate pattern to use. +# Uncomment the next two lines and set appropriately. +# +#BACKNAME = $(PREFIX)/sample-background +#BACKGROUND = -DBACKGROUND=\"$(BACKNAME)\" +#------------------------------------------------------------------------ +# Uncomment the following two lines to use the Domain Name Service to +# attempt to convert unqualified hostnames, or hostnames with partial +# domains to fully qualified domain names. +# +# When used with NISLOOKUP, DNSLOOKUP will take precedance. +# +# NOTE that the domain name returned by DNS will be converted to lower +# case before attempting a machines.tab match, or constructing an icon +# file name. +# +# NOTE that for this to work you must have at least a minimal +# /etc/resolv.conf file containing a valid nameserver entry. +# +DNSLOOKUP = -DDNSLOOKUP +DNSLIB = +#------------------------------------------------------------------------ +# If you do not want to show the number of messages on the face icon, +# then uncomment the next line. +# +#DONTSHOWNO = -DDONTSHOWNO +#------------------------------------------------------------------------ +# If you do not want to show the timestamp on the face icon, then +# uncomment the next line. +# +#DONTSHOWTIME = -DDONTSHOWTIME +#------------------------------------------------------------------------ +# If you do not want to show the username on the face icon, then +# uncomment the next line. +# +#DONTSHOWUSER = -DDONTSHOWUSER +#------------------------------------------------------------------------ +# By default, faces looks for the face images in $(PREFIX)/faces. If +# you wish to specify an alternate location, then these two lines should +# be uncommented and set appropriately. Note that the value must be +# a single directory name, not a colon separated list of paths. +# +FACEDIR = $(PREFIX)/share/faces +CFACEDIR = -DFACEDIR=\"$(FACEDIR)\" +#------------------------------------------------------------------------ +# It is possible to determine what type of monitoring faces does at +# run time with different command line options, but it is also possible +# to define it at compile time. +# +# Monitor type (0 = mail (new), 1 = mail (all), 2 = print queue). +# 3 = custom prog, 4 = users). +# +#FMONTYPE = -DFMONTYPE=0 +#------------------------------------------------------------------------ +# If you have the poll(2) system call, then uncomment the following +# definition. Note that you will also have to uncomment the NOSELECT +# definition. This is needed for SVR4 machines. +# +#HASPOLL = -DHASPOLL +#------------------------------------------------------------------------ +# Some users on monochrome screens display everything in reverse video. +# If you would like faces to do the same, then this line needs to be +# uncommented. +# +#INVERT = -DINVERT +#------------------------------------------------------------------------ +# When no icon is found for a given user, the unknown icon may be displayed +# either with the user name, or labeled as `unknown'. The former case +# provides the most information, the latter allows all unknown users +# within a given community to be lumped into a single image. To select +# the latter case uncomment the following line. +# +#NAMEUNKNOWN = -DNAMEUNKNOWN +#------------------------------------------------------------------------ +# If you are compiling the NeWS version, then the following two lines +# should be uncommented, and set appropriately. +# +#NEWSINCDIR = -I$(OPENWINHOME)/include +#NEWSLIBDIR = -L$(OPENWINHOME)/lib +#------------------------------------------------------------------------ +# Uncomment the following line to use the Sun Network Information +# Services (NIS, formerly YP) to look for hosts which do not explicitly +# appear in the machines.tab file. When used with DNSLOOKUP, DNSLOOKUP +# takes precedance. +# +# Note that the domain name will be converted to lower case before +# attempting to match in the machines file, or create an icon filename. +# +NISLOOKUP = -DNISLOOKUP +#------------------------------------------------------------------------ +# If you don't want faces to use full domain names for extracting face +# icons, then you should uncomment the NODOMAINS definition below. +# +#NODOMAINS = -DNODOMAINS +#------------------------------------------------------------------------ +# If your system doesn't have the gethostname() system call, then this +# might be a useful alternative. This is needed for SVR4 machines. +# +#NOGETHOSTNAME = -DNOGETHOSTNAME +#------------------------------------------------------------------------ +# By default, faces will check the "From " line first for username and +# hostname, and then the "From:" line. +# Not all machines have the index() string library function. If you +# don't have this function then you should uncomment the NOINDEX +# definition below. +# +#NOINDEX = -DNOINDEX +#-------------------------------------------------------------------------- +# It appears that not every Unix system defines MAXPATHLEN, which indicates +# the maximum length of a Unix pathname. If your system doesn't, then +# you need to uncomment this definition. +# +#NOMAXPATHLEN = -DNOMAXPATHLEN +#-------------------------------------------------------------------------- +# Not every version of Unix (in particular System V derivitives) has the +# select() system call. If your machine doesn't have this call, then you +# need to uncomment the following definition. +# +#NOSELECT = -DNOSELECT +#-------------------------------------------------------------------------- +# If your system lacks the utime() library call and definition, then +# uncomment the following definition. +# +#NOUTIME = -DNOUTIME +#-------------------------------------------------------------------------- +# By default, faces rechecks for new mail or print jobs every sixty +# seconds. If you would like to specify an alternate period, then uncomment +# the following line and set appropriately. +# +#PERIOD = -DPERIOD=30 +#------------------------------------------------------------------------ +# By default, faces will examine printer queues a la Berkeley Style. +# Alternatively, if you have the PLP printer spooling system running, then +# uncomment the next line. +# +#PLP = -DPLP +#------------------------------------------------------------------------- +# If you are using the RAND mailer which uses four ^A characters to mark +# the beginning and end of messages, then you will need to uncomment the +# following line. +# +#RAND = -DRAND +#------------------------------------------------------------------------- +# Faces is designed to work on a big-endian machine by default. If you +# are compiling for a little-endian machine (such as the Sun 386i), then +# you need to uncomment the following line. +# +#REVORDER = -DREVORDER +#------------------------------------------------------------------------ +# If you not running under a BSD4.3 derived system, the parameters +# to the select call are different, and this definition should be +# uncommented. You need to uncomment this for SunOS v3.x. +# +SELTYPE = -DNO_43SELECT +#------------------------------------------------------------------------ +# If you are building faces on a Silicon Graphics machine, then you will +# need to uncomment the following two definitions. +# +#SGIDEF = -Umips +#SGILIBS = -lsun -lc_s +#------------------------------------------------------------------------ +# If the pending mail for users is in a different directory than +# /usr/spool/mail, uncomment the following and set appropriately. +# +SPOOLDIR = -DSPOOLDIR=\"/var/mail\" +#------------------------------------------------------------------------ +# If faces is setup to monitor mail, then the name of the default +# spoolfile is /usr/spool/mail/username. An alternative spoolfile name +# can be given by uncommenting the following line and setting +# appropriately. +# +#SPOOLFILE = -DSPOOLFILE=\"/usr/richb/Mail/pending\" +#-------------------------------------------------------------------------- +# If you are trying to build faces on an SVR4 machine, then you should +# uncomment the following entry, and set SVR4LIBS to the list of SVR4 +# specific libraries needed to link reve. +# +#SVR4LIBS = -lnsl -lsocket -lgen +#-------------------------------------------------------------------------- +# If you are running on a Unix System V machine, then you should uncomment +# the next definition. +# +#SYSV = -DSYSV32 +#-------------------------------------------------------------------------- +# If you are running SunOS v3.x, then pr_ttext doesn't exist, and +# you must uncomment this definition. +# +#TTEXT = -DNO_PR_TTEXT +#------------------------------------------------------------------------ +# Uncomment if building faces under Sequoia's operating system. +# +#TOPIX = -DTOPIX +#-------------------------------------------------------------------------- +# If the -U command line option is given to faces, then mail is sent to +# a special mail alias. This alias is really a shell script, which will +# take the given information, and try to update the faces database. By +# default that alias is called "facemaker", but it is possible to give an +# alternative alias here. This might be useful if a collection of machines +# were remotely mounting the faces database from a file server. +# +#UPDATE = -DUPDATE=\"facemaker@fileserver\" +#------------------------------------------------------------------------ +# If your system does not have the memset() library call, but instead +# uses the bzero() library call, then the following definition needs to +# be uncommented. +# +#USE_BZERO = -DUSE_BZERO +#------------------------------------------------------------------------ +# If your system does not have the getcwd() library call, but instead +# uses the getwd() library call, then the following definition needs to +# be uncommented. +# +#USE_GETWD = -DUSE_GETWD +#------------------------------------------------------------------------ +# If you are compiling the X11 version under MIT X11R3, you will need to +# uncomment the following definition: +# +#X11R3 = -DX11R3 +#------------------------------------------------------------------------ +# If you are compiling the X11 version and the X11 include and +# library files are not in a standard place, then the following +# two lines should be uncommented, and set appropriately. +# +X11INCDIR = -I$(X11BASE)/include +X11LIBDIR = -L$(X11BASE)/lib +#------------------------------------------------------------------------ +# If you are compiling the XView version, then the following two lines +# should be uncommented, and set appropriately. +# +#XVIEWINCDIR = -I$(OPENWINHOME)/include +#XVIEWLIBDIR = -L$(OPENWINHOME)/lib +# +#======================================================================= +# +# Default locations where faces files will be installed. +# You might wish to alter these values. +# +BINDIR = $(PREFIX)/bin +LIBDIR = $(PREFIX)/lib +INCDIR = $(PREFIX)/include +MANDIR = $(PREFIX)/man +MANSECT = 1 + +# +# Options for submakes +# +MAKEOPTS = $(MFLAGS) BINDIR=$(BINDIR) LIBDIR=$(LIBDIR) \ + INCDIR=$(INCDIR) MANDIR=$(MANDIR) CC=$(CC) \ + NOINDEX=$(NOINDEX) SYSV=$(SYSV) + +# +# Override DEBUG on the command line as `DEBUG=-DDEBUG' to enable various +# additional checking diagnostic output options. +# +DEBUG = + +# +# Compilation flags and standard macro definitions. +# +CDEFS = $(AUDIO_SUPPORT) $(AUDIO_CMD) $(BACKGROUND) \ + $(DNSLOOKUP) $(DONTSHOWNO) $(DONTSHOWTIME) $(DONTSHOWUSER) \ + $(CFACEDIR) $(FMONTYPE) $(HASPOLL) $(INVERT) \ + $(NAMEUNKNOWN) $(NEWSINCDIR) $(NISLOOKUP) $(NODOMAINS) \ + $(NOGETHOSTNAME) $(NOINDEX) $(NOMAXPATHLEN) $(NOSELECT) \ + $(NOUTIME) $(PERIOD) $(PLP) $(RAND) $(REVORDER) \ + $(SELTYPE) $(SGIDEF) $(SPOOLDIR) $(SPOOLFILE) $(SYSV) \ + $(TTEXT) $(TOPIX) $(UPDATE) $(USE_BZERO) $(USE_GETWD) \ + $(X11R3) $(X11INCDIR) $(XVIEWINCDIR) $(DEBUG) +CCOMP = -pipe -O2 +CFLAGS = $(CCOMP) $(CDEFS) +# +#======================================================================= + +.KEEP_STATE: + +BINARIES = psfaces svfaces xfaces xvfaces + +STDSRCS = address.c get.c main.c mon.c parsefrom.c rec.c +STDOBJS = address.o get.o main.o mon.o parsefrom.o rec.o +STDLIBS = -L./compface -Wl,-R@localbase@/lib -lcompface $(DNSLIB) $(SGILIBS) + +COMPFACE = compface +FACES = facedir +FILTERS = filters +SCRIPTS = scripts +GSRCS = news.c sunview.c x11.c xview.c +HDRS = addr.h extern.h faces.h patchlevel.h +IMAGES = noface.xbm nomail.xbm noprint.xbm \ + nopaper.xbm nothing.xbm nousers.xbm +OTHERS = CHANGES CHANGES-v1.4 README TODO MANIFEST FILES \ + faces.man.text faces.man face_update.1 faces_cps.cps \ + Faces.ad Makefile.dist face_update +XFACE = xface + +SFILES1 = mon.c rec.c +SFILES2 = main.c parsefrom.c +SFILES3 = get.c news.c sunview.c +SFILES4 = x11.c $(HDRS) +SFILES5 = xview.c +SFILES6 = CHANGES-v1.4 +SFILES7 = CHANGES README TODO +SFILES8 = MANIFEST FILES Makefile.dist faces_cps.cps face_update \ + faces.sendmail +SFILES9 = faces.man face_update.1 $(IMAGES) +SFILES10 = faces.man.text Faces.ad +SFILES11 = $(FACES) +SFILES12 = $(COMPFACE) +SFILES13 = $(FILTERS) +SFILES14 = $(SCRIPTS) +SFILES15 = address.y $(XFACE) + +NEWSLIBS = $(NEWSLIBDIR) -lcps +SVIEWLIBS = -lsuntool -lsunwindow -lpixrect +# +# The following definition can vary. Here are a few examples: +# +# Sun/MIT X11R4: $(X11LIBDIR) -lX11 +# Dell Unix (Interactive 386/ix): $(X11LIBDIR) -lX11 -linet +# AT&T's XWIN: $(X11LIBDIR) -lX11_s -lc_s -lnsl_s -lpt +# +X11LIBS = -L@x11base@/lib -Wl,-R@x11base@/lib -lX11 +XVIEWLIBS = $(XVIEWLIBDIR) -lxview -lolgx -lX11 + +help: + @echo + @echo "You need to specify one of the following options:" + @echo + @echo " ${MAKE} sunview - to make the SunView version." + @echo " ${MAKE} news - to make the NeWS version." + @echo " ${MAKE} x11 - to make the X11 version." + @echo " ${MAKE} xview - to make the XView version." + @echo + @echo "This should be followed by:" + @echo + @echo " ${MAKE} install" + @echo " ${MAKE} clean" + @echo + +all: x11 + +news: $(STDOBJS) news.o faces_cps.h + (cd compface; $(MAKE) $(MAKEOPTS)) + (cd filters; $(MAKE) $(MAKEOPTS)) + $(CC) -o psfaces $(CFLAGS) $(STDOBJS) news.o \ + $(STDLIBS) $(NEWSLIBS) + -cp psfaces faces + +sunview: $(STDOBJS) sunview.o + (cd compface; $(MAKE) $(MAKEOPTS)) + (cd filters; $(MAKE) $(MAKEOPTS)) + $(CC) -o svfaces $(CFLAGS) $(STDOBJS) sunview.o \ + $(STDLIBS) $(SVIEWLIBS) + -cp svfaces faces + +x11: $(STDOBJS) x11.o + (cd compface; $(MAKE) $(MAKEOPTS)) + (cd filters; $(MAKE) $(MAKEOPTS)) + $(CC) -o xfaces $(CFLAGS) $(STDOBJS) x11.o \ + $(STDLIBS) $(X11LIBS) $(SVR4LIBS) + -cp xfaces faces + +xview: $(STDOBJS) xview.o + (cd compface; $(MAKE) $(MAKEOPTS)) + (cd filters; $(MAKE) $(MAKEOPTS)) + $(CC) -o xvfaces $(CFLAGS) $(STDOBJS) xview.o \ + $(STDLIBS) $(XVIEWLIBS) $(SVR4LIBS) + -cp xvfaces faces + +tables: + -mkdir $(FACEDIR) + -install -c -m 644 machine.tab $(FACEDIR) + -install -c -m 644 people.tab $(FACEDIR) + +install: + ${MAKE} tables + (cd compface; $(MAKE) $(MAKEOPTS) install) + (cd filters; $(MAKE) $(MAKEOPTS) install) + (cd scripts; $(MAKE) $(MAKEOPTS) install) + install -c -s -m 751 faces $(BINDIR) + install -c -m 755 face_update $(BINDIR) + install -c -m 755 faces.sendmail $(BINDIR) + install -c -m 644 faces.man \ + $(MANDIR)/man$(MANSECT)/faces.$(MANSECT) + install -c -m 444 face_update.1 \ + $(MANDIR)/man$(MANSECT)/face_update.$(MANSECT) + install -c -m 444 -o bin Faces.ad @x11prefix@/lib/X11/app-defaults/Faces + +clean: + (cd compface; $(MAKE) $(MAKEOPTS) clean) + (cd filters; $(MAKE) $(MAKEOPTS) clean) + rm -f *.o Part* *~ $(BINARIES) faces core + +saber: + #load $(CDEFS) $(STDSRCS) x11.c $(STDLIBS) $(X11LIBS) + +lint: lint-news lint-sunview lint-x11 lint-xview +lint-news:; lint $(CDEFS) $(STDSRCS) news.c $(NEWSLIBS) +lint-sunview:; lint $(CDEFS) $(STDSRCS) sunview.c $(SVIEWLIBS) +lint-x11:; lint $(CDEFS) $(STDSRCS) x11.c +lint-xview:; lint $(CDEFS) $(STDSRCS) xview.c + +shar:; shar.script $(SFILES1) > faces.part1 + shar.script $(SFILES2) > faces.part2 + shar.script $(SFILES3) > faces.part3 + shar.script $(SFILES4) > faces.part4 + shar.script $(SFILES5) > faces.part5 + shar.script $(SFILES6) > faces.part6 + shar.script $(SFILES7) > faces.part7 + shar.script $(SFILES8) > faces.part8 + shar.script $(SFILES9) > faces.part9 + shar.script $(SFILES10) > faces.part10 + shar.script $(SFILES11) > faces.part11 + shar.script $(SFILES12) > faces.part12 + shar.script $(SFILES13) > faces.part13 + shar.script $(SFILES14) > faces.part14 + shar.script $(SFILES15) > faces.part15 + +create: SCCS + -sccs create $(STDSRCS) $(GSRCS) $(HDRS) $(IMAGES) $(OTHERS) + +SCCS: + mkdir SCCS + chmod 755 SCCS + +faces_cps.h: faces_cps.cps + cps $< + +get.o: get.c faces.h extern.h patchlevel.h +main.o: main.c faces.h $(IMAGES) +mon.o: mon.c faces.h extern.h +news.o: news.c faces.h extern.h faces_cps.h +rec.o: rec.c faces.h extern.h +sunview.o: sunview.c faces.h extern.h +x11.o: x11.c faces.h extern.h +xview.o: xview.c faces.h extern.h