home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / g / gs252src.zip / GS252 / GS.MAK < prev    next >
Text File  |  1992-09-17  |  24KB  |  687 lines

  1. #    Copyright (C) 1989, 1992 Aladdin Enterprises.  All rights reserved.
  2. #    Distributed by Free Software Foundation, Inc.
  3. #
  4. # This file is part of Ghostscript.
  5. #
  6. # Ghostscript is distributed in the hope that it will be useful, but
  7. # WITHOUT ANY WARRANTY.  No author or distributor accepts responsibility
  8. # to anyone for the consequences of using it or for whether it serves any
  9. # particular purpose or works at all, unless he says so in writing.  Refer
  10. # to the Ghostscript General Public License for full details.
  11. #
  12. # Everyone is granted permission to copy, modify and redistribute
  13. # Ghostscript, but only under the conditions described in the Ghostscript
  14. # General Public License.  A copy of this license is supposed to have been
  15. # given to you along with Ghostscript so you can know your rights and
  16. # responsibilities.  It should be in a file named COPYING.  Among other
  17. # things, the copyright notice and this notice must be preserved on all
  18. # copies.
  19.  
  20. # Generic makefile for Ghostscript.
  21. # The platform-specific makefiles `include' this file.
  22. # They define the following symbols:
  23. #    GS_INIT - the name of the initialization file for Ghostscript,
  24. #        normally gs_init.ps.
  25. #    GS_LIB_DEFAULT - the default directory/ies for searching for the
  26. #        initialization and font files at run time.
  27. #    DEVICE_DEVS - the devices to include in the executable.
  28. #        See devs.mak for details.
  29. #    DEVICE_DEVS2...DEVICE_DEVS5 - additional devices, if the definition of
  30. #        DEVICE_DEVS doesn't fit on one line.
  31. #        See devs.mak for details.
  32. #    FEATURE_DEVS - the optional features to include in the
  33. #        executable.  Current features are:
  34. #            dps - (partial) support for Display PostScript extensions:
  35. #            see language.doc for details.
  36. #            level2 - (partial) support for PostScript Level 2
  37. #            extensions: see language.doc for details.
  38. #            compfont - support for composite (type 0) fonts.
  39. #            *** NOT IMPLEMENTED YET. ***
  40. #            filter - support for Level 2 filters (other than eexec,
  41. #            ASCIIHexEncode/Decode, NullEncode, PFBDecode,
  42. #            and SubFileDecode, which are always included).
  43. #            ccfonts - precompile fonts into C, and link them
  44. #            with the executable.  In the standard makefiles,
  45. #            this is only implemented for a very few fonts:
  46. #            see fonts.doc for details.
  47. # It is very unlikely that anyone would want to edit the remaining
  48. #   symbols, but we describe them here for completeness:
  49. #    PLATFORM - a "device" name for the platform, so that platforms can
  50. #        add various kinds of resources like devices and features.
  51. #    QQ - a " preceded by whatever escape characters are needed to
  52. #        persuade the shell to pass a " to a program (" on MS-DOS,
  53. #        \" on Unix).
  54. #    XE - the extension for executable files (e.g., null or .exe).
  55. #    OBJ - the extension for relocatable object files (e.g., o or obj).
  56. #    BEGINFILES - the list of files that `make begin' should delete.
  57. #    CCBEGIN - the compilation command for `make begin', normally
  58. #        $(CCC) *.c.
  59. #    CCC - the C invocation for normal compilation.
  60. #    CCD - the C invocation for files that store into frame buffers or
  61. #        device registers.  Needed because some optimizing compilers
  62. #        will eliminate necessary stores.
  63. #    CC0 - a C invocation with the fewest possible flags.  Needed because
  64. #        MS-DOS limits the length of command lines to 128 characters.
  65. #    CCCF - the C invocation for compiled fonts.  Needed because MS-DOS
  66. #        requires using the 'huge' memory model for these.
  67. #    CCINT - the C invocation for compiling the main interpreter module,
  68. #        normally the same as CCC: this is needed because the
  69. #        Borland compiler generates *worse* code for this module
  70. #        (but only this module) when optimization (-O) is turned on.
  71. #    AK - if source files must be converted from ANSI to K&R syntax,
  72. #        this is ansi2knr$(XE); if not, it is null.
  73. #        If a particular platform requires other utility programs
  74. #        to be built, AK must include them too.
  75. #    UNIQ - null on systems that provide the uniq utility,
  76. #        uniq$(XE) on systems where we have to provide our own.
  77. #    SHP - the prefix for invoking a shell script in the current directory
  78. #        (null for MS-DOS, $(SH) ./ for Unix).
  79. #    EXPP, EXP - the prefix for invoking an executable program in the
  80. #        current directory (null for MS-DOS, ./ for Unix).
  81. #    SH - the shell for scripts (null on MS-DOS, sh on Unix).
  82. # The platform-specific makefiles must also include rules for creating
  83. #   ansi2knr$(XE) and genarch$(XE) from the corresponding .c files,
  84. #   and for making arch.h by executing genarch$(XE).  (This
  85. #   shouldn't really be necessary, but Turbo C and Unix C treat the -o
  86. #   switch slightly differently (Turbo C requires no following space,
  87. #   Unix C requires a following space), and I haven't found a way to capture
  88. #   the difference in a macro; also, Unix requires ./ because . may not be
  89. #   in the search path, whereas MS-DOS always looks in the current
  90. #   directory first.)
  91.  
  92. all default: gs$(XE)
  93.  
  94. mostlyclean realclean distclean clean:
  95.     rm -f *.$(OBJ) *.a core gmon.out
  96.     rm -f *.dev *.d_* arch.h gconfig*.h obj*.tr lib*.tr
  97.     rm -f t _temp_* _temp_*.* *.map *.sym
  98.     rm -f ansi2knr$(XE) echogs$(XE) genarch$(XE) uniq$(XE)
  99.     rm -f gs$(XE) $(BEGINFILES)
  100.  
  101. # A rule to do a quick and dirty compilation attempt when first installing
  102. # Ghostscript.  Many of the compilations will fail: follow this with 'make'.
  103.  
  104. begin:
  105.     rm -f arch.h genarch$(XE) $(BEGINFILES)
  106.     make arch.h
  107.     - $(CCBEGIN)
  108.     rm -f gconfig.$(OBJ) gdev*.$(OBJ) gp_*.$(OBJ) gsmisc.$(OBJ)
  109.     rm -f iccfont.$(OBJ) iinit.$(OBJ) interp.$(OBJ)
  110.  
  111. # Auxiliary programs
  112.  
  113. arch.h: genarch$(XE)
  114.     $(EXPP) $(EXP)genarch arch.h
  115.  
  116. # -------------------------------- Library -------------------------------- #
  117.  
  118. # Define the inter-dependencies of the .h files.
  119. # Since not all versions of `make' defer expansion of macros,
  120. # we must list these in bottom-to-top order.
  121.  
  122. # Generic files
  123.  
  124. arch_h=arch.h
  125. std_h=std.h $(arch_h)
  126.  
  127. # Platform interfaces
  128.  
  129. gp_h=gp.h
  130. gpcheck_h=gpcheck.h
  131.  
  132. # C library interfaces
  133.  
  134. # Because of variations in the "standard" header files between systems,
  135. # we define local include files named *_.h to substitute for <*.h>.
  136.  
  137. vmsmath_h=vmsmath.h
  138.  
  139. dos__h=dos_.h
  140. malloc__h=malloc_.h $(std_h)
  141. math__h=math_.h $(std_h) $(vmsmath_h)
  142. memory__h=memory_.h $(std_h)
  143. stat__h=stat_.h $(std_h)
  144. stdio__h=stdio_.h $(std_h)
  145. string__h=string_.h $(std_h)
  146. time__h=time_.h $(std_h)
  147.  
  148. # Miscellaneous
  149.  
  150. gdebug_h=gdebug.h
  151. gs_h=gs.h $(stdio__h)
  152. gx_h=gx.h $(gs_h) $(gdebug_h)
  153. gserrors_h=gserrors.h
  154.  
  155. GX=$(AK) $(gx_h)
  156. GXERR=$(GX) $(gserrors_h)
  157.  
  158. ###### Low-level facilities and utilities
  159.  
  160. ### Include files
  161.  
  162. gschar_h=gschar.h
  163. gscie_h=gscie.h
  164. gscolor_h=gscolor.h
  165. gscolor2_h=gscolor2.h
  166. gscoord_h=gscoord.h
  167. gscrypt1_h=gscrypt1.h
  168. gscspace_h=gscspace.h
  169. gsfont_h=gsfont.h
  170. gsmatrix_h=gsmatrix.h
  171. gspaint_h=gspaint.h
  172. gspath_h=gspath.h
  173. gsprops_h=gsprops.h
  174. gsstate_h=gsstate.h $(gscolor_h)
  175. gstype1_h=gstype1.h
  176. gsuid_h=gsuid.h
  177. gsutil_h=gsutil.h
  178.  
  179. gxarith_h=gxarith.h
  180. gxbitmap_h=gxbitmap.h
  181. gxcache_h=gxcache.h
  182. gxchar_h=gxchar.h $(gschar_h)
  183. gxclist_h=gxclist.h
  184. gxcpath_h=gxcpath.h
  185. gxdevice_h=gxdevice.h $(gsmatrix_h) $(gxbitmap_h)
  186. gxdevmem_h=gxdevmem.h
  187. gxfdir_h=gxfdir.h
  188. gxfixed_h=gxfixed.h
  189. gxfont_h=gxfont.h $(gsfont_h)
  190. gximage_h=gximage.h
  191. gxlum_h=gxlum.h
  192. gxmatrix_h=gxmatrix.h $(gsmatrix_h)
  193. gxop1_h=gxop1.h
  194. gxpath_h=gxpath.h
  195. gxtype1_h=gxtype1.h $(gscrypt1_h) $(gstype1_h)
  196.  
  197. gzcolor_h=gzcolor.h $(gscolor_h)
  198. gzdevice_h=gzdevice.h $(gxdevice_h)
  199. gzht_h=gzht.h
  200. gzline_h=gzline.h
  201. gzpath_h=gzpath.h $(gxpath_h)
  202. gzstate_h=gzstate.h $(gsstate_h)
  203.  
  204. ### Executable code
  205.  
  206. gsutil.$(OBJ): gsutil.c $(AK) \
  207.   $(std_h) $(gsprops_h) $(gsutil_h)
  208.  
  209. gxcache.$(OBJ): gxcache.c $(GXERR) $(gpcheck_h) \
  210.   $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzdevice_h) $(gzcolor_h) \
  211.   $(gxcpath_h) $(gxdevmem_h) $(gxfont_h) $(gxfdir_h) $(gxchar_h) \
  212.   $(gxcache_h) $(gzstate_h) $(gzpath_h)
  213.  
  214. gxclist.$(OBJ): gxclist.c $(GXERR) \
  215.   $(gsmatrix_h) $(gxbitmap_h) $(gxclist_h) $(gxdevice_h) $(gxdevmem_h)
  216.  
  217. gxcolor.$(OBJ): gxcolor.c $(GXERR) \
  218.   $(gscspace_h) $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gxlum_h) \
  219.   $(gzcolor_h) $(gzht_h) $(gzstate_h)
  220.  
  221. gxcpath.$(OBJ): gxcpath.c $(GXERR) \
  222.   $(gxdevice_h) $(gxfixed_h) $(gzcolor_h) $(gzpath_h) $(gxcpath_h)
  223.  
  224. gxdither.$(OBJ): gxdither.c $(GX) \
  225.   $(gxfixed_h) $(gxlum_h) $(gxmatrix_h) $(gzstate_h) $(gzdevice_h) $(gzcolor_h) $(gzht_h)
  226.  
  227. gxdraw.$(OBJ): gxdraw.c $(GX) $(gpcheck_h) \
  228.   $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzcolor_h) $(gzdevice_h) $(gzstate_h)
  229.  
  230. gxfill.$(OBJ): gxfill.c $(GXERR) \
  231.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzcolor_h) $(gzpath_h) $(gzstate_h) $(gxcpath_h)
  232.  
  233. gxhint1.$(OBJ): gxhint1.c $(GXERR) \
  234.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxdevmem_h) $(gxchar_h) $(gxfont_h) $(gxtype1_h) $(gxop1_h) \
  235.   $(gzdevice_h) $(gzstate_h)
  236.  
  237. gxht.$(OBJ): gxht.c $(GXERR) \
  238.   $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h)
  239.  
  240. gxpath.$(OBJ): gxpath.c $(GXERR) \
  241.   $(gxfixed_h) $(gzpath_h)
  242.  
  243. gxpath2.$(OBJ): gxpath2.c $(GXERR) \
  244.   $(gxfixed_h) $(gxarith_h) $(gzpath_h)
  245.  
  246. gxpcopy.$(OBJ): gxpcopy.c $(GXERR) \
  247.   $(gxfixed_h) $(gxarith_h) $(gzpath_h)
  248.  
  249. gxstroke.$(OBJ): gxstroke.c $(GXERR) $(gpcheck_h) \
  250.   $(gscoord_h) $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) \
  251.   $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzline_h) $(gzpath_h)
  252.  
  253. ###### High-level facilities
  254.  
  255. gschar.$(OBJ): gschar.c $(GXERR) \
  256.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gxcache_h) $(gstype1_h) $(gspath_h) $(gzpath_h) $(gzcolor_h) $(gzstate_h)
  257.  
  258. gscolor.$(OBJ): gscolor.c $(GXERR) \
  259.   $(gscspace_h) \
  260.   $(gxfixed_h) $(gxmatrix_h) $(gxdevice_h) $(gzstate_h) $(gzcolor_h) $(gzht_h)
  261.  
  262. gscoord.$(OBJ): gscoord.c $(GXERR) \
  263.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gzstate_h) $(gscoord_h)
  264.  
  265. gsdevice.$(OBJ): gsdevice.c $(GXERR) \
  266.   $(gxarith_h) $(gsprops_h) $(gsutil_h) $(gxfixed_h) $(gxmatrix_h) $(gxbitmap_h) $(gxdevmem_h) $(gzstate_h) $(gzdevice_h)
  267.  
  268. gsfile.$(OBJ): gsfile.c $(GXERR) \
  269.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
  270.  
  271. gsfont.$(OBJ): gsfont.c $(GXERR) \
  272.   $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) $(gxfont_h) $(gxfdir_h) \
  273.   $(gzstate_h)
  274.  
  275. gsimage.$(OBJ): gsimage.c $(GXERR) $(gpcheck_h) \
  276.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gspaint_h) \
  277.   $(gzcolor_h) $(gzdevice_h) $(gzpath_h) $(gzstate_h) \
  278.   $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  279.  
  280. gsimage2.$(OBJ): gsimage2.c $(GXERR) $(gpcheck_h) \
  281.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h) $(gspaint_h) \
  282.   $(gzcolor_h) $(gzdevice_h) $(gzpath_h) $(gzstate_h) \
  283.   $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  284.  
  285. gsimpath.$(OBJ): gsimpath.c $(GXERR) \
  286.   $(gsmatrix_h) $(gsstate_h) $(gspath_h)
  287.  
  288. gsline.$(OBJ): gsline.c $(GXERR) \
  289.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzline_h)
  290.  
  291. gsmatrix.$(OBJ): gsmatrix.c $(GXERR) \
  292.   $(gxfixed_h) $(gxarith_h) $(gxmatrix_h)
  293.  
  294. gsmisc.$(OBJ): gsmisc.c $(GX) $(MAKEFILE)
  295.     $(CCC) -DUSE_ASM=0$(USE_ASM) gsmisc.c
  296.  
  297. gspaint.$(OBJ): gspaint.c $(GXERR) $(gpcheck_h) \
  298.   $(gxfixed_h) $(gxmatrix_h) $(gspaint_h) $(gzpath_h) $(gzstate_h) $(gzdevice_h) $(gxcpath_h) $(gxdevmem_h) $(gximage_h)
  299.  
  300. gspath.$(OBJ): gspath.c $(GXERR) \
  301.   $(gxfixed_h) $(gxmatrix_h) $(gxpath_h) $(gzstate_h)
  302.  
  303. gspath2.$(OBJ): gspath2.c $(GXERR) \
  304.   $(gspath_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzpath_h) $(gzdevice_h)
  305.  
  306. gsstate.$(OBJ): gsstate.c $(GXERR) \
  307.   $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gzcolor_h) $(gzdevice_h) $(gzht_h) $(gzline_h) $(gzpath_h)
  308.  
  309. gstdev.$(OBJ): gstdev.c $(GXERR) \
  310.   $(gxbitmap_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h)
  311.  
  312. gstype1.$(OBJ): gstype1.c $(GXERR) \
  313.   $(gxarith_h) $(gxfixed_h) $(gxmatrix_h) $(gxchar_h) $(gxdevmem_h) $(gxop1_h) $(gxtype1_h) \
  314.   $(gzstate_h) $(gzdevice_h) $(gzpath_h)
  315.  
  316. ###### The internal devices
  317.  
  318. gdevmem_h=gdevmem.h
  319.  
  320. gdevmem1.$(OBJ): gdevmem1.c $(AK) \
  321.   $(gx_h) $(gserrors_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  322.  
  323. gdevmem2.$(OBJ): gdevmem2.c $(AK) \
  324.   $(gx_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  325.  
  326. gdevmem3.$(OBJ): gdevmem3.c $(AK) \
  327.   $(gx_h) $(gxdevice_h) $(gxdevmem_h) $(gdevmem_h)
  328.  
  329. ###### Files dependent on the installed devices, features, and platform.
  330. # Generating gconfig.h also generates obj*.tr and lib.tr.
  331.  
  332. gconfig.h obj.tr objw.tr lib.tr: \
  333.   devs.mak $(MAKEFILE) echogs$(XE) $(UNIQ) \
  334.   $(DEVICE_DEVS) $(DEVICE_DEVS2) $(DEVICE_DEVS3) $(DEVICE_DEVS4) $(DEVICE_DEVS5)\
  335.   $(FEATURE_DEVS) $(PLATFORM).dev
  336.     $(SHP)gsconfig $(DEVICE_DEVS) +
  337.     $(SHP)gsconfig + $(DEVICE_DEVS2) +
  338.     $(SHP)gsconfig + $(DEVICE_DEVS3) +
  339.     $(SHP)gsconfig + $(DEVICE_DEVS4) +
  340.     $(SHP)gsconfig + $(DEVICE_DEVS5) +
  341.     $(SHP)gsconfig + $(FEATURE_DEVS) $(PLATFORM).dev
  342.  
  343. gconfig.$(OBJ): gconfig.c $(AK) gconfig.h $(MAKEFILE)
  344.     $(CC0) -DGS_LIB_DEFAULT=$(QQ)$(GS_LIB_DEFAULT)$(QQ) -DGS_INIT=$(QQ)$(GS_INIT)$(QQ) gconfig.c
  345.  
  346. ###### On Unix, we pre-link all of the library except the back end.
  347. ###### On MS-DOS, we have to do the whole thing at once.
  348.  
  349. LIB=gschar.$(OBJ) gscolor.$(OBJ) gscoord.$(OBJ) \
  350.  gsdevice.$(OBJ) gsfile.$(OBJ) gsfont.$(OBJ) gsimage.$(OBJ) gsimage2.$(OBJ) \
  351.  gsimpath.$(OBJ) gsline.$(OBJ) gsmatrix.$(OBJ) gsmisc.$(OBJ) \
  352.  gspaint.$(OBJ) gspath.$(OBJ) gspath2.$(OBJ) \
  353.  gsstate.$(OBJ) gstdev.$(OBJ) gstype1.$(OBJ) gsutil.$(OBJ) \
  354.  gxcache.$(OBJ) gxclist.$(OBJ) gxcolor.$(OBJ) gxcpath.$(OBJ) \
  355.  gxdither.$(OBJ) gxdraw.$(OBJ) gxfill.$(OBJ) gxhint1.$(OBJ) gxht.$(OBJ) \
  356.  gxpath.$(OBJ) gxpath2.$(OBJ) gxpcopy.$(OBJ) gxstroke.$(OBJ) \
  357.  gdevmem1.$(OBJ) gdevmem2.$(OBJ) gdevmem3.$(OBJ) gconfig.$(OBJ)
  358.  
  359. # ------------------------------ Interpreter ------------------------------ #
  360.  
  361. ###### Include files
  362.  
  363. alloc_h=alloc.h
  364. astate_h=astate.h
  365. ccfont_h=ccfont.h
  366. dict_h=dict.h
  367. dparam_h=dparam.h
  368. dstack_h=dstack.h
  369. errors_h=errors.h
  370. estack_h=estack.h
  371. files_h=files.h
  372. font_h=font.h
  373. ghost_h=ghost.h $(gx_h) $(iref_h)
  374. iref_h=iref.h
  375. iutil_h=iutil.h
  376. main_h=main.h
  377. name_h=name.h
  378. opdef_h=opdef.h
  379. ostack_h=ostack.h
  380. overlay_h=overlay.h
  381. packed_h=packed.h
  382. save_h=save.h
  383. scanchar_h=scanchar.h
  384. scf_h=scf.h
  385. state_h=state.h
  386. store_h=store.h
  387. stream_h=stream.h
  388. # Nested include files
  389. bfont_h=bfont.h $(font_h)
  390. oper_h=oper.h $(gsutil_h) $(iutil_h) $(opdef_h) $(ostack_h)
  391. # Include files for optional features
  392. bnum_h=bnum.h
  393. bseq_h=bseq.h
  394. btoken_h=btoken.h
  395.  
  396. comp1_h=comp1.h $(ghost_h) $(oper_h) $(gserrors_h) $(gxfixed_h) $(gxop1_h)
  397.  
  398. gdevprn_h=gdevprn.h $(memory__h) $(string__h) $(gx_h) \
  399.   $(gserrors_h) $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h) $(gxclist_h)
  400.  
  401. ###### Utilities
  402.  
  403. GH=$(AK) $(ghost_h)
  404.  
  405. ialloc.$(OBJ): ialloc.c $(AK) $(gs_h) $(gdebug_h) $(alloc_h) $(astate_h)
  406.  
  407. iccfont.$(OBJ): iccfont.c $(GH) gconfigf.h \
  408.  $(ghost_h) $(alloc_h) $(ccfont_h) $(dict_h) $(dstack_h) $(errors_h) $(iutil_h) $(name_h) $(oper_h) $(save_h) $(store_h)
  409.  
  410. idebug.$(OBJ): idebug.c $(GH) \
  411.  $(iutil_h) $(dict_h) $(name_h) $(ostack_h) $(opdef_h) $(packed_h) $(store_h)
  412.  
  413. idict.$(OBJ): idict.c $(GH) \
  414.   $(alloc_h) $(errors_h) $(name_h) $(packed_h) $(save_h) $(store_h) $(iutil_h) $(dict_h) $(dstack_h)
  415.  
  416. idparam.$(OBJ): idparam.c $(GH) \
  417.   $(gsmatrix_h) $(dict_h) $(dparam_h) $(errors_h) $(iutil_h)
  418.  
  419. iinit.$(OBJ): iinit.c $(GH) gconfig.h \
  420.   $(alloc_h) $(dict_h) $(dstack_h) $(errors_h) $(name_h) $(oper_h) $(store_h)
  421.  
  422. iname.$(OBJ): iname.c $(GH) $(alloc_h) $(errors_h) $(name_h) $(store_h)
  423.  
  424. isave.$(OBJ): isave.c $(GH) $(alloc_h) $(astate_h) $(name_h) $(packed_h) $(save_h) $(store_h)
  425.  
  426. iscan.$(OBJ): iscan.c $(GH) $(alloc_h) $(dict_h) $(dstack_h) $(errors_h) $(iutil_h) \
  427.  $(name_h) $(ostack_h) $(packed_h) $(store_h) $(stream_h) $(scanchar_h)
  428.  
  429. iutil.$(OBJ): iutil.c $(GH) \
  430.  $(errors_h) $(alloc_h) $(dict_h) $(iutil_h) $(name_h) $(ostack_h) $(opdef_h) $(packed_h) $(store_h) \
  431.  $(gsmatrix_h) $(gxdevice_h) $(gzcolor_h)
  432.  
  433. sfilter.$(OBJ): sfilter.c $(AK) $(stdio__h) $(scanchar_h) $(stream_h) \
  434.  $(gscrypt1_h)
  435.  
  436. stream.$(OBJ): stream.c $(AK) $(stdio__h) $(stream_h) $(scanchar_h)
  437.  
  438. ###### Operators
  439.  
  440. OP=$(GH) $(errors_h) $(oper_h)
  441.  
  442. ### Non-graphics operators
  443.  
  444. zarith.$(OBJ): zarith.c $(OP) $(store_h)
  445.  
  446. zarray.$(OBJ): zarray.c $(OP) $(alloc_h) $(packed_h) $(store_h)
  447.  
  448. zcontrol.$(OBJ): zcontrol.c $(OP) $(estack_h) $(iutil_h) $(store_h)
  449.  
  450. zdict.$(OBJ): zdict.c $(OP) $(dict_h) $(dstack_h) $(name_h) $(store_h)
  451.  
  452. zfile.$(OBJ): zfile.c $(OP) $(gp_h) \
  453.   $(alloc_h) $(estack_h) $(files_h) $(iutil_h) $(save_h) $(stream_h) $(store_h)
  454.  
  455. zfileio.$(OBJ): zfileio.c $(OP) $(gp_h) \
  456.   $(estack_h) $(files_h) $(store_h) $(stream_h) \
  457.   $(gsmatrix_h) $(gxdevice_h) $(gxdevmem_h)
  458.  
  459. zfilter.$(OBJ): zfilter.c $(OP) $(alloc_h) $(stream_h)
  460.  
  461. zgeneric.$(OBJ): zgeneric.c $(OP) $(dict_h) $(estack_h) $(name_h) $(packed_h) $(store_h)
  462.  
  463. zmath.$(OBJ): zmath.c $(OP) $(store_h)
  464.  
  465. zmisc.$(OBJ): zmisc.c $(OP) $(gp_h) \
  466.   $(alloc_h) $(dict_h) $(dstack_h) $(name_h) $(packed_h) $(store_h) \
  467.   $(gscrypt1_h)
  468.  
  469. zpacked.$(OBJ): zpacked.c $(OP) \
  470.   $(alloc_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(store_h)
  471.  
  472. zprops.$(OBJ): zprops.c $(OP) \
  473.   $(alloc_h) $(dict_h) $(name_h) $(state_h) $(store_h) \
  474.   $(gsprops_h) $(gsmatrix_h) $(gxdevice_h) $(gsstate_h)
  475.  
  476. zrelbit.$(OBJ): zrelbit.c $(OP) $(store_h) $(dict_h)
  477.  
  478. zstack.$(OBJ): zstack.c $(OP) $(store_h)
  479.  
  480. zstring.$(OBJ): zstring.c $(OP) $(alloc_h) $(iutil_h) $(name_h) $(store_h) $(stream_h)
  481.  
  482. ztype.$(OBJ): ztype.c $(OP) $(dict_h) $(iutil_h) $(name_h) $(stream_h) $(store_h)
  483.  
  484. zvmem.$(OBJ): zvmem.c $(OP) $(alloc_h) $(dict_h) $(dstack_h) $(estack_h) $(save_h) $(state_h) $(store_h) \
  485.   $(gsmatrix_h) $(gsstate_h)
  486.  
  487. ###### Graphics operators
  488.  
  489. zchar.$(OBJ): zchar.c $(OP) $(gxfixed_h) $(gxmatrix_h) \
  490.  $(gschar_h) $(gxtype1_h) $(gxdevice_h) $(gxfont_h) $(gzpath_h) $(gzstate_h) \
  491.  $(alloc_h) $(dict_h) $(dstack_h) $(font_h) $(estack_h) $(state_h) $(store_h)
  492.  
  493. zcolor.$(OBJ): zcolor.c $(OP) $(alloc_h) $(estack_h) $(gxfixed_h) $(gxmatrix_h) $(gzstate_h) $(gxdevice_h) $(gzcolor_h) $(iutil_h) $(state_h) $(store_h)
  494.  
  495. zdevice.$(OBJ): zdevice.c $(OP) $(alloc_h) $(state_h) $(gsmatrix_h) $(gsstate_h) $(gxdevice_h) $(store_h)
  496.  
  497. zfont.$(OBJ): zfont.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) $(gxfdir_h) \
  498.  $(alloc_h) $(bfont_h) $(dict_h) $(name_h) $(packed_h) $(save_h) $(state_h) $(store_h)
  499.  
  500. zfont1.$(OBJ): zfont1.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
  501.  $(bfont_h) $(dict_h) $(dparam_h) $(name_h) $(store_h)
  502.  
  503. zfont2.$(OBJ): zfont2.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gschar_h) $(gxfixed_h) $(gxfont_h) \
  504.  $(alloc_h) $(bfont_h) $(dict_h) $(dparam_h) $(name_h) $(packed_h) $(store_h)
  505.  
  506. zgstate.$(OBJ): zgstate.c $(OP) $(alloc_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
  507.  
  508. zht.$(OBJ): zht.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gsstate_h) $(state_h) $(store_h)
  509.  
  510. zmatrix.$(OBJ): zmatrix.c $(OP) $(gsmatrix_h) $(state_h) $(gscoord_h) $(store_h)
  511.  
  512. zpaint.$(OBJ): zpaint.c $(OP) $(alloc_h) $(estack_h) $(gsmatrix_h) $(gspaint_h) $(state_h) $(store_h) $(stream_h)
  513.  
  514. zpath.$(OBJ): zpath.c $(OP) $(gsmatrix_h) $(gspath_h) $(state_h) $(store_h)
  515.  
  516. zpath2.$(OBJ): zpath2.c $(OP) $(alloc_h) $(estack_h) $(gspath_h) $(state_h) $(store_h)
  517.  
  518. ###### Linking
  519.  
  520. INT=ialloc.$(OBJ) idebug.$(OBJ) idict.$(OBJ) idparam.$(OBJ) \
  521.  iinit.$(OBJ) iname.$(OBJ) \
  522.  interp.$(OBJ) isave.$(OBJ) iscan.$(OBJ) iutil.$(OBJ) \
  523.  sfilter.$(OBJ) stream.$(OBJ) \
  524.  zarith.$(OBJ) zarray.$(OBJ) zcontrol.$(OBJ) zdict.$(OBJ) \
  525.  zfile.$(OBJ) zfileio.$(OBJ) zfilter.$(OBJ) zgeneric.$(OBJ) \
  526.  zmath.$(OBJ) zmisc.$(OBJ) zpacked.$(OBJ) zprops.$(OBJ) zrelbit.$(OBJ) \
  527.  zstack.$(OBJ) zstring.$(OBJ) ztype.$(OBJ) zvmem.$(OBJ) \
  528.  zchar.$(OBJ) zcolor.$(OBJ) zfont.$(OBJ) zfont1.$(OBJ) zfont2.$(OBJ) \
  529.  zdevice.$(OBJ) zgstate.$(OBJ) zht.$(OBJ) zmatrix.$(OBJ) \
  530.  zpaint.$(OBJ) zpath.$(OBJ) zpath2.$(OBJ)
  531.  
  532. # -------------------------- Optional features ---------------------------- #
  533.  
  534. ### Additions common to Display PostScript and Level 2
  535.  
  536. dpsand2_=gsdps1.$(OBJ) ibnum.$(OBJ) ibscan.$(OBJ) \
  537.  zbseq.$(OBJ) zdps1.$(OBJ) zupath.$(OBJ)
  538. dpsand2.dev: $(dpsand2_)
  539.     $(SHP)gssetmod dpsand2 $(dpsand2_)
  540.     $(SHP)gsaddmod dpsand2 -oper zbseq zdps1 zupath
  541.     $(SHP)gsaddmod dpsand2 -ps gs_dps1
  542.  
  543. gsdps1.$(OBJ): gsdps1.c $(GXERR) $(gsmatrix_h) $(gspath_h)
  544.  
  545. ibnum.$(OBJ): ibnum.c $(GH) $(errors_h) $(stream_h) $(bnum_h) $(btoken_h)
  546.  
  547. ibscan.$(OBJ): ibscan.c $(GH) $(errors_h) \
  548.  $(alloc_h) $(dict_h) $(dstack_h) $(iutil_h) $(name_h) $(ostack_h) $(save_h) $(store_h) $(stream_h) $(bseq_h) $(btoken_h) $(bnum_h)
  549.  
  550. zbseq.$(OBJ): zbseq.c $(OP) $(save_h) $(store_h) $(stream_h) $(files_h) $(name_h) $(bnum_h) $(btoken_h) $(bseq_h)
  551.  
  552. zdps1.$(OBJ): zdps1.c $(OP) $(gsmatrix_h) $(gspath_h) $(gsstate_h) \
  553.  $(alloc_h) $(state_h) $(store_h) $(stream_h) $(bnum_h)
  554.  
  555. zupath.$(OBJ): zupath.c $(OP) \
  556.  $(dict_h) $(dstack_h) $(iutil_h) $(state_h) $(store_h) $(stream_h) $(bnum_h) \
  557.  $(gscoord_h) $(gsmatrix_h) $(gspaint_h) $(gspath_h) $(gsstate_h) \
  558.  $(gxfixed_h) $(gxdevice_h) $(gxpath_h)
  559.  
  560. ### Display PostScript
  561. # We should include zcontext, but it isn't in good enough shape yet:
  562. #    $(SHP)gsaddmod dps -oper zcontext
  563.  
  564. dps_=
  565. dps.dev: dpsand2.dev $(dps_)
  566.     $(SHP)gssetmod dps $(dps_)
  567.     $(SHP)gsaddmod dps -include dpsand2
  568.  
  569. zcontext.$(OBJ): zcontext.c $(OP) \
  570.  $(alloc_h) $(dict_h) $(dstack_h) $(estack_h) $(state_h) $(store_h)
  571.  
  572. ### Level 2 additions
  573. # We should include gscie and zcie, but they aren't anywhere near ready.
  574.  
  575. level2_=gscolor2.$(OBJ) zcolor2.$(OBJ) zht2.$(OBJ) zimage2.$(OBJ)
  576. level2.dev: dpsand2.dev $(level2_)
  577.     $(SHP)gssetmod level2 $(level2_)
  578.     $(SHP)gsaddmod level2 -include dpsand2
  579.     $(SHP)gsaddmod level2 -oper zcolor2 zimage2
  580.     $(SHP)gsaddmod level2 -ps gs_lev2
  581.  
  582. gscie.$(OBJ): gscie.c $(std_h) \
  583.   $(gscspace_h) $(gscie_h)
  584.  
  585. gscolor2.$(OBJ): gscolor2.c $(GXERR) \
  586.   $(gscolor2_h) $(gscspace_h) $(gxdevice_h) $(gxfixed_h) $(gxmatrix_h) \
  587.   $(gzcolor_h) $(gzstate_h)
  588.  
  589. zcie.$(OBJ): zcie.c $(OP) $(gscspace_h) $(gscie_h) \
  590.   $(dict_h) $(dparam_h) $(state_h)
  591.  
  592. zcolor2.$(OBJ): zcolor2.c $(OP) \
  593.   $(gscolor_h) $(gscolor2_h) $(gscspace_h) $(gsmatrix_h) \
  594.   $(dict_h) $(dparam_h) $(name_h) $(state_h) $(store_h)
  595.  
  596. zht2.$(OBJ): zht2.c $(OP) \
  597.   $(dict_h) $(dparam_h) $(name_h) $(state_h) $(store_h)
  598.  
  599. zimage2.$(OBJ): zimage2.c $(OP) \
  600.   $(gscolor_h) $(gscolor2_h) $(gscspace_h) $(gsmatrix_h) \
  601.   $(dict_h) $(dparam_h) $(state_h)
  602.  
  603. ### Composite font support
  604.  
  605. gschar0.$(OBJ): gschar0.c $(GXERR) \
  606.   $(gxfixed_h) $(gxmatrix_h) $(gzdevice_h) $(gxdevmem_h) $(gxfont_h) $(gxchar_h) $(gzstate_h)
  607.  
  608. zfont0.$(OBJ): zfont0.c $(OP) $(gsmatrix_h) $(gxdevice_h) $(gxfont_h) \
  609.  $(alloc_h) $(bfont_h) $(dict_h) $(name_h) $(state_h) $(store_h)
  610.  
  611. compfont_=zfont0.$(OBJ) gschar0.$(OBJ)
  612. compfont.dev: $(compfont_)
  613.     $(SHP)gssetmod compfont $(compfont_)
  614.     $(SHP)gsaddmod compfont -oper zfont0
  615.  
  616. ### Filters other than the ones in sfilter.c
  617.  
  618. scftab.$(OBJ): scftab.c $(AK) $(std_h) $(scf_h)
  619.  
  620. scfdtab.$(OBJ): scfdtab.c $(AK) $(std_h) $(scf_h)
  621.  
  622. scfd.$(OBJ): scfd.c $(AK) $(stdio__h) $(gdebug_h) $(scf_h) $(stream_h)
  623.  
  624. scfe.$(OBJ): scfe.c $(AK) $(stdio__h) $(gdebug_h) $(scf_h) $(stream_h)
  625.  
  626. sfilter2.$(OBJ): sfilter2.c $(AK) $(stdio__h) $(scanchar_h) $(stream_h)
  627.  
  628. slzwd.$(OBJ): slzwd.c $(AK) $(stdio__h) $(gdebug_h) $(stream_h)
  629.  
  630. slzwe.$(OBJ): slzwe.c $(AK) $(stdio__h) $(gdebug_h) $(stream_h)
  631.  
  632. zfilter2.$(OBJ): zfilter2.c $(OP) $(alloc_h) $(dict_h) $(dparam_h) $(stream_h)
  633.  
  634. # Because of size limits on the DOS command line,
  635. # we have to break this up into two parts.
  636. filter_1=zfilter2.$(OBJ) sfilter2.$(OBJ)
  637. filter_2=scfd.$(OBJ) scfe.$(OBJ) scfdtab.$(OBJ) scftab.$(OBJ) slzwd.$(OBJ) slzwe.$(OBJ)
  638. filter.dev: $(filter_1) $(filter_2)
  639.     $(SHP)gssetmod filter $(filter_1)
  640.     $(SHP)gsaddmod filter -obj $(filter_2)
  641.     $(SHP)gsaddmod filter -oper zfilter2
  642.  
  643. ### Precompiled fonts.  See fonts.doc for more information.
  644.  
  645. CCFONT=$(OP) $(ccfont_h)
  646.  
  647. ccfonts_=ugly.$(OBJ)
  648. ccfonts.dev: $(ccfonts_) iccfont.$(OBJ)
  649.     $(SHP)gssetmod ccfonts $(ccfonts_) iccfont.$(OBJ)
  650.     $(SHP)gsaddmod ccfonts -oper ccfonts
  651.  
  652. gconfigf.h: $(MAKEFILE)
  653.     $(SHP)gssetmod ccfonts_
  654.     $(SHP)gsaddmod ccfonts_ -font Ugly
  655.     rm -f gconfigf.h
  656.     mv ccfonts_.d_f gconfigf.h
  657.  
  658. ugly.$(OBJ): ugly.c $(CCFONT)
  659.     $(CCCF) ugly.c
  660.  
  661. ncrr.$(OBJ): ncrr.c $(CCFONT)
  662.     $(CCCF) ncrr.c
  663.  
  664. psyr.$(OBJ): psyr.c $(CCFONT)
  665.     $(CCCF) psyr.c
  666.  
  667. ptmr.$(OBJ): ptmr.c $(CCFONT)
  668.     $(CCCF) ptmr.c
  669.  
  670. pzdr.$(OBJ): pzdr.c $(CCFONT)
  671.     $(CCCF) pzdr.c
  672.  
  673. # ----------------------------- Main program ------------------------------ #
  674.  
  675. # Interpreter main program
  676.  
  677. gs.$(OBJ): gs.c $(GH) $(gxdevice_h) $(gxdevmem_h) \
  678.   $(alloc_h) $(errors_h) $(estack_h) $(main_h) $(ostack_h) $(store_h) $(stream_h)
  679.  
  680. gsmain.$(OBJ): gsmain.c $(GH) \
  681.   $(gp_h) $(gsmatrix_h) $(gxdevice_h) $(gserrors_h) \
  682.   $(estack_h) $(main_h) $(ostack_h) $(store_h)
  683.  
  684. interp.$(OBJ): interp.c $(GH) \
  685.   $(errors_h) $(estack_h) $(name_h) $(dict_h) $(dstack_h) $(oper_h) $(ostack_h) $(packed_h) $(save_h) $(store_h) $(stream_h)
  686.     $(CCINT) interp.c
  687.