4
# Copyright (C) 1995-1998 Technische Universitaet Braunschweig, Germany.
5
# Copyright (C) 2000 Universitaet Passau, Germany.
6
# Written by Andreas Zeller <zeller@gnu.org>.
8
# This file is part of DDD.
10
# DDD is free software; you can redistribute it and/or
11
# modify it under the terms of the GNU General Public
12
# License as published by the Free Software Foundation; either
13
# version 3 of the License, or (at your option) any later version.
15
# DDD is distributed in the hope that it will be useful,
16
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18
# See the GNU General Public License for more details.
20
# You should have received a copy of the GNU General Public
21
# License along with DDD -- see the file COPYING.
22
# If not, see <http://www.gnu.org/licenses/>.
24
# DDD is the data display debugger.
25
# For details, see the DDD World-Wide-Web page,
26
# `http://www.gnu.org/software/ddd/',
27
# or send a mail to the DDD developers <ddd@gnu.org>.
30
### CUSTOMIZATION SECTION --- Please check the settings below.
31
# Typical values are enclosed in ().
35
# Common prefix for installation directories. (/usr/local)
36
# NOTE: This directory must exist when you start the install.
38
exec_prefix = @exec_prefix@
40
# Where to fetch the source from. (.)
44
# Where to put the binary. (${exec_prefix}/bin)
47
# Where to put the info file. (${prefix}/info)
50
# Where to put the manual page. (${prefix}/man)
52
man1dir = $(mandir)/man1
56
## Architecture (usually overridden by the top-level Makefile).
58
# The host we were compiled on. (CPU-COMPANY-SYSTEM)
59
host_canonical = @host@
61
# The target we were compiled for. (CPU-COMPANY-SYSTEM)
62
target_canonical = @host@
67
# The sed command. (sed)
73
# The ln -s command for making symbolic links; plain ln should work
77
# The m4 command, preferably GNU m4. (m4)
78
# The `-B20000' works around M4 limitations on System V; GNU M4 ignores it.
79
# (Reported by Justin Mayfield <mayfield@hpbs1824.boi.hp.com>.)
82
# The lex command (flex), its flags (-8), and its library (-lfl).
87
# The lex output root (lex.yy)
88
LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
90
# The yacc command (bison -y) and its flags ().
94
# The shell for executing commands in the Makefile. (/bin/sh)
100
# ar flags for creating a new archive.
103
# ar flags for extracting files from an archive.
106
# The ranlib command. (ranlib)
109
# A compress command, reading from stdin and writing to stdout. (gzip -c)
110
COMPRESS = @COMPRESS@
112
# An uncompress command, reading from stdin and writing to stdout. (gunzip -c)
113
UNCOMPRESS = @UNCOMPRESS@
115
# The etags command. (etags)
121
# What we use to compile C++ files. (c++)
124
# The flags we use to compile C++ files.
125
# CXXOPT = -DNDEBUG -O2
128
CXXDEBUG = @CXXDEBUG@
129
# CXXWARNINGS = -W -Wall
130
CXXWARNINGS = @CXXWARNINGS@
131
CXXFLAGS = $(CXXOPT) $(CXXDEBUG) $(CXXWARNINGS)
133
# Extra C++-specific flags. (-fexternal-templates -felide-constructors)
134
CXXSTUFF = @CXXSTUFF@ @X_PERMISSIVE@
136
# Possible extra libraries required for all C++ programs. ()
139
# Executable extension. Empty on Unix, `.exe' on Windows. ()
142
# Object extension. `o' on Unix, `obj' on Windows. (o)
146
## The C compiler; for demos only
148
# What we use to compile C files.
152
# The flags we use to compile C files.
157
## The Pascal compiler (for demos only)
159
# What we use to compile Pascal files.
162
# The flags we use to compile Pascal files.
166
## The Modula-2 compiler (for demos only)
168
# What we use to compile Modula-2 files.
171
# The flags we use to compile Modula-2 files.
175
## The FORTRAN compiler (for demos only)
177
# What we use to compile FORTRAN files.
180
# The flags we use to compile FORTRAN files.
185
## The C preprocessor.
187
# What we use for preprocessing. (gcc -E -traditional-cpp)
188
CPP = @CPP_TRADITIONAL@
190
# Flags passed to the C preprocessor. ()
191
CPPFLAGS = @CPPFLAGS@
193
# Definitions to be passed to the C preprocessor. (-DHAVE_CONFIG_H)
199
# Flags passed to the linker. (-g -O)
200
LDFLAGS = @LDFLAGS@ @BIG_TOC@
202
# Use this for building statically linked executables with GCC.
203
# LDFLAGS = -static @LDFLAGS@ @BIG_TOC@
209
# POSIX regex routines (from system)
212
# termcap routines (from system)
213
LIBTERMCAP = @LIBTERMCAP@
214
# -lreadline library (from system)
215
LIBREADLINE = @LIBREADLINE@
222
# Socket library (-lsocket)
223
LIBSOCKET = @LIBSOCKET@
224
# ELF library (-lelf)
226
# NSL library (-lnsl)
228
# Additional libraries required for non-X programs (-lsocket -lnsl)
231
# All libraries shown above
232
LIBS = $(CXXLIBS) $(LIBREADLINE) $(LIBSOCKET) $(LIBNSL) $(LIBRX) \
233
$(LIBTERMCAP) $(LIBY) $(LIBM) $(LIBELF)
238
# Special flags for linking with X. (-L/usr/X11R5/lib)
241
# Motif library. (-lXm)
244
# Use this alternative for building `semistatic' executables
245
# where Motif libraries are statically linked in.
246
# LIBXM = -Wl,-Bstatic @XM_LIBS@ -Wl,-Bdynamic
248
# Athena libraries. (-lXaw -lXmu)
251
# X extension library; needed for Athena and Motif >= 2.0. (-lXext)
252
LIBXEXT = @XEXT_LIBS@
254
# Xpm library; needed for DDD and sometimes for Motif >= 2.0. (-lXpm)
257
# Xp library; sometimes needed for Motif >= 2.1. (-lXp)
260
# gen library; sometimes needed for Motif >= 2.0. (-lgen)
263
# X toolkit library. (-lXt)
266
# X library. (-lSM -lICE -lX11 -lnsl -lsocket)
267
LIBX11 = @X_PRE_LIBS@ @X11_LIBS@ @X_EXTRA_LIBS@
269
# All libraries shown above
270
ALL_X_LIBS = $(X_LDFLAGS) $(LIBXM) $(LIBXP) $(LIBXPM) $(LIBXAW) $(LIBXEXT) \
271
$(LIBXT) $(LIBX11) $(LIBGEN)
274
## Installation commands.
276
# General install program. (install -c)
279
# Command for installing programs. (install -c)
280
INSTALL_PROGRAM = @INSTALL_PROGRAM@
282
# Command for installing data. (install -c -m 644)
283
INSTALL_DATA = @INSTALL_DATA@
285
# Transformed name of installed programs. (s,x,x,)
286
transform=@program_transform_name@
289
## `make check' commands.
291
# A debugger for debugging DDD. (gdb)
292
DEBUGGER = @DEBUGGER@
294
# The options for DDD when invoking `make check'. ()
295
DDD_OPTIONS = @DEBUGGER_OPTION@
298
## The following definitions are needed for development only.
299
## Usually, you don't need any of these.
301
# The autoconf program. (autoconf)
302
AUTOCONF = @AUTOCONF@
304
# The autoheader program. (autoheader)
305
AUTOHEADER = @AUTOHEADER@
307
# The aclocal program. (aclocal)
310
# The tar program. (tar)
313
# The groff program. (groff)
316
# The nroff program. (groff -Tascii)
318
NROFF = $(GROFF) -Tascii
320
# The makeinfo program. (makeinfo)
321
MAKEINFO = @MAKEINFO@
323
# The texindex program. (texindex)
326
# The texi2html program. (texi2html)
327
TEXI2HTML = $(MAKEINFO) --html
329
# The texi2dvi program. (texi2dvi)
332
# The texi2pdf program. (texi2pdf)
333
TEXI2PDF = texi2dvi --pdf
335
# The epstopdf program. (epstopdf)
336
# Available from http://www.tug.org/applications/pdftex/epstopdf
339
# The dvips program. (dvips)
342
# The pdf2ps program. (pdf2ps)
345
# The TeX program. (tex)
349
AD2C = $(SED) -n -f $(srcdir)/ad2c.sed
352
VSL2C = $(SED) -f $(srcdir)/vsl2c.sed
354
# The ls program. (ls)
357
# The head program. (head)
360
# The make program, if not predefined. ()
363
# The mv command. (mv)
366
# The echo command. (echo)
369
# The awk command. (awk)
372
# The cat command. (cat)
375
# The cmp command. (cmp)
378
# The grep command. (grep)
381
# The sort command. (sort)
384
# The diff command. (diff)
387
# The touch command. (touch)
390
# The date command. (date)
393
# The strip command. (strip)
396
# The mkdir and rmdir commands. (mkdir) (rmdir)
400
# The sleep command. (sleep)
403
# The fig2dev command. (fig2dev)
405
FIG2PS = $(FIG2DEV) -L ps
407
# Some XPM/PPM/PostScript converters, from the netpbm and pbmplus packages.
409
PGMENHANCE = pgmenhance
415
PNMINVERT = pnminvert
416
PNMMARGIN = pnmmargin
424
# The ImageMagick `convert' program (convert)
427
# The image extension (.jpg, .png, or .gif)
430
# The face-generating program from the `compface' package. (xbm2xface.pl)
431
XBM2XFACE = xbm2xface.pl
434
### END OF CUSTOMIZATION SECTION ---
435
### You shouldn't need to change anything below this line.
439
# Program and distribution base name. (ddd)
442
# Product name. (DDD)
445
# The version number. (1.4c)
448
# The build. (This must be set from outside)
451
# Canonical program and distribution base name.
452
ddd_canonical = $(ddd)-$(VERSION)-$(target_canonical)
454
## More compilation settings.
455
# C++ binding flags. For binary distribution only.
456
# CXXSTATIC_BINDING = -Bstatic
457
CXXSTATIC_BINDING = @CXXSTATIC_BINDING@
458
# CXXDYNAMIC_BINDING = -Bdynamic
459
CXXDYNAMIC_BINDING = @CXXDYNAMIC_BINDING@
462
## C++ compile commands.
463
COMPILE.cc = $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(CXXSTUFF) -c
464
LINK.cc = $(CXX) $(CXXBINDING) $(LDFLAGS)
465
COMPILE_AND_LINK.cc = \
466
$(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(CXXSTUFF) $(CXXBINDING) $(LDFLAGS)
468
## C compile commands.
469
COMPILE.c = $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
470
LINK.c = $(CC) $(LDFLAGS)
471
COMPILE_AND_LINK.c = \
472
$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS)
474
## Pascal compile commands.
475
COMPILE_AND_LINK.p = $(PC) $(CPPFLAGS) $(DEFS) $(PFLAGS)
476
COMPILE.p = $(COMPILE_AND_LINK.p) -c
479
## Modula-2 compile commands.
480
COMPILE_AND_LINK.m2 = $(M2C) $(M2FLAGS)
481
COMPILE.m2 = $(COMPILE_AND_LINK.m2) -c
484
## FORTRAN compile commands.
485
COMPILE_AND_LINK.f = $(FC) $(FFLAGS)
486
COMPILE.f = $(COMPILE_AND_LINK.f) -c
491
YACCTOCXX = $(srcdir)/yacctoC
492
YACC.Y = $(YACC) $(YFLAGS)
495
LEXTOCXX = $(srcdir)/lextoC
496
LEX.L = $(LEX) $(LFLAGS)
498
## Where to look for X include files. (-I/usr/X11R5/include)
499
X_INCLUDE = @X_CFLAGS@
501
## Where to look for include files.
502
INCLUDE = -I. -I$(srcdir) -I$(srcdir)/.. $(X_INCLUDE)
505
.SUFFIXES: .C .cc .c .mod .p .Y .YY .L .txt .i .xbm .xbmxx .xpm .xpmxx \
506
.xface .C~ .c~ .f .f~ .sh .sh~ .fig .eps .jpg .png .gif .pdf \
509
$(COMPILE.cc) $(INCLUDE) -o $@ $<
511
$(COMPILE.cc) $(INCLUDE) -o $@ $<
513
$(COMPILE.c) $(INCLUDE) -o $@ $<
515
$(COMPILE.p) -o $@ $<
517
$(COMPILE.cc) $(INCLUDE) -E -o $@ $<
519
$(COMPILE.cc) $(INCLUDE) -E -o $@ $<
521
$(COMPILE.c) $(INCLUDE) -E -o $@ $<
523
$(COMPILE.p) -E -o $@ $<
526
$(SHELL) $(YACCTOCXX)
527
$(RM) y.tab.c y.tab.h
528
$(LINK.cc) -o $@ y.tab.C $(LDLIBS)
529
$(RM) y.tab.C y.tab.H
532
$(SHELL) $(YACCTOCXX)
534
$(RM) y.tab.H y.tab.c y.tab.h
536
$(YACC) -d $(YFLAGS) $<
537
$(SHELL) $(YACCTOCXX)
539
$(RM) y.tab.C y.tab.c y.tab.h
542
$(SHELL) $(YACCTOCXX)
543
$(COMPILE.cc) y.tab.C
544
$(RM) y.tab.C y.tab.H y.tab.c y.tab.h
546
$(YACC) -v $(YFLAGS) $<
548
$(RM) y.tab.c y.tab.h
552
$(LINK.cc) -o $@ $(LEX_OUTPUT_ROOT).C $(LDLIBS)
553
$(RM) $(LEX_OUTPUT_ROOT).C $(LEX_OUTPUT_ROOT).c
557
$(MV) $(LEX_OUTPUT_ROOT).C $@
558
$(RM) $(LEX_OUTPUT_ROOT).c
562
$(COMPILE.cc) -o $@ $(LEX_OUTPUT_ROOT).C
563
$(RM) $(LEX_OUTPUT_ROOT).C $(LEX_OUTPUT_ROOT).c
566
# Jacek M. Holeczek <holeczek@heracles.cto.us.edu.pl> says these `dummy'
567
# rules are required to disable default rules under AIX MAKE. They
568
# should do no harm using other MAKEs.
581
@$(ECHO) "Creating $@"
583
$(ECHO) '// $@ -- generated automatically from `$<'"'."; \
584
$(SED) '/^ *#/d' $< | \
585
$(SED) 's/^ *include \([^"][^.]*\)\..*$$/#include "\1.C"/' | \
586
$(SED) 's/^ *include "\([^"][^.]*\)[^"]*"/#include "\1.C"/' | \
587
$(SED) '/^[^#]/s/\(["'"'"'\\]\)/\\\1/g' | \
588
$(SED) '/^[^#]/s/.*/"&\\n"/' | \
589
$(SED) 's//\\b/g' | \
590
$(SED) 's/^$$/"\\n"/' \
592
$(CPP) -C -P -undef $(CPPFLAGS) $(DEFS) $(INCLUDE) tmp.C > $@; \
597
@$(ECHO) "Creating $@"
598
@-base=`$(ECHO) $@ | $(SED) 's,.*/,,' | $(SED) 's/[.]x[bp]m.*//'`; \
599
$(SED) 's/[ ][cg]4*[ ][#a-zA-Z0-9][#a-zA-Z0-9]*//g' $< | \
600
$(SED) 's/[nN]one/white/g' | \
601
$(XPMTOPPM) | $(PNMDEPTH) 255 | $(PPMTOPGM) | $(PGMTOPBM) | \
602
$(PBMTOXBM) | $(SED) "s/noname/$${base}/g" | \
603
$(SED) "s/static char/static unsigned char/g" > $@~
604
@test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
607
@$(ECHO) "Creating $@"
608
@$(ECHO) "X-Face:`$(XBM2XFACE) $<`" > $@~
609
@test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
611
# This jewel makes an `emboss' effect in two steps:
612
# 1. Create a displaced mask in FILE-mask.pbm, using `pnmcut' and `pnmpaste'
613
# 2. Add the mask to FILE.xbm, using `pnmarith'.
615
@$(ECHO) "Creating $@"
616
@-base=`$(ECHO) $@ | $(SED) 's,.*/,,' | $(SED) 's/[.]x[bp]m.*//'`; \
617
$(SED) 's/unsigned //' $< | \
618
$(XBMTOPBM) > $${base}-object.pbm; \
619
$(PNMMARGIN) 1 $${base}-object.pbm | \
620
$(PNMCUT) 0 0 29 25 | \
622
$(PNMPASTE) -and $${base}-object.pbm 0 0 > $${base}-mask.pbm; \
623
$(PPMTOXPM) $${base}-object.pbm | \
624
$(SED) 's/#00*/grey50/' | \
625
$(SED) 's/#FF*/grey/' | \
626
$(XPMTOPPM) > $${base}-button.ppm; \
627
$(PNMARITH) -add $${base}-button.ppm $${base}-mask.pbm | \
629
$(SED) 's/c #BE[BE]*/c none g none m none s Background/' | \
630
$(SED) 's/c #7F[7F]*/c grey50 g grey50 m black/' | \
631
$(SED) 's/c #FF*/c white g white m white/' | \
632
$(SED) "s/noname/$${base}_xx_xpm/" > $@~; \
633
$(RM) $${base}-object.pbm $${base}-mask.pbm $${base}-button.ppm
634
@test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
637
@$(ECHO) "Creating $@"
638
@-base=`$(ECHO) $@ | $(SED) 's,.*/,,' | $(SED) 's/[.]x[bp]m.*//'`; \
639
$(SED) 's/[ ]c[ ][#a-zA-Z0-9][#a-zA-Z0-9]*//' $< | \
640
$(SED) 's/ g black / g grey50 /' | \
641
$(SED) 's/ g white / g grey75 /' | \
642
$(SED) 's/g \([a-zA-Z0-9]*\) /c \1 g \1 /' | \
643
$(SED) 's/[nN]one/white/g' | \
644
$(XPMTOPPM) | $(PNMDEPTH) 255 | $(PPMTOPGM) | $(PGMTOPBM) | \
645
$(PBMTOXBM) | $(SED) "s/noname/$${base}_xx/" | \
646
$(SED) "s/static char/static unsigned char/g" > $@~
647
@test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
649
## Picture conversions
651
# Width of image in HTML manual (pixels)
654
# We use giftoppm/ppmtogif to get optimal GIF compression.
656
$(CONVERT) -geometry $(IMAGE_WIDTH) $< $@
659
$(CONVERT) -geometry $(IMAGE_WIDTH) -quality 100 $< $@
662
$(CONVERT) -geometry $(IMAGE_WIDTH) -quality 100 $< $@
665
$(EPSTOPDF) $< --outfile=$@
668
(cd `dirname $<` && $(FIG2PS) `basename $<` ) > $@
671
## Libraries and object files
672
# General-purpose utilities: strings, regexps, run-type type info...
692
# Instantiated templates
695
StatArray.$(OBJEXT) \
697
StringMap.$(OBJEXT) \
699
StringSAA.$(OBJEXT) \
700
VoidArray.$(OBJEXT) \
703
# Interprocess communication
704
# Top-level class is `Agent', declared in `Agent.h'
708
AsyncAgent.$(OBJEXT) \
709
ChunkQueue.$(OBJEXT) \
710
DataLength.$(OBJEXT) \
712
LiterateA.$(OBJEXT) \
713
ReadLineA.$(OBJEXT) \
717
# Miscellaneous utilities for X programs: Motif strings, hourglasses,
718
# context-sensitive help...
721
converters.$(OBJEXT) \
723
findParent.$(OBJEXT) \
724
findWindow.$(OBJEXT) \
728
selection.$(OBJEXT) \
730
AutoRaise.$(OBJEXT) \
732
DestroyCB.$(OBJEXT) \
734
InitImage.$(OBJEXT) \
735
Swallower.$(OBJEXT) \
738
# Same, but for Motif
749
# Box library - rectangular composible graphical items
750
# Top-level class is `Box', declared in `Box.h'
758
BoxExtend.$(OBJEXT) \
760
BoxRegion.$(OBJEXT) \
763
CompositeB.$(OBJEXT) \
767
FontFixBox.$(OBJEXT) \
768
FontTable.$(OBJEXT) \
774
PrimitiveB.$(OBJEXT) \
776
StringBox.$(OBJEXT) \
781
# VSL library - building boxes from structured data
782
# Top-level class is `VSLLib', declared in `VSLLib.h'
785
BuiltinCN.$(OBJEXT) \
787
ConstNode.$(OBJEXT) \
789
DummyNode.$(OBJEXT) \
794
ThemeVSLL.$(OBJEXT) \
797
VSLArgList.$(OBJEXT) \
798
VSLBuiltin.$(OBJEXT) \
800
VSLDefList.$(OBJEXT) \
806
# Graph structure, graph layout and graph editor widget
807
# Top-level classes are `Graph', declared in `Graph.h'
808
# and the `GraphEdit' widget, deckared in `GraphEdit.h'.
810
ArcGraphE.$(OBJEXT) \
812
BoxGraphN.$(OBJEXT) \
816
GraphEdge.$(OBJEXT) \
817
GraphEdit.$(OBJEXT) \
819
GraphNode.$(OBJEXT) \
821
HintGraphN.$(OBJEXT) \
822
LineGraphE.$(OBJEXT) \
825
PosGraphN.$(OBJEXT) \
827
ScrolledGE.$(OBJEXT) \
830
# All these objects were originally part of the NORA library; they are
831
# now maintained as part of DDD.
834
$(TEMPLATE_OBJECTS) \
842
# The DDD application itself. `ddd.C' is the main program, `SourceView.C'
843
# is the source window, `DataDisp.C' is the data window.
845
annotation.$(OBJEXT) \
849
comm-manag.$(OBJEXT) \
853
dbx-lookup.$(OBJEXT) \
854
decoration.$(OBJEXT) \
856
disp-read.$(OBJEXT) \
866
fortranize.$(OBJEXT) \
874
logplayer.$(OBJEXT) \
876
mydialogs.$(OBJEXT) \
883
resources.$(OBJEXT) \
891
simpleMenu.$(OBJEXT) \
892
configinfo.$(OBJEXT) \
895
string-fun.$(OBJEXT) \
896
tictactoe.$(OBJEXT) \
900
value-read.$(OBJEXT) \
907
BreakPoint.$(OBJEXT) \
909
CodeCache.$(OBJEXT) \
913
DispBuffer.$(OBJEXT) \
914
DispGraph.$(OBJEXT) \
916
DispNodeM.$(OBJEXT) \
917
DispValue.$(OBJEXT) \
918
DispValueA.$(OBJEXT) \
919
DispValueT.$(OBJEXT) \
920
EntryType.$(OBJEXT) \
926
PlotAgent.$(OBJEXT) \
928
PosBuffer.$(OBJEXT) \
929
ProgressM.$(OBJEXT) \
930
RefreshDI.$(OBJEXT) \
932
SourceView.$(OBJEXT) \
933
StringTPA.$(OBJEXT) \
937
UndoBuffer.$(OBJEXT) \
941
# Objects required for userinfo
944
# Objects required for huffencode and huffdecode
945
HUFFMAN_OBJECTS = strclass.$(OBJEXT) cook.$(OBJEXT) rxclass.$(OBJEXT)
948
OBJECTS = $(LIB_OBJECTS) $(DDD_OBJECTS)
950
## The program files.
951
# We use `./ddd' to prevent Solaris VPATH-enabled make from selecting
952
# the `ddd' directory instead.
953
PROGS = $(ddd_canonical)$(EXEEXT) ./$(ddd)$(EXEEXT)
955
## The program files to be installed.
956
INSTALL_PROGS = ./$(ddd)$(EXEEXT)
958
## Extra demonstration files.
959
DEMOS = userinfo$(EXEEXT) stringify$(EXEEXT) huffencode$(EXEEXT) \
960
huffdecode$(EXEEXT) cxxtest$(EXEEXT) ctest$(EXEEXT) grabtest$(EXEEXT) \
961
ftest$(EXEEXT) ptest$(EXEEXT) m2test$(EXEEXT) \
962
test-file$(EXEEXT) test-graph$(EXEEXT) vsl$(EXEEXT) ttytest$(EXEEXT) \
963
bug$(EXEEXT) sample$(EXEEXT) tString$(EXEEXT) \
964
mmtest$(EXEEXT) gcore$(EXEEXT) logplayer$(EXEEXT)
969
IDXS = *.cp *.fn *.ky *.pg *.tp *.vr
972
docdir = $(srcdir)/../doc
975
## The postscript files.
976
PSS = $(docdir)/ddd.ps
979
PDFS = $(docdir)/ddd.pdf
982
htmldir = $(docdir)/html
983
HTMLS = $(htmldir)/index.html $(docdir)/sample.c
986
INFO = $(docdir)/ddd.info
987
INFOS = $(docdir)/ddd.info*
989
## PostScript pictures in the DDD manual.
990
# All of these are generated from FIG and XPM files.
991
picdir = $(srcdir)/PICS
993
$(picdir)/disclaimer.eps \
994
$(picdir)/dddlogo.eps \
995
$(picdir)/dddsplash.eps \
996
$(picdir)/ddd-aliases.eps \
997
$(picdir)/ddd-all.eps \
998
$(picdir)/ddd-arguments.eps \
999
$(picdir)/ddd-attach.eps \
1000
$(picdir)/ddd-backtrace.eps \
1001
$(picdir)/ddd-bp-popup.eps \
1002
$(picdir)/ddd-bp-properties.eps \
1003
$(picdir)/ddd-button-editor.eps \
1004
$(picdir)/ddd-clusters.eps \
1005
$(picdir)/ddd-code.eps \
1006
$(picdir)/ddd-console.eps \
1007
$(picdir)/ddd-data-prefs.eps \
1008
$(picdir)/ddd-define-command.eps \
1009
$(picdir)/ddd-display.eps \
1010
$(picdir)/ddd-drag.eps \
1011
$(picdir)/ddd-edit-breakpoints.eps \
1012
$(picdir)/ddd-edit-displays.eps \
1013
$(picdir)/ddd-examine.eps \
1014
$(picdir)/ddd-font-prefs.eps \
1015
$(picdir)/ddd-general-prefs.eps \
1016
$(picdir)/ddd-helpers.eps \
1017
$(picdir)/ddd-hide-display.eps \
1018
$(picdir)/ddd-history.eps \
1019
$(picdir)/ddd-layout.eps \
1020
$(picdir)/ddd-line-popup.eps \
1021
$(picdir)/ddd-locals.eps \
1022
$(picdir)/ddd-open.eps \
1023
$(picdir)/ddd-open-session.eps \
1024
$(picdir)/ddd-plots.eps \
1025
$(picdir)/ddd-print-graph.eps \
1026
$(picdir)/ddd-print-output.eps \
1027
$(picdir)/ddd-print-popup.eps \
1028
$(picdir)/ddd-registers.eps \
1029
$(picdir)/ddd-repeats.eps \
1030
$(picdir)/ddd-rotate-display.eps \
1031
$(picdir)/ddd-save-session.eps \
1032
$(picdir)/ddd-select-display.eps \
1033
$(picdir)/ddd-separate.eps \
1034
$(picdir)/ddd-set.eps \
1035
$(picdir)/ddd-settings.eps \
1036
$(picdir)/ddd-shortcuts.eps \
1037
$(picdir)/ddd-shortcut-editor.eps \
1038
$(picdir)/ddd-signals.eps \
1039
$(picdir)/ddd-source-popup.eps \
1040
$(picdir)/ddd-source-prefs.eps \
1041
$(picdir)/ddd-source.eps \
1042
$(picdir)/ddd-startup-prefs.eps \
1043
$(picdir)/ddd-status-displays.eps \
1044
$(picdir)/ddd-threads.eps \
1045
$(picdir)/ddd-tool.eps \
1046
$(picdir)/ddd-toolbar.eps \
1047
$(picdir)/ddd-toolbars.eps \
1048
$(picdir)/ddd-value-tip.eps \
1049
$(picdir)/tut-backtrace.eps \
1050
$(picdir)/tut-display.eps \
1051
$(picdir)/tut-finish.eps \
1052
$(picdir)/tut-invoke.eps \
1053
$(picdir)/tut-run.eps \
1054
$(picdir)/tut-set.eps \
1055
$(picdir)/tut-value.eps
1058
$(picdir)/disclaimer.pdf \
1059
$(picdir)/dddback.pdf \
1060
$(picdir)/dddlogo.pdf \
1061
$(picdir)/dddsplash.pdf \
1062
$(picdir)/ddd-aliases.pdf \
1063
$(picdir)/ddd-all.pdf \
1064
$(picdir)/ddd-arguments.pdf \
1065
$(picdir)/ddd-attach.pdf \
1066
$(picdir)/ddd-backtrace.pdf \
1067
$(picdir)/ddd-bp-popup.pdf \
1068
$(picdir)/ddd-bp-properties.pdf \
1069
$(picdir)/ddd-button-editor.pdf \
1070
$(picdir)/ddd-clusters.pdf \
1071
$(picdir)/ddd-code.pdf \
1072
$(picdir)/ddd-console.pdf \
1073
$(picdir)/ddd-data-prefs.pdf \
1074
$(picdir)/ddd-define-command.pdf \
1075
$(picdir)/ddd-display.pdf \
1076
$(picdir)/ddd-drag.pdf \
1077
$(picdir)/ddd-edit-breakpoints.pdf \
1078
$(picdir)/ddd-edit-displays.pdf \
1079
$(picdir)/ddd-examine.pdf \
1080
$(picdir)/ddd-font-prefs.pdf \
1081
$(picdir)/ddd-general-prefs.pdf \
1082
$(picdir)/ddd-helpers.pdf \
1083
$(picdir)/ddd-hide-display.pdf \
1084
$(picdir)/ddd-history.pdf \
1085
$(picdir)/ddd-layout.pdf \
1086
$(picdir)/ddd-line-popup.pdf \
1087
$(picdir)/ddd-locals.pdf \
1088
$(picdir)/ddd-open.pdf \
1089
$(picdir)/ddd-open-session.pdf \
1090
$(picdir)/ddd-plots.pdf \
1091
$(picdir)/ddd-print-graph.pdf \
1092
$(picdir)/ddd-print-output.pdf \
1093
$(picdir)/ddd-print-popup.pdf \
1094
$(picdir)/ddd-registers.pdf \
1095
$(picdir)/ddd-repeats.pdf \
1096
$(picdir)/ddd-rotate-display.pdf \
1097
$(picdir)/ddd-save-session.pdf \
1098
$(picdir)/ddd-select-display.pdf \
1099
$(picdir)/ddd-separate.pdf \
1100
$(picdir)/ddd-set.pdf \
1101
$(picdir)/ddd-settings.pdf \
1102
$(picdir)/ddd-shortcuts.pdf \
1103
$(picdir)/ddd-shortcut-editor.pdf \
1104
$(picdir)/ddd-signals.pdf \
1105
$(picdir)/ddd-source-popup.pdf \
1106
$(picdir)/ddd-source-prefs.pdf \
1107
$(picdir)/ddd-source.pdf \
1108
$(picdir)/ddd-startup-prefs.pdf \
1109
$(picdir)/ddd-status-displays.pdf \
1110
$(picdir)/ddd-threads.pdf \
1111
$(picdir)/ddd-tool.pdf \
1112
$(picdir)/ddd-toolbar.pdf \
1113
$(picdir)/ddd-toolbars.pdf \
1114
$(picdir)/ddd-value-tip.pdf \
1115
$(picdir)/tut-backtrace.pdf \
1116
$(picdir)/tut-display.pdf \
1117
$(picdir)/tut-finish.pdf \
1118
$(picdir)/tut-invoke.pdf \
1119
$(picdir)/tut-run.pdf \
1120
$(picdir)/tut-set.pdf \
1121
$(picdir)/tut-value.pdf
1124
$(picdir)/disclaimer$(IMGEXT) \
1125
$(picdir)/dddback$(IMGEXT) \
1126
$(picdir)/dddlogo$(IMGEXT) \
1127
$(picdir)/dddsplash$(IMGEXT) \
1128
$(picdir)/ddd-aliases$(IMGEXT) \
1129
$(picdir)/ddd-all$(IMGEXT) \
1130
$(picdir)/ddd-arguments$(IMGEXT) \
1131
$(picdir)/ddd-attach$(IMGEXT) \
1132
$(picdir)/ddd-backtrace$(IMGEXT) \
1133
$(picdir)/ddd-bp-popup$(IMGEXT) \
1134
$(picdir)/ddd-bp-properties$(IMGEXT) \
1135
$(picdir)/ddd-button-editor$(IMGEXT) \
1136
$(picdir)/ddd-clusters$(IMGEXT) \
1137
$(picdir)/ddd-code$(IMGEXT) \
1138
$(picdir)/ddd-console$(IMGEXT) \
1139
$(picdir)/ddd-data-prefs$(IMGEXT) \
1140
$(picdir)/ddd-define-command$(IMGEXT) \
1141
$(picdir)/ddd-display$(IMGEXT) \
1142
$(picdir)/ddd-drag$(IMGEXT) \
1143
$(picdir)/ddd-edit-breakpoints$(IMGEXT) \
1144
$(picdir)/ddd-edit-displays$(IMGEXT) \
1145
$(picdir)/ddd-examine$(IMGEXT) \
1146
$(picdir)/ddd-font-prefs$(IMGEXT) \
1147
$(picdir)/ddd-general-prefs$(IMGEXT) \
1148
$(picdir)/ddd-helpers$(IMGEXT) \
1149
$(picdir)/ddd-hide-display$(IMGEXT) \
1150
$(picdir)/ddd-history$(IMGEXT) \
1151
$(picdir)/ddd-layout$(IMGEXT) \
1152
$(picdir)/ddd-line-popup$(IMGEXT) \
1153
$(picdir)/ddd-locals$(IMGEXT) \
1154
$(picdir)/ddd-open$(IMGEXT) \
1155
$(picdir)/ddd-open-session$(IMGEXT) \
1156
$(picdir)/ddd-plots$(IMGEXT) \
1157
$(picdir)/ddd-print-graph$(IMGEXT) \
1158
$(picdir)/ddd-print-output$(IMGEXT) \
1159
$(picdir)/ddd-print-popup$(IMGEXT) \
1160
$(picdir)/ddd-registers$(IMGEXT) \
1161
$(picdir)/ddd-repeats$(IMGEXT) \
1162
$(picdir)/ddd-rotate-display$(IMGEXT) \
1163
$(picdir)/ddd-save-session$(IMGEXT) \
1164
$(picdir)/ddd-select-display$(IMGEXT) \
1165
$(picdir)/ddd-separate$(IMGEXT) \
1166
$(picdir)/ddd-set$(IMGEXT) \
1167
$(picdir)/ddd-settings$(IMGEXT) \
1168
$(picdir)/ddd-shortcuts$(IMGEXT) \
1169
$(picdir)/ddd-shortcut-editor$(IMGEXT) \
1170
$(picdir)/ddd-signals$(IMGEXT) \
1171
$(picdir)/ddd-source-popup$(IMGEXT) \
1172
$(picdir)/ddd-source-prefs$(IMGEXT) \
1173
$(picdir)/ddd-source$(IMGEXT) \
1174
$(picdir)/ddd-startup-prefs$(IMGEXT) \
1175
$(picdir)/ddd-status-displays$(IMGEXT) \
1176
$(picdir)/ddd-threads$(IMGEXT) \
1177
$(picdir)/ddd-tool$(IMGEXT) \
1178
$(picdir)/ddd-toolbar$(IMGEXT) \
1179
$(picdir)/ddd-toolbars$(IMGEXT) \
1180
$(picdir)/ddd-value-tip$(IMGEXT) \
1181
$(picdir)/tut-backtrace$(IMGEXT) \
1182
$(picdir)/tut-display$(IMGEXT) \
1183
$(picdir)/tut-finish$(IMGEXT) \
1184
$(picdir)/tut-invoke$(IMGEXT) \
1185
$(picdir)/tut-run$(IMGEXT) \
1186
$(picdir)/tut-set$(IMGEXT) \
1187
$(picdir)/tut-value$(IMGEXT)
1190
## The manual page(s).
1193
## The (derived) icons.
1195
icondir = $(srcdir)/../icons
1196
toolbardir = $(icondir)/toolbar
1198
# XBM icons are derived from XPM sources
1200
$(toolbardir)/breakat.xbm \
1201
$(toolbardir)/clearat.xbm \
1202
$(toolbardir)/cluster.xbm \
1203
$(toolbardir)/delete.xbm \
1204
$(toolbardir)/deref.xbm \
1205
$(toolbardir)/disable.xbm \
1206
$(toolbardir)/display.xbm \
1207
$(toolbardir)/findbwd.xbm \
1208
$(toolbardir)/findfwd.xbm \
1209
$(toolbardir)/enable.xbm \
1210
$(toolbardir)/hide.xbm \
1211
$(toolbardir)/lookup.xbm \
1212
$(toolbardir)/maketemp.xbm \
1213
$(toolbardir)/newbreak.xbm \
1214
$(toolbardir)/newdisplay.xbm \
1215
$(toolbardir)/newwatch.xbm \
1216
$(toolbardir)/plot.xbm \
1217
$(toolbardir)/print.xbm \
1218
$(toolbardir)/properties.xbm \
1219
$(toolbardir)/rotate.xbm \
1220
$(toolbardir)/set.xbm \
1221
$(toolbardir)/show.xbm \
1222
$(toolbardir)/uncluster.xbm \
1223
$(toolbardir)/undisplay.xbm \
1224
$(toolbardir)/unwatch.xbm \
1225
$(toolbardir)/watch.xbm
1227
# XPMXX icons (insensitive XPM icons) are derived from XBM sources
1229
$(toolbardir)/breakat.xpmxx \
1230
$(toolbardir)/clearat.xpmxx \
1231
$(toolbardir)/cluster.xpmxx \
1232
$(toolbardir)/delete.xpmxx \
1233
$(toolbardir)/deref.xpmxx \
1234
$(toolbardir)/disable.xpmxx \
1235
$(toolbardir)/display.xpmxx \
1236
$(toolbardir)/findbwd.xpmxx \
1237
$(toolbardir)/findfwd.xpmxx \
1238
$(toolbardir)/enable.xpmxx \
1239
$(toolbardir)/hide.xpmxx \
1240
$(toolbardir)/lookup.xpmxx \
1241
$(toolbardir)/maketemp.xpmxx \
1242
$(toolbardir)/newbreak.xpmxx \
1243
$(toolbardir)/newdisplay.xpmxx \
1244
$(toolbardir)/newwatch.xpmxx \
1245
$(toolbardir)/plot.xpmxx \
1246
$(toolbardir)/print.xpmxx \
1247
$(toolbardir)/properties.xpmxx \
1248
$(toolbardir)/rotate.xpmxx \
1249
$(toolbardir)/set.xpmxx \
1250
$(toolbardir)/show.xpmxx \
1251
$(toolbardir)/uncluster.xpmxx \
1252
$(toolbardir)/undisplay.xpmxx \
1253
$(toolbardir)/unwatch.xpmxx \
1254
$(toolbardir)/watch.xpmxx
1256
# XBMXX icons (insensitive XBM icons) are derived from XPM sources
1258
$(toolbardir)/breakat.xbmxx \
1259
$(toolbardir)/clearat.xbmxx \
1260
$(toolbardir)/cluster.xbmxx \
1261
$(toolbardir)/delete.xbmxx \
1262
$(toolbardir)/deref.xbmxx \
1263
$(toolbardir)/disable.xbmxx \
1264
$(toolbardir)/display.xbmxx \
1265
$(toolbardir)/findbwd.xbmxx \
1266
$(toolbardir)/findfwd.xbmxx \
1267
$(toolbardir)/enable.xbmxx \
1268
$(toolbardir)/hide.xbmxx \
1269
$(toolbardir)/lookup.xbmxx \
1270
$(toolbardir)/maketemp.xbmxx \
1271
$(toolbardir)/newbreak.xbmxx \
1272
$(toolbardir)/newdisplay.xbmxx \
1273
$(toolbardir)/newwatch.xbmxx \
1274
$(toolbardir)/plot.xbmxx \
1275
$(toolbardir)/print.xbmxx \
1276
$(toolbardir)/properties.xbmxx \
1277
$(toolbardir)/rotate.xbmxx \
1278
$(toolbardir)/set.xbmxx \
1279
$(toolbardir)/show.xbmxx \
1280
$(toolbardir)/uncluster.xbmxx \
1281
$(toolbardir)/undisplay.xbmxx \
1282
$(toolbardir)/unwatch.xbmxx \
1283
$(toolbardir)/watch.xbmxx
1286
# Order is significant here! First sources, then derived files.
1288
$(icondir)/ddd.xbm \
1289
$(icondir)/dddmask.xbm \
1290
$(icondir)/dddsplash.xbm \
1291
$(icondir)/ddd.xface \
1297
## Readme files built from ddd.texi
1301
SYMS = $(ddd).syms $(ddd_canonical).syms
1304
## Intermediate files
1306
# Architecture-independent files required for building DDD.
1307
# In a distribution, these should be already built.
1309
# Order is significant here! First source files, then derived files.
1310
PROG_STUFF = vsl-lex.C vsl-gramma.h vsl-gramma.C rxscan.C \
1311
acconfig.h acspecial.h stamp-h.in config.h \
1312
$(srcdir)/tips.m4 $(srcdir)/tips.html \
1313
$(srcdir)/Ddd.in Ddd.ad.h host.h \
1314
$(srcdir)/ddd.vsl $(srcdir)/ddd.vsl.h \
1315
vr.h version.h bld.h build.h configinfo.C \
1316
COPYING.gz.C NEWS.gz.C ddd.info.txt.gz.C \
1317
xlibdir.C eps-code.h .gdbinit \
1318
../$(ddd)-$(VERSION)-$(REL).spec
1320
# Extra files to be built for the distribution
1321
# In a distribution, these should be already built.
1322
DIST_STUFF = $(PROG_STUFF) $(MANS) $(PSS) $(PDFS) $(HTMLS) $(ICONS)
1324
# Temporary Files to be cleaned, keeping configuration intact
1325
CLEAN_STUFF = $(ddd)-$(VERSION)-* $(PROGS) $(DEMOS) \
1326
core *.$(OBJEXT) *.a *.s *.i \
1327
tmp* *.tmp .*hist* *.syms *.log dddgraph.* \
1328
*.au *.aus *.aux *.cm *.cms *.cp *.cps *.en *.ens \
1329
*.fl *.flc *.fls *.fn *.fns *.ky *.kys *.lb *.lbs \
1330
*.log *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs \
1331
*.info *.info-* *.html *.dvi *.pdf *.tmp \
1332
gpl.texinfo lgpl.texinfo texinfo.tex epsf.tex xepsf.tex \
1333
*.tar *.tar.gz *~ lex.* y.tab.* site.* *.sum \
1334
*.diff *.private USERINFO *.huff.C \
1335
*.txt.gz COPYING.gz NEWS.gz *.gz.C
1337
# Architecture-dependent files to be deleted from distribution
1338
DISTCLEAN_STUFF = $(CLEAN_STUFF) \
1339
config.status config.h host.h paths.h \
1340
Makefile MakeOut LOG OOBR OOBR-FTR TAGS \
1341
config.log config.cache configinfo.C stamp-h \
1342
Ddd Ddd.ad.h ddd.man-nopics \
1343
$(PS_IMAGES) $(HTML_IMAGES) $(PDF_IMAGES)
1345
# Any files that can be reconstructed, except configure script
1346
REALCLEAN_STUFF = $(DISTCLEAN_STUFF) $(DIST_STUFF) \
1347
header.str trailer.str eps-code.h \
1348
vr.h bld.h cfg.texi $(MANS)
1350
# All files that can be reconstructed (but may require special programs)
1351
ULTRACLEAN_STUFF = $(REALCLEAN_STUFF) \
1352
config.h.in stamp-h.in configure Makedeps \
1353
$(README_FILES) $(docdir)/sample.c \
1354
$(htmldir)/*.html $(htmldir)/PICS $(srcdir)/Ddd.in
1357
## Targets as specified in GNU standards.
1358
all: ddd-message $(PROG_STUFF) $(PROGS) ddd-done
1364
@$(ECHO) "Building $(ddd_canonical)..."
1367
ddd-done: ./$(ddd)$(EXEEXT)
1368
@$(ECHO) "Building $(ddd_canonical)... done."
1369
@$(ECHO) "You may now type \`$(MAKE) check' for a test."
1372
install: install-prog install-man install-info
1375
.PHONY: install-strip
1377
$(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
1380
uninstall: uninstall-prog uninstall-man uninstall-info
1383
# install-prog does not depend on $(PROGS)
1384
# since we may have precompiled packages
1385
.PHONY: install-prog
1387
-parent=`$(ECHO) $(bindir) | $(SED) -e 's@/[^/]*$$@@'`; \
1388
grandparent=`$(ECHO) $$parent | $(SED) -e 's@/[^/]*$$@@'`; \
1389
test -d $$grandparent || $(MKDIR) $$grandparent; \
1390
test -d $$parent || $(MKDIR) $$parent
1391
-test -d $(bindir) || $(MKDIR) $(bindir)
1392
for p in $(INSTALL_PROGS); do \
1393
$(INSTALL_PROGRAM) \
1394
$$p $(bindir)/`$(ECHO) $$p | $(SED) '$(transform)'`; \
1397
.PHONY: uninstall-prog
1399
for p in $(INSTALL_PROGS); do \
1400
$(RM) $(bindir)/`$(ECHO) $$p | $(SED) '$(transform)'`; \
1403
.PHONY: install-info
1404
install-info: $(INFO)
1405
-parent=`$(ECHO) $(infodir) | $(SED) -e 's@/[^/]*$$@@'`; \
1406
grandparent=`$(ECHO) $$parent | $(SED) -e 's@/[^/]*$$@@'`; \
1407
test -d $$grandparent || $(MKDIR) $$grandparent; \
1408
test -d $$parent || $(MKDIR) $$parent
1409
-test -d $(infodir) || $(MKDIR) $(infodir)
1410
cd $(infodir) && $(RM) $(INFOS)
1411
for i in $(INFOS); do \
1412
test -s $$i && $(INSTALL_DATA) $$i $(infodir); \
1415
.PHONY: uninstall-info
1417
cd $(infodir); $(RM) $(INFOS)
1421
-parent=`$(ECHO) $(man1dir) | $(SED) -e 's@/[^/]*$$@@'`; \
1422
grandparent=`$(ECHO) $$parent | $(SED) -e 's@/[^/]*$$@@'`; \
1423
test -d $$grandparent || $(MKDIR) $$grandparent; \
1424
test -d $$parent || $(MKDIR) $$parent
1425
-test -d $(man1dir) || $(MKDIR) $(man1dir)
1426
test -f ddd.1 || cd $(srcdir); \
1427
$(INSTALL_DATA) ddd.1 \
1428
$(man1dir)/`$(ECHO) ddd$(man1ext) | $(SED) '$(transform)'`
1430
.PHONY: uninstall-man
1432
$(RM) $(man1dir)/`$(ECHO) ddd$(man1ext) | $(SED) '$(transform)'`
1436
$(RM) $(picdir)/*.gif $(picdir)/*.jpg $(picdir)/*.png
1437
$(RM) $(picdir)/*.eps
1438
-cd $(picdir) && $(RM) $(CLEAN_STUFF) ./#*#
1443
-cd $(icondir) && $(RM) $(CLEAN_STUFF) ./#*#
1444
-cd $(toolbardir) && $(RM) $(CLEAN_STUFF) ./#*#
1448
$(RM) $(CLEAN_STUFF) ./#*#
1449
-cd $(picdir) && $(RM) $(CLEAN_STUFF) ./#*#
1453
$(RM) $(DISTCLEAN_STUFF) ./#*#
1459
.PHONY: realclean maintainer-clean
1460
realclean maintainer-clean:
1461
@echo 'This command is intended for maintainers to use; it'
1462
@echo 'deletes files that may need special tools to rebuild.'
1463
$(RM) $(REALCLEAN_STUFF) ./#*#
1467
@echo 'This command is intended for maintainers to use; it'
1468
@echo 'deletes files that may need special tools to rebuild.'
1469
$(RM) $(ULTRACLEAN_STUFF) ./#*#
1500
readme: $(README_FILES)
1504
diststuff: $(DIST_STUFF)
1505
-for file in $(DIST_STUFF); do test -f $$file && $(TOUCH) $$file; done
1510
@$(ECHO) see the top-level directory for making dist files.
1517
.PHONY: progs programs
1528
## A TECO-ism: `make love'
1535
## Another joke: `make money fast'
1539
@$(ECHO) '$$1,000,000'
1545
# Newsgroups: rec.humor.funny.reruns
1546
# From: sater@cs.vu.nl (Hans van Staveren)
1547
# Subject: Good news and bad news
1548
# Approved: rhf-reruns@clari.net
1549
# Keywords: heard it, funny, originally appeared in second quarter, 1990
1550
# Message-ID: <Sba5.2ff7@clarinet.com>
1551
# Date: Tue, 14 Oct 97 19:20:05 EDT
1553
# Xref: news.tu-bs.de rec.humor.funny.reruns:535
1555
# From the RHF archives as selected by Brad Templeton, Maddi Hausmann
1556
# and Jim Griffith. This newsgroup posts former jokes from the
1557
# newsgroup rec.humor.funny. Visit http://comedy.clari.net/rhf to
1558
# browse the RHF pages and archives on the web.
1565
@$(ECHO) 'A man gets a telephone call from a doctor. The doctor says:'
1566
@$(ECHO) ' "About this medical test I did on you, I have some good news'
1567
@$(ECHO) ' and some bad news."'
1570
@$(ECHO) 'The man asks for the good news first:'
1573
@$(ECHO) ' "The good news is that you have 24 hours to live", says the doctor.'
1576
@$(ECHO) 'The man, incredulously:'
1577
@$(ECHO) ' "If that is the good news, then what is the bad news??"'
1580
@$(ECHO) ' "I couldn'\''t reach you on the phone yesterday."'
1590
## The resource header and app-default files.
1592
Ddd.ad.h: Ddd $(srcdir)/ad2c.sed
1593
$(AD2C) Ddd > $@~ && $(MV) $@~ $@
1595
$(srcdir)/Ddd.in: $(srcdir)/Ddd.in.m4 $(srcdir)/tips.m4 \
1596
$(srcdir)/macros.m4 $(srcdir)/colors.m4
1599
echo "define(srcdir, \`$(srcdir)')dnl"; \
1600
echo "include(srcdir()/Ddd.in.m4)dnl" \
1603
echo "define(srcdir, \`$(srcdir)')dnl"; \
1604
echo "include(srcdir()/tips.m4)dnl" \
1606
) > $@~ && $(MV) $@~ $@
1609
## The VSL header files.
1611
VSLDIR = $(srcdir)/../vsllib
1613
VSL_CPP = $(CPP) -I$(VSLDIR) -I$(prefix)/lib/vsl-include
1617
$(VSLDIR)/builtin.vsl \
1619
$(VSLDIR)/fonts.vsl \
1620
$(VSLDIR)/colors.vsl
1622
$(srcdir)/ddd.vsl.h: $(srcdir)/ddd.vsl $(srcdir)/vsl2c.sed $(VSLSOURCES)
1623
$(CAT) $(srcdir)/ddd.vsl > tmp.c
1624
$(VSL_CPP) tmp.c | $(VSL2C) > $@
1627
$(srcdir)/ddd.vsl: $(srcdir)/ddd.vsl.m4 $(srcdir)/colors.m4
1629
echo "define(srcdir, \`$(srcdir)')dnl"; \
1630
echo "include(srcdir()/ddd.vsl.m4)dnl" \
1631
) | $(M4) > $@~ && $(MV) $@~ $@
1638
tips: $(srcdir)/tips.m4 $(srcdir)/tips.html
1640
$(srcdir)/tips.m4: $(srcdir)/../TIPS $(srcdir)/tips2m4.awk
1641
$(AWK) -f $(srcdir)/tips2m4.awk $(srcdir)/../TIPS > $@~ && $(MV) $@~ $@
1643
$(srcdir)/tips.html: $(srcdir)/../TIPS
1645
echo "define(srcdir, \`$(srcdir)')dnl"; \
1646
echo "define(macros, \`$(srcdir)/html.m4')dnl"; \
1647
echo "include(srcdir()/../TIPS)dnl" \
1648
) | $(M4) | $(AWK) -f $(srcdir)/tips2html.awk | \
1649
$(SED) 's/\\133/\[/g' | $(SED) 's/\\135/\]/g' | \
1650
$(SED) 's/@\([A-Z][A-Z]*\)@/\1/g' | $(SED) 's/@ /@/g' \
1651
> $@~ && $(MV) $@~ $@
1654
# `make depend' fails to find this dependency :-(
1655
DispBox.$(OBJEXT): $(srcdir)/ddd.vsl.h
1657
# And these are never computed:
1658
ddd.vsl.h: $(srcdir)/../vsllib/std.vsl
1659
ddd.vsl.h: $(srcdir)/../vsllib/fonts.vsl
1660
ddd.vsl.h: $(srcdir)/../vsllib/colors.vsl
1661
ddd.vsl.h: $(srcdir)/../vsllib/builtin.vsl
1662
ddd.vsl.h: $(srcdir)/../vsllib/tab.vsl
1667
# We use `./ddd' to prevent Solaris VPATH-enabled make from selecting
1668
# the `ddd' directory instead.
1669
./$(ddd)$(EXEEXT): $(ddd_canonical)$(EXEEXT)
1670
$(RM) ./$(ddd)$(EXEEXT) $(SYMS)
1671
$(LN_S) $(ddd_canonical)$(EXEEXT) ./$(ddd)$(EXEEXT)
1673
$(ddd_canonical)$(EXEEXT): ddd.$(OBJEXT) $(OBJECTS)
1674
$(LINK.cc) -o $@ ddd.$(OBJEXT) $(OBJECTS) $(ALL_X_LIBS) $(LIBS)
1677
## The demonstration programs.
1679
userinfo$(EXEEXT): userinfo.$(OBJEXT) $(USERINFO_OBJECTS)
1680
-$(LINK.cc) -o $@ userinfo.$(OBJEXT) \
1681
$(USERINFO_OBJECTS) $(NON_X_LIBS) $(LIBS)
1683
rxtest$(EXEEXT): rxtest.$(OBJEXT) $(HUFFMAN_OBJECTS)
1684
-$(LINK.cc) -o $@ rxtest.$(OBJEXT) \
1685
$(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
1687
huffencode$(EXEEXT): huffencode.$(OBJEXT) $(HUFFMAN_OBJECTS)
1688
$(LINK.cc) -o $@ huffencode.$(OBJEXT) \
1689
$(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
1691
huffdecode$(EXEEXT): huffdecode.$(OBJEXT) $(HUFFMAN_OBJECTS)
1692
$(LINK.cc) -o $@ huffdecode.$(OBJEXT) \
1693
$(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
1695
stringify$(EXEEXT): stringify.$(OBJEXT)
1696
$(LINK.cc) -o $@ stringify.$(OBJEXT) $(LIBS)
1698
mmtest$(EXEEXT): mmtest.$(OBJEXT) $(LIB_OBJECTS)
1699
$(LINK.cc) -o $@ mmtest.$(OBJEXT) $(LIB_OBJECTS) $(ALL_X_LIBS) $(LIBS)
1701
gcore$(EXEEXT): gcore.$(OBJEXT) $(HUFFMAN_OBJECTS)
1702
$(LINK.cc) -o $@ gcore.$(OBJEXT) \
1703
$(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
1705
logplayer$(EXEEXT): $(srcdir)/logplayer.C $(HUFFMAN_OBJECTS)
1706
$(COMPILE_AND_LINK.cc) -DMAIN $(INCLUDE) -o $@ \
1707
$(srcdir)/logplayer.C $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
1709
test-file$(EXEEXT): test-file.$(OBJEXT)
1710
$(LINK.cc) -o $@ test-file.$(OBJEXT) $(ALL_X_LIBS)
1712
test-graph$(EXEEXT): test-graph.$(OBJEXT) $(LIB_OBJECTS)
1713
$(LINK.cc) -o $@ test-graph.$(OBJEXT) \
1714
$(LIB_OBJECTS) $(ALL_X_LIBS) $(LIBS)
1716
vsl$(EXEEXT): vsl.$(OBJEXT) DocSpace.$(OBJEXT) $(LIB_OBJECTS)
1717
$(LINK.cc) -o $@ vsl.$(OBJEXT) DocSpace.$(OBJEXT) \
1718
$(LIB_OBJECTS) $(ALL_X_LIBS) $(LIBS)
1720
ttytest$(EXEEXT): ttytest.$(OBJEXT) \
1721
$(BASE_OBJECTS) $(AGENT_OBJECTS) $(TEMPLATE_OBJECTS)
1722
$(LINK.cc) -o $@ ttytest.$(OBJEXT) \
1723
$(BASE_OBJECTS) $(AGENT_OBJECTS) $(TEMPLATE_OBJECTS) \
1724
$(ALL_X_LIBS) $(LIBS)
1726
bug$(EXEEXT): bug.$(OBJEXT)
1727
$(LINK.cc) -o $@ bug.$(OBJEXT) $(LIBS)
1729
sample$(EXEEXT): sample.$(OBJEXT)
1730
$(LINK.c) -o $@ sample.$(OBJEXT) $(LIBS)
1732
tString$(EXEEXT): tString.$(OBJEXT) $(HUFFMAN_OBJECTS)
1733
$(LINK.cc) -o $@ tString.$(OBJEXT) \
1734
$(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
1736
cxxtest$(EXEEXT): cxxtest.$(OBJEXT)
1737
$(LINK.cc) -o $@ cxxtest.$(OBJEXT) $(LIBS)
1739
grabtest$(EXEEXT): grabtest.$(OBJEXT)
1740
$(LINK.cc) -o $@ grabtest.$(OBJEXT) $(ALL_X_LIBS) $(LIBS)
1742
ctest$(EXEEXT): ctest.$(OBJEXT)
1743
$(LINK.c) -o $@ ctest.$(OBJEXT)
1745
ptest$(EXEEXT): ptest.$(OBJEXT)
1746
$(LINK.p) -o $@ ptest.$(OBJEXT)
1748
m2test$(EXEEXT): $(srcdir)/m2test.mod
1749
$(COMPILE_AND_LINK.m2) -o $@ -e $@ $(srcdir)/m2test.mod \
1752
ftest$(EXEEXT): ftest.$(OBJEXT)
1753
$(LINK.f) -o $@ ftest.$(OBJEXT)
1757
cd $(srcdir)/jtest; $(MAKE) jtest
1759
swallow$(EXEEXT): swallow.$(OBJEXT) findWindow.$(OBJEXT) Swallower.$(OBJEXT)
1760
$(LINK.cc) -o $@ swallow.$(OBJEXT) findWindow.$(OBJEXT) Swallower.$(OBJEXT) \
1761
$(ALL_X_LIBS) $(LIBS)
1763
# We don't want no optimizing, but debugging info in our test files
1765
$(MAKE) CXXFLAGS="`$(ECHO) '$(CXXFLAGS)' | \
1766
$(SED) 's/-O[^ ]*//' | $(SED) 's/-DNDEBUG//'`" \
1767
CFLAGS="`$(ECHO) '$(CFLAGS)' | \
1768
$(SED) 's/-O[^ ]*//' | $(SED) 's/-DNDEBUG//'`"
1770
cxxtest.$(OBJEXT): $(srcdir)/cxxtest.C
1771
@case '$(CXXFLAGS)' in \
1772
*-O*) $(MAKE_DEBUG) $@;; \
1774
$(COMPILE.cc) @CXXDEBUG@ $(INCLUDE) $(srcdir)/cxxtest.C -o $@;; \
1777
ctest.$(OBJEXT): $(srcdir)/ctest.c
1778
@case '$(CFLAGS)' in \
1779
*-O*) $(MAKE_DEBUG) $@;; \
1781
$(COMPILE.c) -g $(INCLUDE) $(srcdir)/ctest.c -o $@;; \
1784
sample.$(OBJEXT): $(srcdir)/sample.c
1785
@case '$(CFLAGS)' in \
1786
*-O*) $(MAKE_DEBUG) $@;; \
1788
$(COMPILE.c) -g $(INCLUDE) $(srcdir)/sample.c -o $@;; \
1791
grabtest.$(OBJEXT): $(srcdir)/grabtest.C
1792
@case '$(CXXFLAGS)' in \
1793
*-O*) $(MAKE_DEBUG) $@;; \
1795
$(COMPILE.cc) @CXXDEBUG@ $(INCLUDE) $(srcdir)/grabtest.C -o $@;; \
1798
bug.$(OBJEXT): $(srcdir)/bug.C
1799
@case '$(CXXFLAGS)' in \
1800
*-O*) $(MAKE_DEBUG) $@;; \
1802
$(COMPILE.cc) @CXXDEBUG@ $(INCLUDE) $(srcdir)/bug.C -o $@;; \
1805
# These are special.
1806
huffdecode.$(OBJEXT): $(srcdir)/huffdecode.C ddd.man.huff.C
1807
$(COMPILE.cc) -DMAIN -DHUFFTEXT='"$(srcdir)/ddd.man.huff.C"' \
1808
$(INCLUDE) -o $@ $(srcdir)/huffdecode.C
1810
ftest.$(OBJEXT): $(srcdir)/ftest.f
1811
$(COMPILE.f) -c -o $@ $(srcdir)/ftest.f
1814
## For demonstration and debugging purposes
1816
check: Ddd ./$(ddd)$(EXEEXT) cxxtest$(EXEEXT)
1817
XUSERFILESEARCHPATH=%N XAPPLRESDIR=. ./$(ddd)$(EXEEXT) $(DDD_OPTIONS) cxxtest$(EXEEXT)
1820
vsldemo: ./vsl$(EXEEXT) $(srcdir)/ddd.vsl
1821
./vsl$(EXEEXT) -I $(VSLDIR) $(srcdir)/ddd.vsl
1824
debug: Ddd ./$(ddd)$(EXEEXT) cxxtest$(EXEEXT) .gdbinit $(ddd).syms
1825
$(DEBUGGER) ./$(ddd)$(EXEEXT)
1827
$(ddd).syms: $(ddd_canonical).syms
1828
$(RM) $@; $(LN_S) $(ddd_canonical).syms $@
1830
$(ddd_canonical).syms: $(ddd_canonical)$(EXEEXT)
1831
nice $(DEBUGGER) -batch -nx -mapped -readnow $(ddd_canonical)$(EXEEXT)
1839
# Create useful stuff in background
1841
stuff: ./$(ddd)$(EXEEXT)
1842
$(MAKE) $(ddd).syms > make.log 2>&1 &
1845
# A convient target for setting up a debugging environment.
1847
it: all cxxtest$(EXEEXT) ctest$(EXEEXT) stuff
1852
## Lex and Yacc stuff.
1855
vsl-lex.C: $(srcdir)/vsl-lex.L
1856
$(LEX.L) $(srcdir)/vsl-lex.L
1857
$(SHELL) $(LEXTOCXX) -prefix vsl
1858
$(MV) $(LEX_OUTPUT_ROOT).C $@
1859
$(RM) $(LEX_OUTPUT_ROOT).c
1861
vsl-gramma.h vsl-gramma.C: $(srcdir)/vsl-gramma.Y \
1862
$(YACCTOCXX) $(YACCTOCXX).bison $(YACCTOCXX).h $(YACCTOCXX).sun
1863
$(YACC.Y) -d $(srcdir)/vsl-gramma.Y
1864
$(SHELL) $(YACCTOCXX) -prefix vsl
1865
$(MV) y.tab.H vsl-gramma.h
1866
$(MV) y.tab.C vsl-gramma.C
1867
$(RM) y.tab.c y.tab.h
1869
# DDD regexp parsers.
1870
rxscan.C: $(srcdir)/rxscan.L
1871
$(LEX.L) $(srcdir)/rxscan.L
1872
$(SHELL) $(LEXTOCXX) -prefix "ddd"
1873
$(MV) $(LEX_OUTPUT_ROOT).C $@
1874
$(RM) $(LEX_OUTPUT_ROOT).c
1876
# `make depend' fails to find these dependencies :-(
1877
VSLRead.$(OBJEXT): vsl-lex.C vsl-gramma.h vsl-gramma.C
1878
regexps.$(OBJEXT): rxscan.C
1881
## The manual page in PostScript format, including all pictures.
1883
$(docdir)/ddd.man.ps: ddd.man $(PS_IMAGES)
1884
$(GROFF) -man ddd.man > $@~ && $(MV) $@~ $@
1886
$(docdir)/ddd.man-nopics.ps: ddd.man-nopics
1887
$(GROFF) -man ddd.man-nopics > $@~ && $(MV) $@~ $@
1892
$(picdir)/ddd-all.eps: \
1893
$(picdir)/ddd-all.fig $(picdir)/ddd-all.xpm
1894
$(picdir)/ddd-console.eps: \
1895
$(picdir)/ddd-console.fig $(picdir)/ddd-console.xpm
1896
$(picdir)/ddd-history.eps: \
1897
$(picdir)/ddd-history.fig $(picdir)/ddd-history.xpm
1898
$(picdir)/ddd-open.eps: \
1899
$(picdir)/ddd-open.fig $(picdir)/ddd-open.xpm
1900
$(picdir)/ddd-source.eps: \
1901
$(picdir)/ddd-source.fig $(picdir)/ddd-source.xpm
1902
$(picdir)/ddd-line-popup.eps: \
1903
$(picdir)/ddd-line-popup.fig $(picdir)/ddd-line-popup.xpm
1904
$(picdir)/ddd-bp-popup.eps: \
1905
$(picdir)/ddd-bp-popup.fig $(picdir)/ddd-bp-popup.xpm
1906
$(picdir)/ddd-source-popup.eps: \
1907
$(picdir)/ddd-source-popup.fig $(picdir)/ddd-source-popup.xpm
1908
$(picdir)/ddd-arguments.eps: \
1909
$(picdir)/ddd-arguments.fig $(picdir)/ddd-arguments.xpm
1910
$(picdir)/ddd-tool.eps: \
1911
$(picdir)/ddd-tool.fig $(picdir)/ddd-tool.xpm
1912
$(picdir)/ddd-backtrace.eps: \
1913
$(picdir)/ddd-backtrace.fig $(picdir)/ddd-backtrace.xpm
1914
$(picdir)/ddd-value-tip.eps: \
1915
$(picdir)/ddd-value-tip.fig $(picdir)/ddd-value-tip.xpm
1916
$(picdir)/ddd-print-popup.eps: \
1917
$(picdir)/ddd-print-popup.fig $(picdir)/ddd-print-popup.xpm
1918
$(picdir)/ddd-select-display.eps: \
1919
$(picdir)/ddd-select-display.fig $(picdir)/ddd-select-display.xpm
1920
$(picdir)/ddd-hide-display.eps: \
1921
$(picdir)/ddd-hide-display.fig $(picdir)/ddd-hide-display.xpm
1922
$(picdir)/ddd-rotate-display.eps: \
1923
$(picdir)/ddd-rotate-display.fig $(picdir)/ddd-rotate-display.xpm
1924
$(picdir)/ddd-locals.eps: \
1925
$(picdir)/ddd-locals.fig $(picdir)/ddd-locals.xpm
1926
$(picdir)/ddd-status-displays.eps: \
1927
$(picdir)/ddd-status-displays.fig $(picdir)/ddd-status-displays.xpm
1928
$(picdir)/ddd-set.eps: \
1929
$(picdir)/ddd-set.fig $(picdir)/ddd-set.xpm
1930
$(picdir)/ddd-layout.eps: \
1931
$(picdir)/ddd-layout.fig $(picdir)/ddd-layout.xpm
1932
$(picdir)/ddd-print-graph.eps: \
1933
$(picdir)/ddd-print-graph.fig $(picdir)/ddd-print-graph.xpm
1934
$(picdir)/ddd-print-output.eps: \
1935
$(picdir)/ddd-print-output.fig $(picdir)/ddd-graph.ps
1936
$(picdir)/ddd-code.eps: \
1937
$(picdir)/ddd-code.fig $(picdir)/ddd-code.xpm
1938
$(picdir)/ddd-registers.eps: \
1939
$(picdir)/ddd-registers.fig $(picdir)/ddd-registers.xpm
1940
$(picdir)/ddd-general-prefs.eps: \
1941
$(picdir)/ddd-general-prefs.fig $(picdir)/ddd-general-prefs.xpm
1942
$(picdir)/ddd-helpers.eps: \
1943
$(picdir)/ddd-helpers.fig $(picdir)/ddd-helpers.xpm
1944
$(picdir)/ddd-source-prefs.eps: \
1945
$(picdir)/ddd-source-prefs.fig $(picdir)/ddd-source-prefs.xpm
1946
$(picdir)/ddd-data-prefs.eps: \
1947
$(picdir)/ddd-data-prefs.fig $(picdir)/ddd-data-prefs.xpm
1948
$(picdir)/ddd-startup-prefs.eps: \
1949
$(picdir)/ddd-startup-prefs.fig $(picdir)/ddd-startup-prefs.xpm
1950
$(picdir)/ddd-settings.eps: \
1951
$(picdir)/ddd-settings.fig $(picdir)/ddd-settings.xpm
1952
$(picdir)/ddd-threads.eps: \
1953
$(picdir)/ddd-threads.fig $(picdir)/ddd-threads.xpm
1954
$(picdir)/ddd-aliases.eps: \
1955
$(picdir)/ddd-aliases.fig $(picdir)/ddd-aliases.xpm
1956
$(picdir)/ddd-edit-displays.eps: \
1957
$(picdir)/ddd-edit-displays.fig $(picdir)/ddd-edit-displays.xpm
1958
$(picdir)/ddd-attach.eps: \
1959
$(picdir)/ddd-attach.fig $(picdir)/ddd-attach.xpm
1960
$(picdir)/ddd-save-session.eps: \
1961
$(picdir)/ddd-save-session.fig $(picdir)/ddd-save-session.xpm
1962
$(picdir)/ddd-open-session.eps: \
1963
$(picdir)/ddd-open-session.fig $(picdir)/ddd-open-session.xpm
1964
$(picdir)/ddd-button-editor.eps: \
1965
$(picdir)/ddd-button-editor.fig $(picdir)/ddd-button-editor.xpm
1966
$(picdir)/ddd-shortcuts.eps: \
1967
$(picdir)/ddd-shortcuts.fig $(picdir)/ddd-shortcuts.xpm
1968
$(picdir)/ddd-shortcut-editor.eps: \
1969
$(picdir)/ddd-shortcut-editor.fig $(picdir)/ddd-shortcut-editor.xpm
1970
$(picdir)/ddd-drag.eps: \
1971
$(picdir)/ddd-drag.fig \
1972
$(picdir)/ddd-drag1.xpm \
1973
$(picdir)/ddd-drag2.xpm \
1974
$(picdir)/ddd-drag3.xpm
1975
$(picdir)/disclaimer.eps: \
1976
$(picdir)/disclaimer.fig
1977
$(picdir)/ddd-separate.eps: \
1978
$(picdir)/ddd-separate.fig $(picdir)/ddd-separate.xpm
1979
$(picdir)/ddd-bp-properties.eps: \
1980
$(picdir)/ddd-bp-properties.fig $(picdir)/ddd-bp-properties.xpm
1981
$(picdir)/ddd-edit-breakpoints.eps: \
1982
$(picdir)/ddd-edit-breakpoints.fig $(picdir)/ddd-edit-breakpoints.xpm
1983
$(picdir)/ddd-display.eps: \
1984
$(picdir)/ddd-display.fig $(picdir)/ddd-display.xpm
1985
$(picdir)/ddd-repeats.eps: \
1986
$(picdir)/ddd-repeats.fig $(picdir)/ddd-repeats.xpm
1987
$(picdir)/ddd-toolbar.eps: \
1988
$(picdir)/ddd-toolbar.fig $(picdir)/ddd-toolbar.xpm
1989
$(picdir)/ddd-font-prefs.eps: \
1990
$(picdir)/ddd-font-prefs.fig $(picdir)/ddd-font-prefs.xpm
1991
$(picdir)/ddd-define-command.eps: \
1992
$(picdir)/ddd-define-command.fig $(picdir)/ddd-define-command.xpm
1993
$(picdir)/ddd-signals.eps: \
1994
$(picdir)/ddd-signals.fig $(picdir)/ddd-signals.xpm
1995
$(picdir)/ddd-examine.eps: \
1996
$(picdir)/ddd-examine.fig $(picdir)/ddd-examine.xpm
1997
$(picdir)/ddd-clusters.eps: \
1998
$(picdir)/ddd-clusters.fig \
1999
$(picdir)/clustered.ps $(picdir)/unclustered.ps
2000
$(picdir)/ddd-plots.eps: \
2001
$(picdir)/ddd-plots.fig $(picdir)/ddd-plots.xpm
2002
$(picdir)/ddd-toolbars.eps: \
2003
$(picdir)/ddd-toolbars.fig \
2004
$(picdir)/ddd-toolbar-1.xpm \
2005
$(picdir)/ddd-toolbar-2.xpm \
2006
$(picdir)/ddd-toolbar-3.xpm \
2007
$(picdir)/ddd-toolbar-4.xpm
2010
# JPEGs are derived from EPS files
2012
$(picdir)/ddd-all$(IMGEXT): $(picdir)/ddd-all.eps
2013
$(picdir)/ddd-console$(IMGEXT): $(picdir)/ddd-console.eps
2014
$(picdir)/ddd-history$(IMGEXT): $(picdir)/ddd-history.eps
2015
$(picdir)/ddd-open$(IMGEXT): $(picdir)/ddd-open.eps
2016
$(picdir)/ddd-source$(IMGEXT): $(picdir)/ddd-source.eps
2017
$(picdir)/ddd-line-popup$(IMGEXT): $(picdir)/ddd-line-popup.eps
2018
$(picdir)/ddd-bp-popup$(IMGEXT): $(picdir)/ddd-bp-popup.eps
2019
$(picdir)/ddd-source-popup$(IMGEXT): $(picdir)/ddd-source-popup.eps
2020
$(picdir)/ddd-arguments$(IMGEXT): $(picdir)/ddd-arguments.eps
2021
$(picdir)/ddd-tool$(IMGEXT): $(picdir)/ddd-tool.eps
2022
$(picdir)/ddd-backtrace$(IMGEXT): $(picdir)/ddd-backtrace.eps
2023
$(picdir)/ddd-value-tip$(IMGEXT): $(picdir)/ddd-value-tip.eps
2024
$(picdir)/ddd-print-popup$(IMGEXT): $(picdir)/ddd-print-popup.eps
2025
$(picdir)/ddd-select-display$(IMGEXT): $(picdir)/ddd-select-display.eps
2026
$(picdir)/ddd-hide-display$(IMGEXT): $(picdir)/ddd-hide-display.eps
2027
$(picdir)/ddd-rotate-display$(IMGEXT): $(picdir)/ddd-rotate-display.eps
2028
$(picdir)/ddd-locals$(IMGEXT): $(picdir)/ddd-locals.eps
2029
$(picdir)/ddd-status-displays$(IMGEXT): $(picdir)/ddd-status-displays.eps
2030
$(picdir)/ddd-set$(IMGEXT): $(picdir)/ddd-set.eps
2031
$(picdir)/ddd-layout$(IMGEXT): $(picdir)/ddd-layout.eps
2032
$(picdir)/ddd-print-graph$(IMGEXT): $(picdir)/ddd-print-graph.eps
2033
$(picdir)/ddd-print-output$(IMGEXT): $(picdir)/ddd-print-output.eps
2034
$(picdir)/ddd-code$(IMGEXT): $(picdir)/ddd-code.eps
2035
$(picdir)/ddd-registers$(IMGEXT): $(picdir)/ddd-registers.eps
2036
$(picdir)/ddd-general-prefs$(IMGEXT): $(picdir)/ddd-general-prefs.eps
2037
$(picdir)/ddd-helpers$(IMGEXT): $(picdir)/ddd-helpers.eps
2038
$(picdir)/ddd-source-prefs$(IMGEXT): $(picdir)/ddd-source-prefs.eps
2039
$(picdir)/ddd-data-prefs$(IMGEXT): $(picdir)/ddd-data-prefs.eps
2040
$(picdir)/ddd-startup-prefs$(IMGEXT): $(picdir)/ddd-startup-prefs.eps
2041
$(picdir)/ddd-settings$(IMGEXT): $(picdir)/ddd-settings.eps
2042
$(picdir)/ddd-threads$(IMGEXT): $(picdir)/ddd-threads.eps
2043
$(picdir)/ddd-aliases$(IMGEXT): $(picdir)/ddd-aliases.eps
2044
$(picdir)/ddd-edit-displays$(IMGEXT): $(picdir)/ddd-edit-displays.eps
2045
$(picdir)/ddd-attach$(IMGEXT): $(picdir)/ddd-attach.eps
2046
$(picdir)/ddd-save-session$(IMGEXT): $(picdir)/ddd-save-session.eps
2047
$(picdir)/ddd-open-session$(IMGEXT): $(picdir)/ddd-open-session.eps
2048
$(picdir)/ddd-button-editor$(IMGEXT): $(picdir)/ddd-button-editor.eps
2049
$(picdir)/ddd-shortcuts$(IMGEXT): $(picdir)/ddd-shortcuts.eps
2050
$(picdir)/ddd-shortcut-editor$(IMGEXT): $(picdir)/ddd-shortcut-editor.eps
2051
$(picdir)/ddd-drag$(IMGEXT): $(picdir)/ddd-drag.eps
2052
$(picdir)/disclaimer$(IMGEXT): $(picdir)/disclaimer.eps
2053
$(picdir)/ddd-separate$(IMGEXT): $(picdir)/ddd-separate.eps
2054
$(picdir)/ddd-bp-properties$(IMGEXT): $(picdir)/ddd-bp-properties.eps
2055
$(picdir)/ddd-edit-breakpoints$(IMGEXT): $(picdir)/ddd-edit-breakpoints.eps
2056
$(picdir)/ddd-display$(IMGEXT): $(picdir)/ddd-display.eps
2057
$(picdir)/ddd-repeats$(IMGEXT): $(picdir)/ddd-repeats.eps
2058
$(picdir)/ddd-toolbar$(IMGEXT): $(picdir)/ddd-toolbar.eps
2059
$(picdir)/ddd-font-prefs$(IMGEXT): $(picdir)/ddd-font-prefs.eps
2060
$(picdir)/ddd-define-command$(IMGEXT): $(picdir)/ddd-define-command.eps
2061
$(picdir)/ddd-signals$(IMGEXT): $(picdir)/ddd-signals.eps
2062
$(picdir)/ddd-examine$(IMGEXT): $(picdir)/ddd-examine.eps
2063
$(picdir)/ddd-clusters$(IMGEXT): $(picdir)/ddd-clusters.eps
2064
$(picdir)/ddd-plots$(IMGEXT): $(picdir)/ddd-plots.eps
2065
$(picdir)/ddd-toolbars$(IMGEXT): $(picdir)/ddd-toolbars.eps
2068
# PDFs are also derived from EPS files
2070
$(picdir)/ddd-all.pdf: $(picdir)/ddd-all.eps
2071
$(picdir)/ddd-console.pdf: $(picdir)/ddd-console.eps
2072
$(picdir)/ddd-history.pdf: $(picdir)/ddd-history.eps
2073
$(picdir)/ddd-open.pdf: $(picdir)/ddd-open.eps
2074
$(picdir)/ddd-source.pdf: $(picdir)/ddd-source.eps
2075
$(picdir)/ddd-line-popup.pdf: $(picdir)/ddd-line-popup.eps
2076
$(picdir)/ddd-bp-popup.pdf: $(picdir)/ddd-bp-popup.eps
2077
$(picdir)/ddd-source-popup.pdf: $(picdir)/ddd-source-popup.eps
2078
$(picdir)/ddd-arguments.pdf: $(picdir)/ddd-arguments.eps
2079
$(picdir)/ddd-tool.pdf: $(picdir)/ddd-tool.eps
2080
$(picdir)/ddd-backtrace.pdf: $(picdir)/ddd-backtrace.eps
2081
$(picdir)/ddd-value-tip.pdf: $(picdir)/ddd-value-tip.eps
2082
$(picdir)/ddd-print-popup.pdf: $(picdir)/ddd-print-popup.eps
2083
$(picdir)/ddd-select-display.pdf: $(picdir)/ddd-select-display.eps
2084
$(picdir)/ddd-hide-display.pdf: $(picdir)/ddd-hide-display.eps
2085
$(picdir)/ddd-rotate-display.pdf: $(picdir)/ddd-rotate-display.eps
2086
$(picdir)/ddd-locals.pdf: $(picdir)/ddd-locals.eps
2087
$(picdir)/ddd-status-displays.pdf: $(picdir)/ddd-status-displays.eps
2088
$(picdir)/ddd-set.pdf: $(picdir)/ddd-set.eps
2089
$(picdir)/ddd-layout.pdf: $(picdir)/ddd-layout.eps
2090
$(picdir)/ddd-print-graph.pdf: $(picdir)/ddd-print-graph.eps
2091
$(picdir)/ddd-print-output.pdf: $(picdir)/ddd-print-output.eps
2092
$(picdir)/ddd-code.pdf: $(picdir)/ddd-code.eps
2093
$(picdir)/ddd-registers.pdf: $(picdir)/ddd-registers.eps
2094
$(picdir)/ddd-general-prefs.pdf: $(picdir)/ddd-general-prefs.eps
2095
$(picdir)/ddd-helpers.pdf: $(picdir)/ddd-helpers.eps
2096
$(picdir)/ddd-source-prefs.pdf: $(picdir)/ddd-source-prefs.eps
2097
$(picdir)/ddd-data-prefs.pdf: $(picdir)/ddd-data-prefs.eps
2098
$(picdir)/ddd-startup-prefs.pdf: $(picdir)/ddd-startup-prefs.eps
2099
$(picdir)/ddd-settings.pdf: $(picdir)/ddd-settings.eps
2100
$(picdir)/ddd-threads.pdf: $(picdir)/ddd-threads.eps
2101
$(picdir)/ddd-aliases.pdf: $(picdir)/ddd-aliases.eps
2102
$(picdir)/ddd-edit-displays.pdf: $(picdir)/ddd-edit-displays.eps
2103
$(picdir)/ddd-attach.pdf: $(picdir)/ddd-attach.eps
2104
$(picdir)/ddd-save-session.pdf: $(picdir)/ddd-save-session.eps
2105
$(picdir)/ddd-open-session.pdf: $(picdir)/ddd-open-session.eps
2106
$(picdir)/ddd-button-editor.pdf: $(picdir)/ddd-button-editor.eps
2107
$(picdir)/ddd-shortcuts.pdf: $(picdir)/ddd-shortcuts.eps
2108
$(picdir)/ddd-shortcut-editor.pdf: $(picdir)/ddd-shortcut-editor.eps
2109
$(picdir)/ddd-drag.pdf: $(picdir)/ddd-drag.eps
2110
$(picdir)/disclaimer.pdf: $(picdir)/disclaimer.eps
2111
$(picdir)/ddd-separate.pdf: $(picdir)/ddd-separate.eps
2112
$(picdir)/ddd-bp-properties.pdf: $(picdir)/ddd-bp-properties.eps
2113
$(picdir)/ddd-edit-breakpoints.pdf: $(picdir)/ddd-edit-breakpoints.eps
2114
$(picdir)/ddd-display.pdf: $(picdir)/ddd-display.eps
2115
$(picdir)/ddd-repeats.pdf: $(picdir)/ddd-repeats.eps
2116
$(picdir)/ddd-toolbar.pdf: $(picdir)/ddd-toolbar.eps
2117
$(picdir)/ddd-font-prefs.pdf: $(picdir)/ddd-font-prefs.eps
2118
$(picdir)/ddd-define-command.pdf: $(picdir)/ddd-define-command.eps
2119
$(picdir)/ddd-signals.pdf: $(picdir)/ddd-signals.eps
2120
$(picdir)/ddd-examine.pdf: $(picdir)/ddd-examine.eps
2121
$(picdir)/ddd-clusters.pdf: $(picdir)/ddd-clusters.eps
2122
$(picdir)/ddd-plots.pdf: $(picdir)/ddd-plots.eps
2123
$(picdir)/ddd-toolbars.pdf: $(picdir)/ddd-toolbars.eps
2126
# The logo comes in XPM source
2127
$(picdir)/dddsplash.eps: $(icondir)/dddsplash.xpm
2128
$(CONVERT) $(icondir)/dddsplash.xpm $@
2130
$(picdir)/dddsplash.gif: $(icondir)/dddsplash.xpm
2131
$(CONVERT) $(icondir)/dddsplash.xpm $@
2133
$(picdir)/dddsplash.jpg: $(icondir)/dddsplash.xpm
2134
$(CONVERT) -quality 100 $(icondir)/dddsplash.xpm $@
2136
$(picdir)/dddsplash.png: $(icondir)/dddsplash.xpm
2137
$(CONVERT) -quality 100 $(icondir)/dddsplash.xpm $@
2139
$(picdir)/dddlogo.eps: $(icondir)/dddlogo.xpm
2140
$(CONVERT) $(icondir)/dddlogo.xpm $@
2142
$(picdir)/dddlogo.gif: $(icondir)/dddlogo.xpm
2143
$(CONVERT) $(icondir)/dddlogo.xpm $@
2145
$(picdir)/dddlogo.jpg: $(icondir)/dddlogo.xpm
2146
$(CONVERT) -quality 100 $(icondir)/dddlogo.xpm $@
2148
$(picdir)/dddlogo.png: $(icondir)/dddlogo.xpm
2149
$(CONVERT) -quality 100 $(icondir)/dddlogo.xpm $@
2151
$(picdir)/dddback.eps: $(icondir)/dddback.xpm
2152
$(CONVERT) $(icondir)/dddback.xpm $@
2154
$(picdir)/dddback.gif: $(icondir)/dddback.xpm
2155
$(CONVERT) $(icondir)/dddback.xpm $@
2157
$(picdir)/dddback.jpg: $(icondir)/dddback.xpm
2158
$(CONVERT) -quality 100 $(icondir)/dddback.xpm $@
2160
$(picdir)/dddback.png: $(icondir)/dddback.xpm
2161
$(CONVERT) -quality 100 $(icondir)/dddback.xpm $@
2164
## The DDD manual in PostScript format, including all pictures.
2166
$(docdir)/ddd.ps: ddd.dvi
2167
$(DVIPS) ddd.dvi -o $@
2170
## The DDD manual in DVI format.
2172
# Be sure we have a local copy of the included sources.
2173
# This avoids messing around with include paths, which may
2174
# or may not be supported by the current tools.
2177
texidir = $(srcdir)/../texinfo
2187
ddd.dvi: $(srcdir)/ddd.texi $(INCLUDES) $(PS_IMAGES)
2188
-test -d PICS || $(LN_S) $(picdir) .
2189
$(TEXI2DVI) $(srcdir)/ddd.texi
2191
gpl.texinfo: $(texidir)/gpl.texinfo
2192
$(RM) $@; $(LN_S) $(texidir)/gpl.texinfo $@
2194
lgpl.texinfo: $(texidir)/lgpl.texinfo
2195
$(RM) $@; $(LN_S) $(texidir)/lgpl.texinfo $@
2197
texinfo.tex: $(texidir)/texinfo.tex
2198
$(RM) $@; $(LN_S) $(texidir)/texinfo.tex $@
2200
epsf.tex: $(texidir)/epsf.tex
2201
$(RM) $@; $(LN_S) $(texidir)/epsf.tex $@
2203
xepsf.tex: $(texidir)/epsf.tex
2204
$(RM) $@; $(LN_S) $(texidir)/xepsf.tex $@
2207
## The DDD manual in PDF format, including all pictures.
2209
$(docdir)/ddd.pdf: ddd.pdf
2210
$(INSTALL_DATA) ddd.pdf $@
2212
ddd.pdf: $(srcdir)/ddd.texi $(INCLUDES) $(PDF_IMAGES)
2213
-test -d PICS || $(LN_S) $(picdir) .
2214
$(TEXI2PDF) $(srcdir)/ddd.texi
2217
## The DDD manual in HTML format.
2219
$(htmldir)/index.html: $(srcdir)/ddd.texi $(INCLUDES) $(HTML_IMAGES) \
2220
style.css $(srcdir)/fix-html.sed
2221
@-test -d $(htmldir) || $(MKDIR) $(htmldir)
2222
@-test -d $(htmldir)/PICS || $(MKDIR) $(htmldir)/PICS
2223
@-test -d PICS || $(LN_S) $(picdir) .
2225
$(TEXI2HTML) $(srcdir)/ddd.texi
2226
for file in ddd*.html; do \
2227
$(SED) -f $(srcdir)/fix-html.sed $$file | \
2228
$(SED) 's/@IMGEXT@/\$(IMGEXT)/g' > $$file~ && \
2229
$(MV) $$file~ $$file; \
2231
cd $(htmldir) && $(RM) ddd*.html style.css PICS/*
2232
$(INSTALL_DATA) ddd*.html $(srcdir)/style.css $(htmldir)
2233
@$(ECHO) Installing images...
2234
@$(INSTALL_DATA) $(HTML_IMAGES) $(htmldir)/PICS
2235
@$(ECHO) Installing images...done.
2236
$(RM) $(htmldir)/index.html
2239
## The DDD manual in Info format.
2241
$(INFO): $(srcdir)/ddd.texi $(INCLUDES)
2242
$(RM) ddd.info* $(INFOS)
2243
$(MAKEINFO) -I. -I$(srcdir) $(srcdir)/ddd.texi
2244
$(INSTALL_DATA) ddd.info* $(docdir)
2247
## Auxiliary manual files.
2249
$(docdir)/sample.c: $(srcdir)/sample.c
2250
$(INSTALL_DATA) $(srcdir)/sample.c $(docdir)
2260
# All X bitmaps are derived from the XPM sources.
2262
$(icondir)/dddmask.xpm: $(icondir)/ddd.xpm
2263
$(SED) 's/[wW]hite/black/g' $(icondir)/ddd.xpm > $@
2265
$(icondir)/ddd.xbm: $(icondir)/ddd.xpm
2267
$(icondir)/ddd.xface: $(icondir)/ddd.xbm
2269
$(icondir)/dddmask.xbm: $(icondir)/dddmask.xpm
2271
# Original filter for dddsplash to extract g4 info
2272
# $(SED) 's/[ ][cmg][ ][#a-zA-Z0-9][#a-zA-Z0-9]*//g' | \
2275
$(icondir)/dddsplash.xbm: $(icondir)/dddsplash.xpm
2276
@$(ECHO) "Creating $@"
2277
@-$(CAT) $(icondir)/dddsplash.xpm | \
2278
$(XPMTOPPM) | $(PNMDEPTH) 255 | $(PNMGAMMA) 0.4 | $(PPMTOPGM) | \
2279
$(PGMENHANCE) -7 | \
2280
$(PGMTOPBM) | $(PBMTOXBM) | $(SED) 's/noname/dddsplash/g' | \
2281
$(SED) "s/static char/static unsigned char/g" > $@~
2282
@test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
2284
$(icondir)/dddlogo.xpm: $(icondir)/dddsplash.xpm
2285
$(CONVERT) -pen white \
2286
-draw 'rectangle 0,0 409,139' -draw 'rectangle 1,1 408,138' $< $@
2288
## Configuration stuff.
2290
Makefile: $(srcdir)/Makefile.in config.status
2291
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2293
Ddd: $(srcdir)/Ddd.in config.status
2294
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2296
.gdbinit: $(srcdir)/.gdbinit.in config.status
2297
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2300
spec: ../$(ddd)-$(VERSION)-$(REL).spec
2301
../$(ddd)-$(VERSION)-$(REL).spec: $(srcdir)/../ddd.spec.in config.status
2302
CONFIG_FILES=../ddd.spec CONFIG_HEADERS= $(SHELL) ./config.status
2303
$(SED) 's/@REL@/$(REL)/g' ../ddd.spec > $@
2306
$(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/aclocal.m4
2307
-cd $(srcdir) && $(AUTOCONF)
2308
config.status: $(srcdir)/configure
2309
-$(SHELL) ./config.status --recheck || $(SHELL) $(srcdir)/configure -v
2311
$(srcdir)/aclocal.m4: $(srcdir)/configure.in $(srcdir)/acinclude.m4
2312
-cd $(srcdir) && $(ACLOCAL)
2314
.PRECIOUS: Makefile configure config.status config.h Ddd
2316
# autoheader might not change config.h.in
2317
$(srcdir)/config.h.in: stamp-h.in
2318
$(srcdir)/stamp-h.in: \
2319
$(srcdir)/configure.in \
2320
$(srcdir)/aclocal.m4 \
2321
$(srcdir)/acconfig.h
2322
cd $(srcdir) && $(AUTOHEADER)
2323
$(DATE) > $@~ && $(MV) $@~ $@
2325
$(srcdir)/acconfig.h: $(srcdir)/acconfig.h.in $(srcdir)/acspecial.h
2327
echo "define(srcdir, \`$(srcdir)')dnl"; \
2328
echo "include(srcdir()/acconfig.h.in)dnl" \
2329
) | $(M4) > $@~ && $(MV) $@~ $@
2331
$(srcdir)/acspecial.h: $(srcdir)/configure.in
2332
$(GREP) '^ICE_[a-zA-Z0-9_]* *(' $(srcdir)/configure.in > $@~ && \
2336
# config.status might not change config.h
2338
stamp-h: config.h.in config.status
2339
CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
2340
$(DATE) > $@~ && $(MV) $@~ $@
2343
# We use configure to create `version.h'.
2344
# To make sure these are not touched upon every invocation,
2345
# we create temporary vr.* files instead and touch the version.* files
2346
# only if the vr.* files changed.
2348
@$(CMP) vr.h $@ 2> /dev/null || ( $(CAT) vr.h > $@~ && $(MV) $@~ $@ )
2349
vr.h: vr.h.in config.status
2350
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2352
# We use configure to create `build.h'.
2353
# To make sure these are not touched upon every invocation,
2354
# we create temporary bld.* files instead and touch the build.* files
2355
# only if the bld.* files changed.
2357
@$(CMP) bld.h $@ 2> /dev/null || ( $(CAT) bld.h > $@~ && $(MV) $@~ $@ )
2358
bld.h: bld.h.in config.status
2359
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2361
# We use configure to create `config.texi'.
2362
# To make sure these are not touched upon every invocation,
2363
# we create temporary cfg.* files instead and touch the config.* files
2364
# only if the cfg.* files changed.
2365
config.texi: cfg.texi
2366
@$(CMP) cfg.texi $@ 2> /dev/null || \
2367
( $(CAT) cfg.texi > $@~ && $(MV) $@~ $@ )
2368
cfg.texi: $(srcdir)/cfg.texi.in config.status
2369
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2372
ddd.man: $(srcdir)/ddd.man.in config.status
2373
CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
2375
# Same, but in 7-bit format
2376
ddd.1: ddd.man $(srcdir)/unumlaut.sed
2377
-$(SED) -f $(srcdir)/unumlaut.sed ddd.man > $@~ && $(MV) $@~ $@
2379
# ddd.man.txt does NOT depend on ddd.man since we don't want it to get
2380
# re-created after each configuration.
2381
ddd.man.txt: $(srcdir)/ddd.man.in configure.in $(srcdir)/umlaut8.sed
2383
-$(SED) -f $(srcdir)/umlaut7.sed ddd.man | \
2384
$(NROFF) -man | $(SED) -f $(srcdir)/umlaut8.sed > $@~ && $(MV) $@~ $@
2386
# ddd.man.txt may reside in $(srcdir) or `.' , hence the `$?'
2387
ddd.man.txt.gz: ddd.man.txt
2388
$(COMPRESS) $? > $@~ && $(MV) $@~ $@
2390
ddd.man.txt.gz.C: ddd.man.txt.gz
2391
$(MAKE) stringify$(EXEEXT)
2392
-./stringify < $? > $@~ && $(MV) $@~ $@
2395
# ddd.man.huff.C does NOT depend on huffencode since we don't want it
2396
# to get re-created after each configuration.
2397
ddd.man.huff.C: ddd.man.txt
2398
$(MAKE) huffencode$(EXEEXT)
2399
-./huffencode < ddd.man.txt > $@~ && $(MV) $@~ $@
2401
# The `no pictures' variant of ddd.man.
2402
ddd.man-nopics: ddd.man
2403
$(GREP) -v '^\.PSPIC' ddd.man > ddd.man-nopics
2405
## The info file, in text format
2406
# ddd.info.txt does NOT depend on ddd.info since we don't want it to get
2407
# re-created after each configuration.
2408
ddd.info.txt: $(srcdir)/ddd.texi configure.in
2410
info --subnodes -o - -f $(INFO) > $@~ && $(MV) $@~ $@
2412
# ddd.man.txt may reside in $(srcdir) or `.' , hence the `$?'
2413
ddd.info.txt.gz: ddd.info.txt
2414
$(COMPRESS) $? > $@~ && $(MV) $@~ $@
2416
ddd.info.txt.gz.C: ddd.info.txt.gz
2417
$(MAKE) stringify$(EXEEXT)
2418
-./stringify < $? > $@~ && $(MV) $@~ $@
2421
# COPYING.huff.C does NOT depend on huffencode since we don't want it
2422
# to get re-created after each configuration.
2423
COPYING.huff.C: $(srcdir)/../COPYING
2424
$(MAKE) huffencode$(EXEEXT)
2425
-$(SED) 's///' < $(srcdir)/../COPYING | ./huffencode > $@~ && \
2428
COPYING.gz: $(srcdir)/../COPYING
2429
$(COMPRESS) $(srcdir)/../COPYING > $@
2431
COPYING.gz.C: COPYING.gz
2432
$(MAKE) stringify$(EXEEXT)
2433
-./stringify < COPYING.gz > $@~ && $(MV) $@~ $@
2435
# NEWS.huff.C does NOT depend on huffencode since we don't want it
2436
# to get re-created after each configuration.
2437
NEWS.huff.C: $(srcdir)/../NEWS
2438
$(MAKE) huffencode$(EXEEXT)
2439
-$(SED) 's///' < $(srcdir)/../NEWS | ./huffencode > $@~ && \
2442
NEWS.gz: $(srcdir)/../NEWS
2443
$(COMPRESS) $(srcdir)/../NEWS > $@~ && $(MV) $@~ $@
2446
$(MAKE) stringify$(EXEEXT)
2447
-./stringify < NEWS.gz > $@~ && $(MV) $@~ $@
2449
# `make depend' fails to find this dependency :-(
2450
show.$(OBJEXT): COPYING.gz.C NEWS.gz.C ddd.info.txt.gz.C
2453
## The xlibdir script
2454
xlibdir.C: xlibdir.txt
2456
# `make depend' fails to find this dependency :-(
2457
xconfig.$(OBJEXT): xlibdir.C
2461
host.h: $(srcdir)/host.h.in config.status
2462
$(CAT) $(srcdir)/host.h.in | \
2463
$(SED) "s%@HOST_CANONICAL@%$(host_canonical)%" | \
2464
$(SED) "s%@TARGET_CANONICAL@%$(target_canonical)%" > $@~ && \
2469
tags: $(srcdir)/TAGS
2471
$(srcdir)/TAGS: FORCE
2472
@if [ `ls -c $(srcdir)/TAGS $(srcdir)/*.[Ch] | head -1` != $(srcdir)/TAGS ]; then \
2473
echo 'Creating $@...'; \
2474
$(ETAGS) -o $@ $(srcdir)/*.[Ch]; \
2475
echo 'Creating $@...done.'; \
2477
echo "'"'$@` is up to date.'; \
2481
# Count lines of C++/lex/yacc source code.
2482
# Lines containing only comments or documentation and empty lines are ignored.
2487
for list in '$(LIB_OBJECTS)' '$(DDD_OBJECTS)' '$(OBJECTS)'; do \
2488
pattern=`$(ECHO) $$list | $(SED) 's/\([a-zA-Z0-9_]*\)\.$(OBJEXT)/\1\\.*/g'`; \
2489
$(ECHO) "Lines of code for $$pattern"; \
2490
$(CAT) `$(LS) $$pattern | grep '\.[ChLY]'` | \
2491
$(GREP) -v '^[ ]*//' | \
2493
$(GREP) -v '^[ ]*$$' | wc -l; \
2499
$(srcdir)/header.str: $(srcdir)/header.ps
2500
$(SED) 's/^.*$$/"&\\n"/' $(srcdir)/header.ps > $@~ && $(MV) $@~ $@
2502
$(srcdir)/trailer.str: $(srcdir)/trailer.ps
2503
$(SED) 's/^.*$$/"&\\n"/' $(srcdir)/trailer.ps > $@~ && $(MV) $@~ $@
2505
$(srcdir)/eps-code.h: \
2506
$(srcdir)/header.str $(srcdir)/trailer.str $(srcdir)/eps-code.x
2507
$(SED) -e '/prolog/r $(srcdir)/header.str' \
2508
-e '/trailer/r $(srcdir)/trailer.str' $(srcdir)/eps-code.x \
2509
> $@~ && $(MV) $@~ $@
2512
## Configuration info stuff
2513
configinfo.C: USERINFO $(srcdir)/config-info
2514
$(SHELL) $(srcdir)/config-info $(srcdir)/USERINFO USERINFO > $@~ && \
2517
# configinfo.C: Makefile config.h
2519
configinfo.$(OBJEXT): configinfo.C configinfo.h
2521
# If `~/.ddd_userinfo' exists, use this file as personal identification.
2522
USERINFO: userinfo$(EXEEXT)
2523
-(cat $$HOME/.ddd_userinfo 2> /dev/null || \
2524
./userinfo || echo '(unknown)') > $@~ && $(MV) $@~ $@
2526
@$(ECHO) "Please check your name and e-mail address:"
2530
@$(ECHO) "This information will be compiled into $(DDD)."
2531
@$(ECHO) "If it is not correct, please edit $@ and re-compile."
2535
## Update the shared source tree. For development only.
2537
PUB_DEST=/ftp/ips/pub/misc/$(ddd)-$(VERSION)/ddd
2538
PUB_SRC=`ls -t /usr/local/share/CVS/ddd/ddd | $(SED) 's/,v//'`
2539
GTEST=/usr/local/gnubin/test
2542
pub: $(PROG_STUFF) configure $(PUB_DEST)/USERINFO
2543
@for file in $(PUB_SRC) $(PROG_STUFF) configure Makedeps; do \
2544
if $(GTEST) ./$$file -nt $(PUB_DEST)/$$file; then \
2545
echo -n Updating $(PUB_DEST)/$$file...; \
2546
cp -p ./$$file $(PUB_DEST)/$$file; \
2552
## Make dependency stuff.
2555
depend: FORCE $(PROG_STUFF)
2557
.PRECIOUS: $(srcdir)/Makedeps
2558
$(srcdir)/Makedeps depend:
2559
@$(ECHO) "Creating $(srcdir)/Makedeps..."
2560
@( $(ECHO) \#' DO NOT EDIT -- generated automagically by make depend';\
2561
$(ECHO) \#' Source: $$Id$$'; \
2563
srcdir=`echo $(srcdir) | $(SED) 's%\.%\\\\.%g'`; \
2564
$(CXX) -M $(CPPFLAGS) $(DEFS) $(INCLUDE) $(srcdir)/*.C \
2565
| $(SED) "s% $$srcdir/% %g" \
2566
| $(SED) 's% /[^ ]*%%g' \
2567
| $(SED) 's% \./% %g' \
2568
| $(GREP) -v '^ *\\$$' \
2569
| $(SED) "s% \.\./% \$$(srcdir)/\.\./%g" \
2570
| $(SED) 's%^ *$$%& config.h%g' ) > Makedeps~
2571
@$(MV) Makedeps~ $(srcdir)/Makedeps
2572
@$(ECHO) "Creating $(srcdir)/Makedeps...done."
2574
## If your `make' cannot handle the following line,
2575
## just replace it by the contents of `@srcdir@/Makedeps'.
2576
include @srcdir@/Makedeps