pmake style makefile
authorKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 18 Jan 1991 05:04:14 +0000 (21:04 -0800)
committerKeith Bostic <bostic@ucbvax.Berkeley.EDU>
Fri, 18 Jan 1991 05:04:14 +0000 (21:04 -0800)
SCCS-vsn: old/dbx/Makefile 5.20

usr/src/old/dbx/Makefile

index 4a16700..c307cf3 100644 (file)
-#
-# Copyright (c) 1983 The Regents of the University of California.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms are permitted
-# provided that the above copyright notice and this paragraph are
-# duplicated in all such forms and that any documentation,
-# advertising materials, and other materials related to such
-# distribution and use acknowledge that the software was developed
-# by the University of California, Berkeley.  The name of the
-# University may not be used to endorse or promote products derived
-# from this software without specific prior written permission.
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
-#
-#      @(#)Makefile    5.19 (Berkeley) %G%
-#
-
 # The file "defs.h" is included by all.
 
 # The file "defs.h" is included by all.
 
-.SUFFIXES:
-.SUFFIXES: .h .c .s .o .1 .0
-
-AOUT   = tdbx
-DESTDIR        =
-DEST   = /usr/bin/dbx
-
-CC     = cc
-AS     = as
-#
-# if you want gripes
-# CFLAGS = -g '-DMAINTAINER="linton@shasta.stanford.edu"'
-#
-CFLAGS = -I/sys -O # -g
-
-LD = cc
-LDFLAGS        = # -g
-LIBRARIES = # -lPW for IRIS (System V)
-
-OBJ = \
-    y.tab.o \
-    asm.o \
-    events.o \
-    c.o \
-    cerror.o \
-    check.o \
-    coredump.o \
-    debug.o \
-    eval.o \
-    fortran.o \
-    keywords.o \
-    languages.o \
-    library.o \
-    lists.o \
-    machine.o \
-    main.o \
-    mappings.o \
-    modula-2.o \
-    names.o \
-    object.o \
-    operators.o \
-    pascal.o \
-    printsym.o \
-    process.o \
-    runtime.o \
-    scanner.o \
-    source.o \
-    stabstring.o \
-    symbols.o \
-    tree.o \
-    ops.o
-
-HDR = \
-    asm.h \
-    events.h \
-    c.h \
-    check.h \
-    coredump.h \
-    debug.h \
-    eval.h \
-    fortran.h \
-    keywords.h \
-    languages.h \
-    lists.h \
-    machine.h \
-    main.h \
-    mappings.h \
-    modula-2.h \
-    names.h \
-    object.h \
-    operators.h \
-    pascal.h \
-    printsym.h \
-    process.h \
-    runtime.h \
-    scanner.h \
-    source.h \
-    stabstring.h \
-    symbols.h \
-    tree.h \
-    ops.h
-
-SRC = \
-    defs.h \
-    commands.y \
-    asm.c \
-    events.c \
-    c.c \
-    cerror.${MACHINE}.s \
-    check.c \
-    coredump.c \
-    debug.c \
-    eval.c \
-    fortran.c \
-    keywords.c \
-    languages.c \
-    library.c \
-    lists.c \
-    main.c \
-    mappings.c \
-    modula-2.c \
-    names.c \
-    object.c \
-    operators.c \
-    pascal.c \
-    printsym.c \
-    process.c \
-    scanner.c \
-    source.c \
-    stabstring.c \
-    symbols.c \
-    tree.c \
-    ${MACHINE}.c \
-    runtime.${MACHINE}.c \
-    ops.${MACHINE}.c
-
-.c.o:
-       @echo "compiling $*.c"
-       @${CC} ${CFLAGS} -c $*.c
-
-.s.o:
-       @echo "assembling $*.s"
-       @rm -f tmp
-       @cpp $*.s | egrep -v "^#" > tmp
-       @${AS} -o $*.o tmp
-       @rm -f tmp
+PROG=  dbx
+CFLAGS+=-I. -I${.CURDIR} -I/sys
+HDRS=  asm.h events.h c.h check.h coredump.h debug.h eval.h fortran.h \
+       keywords.h languages.h lists.h machine.h main.h mappings.h \
+       modula-2.h names.h object.h operators.h pascal.h printsym.h \
+       process.h runtime.h scanner.h source.h stabstring.h symbols.h \
+       tree.h ops.h
+SRCS=  asm.c events.c c.c check.c coredump.c debug.c eval.c fortran.c \
+       keywords.c languages.c library.c lists.c main.c mappings.c \
+       modula-2.c names.c object.c operators.c pascal.c printsym.c \
+       process.c scanner.c source.c stabstring.c symbols.c tree.c \
+       ${MACHINE}.c runtime.${MACHINE}.c ops.${MACHINE}.c
+OBJS+= cerror.${MACHINE}.o commands.o date.o
+CLEANFILES+=mkdate makedefs makedefs.o date.c y.tab.h \
+       ${HDRS} ${MACHINE}.h runtime.${MACHINE}.h ops.${MACHINE}.h
 
 .c.h:
 
 .c.h:
