Makefile.cc 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. ###########################################################################
  2. # #
  3. # makefile for REDUCE 3.7 using CSL #
  4. # #
  5. ###########################################################################
  6. # The following lines indicates the place on your disc where the "cslbase"
  7. # directory exists. This is the place where the C sources files for CSL
  8. # live. There are two versions here, the first should use Unix-like
  9. # file name conventions (in particular "/" as a directory separator) while
  10. # the second will (in some cases) be a host-specific translation.
  11. UCSLBASE = ../cslbase
  12. CSLBASE = ../cslbase
  13. ###########################################################################
  14. # Generic Unix with "cc". Note that if you use this you should review
  15. # the file "machine.h" to ensure that CSL knows what name to report for
  16. # your system. Also if the system you are running on needs more libraries
  17. # scanned during the link phase. The Makefile create here will VERY
  18. # probably need to be adjusted by hand.
  19. CC = cc
  20. OPTFLAGS = -O
  21. MPIFLAGS =
  22. CFLAGS = -c $(OPTFLAGS) -I$(CSLBASE) $(MPIFLAGS)
  23. LIBS = -lm -lcurses
  24. ###########################################################################
  25. ###########################################################################
  26. SHELL = /bin/sh
  27. LINK = $(CC)
  28. LFLAGS =
  29. OUT = -o
  30. OUTOBJ = -o
  31. ASM = $(CC)
  32. ASMFLAGS = $(CFLAGS)
  33. ASMSRC =
  34. ASMOBJ =
  35. ASMOBJDEP = notused.obj
  36. SYS = sysunix
  37. STORE = -k8000
  38. XSTORE = -k8000
  39. RM = rm
  40. MKDIR = mkdir
  41. COPY = cp
  42. STRIP = strip
  43. WX =
  44. ###########################################################################
  45. ###########################################################################
  46. ###########################################################################
  47. # #
  48. # This is the main bulk of the "makefile" for building Reduce 3.7 and CSL #
  49. # on MSDOS, Windows and Unix. This part of the file expects a number of #
  50. # symbols to have been defined: #
  51. # #
  52. # CSLBASE = file-path for CSLBASE directory #
  53. # CC = The C compiler to use #
  54. # CFLAGS = Flags for C compiler when compiling CSL #
  55. # LINK = Linker to use #
  56. # LFLAGS = Flags for linker #
  57. # LIBS = Libraries to quote to linker #
  58. # OUT = "-o" or "-out:" See link commands #
  59. # OUTOBJ = "-o" often : where to put object code from C compilation #
  60. # ASM = The assembler to use #
  61. # ASMFLAGS = Flags for the assembler #
  62. # ASMSRC = Assembly code source file to use #
  63. # ASMOBJ = Object file for above (or NULL if no assembly used) #
  64. # ASMOBJDEP = Ditto, but may not be NULL #
  65. # SYS = name of system-specific file (sysdos or sysnt etc) #
  66. # STORE = Memory option to pass to CSL (-k2500 is minimum) #
  67. # XSTORE = Memory for the rebuild job that generates C code #
  68. # RM = del for DOS, = rm for Unix #
  69. # MKDIR = mkdir #
  70. # COPY = copy for DOS, = cp for Unix #
  71. # STRIP = echo for DOS, = strip for Unix #
  72. # SYMBOLIC = .SYMBOLIC is using Watcom's "make" utility #
  73. # WX = wx for Windows 3.1, null in all other cases #
  74. # #
  75. # The master version of this file is called "makebase" and is used to #
  76. # create both DOS and Unix makefiles. Use the Codemist "makemake" #
  77. # program to perform the conversion - eg #
  78. # makemake -f makebase -o makemake.386 watcom dos #
  79. # makemake -f makebase -o Makefile.sgi sgi #
  80. # Just "makemake -f makebase" gives list of systems supported #
  81. ###########################################################################
  82. ###########################################################################
  83. ###########################################################################
  84. ###########################################################################
  85. #
  86. # The main final target is r37.img, the image file for full REDUCE.
  87. # If you want to rebuild stage-by-stage (eg while testing), try the
  88. # sequence
  89. # make slowr37 compiles and links C coded kernel
  90. # make slowr37.img makes bootstrap REDUCE
  91. # (roughly twice as slow as final one)
  92. # only used for system recompilation.
  93. # make profile runs tests, collects profile information.
  94. # This takes a long time!
  95. # make prof-inst installs profile data
  96. # make c-code Create files u*.c and u*.lsp
  97. # out of hot-spot parts of REDUCE.
  98. ###########################################################################
  99. # Note that only the steps from here downwards are usually needed
  100. #
  101. # make r37 final compilation of most of REDUCE
  102. # make r37.img build final image file
  103. # make testall runs test files, output to log directory
  104. # make checkall creates log/checkall.log
  105. #
  106. # (for Windows 95/98/NT only)
  107. # make r37c.exe command-line version
  108. #
  109. ###########################################################################
  110. ###########################################################################
  111. #
  112. # C is another name for CSLBASE, the directory that CSL source files live
  113. # in. I introduce it here mainly because $(C) is so much more compact
  114. # then $(CSLBASE).
  115. #
  116. C = $(CSLBASE)
  117. #
  118. # DOBJS is a list of all the object files that are common to all variants
  119. # on the system built here
  120. #
  121. DOBJS = arith01.o arith02.o arith03.o arith04.o \
  122. arith05.o arith06.o arith07.o arith08.o \
  123. arith09.o arith10.o arith11.o arith12.o \
  124. char.o csl.o cslmpi.o eval1.o eval2.o \
  125. eval3.o eval4.o fns1.o fns2.o fns3.o \
  126. print.o read.o restart.o $(ASMOBJ) \
  127. $(SYS).o
  128. CDOBJS = arith01.o,arith02.o,arith03.o,arith04.o,\
  129. arith05.o,arith06.o,arith07.o,arith08.o,\
  130. arith09.o,arith10.o,arith11.o,arith12.o,\
  131. char.o,csl.o,cslmpi.o,eval1.o,eval2.o,\
  132. eval3.o,eval4.o,fns1.o,fns2.o,fns3.o,\
  133. print.o,read.o,restart.o,$(ASMOBJ),\
  134. $(SYS).o
  135. #
  136. # OBJS adds in the files used when I am not building a demonstration-mode CSL
  137. #
  138. OBJS = $(DOBJS) fasl.o gc.o preserve.o
  139. COBJS = $(CDOBJS),fasl.o,gc.o,preserve.o
  140. #
  141. # UOBJS come from that code that is compiled from Lisp into C
  142. #
  143. UOBJS = u01.o u02.o u03.o u04.o u05.o \
  144. u06.o u07.o u08.o u09.o u10.o \
  145. u11.o u12.o
  146. CUOBJS = u01.o,u02.o,u03.o,u04.o,u05.o,\
  147. u06.o,u07.o,u08.o,u09.o,u10.o,\
  148. u11.o,u12.o
  149. ###########################################################################
  150. ###########################################################################
  151. # This default target may be a dangerous one to use
  152. # since it supposes that all the C code is up to date already.
  153. default: $(SYMBOLIC) \
  154. r37 r37.img
  155. ###########################################################################
  156. ###########################################################################
  157. r37.img: r37
  158. ../util/full37
  159. r37: bytes.o $(OBJS) \
  160. $(UOBJS)
  161. $(LINK) $(LFLAGS) bytes.o $(OBJS) $(UOBJS) $(LIBS) $(OUT) r37 $(TAIL)
  162. $(STRIP) r37
  163. -$(MKDIR) log
  164. #
  165. # A few targets here may help me tidy up my filespace from time to time
  166. #
  167. clean: $(SYMBOLIC)
  168. -$(RM) slowr37
  169. -$(RM) slowr37.img
  170. -$(RM) r37
  171. -$(RM) r37.img
  172. -$(RM) csl
  173. -$(RM) csl.img
  174. -$(RM) *.o
  175. -$(MKDIR) log
  176. -$(RM) log/*.log
  177. ###########################################################################
  178. csl: bytes.o $(OBJS) \
  179. stubs.o
  180. $(LINK) $(LFLAGS) bytes.o $(OBJS) stubs.o $(LIBS) $(OUT) csl $(TAIL)
  181. $(STRIP) csl
  182. slowr37: bytes1.o $(OBJS) \
  183. stubs.o
  184. $(LINK) $(LFLAGS) bytes1.o $(OBJS) stubs.o $(LIBS) $(OUT) slowr37 $(TAIL)
  185. $(STRIP) slowr37
  186. -$(MKDIR) log
  187. slowr37.img: slowr37
  188. ../util/boot37
  189. profile: slowr37.img $(SYMBOLIC)
  190. ../util/profile
  191. prof-inst: profile.dat $(SYMBOLIC)
  192. $(COPY) profile.dat ../csl-c
  193. -$(RM) profile.dat
  194. c-code: slowr37.img $(SYMBOLIC)
  195. ../util/c-code37
  196. testslow: slowr37.img $(SYMBOLIC)
  197. ../util/testslow
  198. testall: r37.img $(SYMBOLIC)
  199. ../util/testrest
  200. checkall: r37.img $(SYMBOLIC)
  201. ../util/checkall
  202. patchup: r37.img $(SYMBOLIC)
  203. ../util/patchup
  204. cleanlog: $(SYMBOLIC)
  205. -$(RM) ../../../log/*.rlg
  206. csl.img: csl $(C)/compat.lsp $(C)/compiler.lsp \
  207. $(C)/ccomp.lsp $(C)/extras.lsp
  208. -$(RM) csl.img
  209. $(WX) ./csl $(STORE) -v -z $(C)/build0.lsp \
  210. -D@cslbase="$(C)" -- log/cslimg.log
  211. #
  212. # "make lispfile"
  213. # recreates compiler.lsp, extras.lsp and ccomp.lsp from
  214. # the corresponding master sources which are held in RLISP
  215. # form. Temporarily builds an RLISP parser on the way.
  216. # NB: only for system maintainance use.
  217. lispfile: csl csl.img $(C)/lispfile.lsp $(SYMBOLIC)
  218. $(WX) ./csl $(STORE) -v -z $(C)/lispfile.lsp \
  219. -D@cslbase="$(C)" -- log/lispfile.log
  220. signature: $(C)/version.hhh register.key $(SYMBOLIC)
  221. filesign -u $(C)/version.hhh $(C)/version.h Developer or tester
  222. ############################################################################
  223. # Now rules for re-compiling the main collection of CSL source files. I
  224. # write each case out individually since that makes the makefile less
  225. # delicate than one that relies on setting up general rules - and I want this
  226. # file to work on several different systems.
  227. #
  228. $(ASMOBJDEP): $(C)/$(ASMSRC)
  229. $(ASM) $(ASMFLAGS) $(C)/$(ASMSRC)
  230. arith01.o: $(C)/arith01.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  231. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  232. $(CC) $(CFLAGS) \
  233. $(C)/arith01.c
  234. arith02.o: $(C)/arith02.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  235. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  236. $(CC) $(CFLAGS) \
  237. $(C)/arith02.c
  238. arith03.o: $(C)/arith03.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  239. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  240. $(CC) $(CFLAGS) \
  241. $(C)/arith03.c
  242. arith04.o: $(C)/arith04.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  243. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  244. $(CC) $(CFLAGS) \
  245. $(C)/arith04.c
  246. arith05.o: $(C)/arith05.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  247. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h $(C)/stream.h
  248. $(CC) $(CFLAGS) \
  249. $(C)/arith05.c
  250. arith06.o: $(C)/arith06.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  251. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  252. $(CC) $(CFLAGS) \
  253. $(C)/arith06.c
  254. arith07.o: $(C)/arith07.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  255. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  256. $(CC) $(CFLAGS) \
  257. $(C)/arith07.c
  258. arith08.o: $(C)/arith08.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  259. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  260. $(CC) $(CFLAGS) \
  261. $(C)/arith08.c
  262. arith09.o: $(C)/arith09.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  263. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  264. $(CC) $(CFLAGS) \
  265. $(C)/arith09.c
  266. arith10.o: $(C)/arith10.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  267. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  268. $(CC) $(CFLAGS) \
  269. $(C)/arith10.c
  270. arith11.o: $(C)/arith11.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  271. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h
  272. $(CC) $(CFLAGS) \
  273. $(C)/arith11.c
  274. arith12.o: $(C)/arith12.c $(C)/arith.h $(C)/tags.h $(C)/machine.h \
  275. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  276. $(CC) $(CFLAGS) \
  277. $(C)/arith12.c
  278. bytes.o: $(C)/bytes1.c $(C)/bytes.c $(C)/tags.h $(C)/machine.h \
  279. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h \
  280. $(C)/bytes.h $(C)/arith.h
  281. $(CC) $(CFLAGS) \
  282. $(C)/bytes.c
  283. bytes1.o: $(C)/bytes1.c $(C)/bytes.c $(C)/tags.h $(C)/machine.h \
  284. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h \
  285. $(C)/bytes.h $(C)/arith.h
  286. $(CC) $(CFLAGS) \
  287. $(C)/bytes1.c
  288. #
  289. # The target "bytes1a.o" recompiles bytes1.c, but with the flag set that
  290. # arranges that the number of GET operations performed and the associated
  291. # indicators will be recorded, so that (bytecounts) will display statistics
  292. # about it. This slows things down considerably, but can help when you are in
  293. # the process of deciding which indicators are specified as "fast" ones.
  294. #
  295. bytes1a.o: $(C)/bytes1.c $(C)/bytes.c $(C)/tags.h $(C)/machine.h \
  296. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h \
  297. $(C)/bytes.h $(C)/arith.h
  298. $(CC) $(CFLAGS) -DRECORD_GET=1 \
  299. $(C)/bytes1.c
  300. char.o: $(C)/char.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  301. $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  302. $(CC) $(CFLAGS) \
  303. $(C)/char.c
  304. csl.o: $(C)/csl.c $(C)/tags.h $(C)/machine.h $(C)/externs.h $(C)/version.h \
  305. $(C)/sys.h $(C)/cslerror.h $(C)/entries.h $(C)/stream.h $(C)/sockhdr.h
  306. $(CC) $(CFLAGS) \
  307. $(C)/csl.c
  308. eval1.o: $(C)/eval1.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  309. $(C)/sys.h $(C)/cslerror.h $(C)/arith.h $(C)/entries.h
  310. $(CC) $(CFLAGS) \
  311. $(C)/eval1.c
  312. eval2.o: $(C)/eval2.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  313. $(C)/sys.h $(C)/cslerror.h $(C)/arith.h $(C)/entries.h
  314. $(CC) $(CFLAGS) \
  315. $(C)/eval2.c
  316. eval3.o: $(C)/eval3.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  317. $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  318. $(CC) $(CFLAGS) \
  319. $(C)/eval3.c
  320. eval4.o: $(C)/eval4.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  321. $(C)/sys.h $(C)/cslerror.h $(C)/arith.h
  322. $(CC) $(CFLAGS) \
  323. $(C)/eval4.c
  324. fasl.o: $(C)/fasl.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  325. $(C)/sys.h $(C)/cslerror.h $(C)/arith.h
  326. $(CC) $(CFLAGS) \
  327. $(C)/fasl.c
  328. fns1.o: $(C)/fns1.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  329. $(C)/sys.h $(C)/cslerror.h $(C)/entries.h
  330. $(CC) $(CFLAGS) \
  331. $(C)/fns1.c
  332. fns2.o: $(C)/fns2.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  333. $(C)/sys.h $(C)/cslerror.h $(C)/read.h $(C)/entries.h \
  334. $(C)/sockhdr.h
  335. $(CC) $(CFLAGS) \
  336. $(C)/fns2.c
  337. fns3.o: $(C)/fns3.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  338. $(C)/sys.h $(C)/cslerror.h $(C)/read.h $(C)/entries.h
  339. $(CC) $(CFLAGS) \
  340. $(C)/fns3.c
  341. gc.o: $(C)/gc.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  342. $(C)/sys.h $(C)/cslerror.h
  343. $(CC) $(CFLAGS) \
  344. $(C)/gc.c
  345. #
  346. # For each major target I have one file that is system specific - eg
  347. # sysdos.c, sysunix.c, ...
  348. #
  349. $(SYS).o: $(C)/$(SYS).c $(C)/machine.h $(C)/externs.h \
  350. $(C)/sys.h $(C)/fileops.c $(C)/scandir.c $(C)/version.h \
  351. $(C)/filename.c
  352. $(CC) $(CFLAGS) \
  353. $(C)/$(SYS).c
  354. preserve.o: $(C)/preserve.c $(C)/tags.h $(C)/machine.h $(C)/stream.h \
  355. $(C)/externs.h $(C)/sys.h $(C)/cslerror.h $(C)/read.h $(C)/version.h
  356. $(CC) $(CFLAGS) \
  357. $(C)/preserve.c
  358. print.o: $(C)/print.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  359. $(C)/sys.h $(C)/cslerror.h $(C)/read.h \
  360. $(C)/arith.h $(C)/entries.h $(C)/stream.h $(C)/sockhdr.h
  361. $(CC) $(CFLAGS) \
  362. $(C)/print.c
  363. read.o: $(C)/read.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  364. $(C)/sys.h $(C)/cslerror.h $(C)/read.h \
  365. $(C)/arith.h $(C)/entries.h $(C)/stream.h $(C)/sockhdr.h
  366. $(CC) $(CFLAGS) \
  367. $(C)/read.c
  368. restart.o: $(C)/restart.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  369. $(C)/sys.h $(C)/cslerror.h $(C)/read.h $(C)/version.h \
  370. $(C)/arith.h $(C)/entries.h $(C)/stream.h
  371. $(CC) $(CFLAGS) \
  372. $(C)/restart.c
  373. stubs.o: $(C)/stubs.c $(C)/machine.h $(C)/externs.h $(C)/sys.h \
  374. $(C)/tags.h $(C)/cslerror.h
  375. $(CC) $(CFLAGS) \
  376. $(C)/stubs.c
  377. cslmpi.o: $(C)/cslmpi.c $(C)/machine.h $(C)/externs.h $(C)/sys.h \
  378. $(C)/mpipack.c $(C)/tags.h $(C)/cslerror.h
  379. $(CC) $(CFLAGS) \
  380. $(C)/cslmpi.c
  381. ###########################################################################
  382. u01.o: ../csl-c/u01.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  383. $(C)/cslerror.h $(C)/entries.h
  384. $(CC) $(CFLAGS) \
  385. ../csl-c/u01.c
  386. u02.o: ../csl-c/u02.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  387. $(C)/cslerror.h $(C)/entries.h
  388. $(CC) $(CFLAGS) \
  389. ../csl-c/u02.c
  390. u03.o: ../csl-c/u03.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  391. $(C)/cslerror.h $(C)/entries.h
  392. $(CC) $(CFLAGS) \
  393. ../csl-c/u03.c
  394. u04.o: ../csl-c/u04.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  395. $(C)/cslerror.h $(C)/entries.h
  396. $(CC) $(CFLAGS) \
  397. ../csl-c/u04.c
  398. u05.o: ../csl-c/u05.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  399. $(C)/cslerror.h $(C)/entries.h
  400. $(CC) $(CFLAGS) \
  401. ../csl-c/u05.c
  402. u06.o: ../csl-c/u06.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  403. $(C)/cslerror.h $(C)/entries.h
  404. $(CC) $(CFLAGS) \
  405. ../csl-c/u06.c
  406. u07.o: ../csl-c/u07.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  407. $(C)/cslerror.h $(C)/entries.h
  408. $(CC) $(CFLAGS) \
  409. ../csl-c/u07.c
  410. u08.o: ../csl-c/u08.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  411. $(C)/cslerror.h $(C)/entries.h
  412. $(CC) $(CFLAGS) \
  413. ../csl-c/u08.c
  414. u09.o: ../csl-c/u09.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  415. $(C)/cslerror.h $(C)/entries.h
  416. $(CC) $(CFLAGS) \
  417. ../csl-c/u09.c
  418. u10.o: ../csl-c/u10.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  419. $(C)/cslerror.h $(C)/entries.h
  420. $(CC) $(CFLAGS) \
  421. ../csl-c/u10.c
  422. u11.o: ../csl-c/u11.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  423. $(C)/cslerror.h $(C)/entries.h
  424. $(CC) $(CFLAGS) \
  425. ../csl-c/u11.c
  426. u12.o: ../csl-c/u12.c $(C)/tags.h $(C)/machine.h $(C)/externs.h \
  427. $(C)/cslerror.h $(C)/entries.h
  428. $(CC) $(CFLAGS) \
  429. ../csl-c/u12.c
  430. # end of makefile