-#
-# 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.
-.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:
- ./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
- ${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>