212 lines
4.2 KiB
Makefile
212 lines
4.2 KiB
Makefile
#
|
||
# 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
|
||
# 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
|
||
|