home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / Makefile.in < prev    next >
Makefile  |  1998-11-29  |  57KB  |  2,128 lines

  1. # $Id: Makefile.in,v 1.293 1998/11/29 11:26:08 zeller Exp $
  2. # DDD Makefile.
  3.  
  4. # Copyright (C) 1995-1998 Technische Universitaet Braunschweig, Germany.
  5. # Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  6. # This file is part of DDD.
  7. # DDD is free software; you can redistribute it and/or
  8. # modify it under the terms of the GNU General Public
  9. # License as published by the Free Software Foundation; either
  10. # version 2 of the License, or (at your option) any later version.
  11. # DDD is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  14. # See the GNU General Public License for more details.
  15. # You should have received a copy of the GNU General Public
  16. # License along with DDD -- see the file COPYING.
  17. # If not, write to the Free Software Foundation, Inc.,
  18. # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  19. # DDD is the data display debugger.
  20. # For details, see the DDD World-Wide-Web page, 
  21. # `http://www.cs.tu-bs.de/softech/ddd/',
  22. # or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  23.  
  24.  
  25. ### CUSTOMIZATION SECTION --- Please check the settings below.
  26. # Typical values are enclosed in ().
  27.  
  28. ## Directories.
  29.  
  30. # Common prefix for installation directories.  (/usr/local)
  31. # NOTE: This directory must exist when you start the install.
  32. prefix = @prefix@
  33. exec_prefix = @exec_prefix@
  34.  
  35. # Where to fetch the source from.  (.)
  36. srcdir = @srcdir@
  37. VPATH = @srcdir@
  38.  
  39. # Where to put the binary.  (${exec_prefix}/bin)
  40. bindir = @bindir@
  41.  
  42. # Where to put the info file.  (${prefix}/info)
  43. infodir = @infodir@
  44.  
  45. # Where to put the manual page.  (${prefix}/man)
  46. mandir  = @mandir@
  47. man1dir = $(mandir)/man1
  48. man1ext = .1
  49.  
  50.  
  51. ## Architecture (usually overridden by the top-level Makefile).
  52.  
  53. # The host we were compiled on.  (CPU-COMPANY-SYSTEM)
  54. host_canonical = @host@
  55.  
  56. # The target we were compiled for.  (CPU-COMPANY-SYSTEM)
  57. target_canonical = @host@
  58.  
  59.  
  60. ## Special commands.
  61.  
  62. # The sed command.  (sed)
  63. SED = @SED@
  64.  
  65. # The rm command.
  66. RM = rm -f
  67.  
  68. # The ln -s command for making symbolic links; plain ln should work
  69. # too.  (ln -s)
  70. LN_S = @LN_S@
  71.  
  72. # The m4 command, preferably GNU m4.   (m4)
  73. M4 = @M4@
  74.  
  75. # The lex command (flex), its flags (-8), and its library (-lfl).
  76. LEX = @LEX@
  77. LFLAGS = @LFLAGS@
  78. LEXLIB = @LEXLIB@
  79.  
  80. # The lex output root (lex.yy)
  81. LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
  82.  
  83. # The yacc command (bison -y) and its flags ().
  84. YACC = @YACC@
  85. YFLAGS = @YFLAGS@
  86.  
  87. # The shell for executing commands in the Makefile.  (/bin/sh)
  88. SHELL = @SH@
  89.  
  90. # The ar command.
  91. AR = ar
  92.  
  93. # ar flags for creating a new archive.
  94. AR_FLAGS = q
  95.  
  96. # ar flags for extracting files from an archive.
  97. AR_X_FLAGS = x
  98.  
  99. # The ranlib command.  (ranlib)
  100. RANLIB = @RANLIB@
  101.  
  102. # A compress command, reading from stdin and writing to stdout.  (gzip -c)
  103. COMPRESS = @COMPRESS@
  104.  
  105. # An uncompress command, reading from stdin and writing to stdout.  (gunzip -c)
  106. UNCOMPRESS = @UNCOMPRESS@
  107.  
  108. # The etags command.  (etags)
  109. ETAGS = etags --c++
  110.  
  111.  
  112. ## The C++ compiler.
  113.  
  114. # What we use to compile C++ files.  (c++)
  115. CXX = @CXX@
  116.  
  117. # The flags we use to compile C++ files.
  118. # CXXOPT = -DNDEBUG -O2
  119. CXXOPT = @CXXOPT@
  120. # CXXDEBUG = -g
  121. CXXDEBUG = @CXXDEBUG@
  122. # CXXWARNINGS = -W -Wall
  123. CXXWARNINGS = @CXXWARNINGS@
  124. CXXFLAGS = $(CXXOPT) $(CXXDEBUG) $(CXXWARNINGS)
  125.  
  126. # Extra C++-specific flags.  (-fexternal-templates -felide-constructors)
  127. CXXSTUFF = @CXXSTUFF@
  128.  
  129. # Possible extra libraries required for all C++ programs.  ()
  130. CXXLIBS = @CXXLIBS@
  131.  
  132. # The `.exe' extension on Windows (Cygwin)
  133. EXEEXT = @EXEEXT@
  134.  
  135.  
  136. ## The C compiler; for demos only
  137.  
  138. # What we use to compile C files.
  139. # CC = cc
  140. CC = @CC@
  141.  
  142. # The flags we use to compile C files.
  143. # CFLAGS = -g
  144. CFLAGS = @CFLAGS@
  145.  
  146.  
  147. ## The Pascal compiler (for demos only)
  148.  
  149. # What we use to compile Pascal files.
  150. PC = pc
  151.  
  152. # The flags we use to compile Pascal files.
  153. PFLAGS = -g
  154.  
  155.  
  156. ## The Modula-2 compiler (for demos only)
  157.  
  158. # What we use to compile Modula-2 files.
  159. M2C = m2c
  160.  
  161. # The flags we use to compile Modula-2 files.
  162. M2FLAGS = -g
  163.  
  164.  
  165. ## The FORTRAN compiler (for demos only)
  166.  
  167. # What we use to compile FORTRAN files.
  168. FC = g77
  169.  
  170. # The flags we use to compile FORTRAN files.
  171. FFLAGS = -g
  172.  
  173.  
  174.  
  175. ## The C preprocessor.
  176.  
  177. # What we use for preprocessing.  (gcc -E -traditional-cpp)
  178. CPP = @CPP_TRADITIONAL@
  179.  
  180. # Flags passed to the C preprocessor.  ()
  181. CPPFLAGS = @CPPFLAGS@
  182.  
  183. # Definitions to be passed to the C preprocessor.  (-DHAVE_CONFIG_H)
  184. DEFS = @DEFS@
  185.  
  186.  
  187. ## The Linker.
  188.  
  189. # Flags passed to the linker.  (-g -O)
  190. LDFLAGS = @LDFLAGS@ @BIG_TOC@
  191.  
  192. # Use this for building statically linked executables with GCC.
  193. # LDFLAGS = -static @LDFLAGS@ @BIG_TOC@
  194.  
  195.  
  196.  
  197. ## Local libraries
  198.  
  199. # POSIX regex routines (from system or ../librx/librx.a)
  200. # LIBRX      = @LIBRX@
  201. LIBRX      =
  202. # termcap routines (from system or ../termcap/libtermcap.a)
  203. LIBTERMCAP = @LIBTERMCAP@
  204. # -liberty library (../libiberty/libiberty.a)
  205. LIBIBERTY  = @LIBIBERTY@
  206. # Yacc library (-ly)
  207. LIBY       = @LIBY@
  208. # Math library (-lm)
  209. LIBM       = @LIBM@
  210. # C library (-lc)
  211. LIBC       = @LIBC@
  212. # Socket library (-lsocket)
  213. LIBSOCKET  = @LIBSOCKET@
  214. # NSL library (-lnsl)
  215. LIBNSL     = @LIBNSL@
  216. # Additional libraries required for non-X programs (-lsocket -lnsl)
  217. NON_X_LIBS = @LIBS@
  218.  
  219. # All libraries shown above
  220. LIBS = $(CXXLIBS) $(LIBSOCKET) $(LIBNSL) $(LIBRX) \
  221.        $(LIBTERMCAP) $(LIBY) $(LIBIBERTY) $(LIBM)
  222.  
  223.  
  224. ## X Libraries
  225.  
  226. # Special flags for linking with X.  (-L/usr/X11R5/lib)
  227. X_LDFLAGS = @X_LIBS@
  228.  
  229. # Motif library.  (-lXm)
  230. LIBXM = @XM_LIBS@
  231.  
  232. # Use this alternative for building `semistatic' executables
  233. # where Motif libraries are statically linked in.
  234. # LIBXM = -Wl,-Bstatic @XM_LIBS@ -Wl,-Bdynamic
  235.  
  236. # Athena libraries.  (-lXaw -lXmu)
  237. LIBXAW = @XAW_LIBS@
  238.  
  239. # X extension library; needed for Athena and Motif >= 2.0.  (-lXext)
  240. LIBXEXT = @XEXT_LIBS@
  241.  
  242. # Xpm library; needed for DDD and sometimes for Motif >= 2.0.  (-lXpm)
  243. LIBXPM = @XPM_LIBS@
  244.  
  245. # Xp library; sometimes needed for Motif >= 2.1.  (-lXp)
  246. LIBXP = @XP_LIBS@
  247.  
  248. # gen library; sometimes needed for Motif >= 2.0.  (-lgen)
  249. LIBGEN = @LIBGEN@
  250.  
  251. # X toolkit library.  (-lXt)
  252. LIBXT = @XT_LIBS@
  253.  
  254. # X library.  (-lSM -lICE -lX11 -lnsl -lsocket)
  255. LIBX11 = @X_PRE_LIBS@ @X11_LIBS@ @X_EXTRA_LIBS@
  256.  
  257. # All libraries shown above
  258. ALL_X_LIBS = $(X_LDFLAGS) $(LIBXM) $(LIBXP) $(LIBXPM) $(LIBXAW) $(LIBXEXT) \
  259. $(LIBXT) $(LIBX11) $(LIBGEN)
  260.  
  261.  
  262. ## Installation commands.
  263.  
  264. # General install program.  (install -c)
  265. INSTALL = @INSTALL@
  266.  
  267. # Command for installing programs.  (install -c)
  268. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  269.  
  270. # Command for installing data.  (install -c -m 644)
  271. INSTALL_DATA = @INSTALL_DATA@
  272.  
  273. # Transformed name of installed programs.  (s,x,x,)
  274. transform=@program_transform_name@
  275.  
  276.  
  277. ## `make check' commands.
  278.  
  279. # A debugger for debugging DDD.  (gdb)
  280. DEBUGGER = @DEBUGGER@
  281.  
  282. # The options for DDD when invoking `make check'.  ()
  283. DDD_OPTIONS = @DEBUGGER_OPTION@
  284.  
  285.  
  286. ## The following definitions are needed for development only.
  287. ## Usually, you don't need any of these.
  288.  
  289. # The autoconf program.  (autoconf)
  290. AUTOCONF = @AUTOCONF@
  291.  
  292. # The autoheader program.  (autoheader)
  293. AUTOHEADER = @AUTOHEADER@
  294.  
  295. # The aclocal program.  (aclocal)
  296. ACLOCAL = @ACLOCAL@
  297.  
  298. # The tar program.  (gtar)
  299. TAR = @TAR@
  300.  
  301. # The groff program.  (groff)
  302. GROFF = groff
  303.  
  304. # The nroff program.  (groff -Tascii)
  305. # NROFF = nroff
  306. NROFF = $(GROFF) -Tascii
  307.  
  308. # The makeinfo program.  (makeinfo)
  309. MAKEINFO = @MAKEINFO@
  310.  
  311. # The texindex program.  (texindex)
  312. TEXINDEX = texindex
  313.  
  314. # The texi2html program.  (texi2html)
  315. TEXI2HTML = texi2html
  316.  
  317. # The TeX program.  (tex)
  318. TEX = tex
  319.  
  320. # The ad2c program.
  321. AD2C = $(SED) -n -f $(srcdir)/ad2c.sed
  322.  
  323. # The vsl2c program.
  324. VSL2C = $(SED) -f $(srcdir)/vsl2c.sed
  325.  
  326. # The dvips program.  (dvips)
  327. DVIPS = @DVIPS@
  328.  
  329. # The ls program.  (ls)
  330. LS = ls
  331.  
  332. # The head program.  (head)
  333. HEAD = head
  334.  
  335. # The make program, if not predefined.  ()
  336. @SET_MAKE@
  337.  
  338. # The mv command.  (mv)
  339. MV = mv
  340.  
  341. # The echo command.  (echo)
  342. ECHO = echo
  343.  
  344. # The awk command.  (awk)
  345. AWK = @AWK@
  346.  
  347. # The cat command.  (cat)
  348. CAT = cat
  349.  
  350. # The cmp command.  (cmp)
  351. CMP = cmp
  352.  
  353. # The grep command.  (grep)
  354. GREP = grep
  355.  
  356. # The sort command.  (sort)
  357. SORT = sort
  358.  
  359. # The diff command.  (diff)
  360. DIFF = @DIFF@
  361.  
  362. # The touch command.  (touch)
  363. TOUCH = touch
  364.  
  365. # The date command.  (date)
  366. DATE = date
  367.  
  368. # The strip command.  (strip)
  369. STRIP = strip
  370.  
  371. # The mkdir and rmdir commands.  (mkdir) (rmdir)
  372. MKDIR = mkdir
  373. RMDIR = rmdir
  374.  
  375. # The sleep command.  (sleep)
  376. SLEEP = sleep
  377.  
  378. # The fig2dev command.  (fig2dev)
  379. FIG2DEV = fig2dev
  380. FIG2PS = $(FIG2DEV) -L ps
  381.  
  382. # Some XPM/PPM/PostScript converters, from the netpbm and pbmplus packages.
  383. PBMTOXBM   = pbmtoxbm
  384. PGMENHANCE = pgmenhance
  385. PGMTOPBM   = pgmtopbm
  386. PNMARITH   = pnmarith
  387. PNMCUT     = pnmcut
  388. PNMDEPTH   = pnmdepth
  389. PNMGAMMA   = pnmgamma
  390. PNMINVERT  = pnminvert
  391. PNMMARGIN  = pnmmargin
  392. PNMPASTE   = pnmpaste
  393. PNMTOPS    = pnmtops
  394. PPMTOPGM   = ppmtopgm
  395. PPMTOXPM   = ppmtoxpm
  396. XBMTOPBM   = xbmtopbm
  397. XPMTOPPM   = xpmtoppm
  398.  
  399. # The face-generating program from the `compface' package.  (xbm2xface.pl)
  400. XBM2XFACE  = xbm2xface.pl
  401.  
  402.  
  403. ### END OF CUSTOMIZATION SECTION ---
  404. ### You shouldn't need to change anything below this line.
  405.  
  406.  
  407. ## The names.
  408. # Program and distribution base name.  (ddd)
  409. ddd = @ddd@
  410.  
  411. # Product name.  (DDD)
  412. DDD = @DDD@
  413.  
  414. # The version number.  (1.4c)
  415. VERSION = @VERSION@
  416.  
  417. # Canonical program and distribution base name.
  418. ddd_canonical = $(ddd)-$(VERSION)-$(target_canonical)
  419.  
  420. # Index file fix.
  421. FIX_INDEX = $(SED) -f $(srcdir)/fixindex.sed
  422.  
  423. # Newhelp command.
  424. NEWHELP = sed="$(SED)" $(SHELL) $(srcdir)/newhelp
  425.  
  426. # Makeman command.
  427. MAKEMAN = srcdir="$(srcdir)" cpp="$(CPP)" $(SHELL) $(srcdir)/makeman \
  428. -D__MAN_VERSION__="\"$(DDD) $(VERSION)\"" -D__MAN_TITLE__="\"$(DDD) Tools\""
  429.  
  430. # Get-node command.
  431. GET_NODE = $(SHELL) $(srcdir)/get-node
  432.  
  433. ## More compilation settings.
  434. # C++ binding flags. For binary distribution only.
  435. # CXXSTATIC_BINDING = -Bstatic
  436. CXXSTATIC_BINDING = @CXXSTATIC_BINDING@
  437. # CXXDYNAMIC_BINDING = -Bdynamic
  438. CXXDYNAMIC_BINDING = @CXXDYNAMIC_BINDING@
  439. CXXBINDING = 
  440.  
  441. ## C++ compile commands.
  442. COMPILE.cc = $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(CXXSTUFF) -c
  443. LINK.cc = $(CXX) $(CXXBINDING) $(LDFLAGS)
  444. COMPILE_AND_LINK.cc = \
  445.     $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(CXXSTUFF) $(CXXBINDING) $(LDFLAGS)
  446.  
  447. ## C compile commands.
  448. COMPILE.c = $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
  449. LINK.c = $(CC) $(LDFLAGS)
  450. COMPILE_AND_LINK.c = \
  451.     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS)
  452.  
  453. ## Pascal compile commands.
  454. COMPILE_AND_LINK.p = $(PC) $(CPPFLAGS) $(DEFS) $(PFLAGS)
  455. COMPILE.p = $(COMPILE_AND_LINK.p) -c
  456. LINK.p = $(PC)
  457.  
  458. ## Modula-2 compile commands.
  459. COMPILE_AND_LINK.m2 = $(M2C) $(M2FLAGS)
  460. COMPILE.m2 = $(COMPILE_AND_LINK.m2) -c
  461. LINK.m2 = $(M2C)
  462.  
  463. ## FORTRAN compile commands.
  464. COMPILE_AND_LINK.f = $(FC) $(FFLAGS)
  465. COMPILE.f = $(COMPILE_AND_LINK.f) -c
  466. LINK.f = $(FC)
  467.  
  468. ## YACC commands.
  469. YY = yy
  470. YACCTOCXX = $(SHELL) $(srcdir)/yacctoC
  471. YACC.Y = $(YACC) $(YFLAGS)
  472.  
  473. ## LEX commands.
  474. LEXTOCXX = $(SHELL) $(srcdir)/lextoC
  475. LEX.L = $(LEX) $(LFLAGS)
  476.  
  477. ## Where to look for X include files.  (-I/usr/X11R5/include)
  478. X_INCLUDE = @X_CFLAGS@
  479.  
  480. ## Where to look for include files.
  481. INCLUDE = -I. -I$(srcdir) -I$(srcdir)/.. $(X_INCLUDE)
  482.  
  483. ## Implicit rules.
  484. .SUFFIXES: .C .cc .c .mod .p .Y .YY .L .txt .i .xbm .xbmxx .xpm .xpmxx \
  485.        .xface .C~ .c~ .f .f~ .sh .sh~
  486. .C.o:
  487.     $(COMPILE.cc) $(INCLUDE) -o $@ $<
  488. .cc.o:
  489.     $(COMPILE.cc) $(INCLUDE) -o $@ $<
  490. .c.o:
  491.     $(COMPILE.c) $(INCLUDE) -o $@ $<
  492. .p.o:
  493.     $(COMPILE.p) -o $@ $<
  494. .C.i:
  495.     $(COMPILE.cc) $(INCLUDE) -E -o $@ $<
  496. .cc.i:
  497.     $(COMPILE.cc) $(INCLUDE) -E -o $@ $<
  498. .c.i:
  499.     $(COMPILE.c) $(INCLUDE) -E -o $@ $<
  500. .p.i:
  501.     $(COMPILE.p) -E -o $@ $<
  502. .Y:
  503.     $(YACC.Y) $<
  504.     $(YACCTOCXX)
  505.     $(RM) y.tab.c y.tab.h
  506.     $(LINK.cc) -o $@ y.tab.C $(LDLIBS)
  507.     $(RM) y.tab.C y.tab.H
  508. .Y.C:
  509.     $(YACC) $(YFLAGS) $<
  510.     $(YACCTOCXX)
  511.     $(MV) y.tab.C $@
  512.     $(RM) y.tab.H y.tab.c y.tab.h
  513. .Y.h:
  514.     $(YACC) -d $(YFLAGS) $<
  515.     $(YACCTOCXX)
  516.     $(MV) y.tab.H $@
  517.     $(RM) y.tab.C y.tab.c y.tab.h
  518. .Y.o:
  519.     $(YACC) $(YFLAGS) $<
  520.     $(YACCTOCXX)
  521.     $(COMPILE.cc) y.tab.C
  522.     $(RM) y.tab.C y.tab.H y.tab.c y.tab.h
  523. .Y.YY:
  524.     $(YACC) -v $(YFLAGS) $<
  525.     $(MV) y.output $@
  526.     $(RM) y.tab.c y.tab.h
  527. .L:
  528.     $(LEX.L) $<
  529.     $(LEXTOCXX)
  530.     $(LINK.cc) -o $@ $(LEX_OUTPUT_ROOT).C $(LDLIBS)
  531.     $(RM) $(LEX_OUTPUT_ROOT).C $(LEX_OUTPUT_ROOT).c
  532. .L.C:
  533.     $(LEX.L) $<
  534.     $(LEXTOCXX)
  535.     $(MV) $(LEX_OUTPUT_ROOT).C $@
  536.     $(RM) $(LEX_OUTPUT_ROOT).c
  537. .L.o:
  538.     $(LEX.L) $<
  539.     $(LEXTOCXX)
  540.     $(COMPILE.cc) -o $@ $(LEX_OUTPUT_ROOT).C
  541.     $(RM) $(LEX_OUTPUT_ROOT).C $(LEX_OUTPUT_ROOT).c
  542.  
  543.  
  544. # Jacek M. Holeczek <holeczek@heracles.cto.us.edu.pl> says these `dummy'
  545. # rules are required to disable default rules under AIX MAKE.  They
  546. # should do no harm using other MAKEs.
  547. .C:
  548. .C~:
  549. .c:
  550. .c~:
  551. .f:
  552. .f~:
  553. .sh:
  554. .sh~:
  555.  
  556.  
  557. ## Script rules
  558. .txt.C:
  559.     @$(ECHO) "Creating $@"
  560.     @( \
  561.     $(ECHO) '// $@ -- generated automatically from `$<'"'."; \
  562.     $(SED) '/^ *#/d' $< | \
  563.     $(SED) 's/^ *include \([^"][^.]*\)\..*$$/#include "\1.C"/' | \
  564.     $(SED) 's/^ *include "\([^"][^.]*\)[^"]*"/#include "\1.C"/' | \
  565.     $(SED) '/^[^#]/s/\(["'"'"'\\]\)/\\\1/g' | \
  566.     $(SED) '/^[^#]/s/.*/"&\\n"/' | \
  567.     $(SED) 's//\\b/g' | \
  568.     $(SED) 's/^$$/"\\n"/' \
  569.     ) > tmp.C; \
  570.     $(CPP) -C -P -undef $(CPPFLAGS) $(DEFS) $(INCLUDE) tmp.C > $@; \
  571.     $(RM) tmp.C
  572.  
  573. ## Icon rules
  574. .xpm.xbm:
  575.     @$(ECHO) "Creating $@"
  576.     @-base=`$(ECHO) $@ | $(SED) 's,.*/,,' | $(SED) 's/[.]x[bp]m.*//'`; \
  577.     $(SED) 's/[     ][cg]4*[     ][#a-zA-Z0-9][#a-zA-Z0-9]*//g' $< | \
  578.     $(SED) 's/[nN]one/white/g' | \
  579.     $(XPMTOPPM) | $(PNMDEPTH) 255 | $(PPMTOPGM) | $(PGMTOPBM) | \
  580.     $(PBMTOXBM) | $(SED) "s/noname/$${base}/g" | \
  581.     $(SED) "s/static char/static unsigned char/g" > $@~
  582.     @test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
  583.  
  584. .xbm.xface:
  585.     @$(ECHO) "Creating $@"
  586.     @$(ECHO) "X-Face:`$(XBM2XFACE) $<`" > $@~
  587.     @test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
  588.  
  589. # This jewel makes an `emboss' effect in two steps:
  590. # 1. Create a displaced mask in FILE-mask.pbm, using `pnmcut' and `pnmpaste'
  591. # 2. Add the mask to FILE.xbm, using `pnmarith'.
  592. .xbm.xpmxx:
  593.     @$(ECHO) "Creating $@"
  594.     @-base=`$(ECHO) $@ | $(SED) 's,.*/,,' | $(SED) 's/[.]x[bp]m.*//'`; \
  595.     $(SED) 's/unsigned //' $< | \
  596.     $(XBMTOPBM) > $${base}-object.pbm; \
  597.     $(PNMMARGIN) 1 $${base}-object.pbm | \
  598.     $(PNMCUT) 0 0 29 25 | \
  599.     $(PNMINVERT) | \
  600.     $(PNMPASTE) -and $${base}-object.pbm 0 0 > $${base}-mask.pbm; \
  601.     $(PPMTOXPM) $${base}-object.pbm | \
  602.     $(SED) 's/#00*/grey50/' | \
  603.     $(SED) 's/#FF*/grey/' | \
  604.     $(XPMTOPPM) > $${base}-button.ppm; \
  605.     $(PNMARITH) -add $${base}-button.ppm $${base}-mask.pbm | \
  606.     $(PPMTOXPM) | \
  607.     $(SED) 's/c #BE[BE]*/c none   g none   m none  s Background/' | \
  608.     $(SED) 's/c #7F[7F]*/c grey50 g grey50 m black/' | \
  609.     $(SED) 's/c #FF*/c white  g white  m white/' | \
  610.     $(SED) "s/noname/$${base}_xx_xpm/" > $@~; \
  611.     $(RM) $${base}-object.pbm $${base}-mask.pbm $${base}-button.ppm
  612.     @test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
  613.  
  614. .xpm.xbmxx:
  615.     @$(ECHO) "Creating $@"
  616.     @-base=`$(ECHO) $@ | $(SED) 's,.*/,,' | $(SED) 's/[.]x[bp]m.*//'`; \
  617.     $(SED) 's/[     ]c[     ][#a-zA-Z0-9][#a-zA-Z0-9]*//' $< | \
  618.     $(SED) 's/ g black  / g grey50 /' | \
  619.     $(SED) 's/ g white  / g grey75 /' | \
  620.     $(SED) 's/g \([a-zA-Z0-9]*\) /c \1 g \1 /' | \
  621.     $(SED) 's/[nN]one/white/g' | \
  622.     $(XPMTOPPM) | $(PNMDEPTH) 255 | $(PPMTOPGM) | $(PGMTOPBM) | \
  623.     $(PBMTOXBM) | $(SED) "s/noname/$${base}_xx/" | \
  624.     $(SED) "s/static char/static unsigned char/g" > $@~
  625.     @test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
  626.  
  627.  
  628.  
  629. ## Libraries and object files
  630. # General-purpose utilities: strings, regexps, run-type type info...
  631. BASE_OBJECTS = \
  632.     compare.o    \
  633.     cook.o       \
  634.     cwd.o        \
  635.     glob.o       \
  636.     hash.o       \
  637.     home.o       \
  638.     rxclass.o    \
  639.     sigName.o    \
  640.     strclass.o   \
  641.     tabs.o       \
  642.     uniquify.o   \
  643.     PrintGC.o    \
  644.     SignalB.o    \
  645.     TypeInfo.o   \
  646.     UniqueId.o   \
  647.     MemCheck.o
  648.  
  649. # Instantiated templates
  650. TEMPLATE_OBJECTS = \
  651.     IntIntAA.o   \
  652.     StringA.o    \
  653.     StringMap.o  \
  654.     StringSA.o   \
  655.     VoidArray.o  \
  656.     WidgetSA.o
  657.  
  658. # Interprocess communication
  659. # Top-level class is `Agent', declared in `Agent.h'
  660. AGENT_OBJECTS = \
  661.     Agent.o      \
  662.     AgentM.o     \
  663.     AsyncAgent.o \
  664.     ChunkQueue.o \
  665.     DataLength.o \
  666.     HandlerL.o   \
  667.     LiterateA.o  \
  668.     TimeOut.o    \
  669.     TTYAgent.o
  670.  
  671. # Miscellaneous utilities for X programs: Motif strings, hourglasses,
  672. # context-sensitive help...
  673. XSTUFF_OBJECTS = \
  674.     charsets.o   \
  675.     converters.o \
  676.     events.o     \
  677.     findParent.o \
  678.     findWindow.o \
  679.     fileSBF.o    \
  680.     frame.o      \
  681.     longName.o   \
  682.     selection.o  \
  683.     simpleMenu.o \
  684.     verify.o     \
  685.     ComboBox.o   \
  686.     Delay.o      \
  687.     DestroyCB.o  \
  688.     ExitCB.o     \
  689.     InitImage.o  \
  690.     LabelH.o     \
  691.     LessTifH.o   \
  692.     MString.o    \
  693.     MakeMenu.o   \
  694.     SpinBox.o    \
  695.     Swallower.o  \
  696.     XErrorB.o
  697.  
  698. # Box library - rectangular composible graphical items
  699. # Top-level class is `Box', declared in `Box.h'
  700. BOX_OBJECTS = \
  701.     printBox.o   \
  702.     AlignBox.o   \
  703.     ArcBox.o     \
  704.     BinBox.o     \
  705.     Box.o        \
  706.     BoxD.o       \
  707.     BoxExtend.o  \
  708.     BoxPoint.o   \
  709.     BoxRegion.o  \
  710.     BoxSize.o    \
  711.     ColorBox.o   \
  712.     CompositeB.o \
  713.     DiagBox.o    \
  714.     DummyBox.o   \
  715.     FixBox.o     \
  716.     FontFixBox.o \
  717.     FontTable.o  \
  718.     HatBox.o     \
  719.     LineBox.o    \
  720.     ListBox.o    \
  721.     MarkBox.o    \
  722.     MatchBox.o   \
  723.     PrimitiveB.o \
  724.     SlopeBox.o   \
  725.     StringBox.o  \
  726.     THatBox.o    \
  727.     TagBox.o     \
  728.     TrueBox.o
  729.  
  730. # VSL library - building boxes from structured data
  731. # Top-level class is `VSLLib', declared in `VSLLib.h'
  732. VSL_OBJECTS = \
  733.     ArgNode.o    \
  734.     BuiltinCN.o  \
  735.     CallNode.o   \
  736.     ConstNode.o  \
  737.     DefCallN.o   \
  738.     DummyNode.o  \
  739.     LetNode.o    \
  740.     NameNode.o   \
  741.     ListNode.o   \
  742.     TestNode.o   \
  743.     TrueNode.o   \
  744.     VSEFlags.o   \
  745.     VSLArgList.o \
  746.     VSLBuiltin.o \
  747.     VSLDef.o     \
  748.     VSLDefList.o \
  749.         VSLErr.o     \
  750.     VSLLib.o     \
  751.     VSLNode.o    \
  752.         VSLRead.o
  753.  
  754. # Graph structure, graph layout and graph editor widget
  755. # Top-level classes are `Graph', declared in `Graph.h'
  756. # and the `GraphEdit' widget, deckared in `GraphEdit.h'.
  757. GRAPH_OBJECTS = \
  758.     ArcGraphE.o  \
  759.     BoxEdgeA.o   \
  760.     BoxGraphN.o  \
  761.     EdgeA.o      \
  762.     EdgeAPA.o    \
  763.     Graph.o      \
  764.     GraphEdge.o  \
  765.     GraphEdit.o  \
  766.     GraphGC.o    \
  767.     GraphNode.o  \
  768.     GraphNPA.o   \
  769.     HintGraphN.o \
  770.     LineGraphE.o \
  771.     LineGESI.o   \
  772.     PannedGE.o   \
  773.     PosGraphN.o  \
  774.     RegionGN.o   \
  775.     ScrolledGE.o \
  776.     layout.o
  777.  
  778. # All these objects were originally part of the NORA library; they are
  779. # now maintained as part of DDD.
  780. LIB_OBJECTS = \
  781.     $(BASE_OBJECTS)   \
  782.     $(TEMPLATE_OBJECTS)  \
  783.     $(AGENT_OBJECTS)  \
  784.     $(XSTUFF_OBJECTS) \
  785.     $(BOX_OBJECTS)    \
  786.     $(VSL_OBJECTS)    \
  787.     $(GRAPH_OBJECTS)
  788.  
  789. # The DDD application itself.  `ddd.C' is the main program, `SourceView.C'
  790. # is the source window, `DataDisp.C' is the data window.
  791. DDD_OBJECTS = \
  792.     annotation.o \
  793.     args.o       \
  794.     buttons.o    \
  795.     cmdtty.o     \
  796.     comm-manag.o \
  797.     complete.o   \
  798.     configinfo.o \
  799.     ctrl.o       \
  800.     data.o       \
  801.     dbx-lookup.o \
  802.     deref.o      \
  803.     disp-read.o  \
  804.     editing.o    \
  805.     environ.o    \
  806.     examine.o    \
  807.     exectty.o    \
  808.     exit.o       \
  809.     expired.o    \
  810.     file.o       \
  811.     filetype.o   \
  812.     fonts.o      \
  813.     fortranize.o \
  814.     gdbinit.o    \
  815.     history.o    \
  816.     hostname.o   \
  817.     index.o      \
  818.     isid.o       \
  819.     java.o          \
  820.     logo.o       \
  821.     logplayer.o  \
  822.     mainloop.o   \
  823.     mydialogs.o  \
  824.     options.o    \
  825.     plotter.o    \
  826.     post.o       \
  827.     print.o      \
  828.     question.o   \
  829.     regexps.o    \
  830.     resources.o  \
  831.     sashes.o     \
  832.     select.o     \
  833.     session.o    \
  834.     settings.o   \
  835.     shell.o      \
  836.     shorten.o    \
  837.     show.o       \
  838.     source.o     \
  839.     status.o     \
  840.     string-fun.o \
  841.     tictactoe.o  \
  842.     tips.o       \
  843.     toolbar.o    \
  844.     ungrab.o     \
  845.     value-read.o \
  846.     windows.o    \
  847.     wm.o         \
  848.     xconfig.o    \
  849.     AliasGE.o    \
  850.     ArgField.o   \
  851.     BreakPoint.o \
  852.     BreakPM.o    \
  853.     CodeCache.o  \
  854.     Command.o    \
  855.     DataDisp.o   \
  856.     DispBox.o    \
  857.     DispBuffer.o \
  858.     DispGraph.o  \
  859.     DispNode.o   \
  860.     DispNodeM.o  \
  861.     DispValue.o  \
  862.     DispValueA.o \
  863.     DispValueT.o \
  864.     EntryType.o  \
  865.     GDBAgent.o   \
  866.     HelpCB.o     \
  867.     HistoryD.o   \
  868.     HistoryF.o   \
  869.     MinMaxA.o    \
  870.     PlotAgent.o  \
  871.     PlotArea.o   \
  872.     PosBuffer.o  \
  873.     ProgressM.o  \
  874.     RefreshDI.o  \
  875.     SmartC.o     \
  876.     SourceView.o \
  877.     UndoBuffer.o \
  878.     UndoBE.o     \
  879.     WhatNextCB.o
  880.  
  881. # Objects required for userinfo
  882. USERINFO_OBJECTS =
  883.  
  884. # Objects required for huffencode and huffdecode
  885. HUFFMAN_OBJECTS = strclass.o cook.o rxclass.o
  886.  
  887. ## All objects.
  888. OBJECTS = $(LIB_OBJECTS) $(DDD_OBJECTS)
  889.  
  890. ## The program files.
  891. PROGS = $(ddd_canonical)$(EXEEXT) $(ddd)$(EXEEXT)
  892.  
  893. ## The program files to be installed.
  894. INSTALL_PROGS = $(ddd)$(EXEEXT)
  895.  
  896. ## Extra demonstration files.
  897. DEMOS = userinfo$(EXEEXT) stringify$(EXEEXT) huffencode$(EXEEXT) \
  898.     huffdecode$(EXEEXT) cxxtest$(EXEEXT) ctest$(EXEEXT) grabtest$(EXEEXT) \
  899.     ftest$(EXEEXT) ptest$(EXEEXT) m2test$(EXEEXT) \
  900.     test-file$(EXEEXT) test-graph$(EXEEXT) vsl$(EXEEXT) ttytest$(EXEEXT) \
  901.     bug$(EXEEXT) tString$(EXEEXT) mmtest$(EXEEXT) gcore$(EXEEXT) \
  902.     logplayer$(EXEEXT)
  903.  
  904. ## Where to find texinfo files and so
  905. MAKEINFO_FLAGS = \
  906.     -I. -I$(srcdir) -I$(srcdir)/../readline/doc -I$(srcdir)/../texinfo
  907.  
  908. ## The index files
  909. IDXS = *.cp *.fn *.ky *.pg *.tp *.vr
  910.  
  911. ## The dvi files.
  912. DVIS =
  913.  
  914. ## The postscript files.
  915. PSS = $(srcdir)/../doc/ddd.man-nopics.ps $(srcdir)/../doc/ddd.man.ps
  916.  
  917. ## PostScript pictures in the DDD manual.
  918. # All of these are generated from FIG and XPM files.
  919. picdir = $(srcdir)/PICS
  920. PICS = \
  921.     $(picdir)/dddsplash.ps          \
  922.     $(picdir)/ddd-aliases.ps        \
  923.     $(picdir)/ddd-all.ps            \
  924.     $(picdir)/ddd-arguments.ps      \
  925.     $(picdir)/ddd-attach.ps         \
  926.     $(picdir)/ddd-backtrace.ps    \
  927.     $(picdir)/ddd-bp-popup.ps       \
  928.     $(picdir)/ddd-bp-properties.ps  \
  929.     $(picdir)/ddd-button-editor.ps  \
  930.     $(picdir)/ddd-clusters.ps       \
  931.     $(picdir)/ddd-code.ps           \
  932.     $(picdir)/ddd-console.ps        \
  933.     $(picdir)/ddd-data-prefs.ps     \
  934.     $(picdir)/ddd-define-command.ps \
  935.     $(picdir)/ddd-display.ps        \
  936.     $(picdir)/ddd-drag.ps           \
  937.     $(picdir)/ddd-edit-breakpoints.ps \
  938.     $(picdir)/ddd-edit-displays.ps  \
  939.     $(picdir)/ddd-examine.ps        \
  940.     $(picdir)/ddd-font-prefs.ps     \
  941.     $(picdir)/ddd-general-prefs.ps  \
  942.     $(picdir)/ddd-helpers.ps      \
  943.     $(picdir)/ddd-hide-display.ps   \
  944.     $(picdir)/ddd-history.ps        \
  945.     $(picdir)/ddd-layout.ps         \
  946.     $(picdir)/ddd-line-popup.ps     \
  947.     $(picdir)/ddd-locals.ps            \
  948.     $(picdir)/ddd-open.ps           \
  949.     $(picdir)/ddd-open-session.ps   \
  950.     $(picdir)/ddd-plots.ps          \
  951.     $(picdir)/ddd-print-graph.ps    \
  952.     $(picdir)/ddd-print-output.ps   \
  953.     $(picdir)/ddd-print-popup.ps    \
  954.     $(picdir)/ddd-registers.ps      \
  955.     $(picdir)/ddd-repeats.ps        \
  956.     $(picdir)/ddd-rotate-display.ps \
  957.     $(picdir)/ddd-save-session.ps   \
  958.     $(picdir)/ddd-select-display.ps \
  959.     $(picdir)/ddd-separate.ps       \
  960.     $(picdir)/ddd-set.ps            \
  961.     $(picdir)/ddd-settings.ps       \
  962.     $(picdir)/ddd-shortcuts.ps      \
  963.     $(picdir)/ddd-shortcut-editor.ps \
  964.     $(picdir)/ddd-signals.ps        \
  965.     $(picdir)/ddd-source-popup.ps   \
  966.     $(picdir)/ddd-source-prefs.ps   \
  967.     $(picdir)/ddd-source.ps         \
  968.     $(picdir)/ddd-startup-prefs.ps  \
  969.     $(picdir)/ddd-status-displays.ps \
  970.     $(picdir)/ddd-threads.ps        \
  971.     $(picdir)/ddd-tool.ps           \
  972.     $(picdir)/ddd-toolbar.ps        \
  973.     $(picdir)/ddd-toolbars.ps       \
  974.     $(picdir)/ddd-value-tip.ps      \
  975.     $(picdir)/disclaimer.ps
  976.  
  977. ## The HTML files.
  978. # HTML_BASES = ddd_toc.html dddint_toc.html
  979. # HTML_PATTERNS = $(srcdir)/ddd_*.html $(srcdir)/dddint_*.html
  980. # HTMLS = $(HTML_BASES) $(HTML_PATTERNS)
  981. HTMLS = 
  982.  
  983. ## The manual page.
  984. MANS = ddd.man
  985.  
  986. ## The (derived) icons.
  987. # Icon directories
  988. icondir = $(srcdir)/../icons
  989. toolbardir = $(icondir)/toolbar
  990.  
  991. # XBM icons are derived from XPM sources
  992. XBM_ICONS = \
  993.     $(toolbardir)/breakat.xbm \
  994.     $(toolbardir)/clearat.xbm \
  995.     $(toolbardir)/delete.xbm \
  996.     $(toolbardir)/deref.xbm \
  997.     $(toolbardir)/disable.xbm \
  998.     $(toolbardir)/display.xbm \
  999.     $(toolbardir)/findbwd.xbm \
  1000.     $(toolbardir)/findfwd.xbm \
  1001.     $(toolbardir)/enable.xbm \
  1002.     $(toolbardir)/hide.xbm \
  1003.     $(toolbardir)/lookup.xbm \
  1004.     $(toolbardir)/maketemp.xbm \
  1005.     $(toolbardir)/newbreak.xbm \
  1006.     $(toolbardir)/newdisplay.xbm \
  1007.     $(toolbardir)/newwatch.xbm \
  1008.     $(toolbardir)/plot.xbm \
  1009.     $(toolbardir)/print.xbm \
  1010.     $(toolbardir)/properties.xbm \
  1011.     $(toolbardir)/rotate.xbm \
  1012.     $(toolbardir)/set.xbm \
  1013.     $(toolbardir)/show.xbm \
  1014.     $(toolbardir)/undisplay.xbm \
  1015.     $(toolbardir)/unwatch.xbm \
  1016.     $(toolbardir)/watch.xbm 
  1017.  
  1018. # XPMXX icons (insensitive XPM icons) are derived from XBM sources
  1019. XPM_XX_ICONS = \
  1020.     $(toolbardir)/breakat.xpmxx \
  1021.     $(toolbardir)/clearat.xpmxx \
  1022.     $(toolbardir)/delete.xpmxx \
  1023.     $(toolbardir)/deref.xpmxx \
  1024.     $(toolbardir)/disable.xpmxx \
  1025.     $(toolbardir)/display.xpmxx \
  1026.     $(toolbardir)/findbwd.xpmxx \
  1027.     $(toolbardir)/findfwd.xpmxx \
  1028.     $(toolbardir)/enable.xpmxx \
  1029.     $(toolbardir)/hide.xpmxx \
  1030.     $(toolbardir)/lookup.xpmxx \
  1031.     $(toolbardir)/maketemp.xpmxx \
  1032.     $(toolbardir)/newbreak.xpmxx \
  1033.     $(toolbardir)/newdisplay.xpmxx \
  1034.     $(toolbardir)/newwatch.xpmxx \
  1035.     $(toolbardir)/plot.xpmxx \
  1036.     $(toolbardir)/print.xpmxx \
  1037.     $(toolbardir)/properties.xpmxx \
  1038.     $(toolbardir)/rotate.xpmxx \
  1039.     $(toolbardir)/set.xpmxx \
  1040.     $(toolbardir)/show.xpmxx \
  1041.     $(toolbardir)/undisplay.xpmxx \
  1042.     $(toolbardir)/unwatch.xpmxx \
  1043.     $(toolbardir)/watch.xpmxx 
  1044.  
  1045. # XBMXX icons (insensitive XBM icons) are derived from XPM sources
  1046. XBM_XX_ICONS = \
  1047.     $(toolbardir)/breakat.xbmxx \
  1048.     $(toolbardir)/clearat.xbmxx \
  1049.     $(toolbardir)/delete.xbmxx \
  1050.     $(toolbardir)/deref.xbmxx \
  1051.     $(toolbardir)/disable.xbmxx \
  1052.     $(toolbardir)/display.xbmxx \
  1053.     $(toolbardir)/findbwd.xbmxx \
  1054.     $(toolbardir)/findfwd.xbmxx \
  1055.     $(toolbardir)/enable.xbmxx \
  1056.     $(toolbardir)/hide.xbmxx \
  1057.     $(toolbardir)/lookup.xbmxx \
  1058.     $(toolbardir)/maketemp.xbmxx \
  1059.     $(toolbardir)/newbreak.xbmxx \
  1060.     $(toolbardir)/newdisplay.xbmxx \
  1061.     $(toolbardir)/newwatch.xbmxx \
  1062.     $(toolbardir)/plot.xbmxx \
  1063.     $(toolbardir)/print.xbmxx \
  1064.     $(toolbardir)/properties.xbmxx \
  1065.     $(toolbardir)/rotate.xbmxx \
  1066.     $(toolbardir)/set.xbmxx \
  1067.     $(toolbardir)/show.xbmxx \
  1068.     $(toolbardir)/undisplay.xbmxx \
  1069.     $(toolbardir)/unwatch.xbmxx \
  1070.     $(toolbardir)/watch.xbmxx
  1071.  
  1072. # All derived icons
  1073. # Order is significant here!  First sources, then derived files.
  1074. ICONS = \
  1075.     $(icondir)/ddd.xbm \
  1076.     $(icondir)/dddmask.xbm \
  1077.     $(icondir)/dddsplash.xbm \
  1078.     $(icondir)/ddd.xface \
  1079.     $(XBM_ICONS) \
  1080.     $(XPM_XX_ICONS) \
  1081.     $(XBM_XX_ICONS)
  1082.  
  1083.  
  1084. ## Readme files built from ddd.texinfo
  1085. README_FILES = 
  1086.  
  1087. ## GDB symbol files
  1088. SYMS = $(ddd).syms $(ddd_canonical).syms
  1089.  
  1090.  
  1091. ## Intermediate files
  1092.  
  1093. # Architecture-independent files required for building DDD.
  1094. # In a distribution, these should be already built.
  1095. #
  1096. # Order is significant here!  First source files, then derived files.
  1097. PROG_STUFF       = vsl-lex.C vsl-gramma.h vsl-gramma.C rxscan.C \
  1098.             acconfig.h acspecial.h stamp-h.in config.h \
  1099.            $(srcdir)/tips.m4 $(srcdir)/tips.html \
  1100.            $(srcdir)/Ddd.in Ddd.ad.h host.h \
  1101.            $(srcdir)/ddd.vsl $(srcdir)/ddd.vsl.h \
  1102.            vr.h version.h configinfo.C \
  1103.            ddd.1 ddd.man.txt ddd.man.txt.gz ddd.man.txt.gz.C \
  1104.                    COPYING.gz.C NEWS.gz.C xlibdir.C eps-code.h .gdbinit
  1105.  
  1106. # Extra files to be built for the distribution
  1107. # In a distribution, these should be already built.
  1108. DIST_STUFF     = $(PROG_STUFF) $(MANS) $(PSS) $(ICONS)
  1109.  
  1110. # Temporary Files to be cleaned, keeping configuration intact
  1111. CLEAN_STUFF     = $(ddd)-$(VERSION)-* $(PROGS) $(DEMOS) \
  1112.            core *.o *.a *.s *.i \
  1113.            tmp* *.tmp .*hist* *.syms *.log dddgraph.* \
  1114.            *.aux *.cp *.cps *.fn *.fns *.flc \
  1115.            *.ky *.kys *.log *.pg *.pgs *.toc *.tp *.tps *.vr *.vrs \
  1116.            *.tar *.tar.gz *~ lex.* y.tab.* site.* *.sum \
  1117.            *.diff *.private USERINFO *.huff.C \
  1118.            *.txt.gz COPYING.gz NEWS.gz *.gz.C
  1119.  
  1120. # Architecture-dependent files to be deleted from distribution
  1121. DISTCLEAN_STUFF     = $(CLEAN_STUFF) \
  1122.            config.status config.h host.h paths.h \
  1123.            Makefile MakeOut LOG OOBR OOBR-FTR TAGS \
  1124.            config.log config.cache configinfo.C stamp-h \
  1125.            Ddd Ddd.ad.h ddd.man-nopics $(PICS)
  1126.  
  1127. # Any files that can be reconstructed, except configure script
  1128. REALCLEAN_STUFF     = $(DISTCLEAN_STUFF) $(DIST_STUFF) \
  1129.            header.str trailer.str eps-code.h vr.h $(MANS)
  1130.  
  1131. # All files that can be reconstructed (but may require special programs)
  1132. ULTRACLEAN_STUFF = $(REALCLEAN_STUFF) \
  1133.            config.h.in stamp-h.in configure Makedeps \
  1134.            $(README_FILES) $(HTMLS) $(srcdir)/Ddd.in
  1135.  
  1136.  
  1137. ## Targets as specified in GNU standards.
  1138. all:    ddd-message $(PROG_STUFF) $(PROGS) ddd-done
  1139.     @:
  1140. .PHONY: all
  1141.  
  1142. .PHONY: ddd-message
  1143. ddd-message:
  1144.     @$(ECHO) "Building $(ddd_canonical)..."
  1145.  
  1146. .PHONY: ddd-done
  1147. ddd-done: $(ddd)$(EXEEXT)
  1148.     @$(ECHO) "Building $(ddd_canonical)... done."
  1149.     @$(ECHO) "You may now type \`$(MAKE) check' for a test."
  1150.  
  1151. .PHONY: install
  1152. install: install-prog install-man
  1153.     @:
  1154.  
  1155. .PHONY: install-strip
  1156. install-strip:
  1157.     $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install
  1158.  
  1159. .PHONY: uninstall
  1160. uninstall: uninstall-prog uninstall-man
  1161.     @:
  1162.  
  1163. # install-prog does not depend on $(PROGS) 
  1164. # since we may have precompiled packages
  1165. .PHONY: install-prog
  1166. install-prog:
  1167.     -parent=`$(ECHO) $(bindir) | $(SED) -e 's@/[^/]*$$@@'`; \
  1168.     grandparent=`$(ECHO) $$parent | $(SED) -e 's@/[^/]*$$@@'`; \
  1169.     test -d $$grandparent || $(MKDIR) $$grandparent; \
  1170.     test -d $$parent || $(MKDIR) $$parent
  1171.     -test -d $(bindir) || $(MKDIR) $(bindir)
  1172.     for p in $(INSTALL_PROGS); do \
  1173.         $(INSTALL_PROGRAM) \
  1174.         $$p $(bindir)/`$(ECHO) $$p | $(SED) '$(transform)'`; \
  1175.     done
  1176.  
  1177. .PHONY: uninstall-prog
  1178. uninstall-prog:
  1179.     for p in $(INSTALL_PROGS); do \
  1180.         $(RM) $(bindir)/`$(ECHO) $$p | $(SED) '$(transform)'`; \
  1181.     done
  1182.  
  1183. .PHONY: install-info
  1184. install-info: $(INFO_BASES)
  1185.     -parent=`$(ECHO) $(infodir) | $(SED) -e 's@/[^/]*$$@@'`; \
  1186.     grandparent=`$(ECHO) $$parent | $(SED) -e 's@/[^/]*$$@@'`; \
  1187.     test -d $$grandparent || $(MKDIR) $$grandparent; \
  1188.     test -d $$parent || $(MKDIR) $$parent
  1189.     -test -d $(infodir) || $(MKDIR) $(infodir)
  1190.     for i in $(INFOS); do \
  1191.         test -s $$i && $(INSTALL_DATA) $$i $(infodir); \
  1192.     done
  1193.  
  1194. .PHONY: uninstall-info
  1195. uninstall-info:
  1196.     cd $(infodir); $(RM) $(INFOS)
  1197.  
  1198. .PHONY: install-man
  1199. install-man: ddd.1
  1200.     -parent=`$(ECHO) $(man1dir) | $(SED) -e 's@/[^/]*$$@@'`; \
  1201.     grandparent=`$(ECHO) $$parent | $(SED) -e 's@/[^/]*$$@@'`; \
  1202.     test -d $$grandparent || $(MKDIR) $$grandparent; \
  1203.     test -d $$parent || $(MKDIR) $$parent
  1204.     -test -d $(man1dir) || $(MKDIR) $(man1dir)
  1205.     test -f ddd.1 || cd $(srcdir); \
  1206.     $(INSTALL_DATA) ddd.1 \
  1207.         $(man1dir)/`$(ECHO) ddd$(man1ext) | $(SED) '$(transform)'`
  1208.  
  1209. .PHONY: uninstall-man
  1210. uninstall-man:
  1211.     $(RM) $(man1dir)/`$(ECHO) ddd$(man1ext) | $(SED) '$(transform)'`
  1212.  
  1213. .PHONY: picsclean
  1214. picsclean:
  1215.     $(RM) $(PICS) ./#*#
  1216.     -cd $(picdir) && $(RM) $(CLEAN_STUFF) ./#*#
  1217.  
  1218. .PHONY: iconclean
  1219. iconclean:
  1220.     $(RM) $(ICONS) ./#*#
  1221.     -cd $(icondir) && $(RM) $(CLEAN_STUFF) ./#*#
  1222.     -cd $(toolbardir) && $(RM) $(CLEAN_STUFF) ./#*#
  1223.  
  1224. .PHONY: clean
  1225. clean:
  1226.     $(RM) $(CLEAN_STUFF) ./#*#
  1227.     -cd $(picdir) && $(RM) $(CLEAN_STUFF) ./#*#
  1228.  
  1229. .PHONY: distclean
  1230. distclean:
  1231.     $(RM) $(DISTCLEAN_STUFF) ./#*#
  1232.  
  1233. .PHONY: mostlyclean
  1234. mostlyclean: clean
  1235.     @:
  1236.  
  1237. .PHONY: realclean maintainer-clean
  1238. realclean maintainer-clean:
  1239.     @echo 'This command is intended for maintainers to use; it'
  1240.     @echo 'deletes files that may need special tools to rebuild.'
  1241.     $(RM) $(REALCLEAN_STUFF) ./#*#
  1242.  
  1243. .PHONY: ultraclean
  1244. ultraclean:
  1245.     @echo 'This command is intended for maintainers to use; it'
  1246.     @echo 'deletes files that may need special tools to rebuild.'
  1247.     $(RM) $(ULTRACLEAN_STUFF) ./#*#
  1248.  
  1249. .PHONY: info
  1250. info:    $(INFO_BASES)
  1251.     @:
  1252.  
  1253. .PHONY: dvi
  1254. dvi:    $(DVIS)
  1255.     @:
  1256.  
  1257. .PHONY: ps
  1258. ps:    $(PSS)
  1259.     @:
  1260.  
  1261. .PHONY: man
  1262. man:    $(MANS)
  1263.     @:
  1264.  
  1265. .PHONY: postscript
  1266. postscript: $(PSS)
  1267.     @:
  1268.  
  1269. .PHONY: html
  1270. html:    $(HTML_BASES)
  1271.     @:
  1272.  
  1273. .PHONY: readme
  1274. readme:    $(README_FILES)
  1275.     @:
  1276.  
  1277. .PHONY: diststuff
  1278. diststuff: $(DIST_STUFF)
  1279.     -for file in $(DIST_STUFF); do test -f $$file && $(TOUCH) $$file; done
  1280.     $(MAKE) depend
  1281.  
  1282. .PHONY: dist
  1283. dist:    
  1284.     @$(ECHO) see the top-level directory for making dist files.
  1285.     @false
  1286.  
  1287. .PHONY: strip
  1288. strip:    $(PROGS)
  1289.     -$(STRIP) $(PROGS)
  1290.  
  1291. .PHONY: progs programs
  1292. progs:    $(PROGS)
  1293.     @:
  1294. programs: $(PROGS)
  1295.     @:
  1296.  
  1297. .PHONY: demos
  1298. demos:    $(DEMOS)
  1299.     @:
  1300.  
  1301.  
  1302. ## A TECO-ism: `make love'
  1303.  
  1304. .PHONY: love
  1305. love:
  1306.     @$(ECHO) 'not war?'
  1307.  
  1308.  
  1309. ## Another joke: `make money fast'
  1310.  
  1311. .PHONY: money fast
  1312. money:
  1313.     @$(ECHO) '$$1,000,000'
  1314. fast:
  1315.     @:
  1316.  
  1317.  
  1318. ## A joke.
  1319. # Newsgroups: rec.humor.funny.reruns
  1320. # From: sater@cs.vu.nl (Hans van Staveren)
  1321. # Subject: Good news and bad news
  1322. # Approved: rhf-reruns@clari.net
  1323. # Keywords: heard it, funny, originally appeared in second quarter, 1990
  1324. # Message-ID: <Sba5.2ff7@clarinet.com>
  1325. # Date: Tue, 14 Oct 97 19:20:05 EDT
  1326. # Lines: 20
  1327. # Xref: news.tu-bs.de rec.humor.funny.reruns:535
  1328. #
  1329. # From the RHF archives as selected by Brad Templeton, Maddi Hausmann
  1330. # and Jim Griffith.  This newsgroup posts former jokes from the
  1331. # newsgroup rec.humor.funny.  Visit http://comedy.clari.net/rhf to
  1332. # browse the RHF pages and archives on the web.
  1333.  
  1334. .PHONY: joke fun
  1335. joke fun:
  1336.     @$(ECHO)
  1337.     @$(ECHO)
  1338.     @$(ECHO)
  1339.     @$(ECHO) 'A man gets a telephone call from a doctor. The doctor says:'
  1340.     @$(ECHO) ' "About this medical test I did on you, I have some good news'
  1341.     @$(ECHO) '  and some bad news."'
  1342.     @$(SLEEP) 5
  1343.     @$(ECHO)
  1344.     @$(ECHO) 'The man asks for the good news first:'
  1345.     @$(ECHO) 
  1346.     @$(SLEEP) 2
  1347.     @$(ECHO) ' "The good news is that you have 24 hours to live", says the doctor.'
  1348.     @$(SLEEP) 3
  1349.     @$(ECHO)
  1350.     @$(ECHO) 'The man, incredulously:'
  1351.     @$(ECHO) ' "If that is the good news, then what is the bad news??"'
  1352.     @$(SLEEP) 4
  1353.     @$(ECHO)
  1354.     @$(ECHO) ' "I couldn'\''t reach you on the phone yesterday."'
  1355.  
  1356.  
  1357. ## FORCE target
  1358.  
  1359. .PHONY: FORCE
  1360. FORCE:
  1361.     @:
  1362.  
  1363.  
  1364. ## The resource header and app-default files.
  1365.  
  1366. Ddd.ad.h: Ddd $(srcdir)/ad2c.sed
  1367.     $(AD2C) Ddd > $@~ && $(MV) $@~ $@
  1368.  
  1369. $(srcdir)/Ddd.in: $(srcdir)/Ddd.in.m4 $(srcdir)/tips.m4 \
  1370.     $(srcdir)/macros.m4 $(srcdir)/colors.m4 
  1371.     ( \
  1372.     ( \
  1373.         echo "define(srcdir, \`$(srcdir)')dnl"; \
  1374.         echo "include(srcdir()/Ddd.in.m4)dnl" \
  1375.     ) | $(M4); \
  1376.         ( \
  1377.         echo "define(srcdir, \`$(srcdir)')dnl"; \
  1378.         echo "include(srcdir()/tips.m4)dnl" \
  1379.     ) | $(M4); \
  1380.     ) > $@~ && $(MV) $@~ $@
  1381.  
  1382.  
  1383. ## The VSL header files.
  1384.  
  1385. VSLDIR  = $(srcdir)/../vsllib
  1386.  
  1387. VSL_CPP = $(CPP) -I$(VSLDIR) -I$(prefix)/lib/vsl-include
  1388.  
  1389. VSLSOURCES = \
  1390.     $(VSLDIR)/std.vsl \
  1391.     $(VSLDIR)/builtin.vsl \
  1392.     $(VSLDIR)/tab.vsl \
  1393.     $(VSLDIR)/fonts.vsl \
  1394.     $(VSLDIR)/colors.vsl
  1395.  
  1396. $(srcdir)/ddd.vsl.h: $(srcdir)/ddd.vsl $(srcdir)/vsl2c.sed $(VSLSOURCES)
  1397.     $(CAT) $(srcdir)/ddd.vsl > tmp.c
  1398.     $(VSL_CPP) tmp.c | $(VSL2C) > $@
  1399.     $(RM) tmp.c
  1400.  
  1401. $(srcdir)/ddd.vsl: $(srcdir)/ddd.vsl.m4 $(srcdir)/colors.m4
  1402.     ( \
  1403.         echo "define(srcdir, \`$(srcdir)')dnl"; \
  1404.         echo "include(srcdir()/ddd.vsl.m4)dnl" \
  1405.     ) | $(M4) > $@~ && $(MV) $@~ $@
  1406.  
  1407.  
  1408. ## The TIPS files.
  1409.  
  1410. .PHONY: tips
  1411.  
  1412. tips: $(srcdir)/tips.m4 $(srcdir)/tips.html
  1413.  
  1414. $(srcdir)/tips.m4: $(srcdir)/../TIPS $(srcdir)/tips2m4.awk
  1415.     $(AWK) -f $(srcdir)/tips2m4.awk $(srcdir)/../TIPS > $@~ && $(MV) $@~ $@
  1416.  
  1417. $(srcdir)/tips.html: $(srcdir)/../TIPS
  1418.     ( \
  1419.         echo "define(srcdir, \`$(srcdir)')dnl"; \
  1420.         echo "define(macros, \`$(srcdir)/html.m4')dnl"; \
  1421.         echo "include(srcdir()/../TIPS)dnl" \
  1422.     ) | $(M4) | $(AWK) -f $(srcdir)/tips2html.awk | \
  1423.     $(SED) 's/\\133/\[/g' | $(SED) 's/\\135/\]/g' | \
  1424.     $(SED) 's/@\([A-Z][A-Z]*\)@/\1/g' | $(SED) 's/@ /@/g' \
  1425.     > $@~ && $(MV) $@~ $@
  1426.  
  1427.  
  1428. # `make depend' fails to find this dependency :-(
  1429. DispBox.o: ddd.vsl.h
  1430.  
  1431. # And these are never computed:
  1432. ddd.vsl.h: $(srcdir)/../vsllib/std.vsl
  1433. ddd.vsl.h: $(srcdir)/../vsllib/fonts.vsl
  1434. ddd.vsl.h: $(srcdir)/../vsllib/colors.vsl
  1435. ddd.vsl.h: $(srcdir)/../vsllib/builtin.vsl
  1436. ddd.vsl.h: $(srcdir)/../vsllib/tab.vsl
  1437.  
  1438.  
  1439. ## The programs.
  1440.  
  1441. $(ddd)$(EXEEXT): $(ddd_canonical)$(EXEEXT)
  1442.     $(RM) $@ $(SYMS); $(LN_S) $(ddd_canonical)$(EXEEXT) $@
  1443.  
  1444. $(ddd_canonical)$(EXEEXT): ddd.o $(OBJECTS)
  1445.     $(LINK.cc) -o $@ ddd.o $(OBJECTS) $(ALL_X_LIBS) $(LIBS)
  1446.  
  1447.  
  1448. ## The demonstration programs.
  1449.  
  1450. userinfo$(EXEEXT): userinfo.o $(USERINFO_OBJECTS)
  1451.     -$(LINK.cc) -o $@ userinfo.o $(USERINFO_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1452.  
  1453. rxtest$(EXEEXT): rxtest.o $(HUFFMAN_OBJECTS)
  1454.     -$(LINK.cc) -o $@ rxtest.o $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1455.  
  1456. huffencode$(EXEEXT): huffencode.o $(HUFFMAN_OBJECTS)
  1457.     $(LINK.cc) -o $@ huffencode.o $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1458.  
  1459. huffdecode$(EXEEXT): huffdecode.o $(HUFFMAN_OBJECTS)
  1460.     $(LINK.cc) -o $@ huffdecode.o $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1461.  
  1462. stringify$(EXEEXT): stringify.o
  1463.     $(LINK.cc) -o $@ stringify.o $(LIBS)
  1464.  
  1465. mmtest$(EXEEXT): mmtest.o $(LIB_OBJECTS) 
  1466.     $(LINK.cc) -o $@ mmtest.o $(LIB_OBJECTS) $(ALL_X_LIBS) $(LIBS)
  1467.  
  1468. gcore$(EXEEXT): gcore.o $(HUFFMAN_OBJECTS)
  1469.     $(LINK.cc) -o $@ gcore.o $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1470.  
  1471. logplayer$(EXEEXT): $(srcdir)/logplayer.C $(HUFFMAN_OBJECTS)
  1472.     $(COMPILE_AND_LINK.cc) -DMAIN $(INCLUDE) -o $@ \
  1473.     $(srcdir)/logplayer.C $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1474.  
  1475. test-file$(EXEEXT): test-file.o
  1476.     $(LINK.cc) -o $@ test-file.o $(ALL_X_LIBS)
  1477.  
  1478. test-graph$(EXEEXT): test-graph.o $(LIB_OBJECTS) 
  1479.     $(LINK.cc) -o $@ test-graph.o $(LIB_OBJECTS) $(ALL_X_LIBS) $(LIBS)
  1480.  
  1481. vsl$(EXEEXT):    vsl.o DocSpace.o $(LIB_OBJECTS)
  1482.     $(LINK.cc) -o $@ vsl.o DocSpace.o $(LIB_OBJECTS) $(ALL_X_LIBS) $(LIBS)
  1483.  
  1484. ttytest$(EXEEXT): ttytest.o $(BASE_OBJECTS) $(AGENT_OBJECTS)
  1485.     $(LINK.cc) -o $@ ttytest.o $(BASE_OBJECTS) $(AGENT_OBJECTS) \
  1486.     $(ALL_X_LIBS) $(LIBS)
  1487.  
  1488. bug$(EXEEXT):    bug.o
  1489.     $(LINK.cc) -o $@ bug.o $(LIBS)
  1490.  
  1491. tString$(EXEEXT): tString.o  $(HUFFMAN_OBJECTS)
  1492.     $(LINK.cc) -o $@ tString.o $(HUFFMAN_OBJECTS) $(NON_X_LIBS) $(LIBS)
  1493.  
  1494. cxxtest$(EXEEXT): cxxtest.o
  1495.     $(LINK.cc) -o $@ cxxtest.o $(LIBS)
  1496.  
  1497. grabtest$(EXEEXT): grabtest.o
  1498.     $(LINK.cc) -o $@ grabtest.o $(ALL_X_LIBS) $(LIBS)
  1499.  
  1500. ctest$(EXEEXT):  ctest.o
  1501.     $(LINK.c) -o $@ ctest.o
  1502.  
  1503. ptest$(EXEEXT):  ptest.o
  1504.     $(LINK.p) -o $@ ptest.o
  1505.  
  1506. m2test$(EXEEXT): $(srcdir)/m2test.mod
  1507.     $(COMPILE_AND_LINK.m2) -o $@ -e $@ $(srcdir)/m2test.mod \
  1508.     -lmodula2 -ltermcap
  1509.  
  1510. ftest$(EXEEXT):    ftest.o
  1511.     $(LINK.f) -o $@ ftest.o
  1512.  
  1513. .PHONY: jtest
  1514. jtest:     
  1515.     cd $(srcdir)/jtest; $(MAKE) jtest
  1516.  
  1517. swallow$(EXEEXT): swallow.o findWindow.o Swallower.o
  1518.     $(LINK.cc) -o $@ swallow.o findWindow.o Swallower.o \
  1519.     $(ALL_X_LIBS) $(LIBS)
  1520.  
  1521. # We don't want no optimizing, but debugging info in our test files
  1522. cxxtest.o: $(srcdir)/cxxtest.C
  1523.     $(CXX) $(INCLUDE) @CXXDEBUG@ -c -o $@ $(srcdir)/cxxtest.C
  1524.  
  1525. ctest.o: $(srcdir)/ctest.c
  1526.     $(CC) $(INCLUDE) -g -c -o $@ $(srcdir)/ctest.c
  1527.  
  1528. grabtest.o: $(srcdir)/grabtest.C
  1529.     $(CXX) $(X_INCLUDE) @CXXDEBUG@ -c -o $@ $(srcdir)/grabtest.C
  1530.  
  1531. bug.o:    $(srcdir)/bug.C
  1532.     $(CXX) $(INCLUDE) @CXXDEBUG@ -c -o $@ $(srcdir)/bug.C
  1533.  
  1534. huffdecode.o: $(srcdir)/huffdecode.C ddd.man.huff.C
  1535.     $(COMPILE.cc) -DMAIN -DHUFFTEXT='"$(srcdir)/ddd.man.huff.C"' \
  1536.     $(INCLUDE) -o $@ $(srcdir)/huffdecode.C
  1537.  
  1538. ftest.o: $(srcdir)/ftest.f
  1539.     $(COMPILE.f) -c -o $@ $(srcdir)/ftest.f
  1540.  
  1541.  
  1542. ## For demonstration and debugging purposes
  1543. .PHONY: check
  1544. check: Ddd $(ddd)$(EXEEXT) cxxtest$(EXEEXT)
  1545.     XUSERFILESEARCHPATH=. XAPPLRESDIR=. ./ddd $(DDD_OPTIONS) cxxtest$(EXEEXT)
  1546.  
  1547. .PHONY: debug
  1548. debug: Ddd $(ddd)$(EXEEXT) cxxtest$(EXEEXT) .gdbinit $(ddd).syms
  1549.     $(DEBUGGER) ./$(ddd)
  1550.  
  1551. $(ddd).syms: $(ddd_canonical).syms
  1552.     $(RM) $@; $(LN_S) $(ddd_canonical).syms $@
  1553.  
  1554. $(ddd_canonical).syms: $(ddd_canonical)$(EXEEXT)
  1555.     nice $(DEBUGGER) -batch -nx -mapped -readnow $(ddd_canonical)$(EXEEXT)
  1556.  
  1557. .PHONY: syms
  1558. syms:   $(ddd).syms
  1559.     @:
  1560.  
  1561.  
  1562.  
  1563. # Create useful stuff in background
  1564. .PHONY: stuff
  1565. stuff:  $(ddd)$(EXEEXT)
  1566.     $(MAKE) $(ddd).syms > make.log 2>&1 &
  1567.     @:
  1568.  
  1569. # A convient target for setting up a debugging environment.
  1570. .PHONY: it
  1571. it:    all cxxtest$(EXEEXT) ctest$(EXEEXT) stuff
  1572.     @:
  1573.  
  1574.  
  1575.  
  1576. ## Lex and Yacc stuff.
  1577.  
  1578. # VSL parsers.
  1579. vsl-lex.C: $(srcdir)/vsl-lex.L
  1580.     $(LEX.L) $(srcdir)/vsl-lex.L
  1581.     $(LEXTOCXX) -prefix vsl
  1582.     $(MV) $(LEX_OUTPUT_ROOT).C $@
  1583.     $(RM) $(LEX_OUTPUT_ROOT).c
  1584.  
  1585. vsl-gramma.h vsl-gramma.C: $(srcdir)/vsl-gramma.Y
  1586.     $(YACC.Y) -d $(srcdir)/vsl-gramma.Y
  1587.     $(YACCTOCXX) -prefix vsl
  1588.     $(MV) y.tab.H vsl-gramma.h
  1589.     $(MV) y.tab.C vsl-gramma.C
  1590.     $(RM) y.tab.c y.tab.h
  1591.  
  1592. # DDD regexp parsers.
  1593. rxscan.C: $(srcdir)/rxscan.L
  1594.     $(LEX.L) $(srcdir)/rxscan.L
  1595.     $(LEXTOCXX) -prefix ddd
  1596.     $(MV) $(LEX_OUTPUT_ROOT).C $@
  1597.     $(RM) $(LEX_OUTPUT_ROOT).c
  1598.  
  1599. # `make depend' fails to find these dependencies :-(
  1600. VSLRead.o: vsl-lex.C vsl-gramma.h vsl-gramma.C
  1601. regexps.o: rxscan.C
  1602.  
  1603.  
  1604. ## The manual page in PostScript format, including all pictures.
  1605.  
  1606. $(srcdir)/../doc/ddd.man.ps: ddd.man $(PICS)
  1607.     $(GROFF) -man ddd.man > $@~ && $(MV) $@~ $@
  1608.  
  1609. $(srcdir)/../doc/ddd.man-nopics.ps: ddd.man-nopics
  1610.     $(GROFF) -man ddd.man-nopics > $@~ && $(MV) $@~ $@
  1611.  
  1612. $(picdir)/ddd-all.ps: \
  1613.     $(picdir)/ddd-all.fig $(picdir)/ddd-all.xpm
  1614.     cd $(picdir); $(FIG2PS) ddd-all.fig > ddd-all.ps
  1615.  
  1616. $(picdir)/ddd-console.ps: \
  1617.     $(picdir)/ddd-console.fig $(picdir)/ddd-console.xpm
  1618.     cd $(picdir); $(FIG2PS) ddd-console.fig > ddd-console.ps
  1619.  
  1620. $(picdir)/ddd-history.ps: \
  1621.     $(picdir)/ddd-history.fig $(picdir)/ddd-history.xpm
  1622.     cd $(picdir); $(FIG2PS) ddd-history.fig > ddd-history.ps
  1623.  
  1624. $(picdir)/ddd-open.ps: \
  1625.     $(picdir)/ddd-open.fig $(picdir)/ddd-open.xpm
  1626.     cd $(picdir); $(FIG2PS) ddd-open.fig > ddd-open.ps
  1627.  
  1628. $(picdir)/ddd-source.ps: \
  1629.     $(picdir)/ddd-source.fig $(picdir)/ddd-source.xpm
  1630.     cd $(picdir); $(FIG2PS) ddd-source.fig > ddd-source.ps
  1631.  
  1632. $(picdir)/ddd-line-popup.ps: \
  1633.     $(picdir)/ddd-line-popup.fig $(picdir)/ddd-line-popup.xpm
  1634.     cd $(picdir); $(FIG2PS) ddd-line-popup.fig > ddd-line-popup.ps
  1635.  
  1636. $(picdir)/ddd-bp-popup.ps: \
  1637.     $(picdir)/ddd-bp-popup.fig $(picdir)/ddd-bp-popup.xpm
  1638.     cd $(picdir); $(FIG2PS) ddd-bp-popup.fig > ddd-bp-popup.ps
  1639.  
  1640. $(picdir)/ddd-source-popup.ps: \
  1641.     $(picdir)/ddd-source-popup.fig $(picdir)/ddd-source-popup.xpm
  1642.     cd $(picdir); $(FIG2PS) ddd-source-popup.fig > ddd-source-popup.ps
  1643.  
  1644. $(picdir)/ddd-arguments.ps: \
  1645.     $(picdir)/ddd-arguments.fig $(picdir)/ddd-arguments.xpm
  1646.     cd $(picdir); $(FIG2PS) ddd-arguments.fig > ddd-arguments.ps
  1647.  
  1648. $(picdir)/ddd-tool.ps: $(picdir)/ddd-tool.fig $(picdir)/ddd-tool.xpm
  1649.     cd $(picdir); $(FIG2PS) ddd-tool.fig > ddd-tool.ps
  1650.  
  1651. $(picdir)/ddd-backtrace.ps: \
  1652.     $(picdir)/ddd-backtrace.fig $(picdir)/ddd-backtrace.xpm
  1653.     cd $(picdir); $(FIG2PS) ddd-backtrace.fig > ddd-backtrace.ps
  1654.  
  1655. $(picdir)/ddd-value-tip.ps: \
  1656.     $(picdir)/ddd-value-tip.fig $(picdir)/ddd-value-tip.xpm
  1657.     cd $(picdir); $(FIG2PS) ddd-value-tip.fig > ddd-value-tip.ps
  1658.  
  1659. $(picdir)/ddd-print-popup.ps: \
  1660.     $(picdir)/ddd-print-popup.fig $(picdir)/ddd-print-popup.xpm
  1661.     cd $(picdir); $(FIG2PS) ddd-print-popup.fig > ddd-print-popup.ps
  1662.  
  1663. $(picdir)/ddd-select-display.ps: \
  1664.     $(picdir)/ddd-select-display.fig $(picdir)/ddd-select-display.xpm
  1665.     cd $(picdir); $(FIG2PS) ddd-select-display.fig > ddd-select-display.ps
  1666.  
  1667. $(picdir)/ddd-hide-display.ps: \
  1668.     $(picdir)/ddd-hide-display.fig $(picdir)/ddd-hide-display.xpm
  1669.     cd $(picdir); $(FIG2PS) ddd-hide-display.fig > ddd-hide-display.ps
  1670.  
  1671. $(picdir)/ddd-rotate-display.ps: \
  1672.     $(picdir)/ddd-rotate-display.fig $(picdir)/ddd-rotate-display.xpm
  1673.     cd $(picdir); $(FIG2PS) ddd-rotate-display.fig > ddd-rotate-display.ps
  1674.  
  1675. $(picdir)/ddd-locals.ps: \
  1676.     $(picdir)/ddd-locals.fig $(picdir)/ddd-locals.xpm
  1677.     cd $(picdir); $(FIG2PS) ddd-locals.fig > ddd-locals.ps
  1678.  
  1679. $(picdir)/ddd-status-displays.ps: \
  1680.     $(picdir)/ddd-status-displays.fig $(picdir)/ddd-status-displays.xpm
  1681.     cd $(picdir); $(FIG2PS) ddd-status-displays.fig > ddd-status-displays.ps
  1682.  
  1683. $(picdir)/ddd-set.ps: \
  1684.     $(picdir)/ddd-set.fig $(picdir)/ddd-set.xpm
  1685.     cd $(picdir); $(FIG2PS) ddd-set.fig > ddd-set.ps
  1686.  
  1687. $(picdir)/ddd-layout.ps: \
  1688.     $(picdir)/ddd-layout.fig $(picdir)/ddd-layout.xpm
  1689.     cd $(picdir); $(FIG2PS) ddd-layout.fig > ddd-layout.ps
  1690.  
  1691. $(picdir)/ddd-print-graph.ps: \
  1692.     $(picdir)/ddd-print-graph.fig $(picdir)/ddd-print-graph.xpm
  1693.     cd $(picdir); $(FIG2PS) ddd-print-graph.fig > ddd-print-graph.ps
  1694.  
  1695. $(picdir)/ddd-print-output.ps: \
  1696.     $(picdir)/ddd-print-output.fig $(picdir)/ddd-graph.eps
  1697.     cd $(picdir); $(FIG2PS) ddd-print-output.fig > ddd-print-output.ps
  1698.  
  1699. $(picdir)/ddd-code.ps: \
  1700.     $(picdir)/ddd-code.fig $(picdir)/ddd-code.xpm
  1701.     cd $(picdir); $(FIG2PS) ddd-code.fig > ddd-code.ps
  1702.  
  1703. $(picdir)/ddd-registers.ps: \
  1704.     $(picdir)/ddd-registers.fig $(picdir)/ddd-registers.xpm
  1705.     cd $(picdir); $(FIG2PS) ddd-registers.fig > ddd-registers.ps
  1706.  
  1707. $(picdir)/ddd-general-prefs.ps: \
  1708.     $(picdir)/ddd-general-prefs.fig $(picdir)/ddd-general-prefs.xpm 
  1709.     cd $(picdir); $(FIG2PS) ddd-general-prefs.fig > ddd-general-prefs.ps
  1710.  
  1711. $(picdir)/ddd-helpers.ps: \
  1712.     $(picdir)/ddd-helpers.fig $(picdir)/ddd-helpers.xpm 
  1713.     cd $(picdir); $(FIG2PS) ddd-helpers.fig > ddd-helpers.ps
  1714.  
  1715. $(picdir)/ddd-source-prefs.ps: \
  1716.     $(picdir)/ddd-source-prefs.fig $(picdir)/ddd-source-prefs.xpm
  1717.     cd $(picdir); $(FIG2PS) ddd-source-prefs.fig > ddd-source-prefs.ps
  1718.  
  1719. $(picdir)/ddd-data-prefs.ps: \
  1720.     $(picdir)/ddd-data-prefs.fig $(picdir)/ddd-data-prefs.xpm
  1721.     cd $(picdir); $(FIG2PS) ddd-data-prefs.fig > ddd-data-prefs.ps
  1722.  
  1723. $(picdir)/ddd-startup-prefs.ps: \
  1724.     $(picdir)/ddd-startup-prefs.fig $(picdir)/ddd-startup-prefs.xpm
  1725.     cd $(picdir); $(FIG2PS) ddd-startup-prefs.fig > ddd-startup-prefs.ps
  1726.  
  1727. $(picdir)/ddd-settings.ps: \
  1728.     $(picdir)/ddd-settings.fig $(picdir)/ddd-settings.xpm
  1729.     cd $(picdir); $(FIG2PS) ddd-settings.fig > ddd-settings.ps
  1730.  
  1731. $(picdir)/ddd-threads.ps: \
  1732.     $(picdir)/ddd-threads.fig $(picdir)/ddd-threads.xpm
  1733.     cd $(picdir); $(FIG2PS) ddd-threads.fig > ddd-threads.ps
  1734.  
  1735. $(picdir)/ddd-aliases.ps: \
  1736.     $(picdir)/ddd-aliases.fig $(picdir)/ddd-aliases.xpm
  1737.     cd $(picdir); $(FIG2PS) ddd-aliases.fig > ddd-aliases.ps
  1738.  
  1739. $(picdir)/ddd-edit-displays.ps: \
  1740.     $(picdir)/ddd-edit-displays.fig $(picdir)/ddd-edit-displays.xpm
  1741.     cd $(picdir); $(FIG2PS) ddd-edit-displays.fig > ddd-edit-displays.ps
  1742.  
  1743. $(picdir)/ddd-attach.ps: \
  1744.     $(picdir)/ddd-attach.fig $(picdir)/ddd-attach.xpm
  1745.     cd $(picdir); $(FIG2PS) ddd-attach.fig > ddd-attach.ps
  1746.  
  1747. $(picdir)/ddd-save-session.ps: \
  1748.     $(picdir)/ddd-save-session.fig $(picdir)/ddd-save-session.xpm
  1749.     cd $(picdir); $(FIG2PS) ddd-save-session.fig > ddd-save-session.ps
  1750.  
  1751. $(picdir)/ddd-open-session.ps: \
  1752.     $(picdir)/ddd-open-session.fig $(picdir)/ddd-open-session.xpm
  1753.     cd $(picdir); $(FIG2PS) ddd-open-session.fig > ddd-open-session.ps
  1754.  
  1755. $(picdir)/ddd-button-editor.ps: \
  1756.     $(picdir)/ddd-button-editor.fig $(picdir)/ddd-button-editor.xpm
  1757.     cd $(picdir); $(FIG2PS) ddd-button-editor.fig > ddd-button-editor.ps
  1758.  
  1759. $(picdir)/ddd-shortcuts.ps: \
  1760.     $(picdir)/ddd-shortcuts.fig $(picdir)/ddd-shortcuts.xpm
  1761.     cd $(picdir); $(FIG2PS) ddd-shortcuts.fig > ddd-shortcuts.ps
  1762.  
  1763. $(picdir)/ddd-shortcut-editor.ps: \
  1764.     $(picdir)/ddd-shortcut-editor.fig $(picdir)/ddd-shortcut-editor.xpm
  1765.     cd $(picdir); $(FIG2PS) ddd-shortcut-editor.fig > ddd-shortcut-editor.ps
  1766.  
  1767. $(picdir)/ddd-drag.ps: \
  1768.     $(picdir)/ddd-drag.fig \
  1769.     $(picdir)/ddd-drag1.xpm $(picdir)/ddd-drag2.xpm $(picdir)/ddd-drag3.xpm
  1770.     cd $(picdir); $(FIG2PS) ddd-drag.fig > ddd-drag.ps
  1771.  
  1772. $(picdir)/disclaimer.ps: \
  1773.     $(picdir)/disclaimer.fig
  1774.     cd $(picdir); $(FIG2PS) disclaimer.fig > disclaimer.ps
  1775.  
  1776. $(picdir)/ddd-separate.ps: \
  1777.     $(picdir)/ddd-separate.fig $(picdir)/ddd-separate.xpm
  1778.     cd $(picdir); $(FIG2PS) ddd-separate.fig > ddd-separate.ps
  1779.  
  1780. $(picdir)/ddd-bp-properties.ps: \
  1781.     $(picdir)/ddd-bp-properties.fig $(picdir)/ddd-bp-properties.xpm
  1782.     cd $(picdir); $(FIG2PS) ddd-bp-properties.fig > ddd-bp-properties.ps
  1783.  
  1784. $(picdir)/ddd-edit-breakpoints.ps: \
  1785.     $(picdir)/ddd-edit-breakpoints.fig $(picdir)/ddd-edit-breakpoints.xpm
  1786.     cd $(picdir); $(FIG2PS) ddd-edit-breakpoints.fig > ddd-edit-breakpoints.ps
  1787.  
  1788. $(picdir)/ddd-display.ps: \
  1789.     $(picdir)/ddd-display.fig $(picdir)/ddd-display.xpm
  1790.     cd $(picdir); $(FIG2PS) ddd-display.fig > ddd-display.ps
  1791.  
  1792. $(picdir)/ddd-repeats.ps: \
  1793.     $(picdir)/ddd-repeats.fig $(picdir)/ddd-repeats.xpm
  1794.     cd $(picdir); $(FIG2PS) ddd-repeats.fig > ddd-repeats.ps
  1795.  
  1796. $(picdir)/ddd-toolbar.ps: $(picdir)/ddd-toolbar.fig $(picdir)/ddd-toolbar.xpm
  1797.     cd $(picdir); $(FIG2PS) ddd-toolbar.fig > ddd-toolbar.ps
  1798.  
  1799. $(picdir)/ddd-font-prefs.ps: \
  1800.     $(picdir)/ddd-font-prefs.fig $(picdir)/ddd-font-prefs.xpm
  1801.     cd $(picdir); $(FIG2PS) ddd-font-prefs.fig > ddd-font-prefs.ps
  1802.  
  1803. $(picdir)/ddd-define-command.ps: \
  1804.     $(picdir)/ddd-define-command.fig $(picdir)/ddd-define-command.xpm
  1805.     cd $(picdir); $(FIG2PS) ddd-define-command.fig > ddd-define-command.ps
  1806.  
  1807. $(picdir)/ddd-signals.ps: \
  1808.     $(picdir)/ddd-signals.fig $(picdir)/ddd-signals.xpm
  1809.     cd $(picdir); $(FIG2PS) ddd-signals.fig > ddd-signals.ps
  1810.  
  1811. $(picdir)/ddd-examine.ps: \
  1812.     $(picdir)/ddd-examine.fig $(picdir)/ddd-examine.xpm
  1813.     cd $(picdir); $(FIG2PS) ddd-examine.fig > ddd-examine.ps
  1814.  
  1815. $(picdir)/ddd-clusters.ps: \
  1816.     $(picdir)/ddd-clusters.fig \
  1817.     $(picdir)/clustered.ps \
  1818.     $(picdir)/unclustered.ps
  1819.     cd $(picdir); $(FIG2PS) ddd-clusters.fig > ddd-clusters.ps
  1820.  
  1821. $(picdir)/ddd-plots.ps: \
  1822.     $(picdir)/ddd-plots.fig $(picdir)/ddd-plots.xpm
  1823.     cd $(picdir); $(FIG2PS) ddd-plots.fig > ddd-plots.ps
  1824.  
  1825. $(picdir)/ddd-toolbars.ps: \
  1826.     $(picdir)/ddd-toolbars.fig \
  1827.     $(picdir)/ddd-toolbar-1.xpm \
  1828.     $(picdir)/ddd-toolbar-2.xpm \
  1829.     $(picdir)/ddd-toolbar-3.xpm \
  1830.     $(picdir)/ddd-toolbar-4.xpm
  1831.     cd $(picdir); $(FIG2PS) ddd-toolbars.fig > ddd-toolbars.ps
  1832.  
  1833.  
  1834. # The logo comes in XPM source
  1835. $(picdir)/dddsplash.ps: $(icondir)/dddsplash.xpm
  1836.     $(XPMTOPPM) $(icondir)/dddsplash.xpm | $(PNMDEPTH) 255 | \
  1837.     $(PNMTOPS) -noturn > $@~ && $(MV) $@~ $@
  1838.  
  1839.  
  1840. ## Icons and logos.
  1841.  
  1842. .PHONY: icons
  1843. icons:    $(ICONS)
  1844.     @:
  1845.  
  1846. # All X bitmaps are derived from the XPM sources.
  1847.  
  1848. $(icondir)/dddmask.xpm: $(icondir)/ddd.xpm
  1849.     $(SED) 's/[wW]hite/black/g' $(icondir)/ddd.xpm > $@
  1850.  
  1851. $(icondir)/ddd.xbm: $(icondir)/ddd.xpm
  1852.  
  1853. $(icondir)/ddd.xface: $(icondir)/ddd.xbm
  1854.  
  1855. $(icondir)/dddmask.xbm: $(icondir)/dddmask.xpm
  1856.  
  1857. # Original filter for dddsplash to extract g4 info
  1858. # $(SED) 's/[     ][cmg][     ][#a-zA-Z0-9][#a-zA-Z0-9]*//g' | \
  1859.  
  1860. $(icondir)/dddsplash.xbm: $(icondir)/dddsplash.xpm
  1861.     @$(ECHO) "Creating $@"
  1862.     @-$(CAT) $(icondir)/dddsplash.xpm | \
  1863.     $(XPMTOPPM) | $(PNMDEPTH) 255 | $(PNMGAMMA) 0.4 | $(PPMTOPGM) | \
  1864.     $(PGMENHANCE) -7 | \
  1865.     $(PGMTOPBM) | $(PBMTOXBM) | $(SED) 's/noname/dddsplash/g' | \
  1866.     $(SED) "s/static char/static unsigned char/g" > $@~
  1867.     @test -s $@~ && $(MV) $@~ $@ || ($(RM) $@~; test -s $@)
  1868.  
  1869.  
  1870. ## Configuration stuff.
  1871.  
  1872. Makefile: $(srcdir)/Makefile.in config.status
  1873.     CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
  1874.  
  1875. Ddd: $(srcdir)/Ddd.in config.status
  1876.     CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
  1877.  
  1878. .gdbinit: $(srcdir)/.gdbinit.in config.status
  1879.     CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
  1880.  
  1881. $(srcdir)/configure: $(srcdir)/configure.in $(srcdir)/aclocal.m4
  1882.     -cd $(srcdir) && $(AUTOCONF)
  1883. config.status: $(srcdir)/configure
  1884.     -$(SHELL) ./config.status --recheck || $(SHELL) $(srcdir)/configure -v
  1885.  
  1886. $(srcdir)/aclocal.m4: $(srcdir)/configure.in $(srcdir)/acinclude.m4
  1887.     -cd $(srcdir) && $(ACLOCAL)
  1888.  
  1889. .PRECIOUS: Makefile configure config.status config.h Ddd
  1890.  
  1891. # autoheader might not change config.h.in
  1892. $(srcdir)/config.h.in: stamp-h.in
  1893. $(srcdir)/stamp-h.in: \
  1894.     $(srcdir)/configure.in \
  1895.     $(srcdir)/aclocal.m4 \
  1896.     $(srcdir)/acconfig.h
  1897.     cd $(srcdir) && $(AUTOHEADER)
  1898.     $(DATE) > $@~ && $(MV) $@~ $@
  1899.  
  1900. $(srcdir)/acconfig.h: $(srcdir)/acconfig.h.in $(srcdir)/acspecial.h
  1901.     ( \
  1902.         echo "define(srcdir, \`$(srcdir)')dnl"; \
  1903.         echo "include(srcdir()/acconfig.h.in)dnl" \
  1904.     ) | $(M4) > $@~ && $(MV) $@~ $@
  1905.  
  1906. $(srcdir)/acspecial.h: $(srcdir)/configure.in
  1907.     $(GREP) '^ICE_[a-zA-Z0-9_]* *(' $(srcdir)/configure.in > $@~ && \
  1908.     $(MV) $@~ $@
  1909.  
  1910.  
  1911. # config.status might not change config.h
  1912. config.h: stamp-h
  1913. stamp-h: config.h.in config.status
  1914.     CONFIG_FILES= CONFIG_HEADERS=config.h ./config.status
  1915.     $(DATE) > $@~ && $(MV) $@~ $@
  1916.  
  1917.  
  1918. # We use configure to create `version.h'.
  1919. # To make sure these are not touched upon every invocation,
  1920. # we create temporary vr.* files instead and touch the version.* files
  1921. # only if the vr.* files changed.
  1922. version.h: vr.h
  1923.     @$(CMP) vr.h $@ 2> /dev/null || ( $(CAT) vr.h > $@~ && $(MV) $@~ $@ )
  1924. vr.h: vr.h.in config.status
  1925.     CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
  1926.  
  1927. ## The manual page
  1928. ddd.man: $(srcdir)/ddd.man.in config.status
  1929.     CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
  1930.  
  1931. # Same, but in 7-bit format
  1932. ddd.1:   ddd.man $(srcdir)/unumlaut.sed
  1933.     -$(SED) -f $(srcdir)/unumlaut.sed ddd.man > $@~ && $(MV) $@~ $@
  1934.  
  1935. # ddd.man.txt does NOT depend on ddd.man since we don't want it to get
  1936. # re-created after each configuration.
  1937. ddd.man.txt: $(srcdir)/ddd.man.in configure.in $(srcdir)/umlaut8.sed
  1938.     $(MAKE) ddd.man
  1939.     -$(SED) -f $(srcdir)/umlaut7.sed ddd.man | \
  1940.     $(NROFF) -man | $(SED) -f $(srcdir)/umlaut8.sed > $@~ && $(MV) $@~ $@
  1941.  
  1942. # ddd.man.txt may reside in $(srcdir) or `.' , hence the `$?'
  1943. ddd.man.txt.gz: ddd.man.txt
  1944.     $(COMPRESS) $? > $@~ && $(MV) $@~ $@
  1945.  
  1946. ddd.man.txt.gz.C: ddd.man.txt.gz
  1947.     $(MAKE) stringify$(EXEEXT)
  1948.     -./stringify < $? > $@~ && $(MV) $@~ $@
  1949.  
  1950.  
  1951. # ddd.man.huff.C does NOT depend on huffencode since we don't want it
  1952. # to get re-created after each configuration.
  1953. ddd.man.huff.C: ddd.man.txt
  1954.     $(MAKE) huffencode$(EXEEXT)
  1955.     -./huffencode < ddd.man.txt > $@~ && $(MV) $@~ $@
  1956.  
  1957. # The `no pictures' variant of ddd.man.
  1958. ddd.man-nopics: ddd.man
  1959.     $(GREP) -v '^\.PSPIC' ddd.man > ddd.man-nopics
  1960.  
  1961. # COPYING.huff.C does NOT depend on huffencode since we don't want it
  1962. # to get re-created after each configuration.
  1963. COPYING.huff.C: $(srcdir)/../COPYING
  1964.     $(MAKE) huffencode$(EXEEXT)
  1965.     -$(SED) 's/ //' < $(srcdir)/../COPYING | ./huffencode > $@~ && \
  1966.     $(MV) $@~ $@
  1967.  
  1968. COPYING.gz: $(srcdir)/../COPYING
  1969.     $(COMPRESS) $(srcdir)/../COPYING > $@
  1970.  
  1971. COPYING.gz.C: COPYING.gz
  1972.     $(MAKE) stringify$(EXEEXT)
  1973.     -./stringify < COPYING.gz > $@~ && $(MV) $@~ $@
  1974.  
  1975. # NEWS.huff.C does NOT depend on huffencode since we don't want it
  1976. # to get re-created after each configuration.
  1977. NEWS.huff.C: $(srcdir)/../NEWS
  1978.     $(MAKE) huffencode$(EXEEXT)
  1979.     -$(SED) 's/ //' < $(srcdir)/../NEWS | ./huffencode > $@~ && \
  1980.     $(MV) $@~ $@
  1981.  
  1982. NEWS.gz: $(srcdir)/../NEWS
  1983.     $(COMPRESS) $(srcdir)/../NEWS > $@~ && $(MV) $@~ $@
  1984.  
  1985. NEWS.gz.C: NEWS.gz
  1986.     $(MAKE) stringify$(EXEEXT)
  1987.     -./stringify < NEWS.gz > $@~ && $(MV) $@~ $@
  1988.  
  1989. # `make depend' fails to find this dependency :-(
  1990. show.o: COPYING.gz.C NEWS.gz.C ddd.man.txt.gz.C
  1991.  
  1992.  
  1993. ## The xlibdir script
  1994. xlibdir.C: xlibdir.txt
  1995.  
  1996. # `make depend' fails to find this dependency :-(
  1997. xconfig.o: xlibdir.C
  1998.  
  1999.  
  2000. ## The host type
  2001. host.h: $(srcdir)/host.h.in config.status
  2002.     $(CAT) $(srcdir)/host.h.in | \
  2003.     $(SED) "s%@HOST_CANONICAL@%$(host_canonical)%" | \
  2004.     $(SED) "s%@TARGET_CANONICAL@%$(target_canonical)%" > $@~ && \
  2005.     $(MV) $@~ $@
  2006.  
  2007. ## Tags.
  2008. .PHONY:    tags
  2009. tags:    $(srcdir)/TAGS
  2010.  
  2011. $(srcdir)/TAGS:    FORCE
  2012.     @cd $(srcdir); \
  2013.     if [ `ls -c TAGS *.[Ch] | head -1` != TAGS ]; then \
  2014.     echo 'Creating $@...'; \
  2015.     $(ETAGS) *.[Ch] > $@; \
  2016.     echo 'Creating $@...done.'; \
  2017.     else \
  2018.     echo "'"'$@` is up to date.'; \
  2019.     fi
  2020.  
  2021. ## Statistics.
  2022. # Count lines of C++/lex/yacc source code.
  2023. # Lines containing only comments or documentation and empty lines are ignored.
  2024.  
  2025. .PHONY: loc stats
  2026. loc stats:
  2027.     cd $(srcdir); \
  2028.     for list in '$(LIB_OBJECTS)' '$(DDD_OBJECTS)' '$(OBJECTS)'; do \
  2029.     pattern=`$(ECHO) $$list | $(SED) 's/\([a-zA-Z0-9_]*\)\.o/\1\\.*/g'`; \
  2030.     $(ECHO) "Lines of code for $$pattern"; \
  2031.     $(CAT) `$(LS) $$pattern | grep '\.[ChLY]'` | \
  2032.         $(GREP) -v '^[     ]*//' | \
  2033.         $(GREP) -v '^"' | \
  2034.         $(GREP) -v '^[     ]*$$' | wc -l; \
  2035.     done
  2036.  
  2037.  
  2038. ## EPS code stuff.
  2039.  
  2040. $(srcdir)/header.str: $(srcdir)/header.ps
  2041.     $(SED) 's/^.*$$/"&\\n"/' $(srcdir)/header.ps > $@~ && $(MV) $@~ $@
  2042.  
  2043. $(srcdir)/trailer.str: $(srcdir)/trailer.ps
  2044.     $(SED) 's/^.*$$/"&\\n"/' $(srcdir)/trailer.ps > $@~ && $(MV) $@~ $@
  2045.  
  2046. $(srcdir)/eps-code.h: \
  2047.     $(srcdir)/header.str $(srcdir)/trailer.str $(srcdir)/eps-code.x
  2048.     $(SED) -e '/prolog/r $(srcdir)/header.str' \
  2049.            -e '/trailer/r $(srcdir)/trailer.str' $(srcdir)/eps-code.x \
  2050.     > $@~ && $(MV) $@~ $@
  2051.  
  2052.  
  2053. ## Configuration info stuff
  2054. configinfo.C: USERINFO $(srcdir)/config-info
  2055.     $(SHELL) $(srcdir)/config-info $(srcdir)/USERINFO USERINFO > $@~ && \
  2056.     $(MV) $@~ $@
  2057.  
  2058. # configinfo.C:    Makefile config.h
  2059.  
  2060. configinfo.o:    configinfo.C configinfo.h
  2061.  
  2062. # If `~/.ddd_userinfo' exists, use this file as personal identification.
  2063. USERINFO: userinfo$(EXEEXT)
  2064.     -(cat $$HOME/.ddd_userinfo 2> /dev/null || \
  2065.     ./userinfo || echo '(unknown)') > $@~ && $(MV) $@~ $@
  2066.     @$(ECHO) ""
  2067.     @$(ECHO) "Please check your name and e-mail address:"
  2068.     @$(ECHO) ""
  2069.     @$(CAT) $@
  2070.     @$(ECHO) ""
  2071.     @$(ECHO) "This information will be compiled into $(DDD)."
  2072.     @$(ECHO) "If it is not correct, please edit $@ and re-compile."
  2073.     @$(ECHO) ""
  2074.  
  2075.  
  2076. ## Update the shared source tree.  For development only.
  2077.  
  2078. PUB_DEST=/ftp/ips/pub/misc/$(ddd)-$(VERSION)/ddd
  2079. PUB_SRC=`ls -t /usr/local/share/CVS/ddd/ddd | $(SED) 's/,v//'`
  2080. GTEST=/usr/local/gnubin/test
  2081.  
  2082. .PHONY: pub
  2083. pub:    $(PROG_STUFF) configure $(PUB_DEST)/USERINFO
  2084.     @for file in $(PUB_SRC) $(PROG_STUFF) configure Makedeps; do \
  2085.         if $(GTEST) ./$$file -nt $(PUB_DEST)/$$file; then \
  2086.         echo -n Updating $(PUB_DEST)/$$file...; \
  2087.         cp -p ./$$file $(PUB_DEST)/$$file; \
  2088.         echo done.; \
  2089.         fi; \
  2090.     done
  2091.  
  2092. # This is no longer needed, since we have `~/.ddd_userinfo'.
  2093. # $(PUB_DEST)/USERINFO:
  2094. #     -$(ECHO) 'DDD Development Team <ddd@ips.cs.tu-bs.de>' > $@~ && \
  2095. #     $(MV) $@~ $@
  2096.  
  2097.  
  2098. ## Make dependency stuff.
  2099.  
  2100. .PHONY: depend
  2101. depend: FORCE $(PROG_STUFF)
  2102.  
  2103. .PRECIOUS: $(srcdir)/Makedeps
  2104. $(srcdir)/Makedeps depend:
  2105.     @$(ECHO) "Creating $(srcdir)/Makedeps..."
  2106.     @( $(ECHO) \#' DO NOT EDIT -- generated automagically by make depend';\
  2107.     $(ECHO) \#' Source: $$Id: Makefile.in,v 1.293 1998/11/29 11:26:08 zeller Exp $$'; \
  2108.     $(ECHO) ; \
  2109.     srcdir=`echo $(srcdir) | $(SED) 's%\.%\\\\.%g'`; \
  2110.     $(CXX) -M $(CPPFLAGS) $(DEFS) $(INCLUDE) $(srcdir)/*.C \
  2111.     | $(SED) "s% $$srcdir/% %g" \
  2112.     | $(SED) 's% /[^ ]*%%g' \
  2113.     | $(SED) 's% \./% %g' \
  2114.     | $(GREP) -v '^ *\\$$' \
  2115.     | $(SED) "s% \.\./% \$$(srcdir)/\.\./%g" \
  2116.     | $(SED) 's%^ *$$%& config.h%g' ) > Makedeps~
  2117.     @$(MV) Makedeps~ $(srcdir)/Makedeps
  2118.     @$(ECHO) "Creating $(srcdir)/Makedeps...done."
  2119.  
  2120. ## If your `make' cannot handle the following line,
  2121. ## just replace it by the contents of `@srcdir@/Makedeps'.
  2122. include @srcdir@/Makedeps
  2123.