-       ./makedefs -f $*.c $*.h
-
-all ${AOUT}: makedefs mkdate ${HDR} ${OBJ}
-       @rm -f date.c
-       @./mkdate > date.c
-       @echo "linking"
-       @${CC} ${CFLAGS} -c date.c
-       @${LD} ${LDFLAGS} date.o ${OBJ} ${LIBRARIES} -o ${AOUT}
+       ./makedefs -f ${.CURDIR}/$*.c $*.h
 
 
-profile: ${HDR} ${OBJ}
-       @rm -f date.c
-       @./mkdate > date.c
-       @echo "linking with -p"
-       @${CC} ${LDFLAGS} -p date.c ${OBJ} ${LIBRARIES} -o ${AOUT}
+all: ${HDRS}
 
 
-y.tab.c: commands.y
-       @echo "expect 2 shift/reduce conflicts"
-       yacc -d commands.y
+machine.h: ${MACHINE}.h
+       ln -s ${MACHINE}.h machine.h
 
 
-cerror.s: cerror.${MACHINE}.s
-       @rm -f cerror.s
-       @ln -s cerror.${MACHINE}.s cerror.s
+runtime.h: runtime.${MACHINE}.h
+       ln -s runtime.${MACHINE}.h runtime.h
 
 
-machine.c: ${MACHINE}.c
-       @rm -f machine.c
-       @ln -s ${MACHINE}.c machine.c
+ops.h: ops.${MACHINE}.h
+       ln -s ops.${MACHINE}.h ops.h
 
 
-ops.c: ops.${MACHINE}.c
-       @rm -f ops.c
-       @ln -s ops.${MACHINE}.c ops.c
+date.c: mkdate
+       ./mkdate > date.c
 
 
-runtime.c: runtime.${MACHINE}.c
-       @rm -f runtime.c
-       @ln -s runtime.${MACHINE}.c runtime.c
-
-makedefs: makedefs.c library.o cerror.o
-       ${CC} -g makedefs.c library.o cerror.o -o makedefs
+${HDRS}: makedefs
+makedefs: makedefs.c library.o cerror.${MACHINE}.o
+       ${CC} ${CFLAGS} \
+           ${.CURDIR}/makedefs.c library.o cerror.${MACHINE}.o -o $@
 
 mkdate: mkdate.c
 
 mkdate: mkdate.c
-       ${CC} -g ${CFLAGS} mkdate.c -o mkdate
-
-dbx.0: dbx.1
-       nroff -mandoc dbx.1 > dbx.0
-
-print:
-       @echo "don't print it, it's too long"
-
-depend:
-
-#
-# Don't worry about the removal of header files, they're created from
-# the source files.
-#
-
-clean:
-       rm -f ${HDR} ${OBJ} y.tab.c y.tab.h ${AOUT} mkdate mkdate.o \
-           makedefs makedefs.o date.c core mon.out prof.out make.out \
-           cerror.s ops.c machine.c runtime.c date.o
-       @chdir tests; make clean
-
-cleandir: clean
-       rm -f dbx.0 tags .depend
-
-cleandefs:
-       rm -f ${HDR} y.tab.h
-
-testinstall: ${AOUT} test install
-
-test:
-       @cd tests; make
-
-install: ${AOUT} dbx.0
-       install -s -o bin -g bin -m 755 ${AOUT} ${DESTDIR}${DEST}
-       install -c -o bin -g bin -m 444 dbx.0 ${DESTDIR}/usr/share/man/cat1
-
-#
-# Create a tar file called "tape" containing relevant files.
-#
-
-TAPE = f tape
-
-tape:
-       @tar c${TAPE} Makefile History READ_ME ${SRC} \
-           makedefs.c mkdate.c tests pc0mods dbx.1 newdbx.1 dbxstab.5
-
-#
-# without tests subdirectory
-#
-srconlytape:
-       @tar c${TAPE} Makefile History READ_ME ${SRC} \
-           makedefs.c mkdate.c dbx.1 newdbx.1 dbxstab.5
-
-#
-# Header dependencies are purposely incomplete since header files
-# are "written" every time the accompanying source file changes even if
-# the resulting contents of the header don't change.  The alternative is
-# to force a "makedefs" to be invoked for every header file each time dbx
-# is made.
-#
-# Also, there should be a dependency of scanner.o and keywords.o on y.tab.h
-# but misfortunately silly make does a "makedefs y.tab.c y.tab.h" which
-# destroys y.tab.h.
-#
+       ${CC} ${CFLAGS} ${.CURDIR}/mkdate.c -o $@
 
 
-symbols.o tree.o check.o eval.o events.o: operators.h
+.include <bsd.prog.mk>