home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Fred Fish Collection 1.5
/
ffcollection-1-5-1992-11.iso
/
ff_disks
/
200-299
/
ff232.lzh
/
Dbug
/
Makefile
< prev
next >
Wrap
Makefile
|
1989-08-02
|
4KB
|
211 lines
#
# FILE
#
# Makefile Makefile for dbug package
#
# SCCS ID
#
# @(#)Makefile 1.11 3/12/88
#
# DESCRIPTION
#
# Makefile for the dbug package (under UNIX system V or 4.2BSD).
#
# Interesting things to make are:
#
# lib => Makes the runtime support library in the
# current directory.
#
# lintlib => Makes the lint library in the current directory.
#
# install => Install pieces from current directory to
# where they belong.
#
# doc => Makes the documentation in the current
# directory.
#
# clean => Remove objects, temporary files, etc from
# current directory.
#
# superclean => Remove everything except sccs source files.
# Uses interactive remove for verification.
# Define NO_VARARGS if you have no <varargs.h> to include.
#VARARGS = -DNO_VARARGS
SH = /bin/sh
AR = ar
RM = rm
CFLAGS = -O $(VARARGS)
GFLAGS = -s
INSTALL = $(SH) install.sh
CHMOD = chmod
MAKE = make
INC = /usr/include/local
LIB = /usr/lib
RANLIB = $(SH) ranlib.sh
MODE = 664
# The following is provided for example only, it is set by "doinstall.sh".
LLIB = /usr/lib
.SUFFIXES: .r .r~ .c .c~
.c~.c:
$(GET) $(GFLAGS) -p $< >$*.c
.r~.r:
$(GET) $(GFLAGS) -p $< >$*.r
.c~.r:
$(GET) $(GFLAGS) -p $< >$*.c
sed "s/\\\/\\\e/" <$*.c >$*.r
$(RM) -f $*.c
.c.r:
sed "s/\\\/\\\e/" <$< >$*.r
EXAMPLES = example1.r example2.r example3.r
OUTPUTS = output1.r output2.r output3.r output4.r output5.r
NROFF_INC = main.r factorial.r $(OUTPUTS) $(EXAMPLES)
#
# The default thing to do is remake the local runtime support
# library, local lint library, and local documentation as
# necessary.
#
all : lib lintlib analyze doc
lib : libdbug.a
lintlib : llib-ldbug.ln
doc : factorial user.t
#
# Make the local runtime support library "libdbug.a" from
# sources.
#
libdbug.a : dbug.o
rm -f $@
$(AR) cr $@ $?
$(RANLIB) $@
#
# Clean up the local directory.
#
clean :
$(RM) -f *.o *.ln *.a *.BAK nohup.out factorial $(NROFF_INC)
superclean :
$(RM) -i ?[!.]*
#
# Install the new header and library files. Since things go in
# different places depending upon the system (lint libraries
# go in /usr/lib under SV and /usr/lib/lint under BSD for example),
# the shell script "doinstall.sh" figures out the environment and
# does a recursive make with the appropriate pathnames set.
#
install :
$(SH) doinstall.sh $(MAKE) sysinstall
sysinstall: $(INC) $(INC)/dbug.h $(LIB)/libdbug.a \
$(LLIB)/llib-ldbug.ln $(LLIB)/llib-ldbug
$(INC) :
-if test -d $@ ;then true ;else mkdir $@ ;fi
$(INC)/dbug.h : dbug.h
$(INSTALL) $? $@
$(CHMOD) $(MODE) $@
$(LIB)/libdbug.a : libdbug.a
$(INSTALL) $? $@
$(CHMOD) $(MODE) $@
$(LLIB)/llib-ldbug.ln : llib-ldbug.ln
$(INSTALL) $? $@
$(CHMOD) $(MODE) $@
$(LLIB)/llib-ldbug : llib-ldbug
$(INSTALL) $? $@
$(CHMOD) $(MODE) $@
#
# Make the local lint library.
#
llib-ldbug.ln : llib-ldbug
$(SH) mklintlib.sh $? $@
#
# Make the test/example program "factorial".
#
# Note that the objects depend on the LOCAL dbug.h file and
# the compilations are set up to find dbug.h in the current
# directory even though the sources have "#include <dbug.h>".
# This allows the examples to look like the code a user would
# write but still be used as test cases for new versions
# of dbug.
factorial : main.o factorial.o libdbug.a
$(CC) -o $@ main.o factorial.o libdbug.a
main.o : main.c dbug.h
$(CC) $(CFLAGS) -c -I. main.c
factorial.o : factorial.c dbug.h
$(CC) $(CFLAGS) -c -I. factorial.c
#
# Make the analyze program for runtime profiling support.
#
analyze : analyze.o libdbug.a
$(CC) -o $@ analyze.o libdbug.a
analyze.o : analyze.c useful.h dbug.h
$(CC) $(CFLAGS) -c -I. analyze.c
#
# Rebuild the documentation
#
user.t : user.r $(NROFF_INC)
nroff -cm user.r >$@
#
# Run the factorial program to produce the sample outputs.
#
output1.r: factorial
./factorial 1 2 3 4 5 >$@
output2.r: factorial
./factorial -#t:o 2 3 >$@
output3.r: factorial
./factorial -#d:t:o 3 >$@
output4.r: factorial
./factorial -#d,result:o 4 >$@
output5.r: factorial
./factorial -#d:f,factorial:F:L:o 3 >$@
#
# All files included by user.r depend on user.r, thus
# forcing them to be remade if user.r changes.
#
$(NROFF_INC) : user.r