1#############
2### Targets #
3#############
4
5DEST		= .
6
7LIBRARY		= libout.a
8
9PROGRAM		= abv
10
11TARGET		= $(PROGRAM)
12
13# PRESET VARIABLES
14#################################
15### Compilers, Programs and Flags
16#################################
17### C Compiler
18CC		= cc
19CFLAGS		= -g -I../Interface -I../Parser -I../Database -DABV_STAND_ALONE
20
21### C++ Compiler
22CCC		= xlC
23CCFLAGS		=  -g
24
25### Fortran Compiler
26FC		= xlf
27FFLAGS		= -qlanglvl=90ext
28
29### COBOL Compiler
30COB		= cob2
31COBFLAGS	=
32
33### PL/I  Compiler
34PLI		= pli
35PLIFLAGS	= -qLANGLVL=SAA -qNOOPTIMIZE -qNOCOMPILE=S -qNOSEMANTIC=S -qNOSYNTAX=S
36
37### CICS/6000 Translator
38CICSTRAN        = cicstran
39CICSTRANOPTIONS =
40
41### DB2/6000 Precompiler
42DB2PREP         = db2 prep
43DB2PREPOPTIONS  = bindfile package
44
45### Linker/Loader
46LD		= cc
47LDFLAGS		= -lm
48
49### Shell Command
50SHELL		= /bin/sh
51
52### Installation Program
53INSTALL		= cp
54
55### Print command
56PRINT		= pr
57
58### mkmf program
59MKMF		= /usr/lpp/sde/bin/mkmf
60
61### mkmf program
62LEX		= flex -i
63
64SUFFIX = .i:
65
66###################################################################
67### Additional rules for make. These rules are in addition to the #
68### default rules for the aix make command specified in the       #
69### /usr/ccs/lib/aix.mk configuration file. For more information  #
70### refer to the man page for make.                               #
71###################################################################
72
73### Additional make suffixes
74.SUFFIXES: .F .F~ .f90 .f90~ .cc .cc~ .cpp .cpp~ .cxx .cxx~ .ccp .ccp~ .sqb .sqb~ .cbl .cbl~ .pli .pli~ .H .H~ .hpp .hpp~ .hxx .hxx~ .cpy .cpy~ .inc .inc~
75
76# SINGLE SUFFIX RULES
77.cc:
78	$(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@
79.cc~:
80	$(GET) $(GFLAGS) -p $< > $*.cc
81	$(CCC) $(CCFLAGS) $(LDFLAGS) $*.cc -o $*
82	-rm -f $*.cc
83.cpp:
84	$(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@
85.cpp~:
86	$(GET) $(GFLAGS) -p $< > $*.cpp
87	$(CCC) $(CCFLAGS) $(LDFLAGS) $*.cpp -o $*
88	-rm -f $*.cpp
89.cxx:
90	$(CCC) $(CCFLAGS) $(LDFLAGS) $< -o $@
91.cxx~:
92	$(GET) $(GFLAGS) -p $< > $*.cxx
93	$(CCC) $(CCFLAGS) $(LDFLAGS) $*.cxx -o $*
94	-rm -f $*.cxx
95.F:
96	$(FC) $(FFLAGS) $(LDFLAGS) $< -o $@
97.F~:
98	$(GET) $(GFLAGS) -p $< > $*.F
99	$(FC) $(FFLAGS) $(LDFLAGS) $*.F -o $*
100	-rm -f $*.F
101
102.f90:
103	$(FC) $(FFLAGS) $(LDFLAGS) $< -o $@
104.f90~:
105	$(GET) $(GFLAGS) -p $< > $*.f90
106	$(FC) $(FFLAGS) $(LDFLAGS) $*.f90 -o $*
107	-rm -f $*.f90
108
109.cbl:
110	$(COB) $(COBFLAGS) $(LDFLAGS) $< -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
111.cbl~:
112	$(GET) $(GFLAGS) -p $< > $*.cbl
113	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $* -qadata -qexit=adexit=iwzrmgux:: > /dev/null
114	-rm -f $*.cbl
115
116.pli:
117	$(PLI) $(PLIFLAGS) $(LDFLAGS) $< -o $@
118
119.pli~:
120	$(GET) $(GFLAGS) -p $< > $*.pli
121	$(PLI) $(PLIFLAGS) $(LDFLAGS) $*.pli -o $*
122	-rm -f $*.pli
123
124.ccp:
125	@rm -f $*.cbl
126	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
127	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
128	    mv -f $*.cbl $*.sqb;  \
129	    chmod 444 $*.sqb; \
130	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
131	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
132	    rm -f $*.sqb; fi
133	@chmod 444 $*.cbl
134	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
135	-rm -f $*.o
136
137.ccp~:
138	$(GET) $(GFLAGS) -p $< > $*.ccp
139	@rm -f $*.cbl
140	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp
141	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
142	    mv -f $*.cbl $*.sqb;  \
143	    chmod 444 $*.sqb; \
144	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
145	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
146	    rm -f $*.sqb; fi
147	@chmod 444 $*.cbl
148	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
149	-rm -f $*.o $*.ccp
150
151.sqb:
152	@rm -f $*.cbl
153	$(DB2PREP) $< $(DB2PREPOPTIONS)
154	@chmod 444 $*.cbl
155	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
156	-rm -f $*.o
157
158.sqb~:
159	$(GET) $(GFLAGS) -p $< > $*.sqb
160	@rm -f $*.cbl
161	$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)
162	@chmod 444 $*.cbl
163	$(COB) $(COBFLAGS) $(LDFLAGS) $*.cbl -o $@ -qadata -qexit=adexit=iwzrmgux:: > /dev/null
164	-rm -f $*.o $*.sqb
165
166# DOUBLE SUFFIX RULES
167.cc.o:
168	$(CCC) $(CCFLAGS) -c $<
169.cc~.o:
170	$(GET) $(GFLAGS) -p $< > $*.cc
171	$(CCC) $(CCFLAGS) -c $*.cc
172	-rm -f $*.cc
173.cc~.cc:
174	$(GET) $(GFLAGS) -p $< > $*.cc; chmod 444 $*.cc
175.cpp.o:
176	$(CCC) $(CCFLAGS) -c $<
177.cpp~.o:
178	$(GET) $(GFLAGS) -p $< > $*.cpp
179	$(CCC) $(CCFLAGS) -c $*.cpp
180	-rm -f $*.cpp
181.cpp~.cpp:
182	$(GET) $(GFLAGS) -p $< > $*.cpp; chmod 444 $*.cpp
183.cxx.o:
184	$(CCC) $(CCFLAGS) -c $<
185.cxx~.o:
186	$(GET) $(GFLAGS) -p $< > $*.cxx
187	$(CCC) $(CCFLAGS) -c $*.cxx
188	-rm -f $*.cxx
189.cxx~.cxx:
190	$(GET) $(GFLAGS) -p $< > $*.cxx; chmod 444 $*.cxx
191.F.o:
192	$(FC) $(FFLAGS) -c $<
193.F~.o:
194	$(GET) $(GFLAGS) -p $< > $*.F
195	$(FC) $(FFLAGS) -c $*.F
196	-rm -f $*.F
197.F~.F:
198	$(GET) $(GFLAGS) -p $< > $@
199.f90.o:
200	$(FC) $(FFLAGS) -c $<
201.f90~.o:
202	$(GET) $(GFLAGS) -p $< > $*.f90
203	$(FC) $(FFLAGS) -c $*.f90
204	-rm -f $*.f90
205.f90~.f90:
206	$(GET) $(GFLAGS) -p $< > $@
207.y.C:
208	$(YACC) $(YFLAGS) -C $<
209	mv y.tab.C $@
210.y~.C:
211	$(GET) $(GFLAGS) -p $< > $*.y
212	$(YACC) $(YFLAGS) -C $*.y
213	mv y.tab.C $*.C
214.l.C:
215	$(LEX) -C $<
216	mv lex.yy.C $@
217
218.l~.C:
219	$(GET) $(GFLAGS) -p $< > $*.l
220	$(LEX) -C $*.l
221	mv lex.yy.C $@
222
223.l~.cc:
224	$(GET) $(GFLAGS) -p $< > $*.l
225	$(LEX) -C $*.l
226	mv lex.yy.C $@
227
228.l~.cpp:
229	$(GET) $(GFLAGS) -p $< > $*.l
230	$(LEX) -C $*.l
231	mv lex.yy.C $@
232
233.l~.cxx:
234	$(GET) $(GFLAGS) -p $< > $*.l
235	$(LEX) -C $*.l
236	mv lex.yy.C $@
237
238.l~.c:
239	$(GET) $(GFLAGS) -p $< > $*.l
240	$(LEX) -c -d -l $*.l
241	mv lex.yy.c $@
242
243.y.cc:
244	$(YACC) $(YFLAGS) -C $<
245	mv y.tab.C $@
246.y~.cc:
247	$(GET) $(GFLAGS) -p $< > $*.y
248	$(YACC) $(YFLAGS) -C $*.y
249	mv y.tab.C $*.cc
250.l.cc:
251	$(LEX) -C $<
252	mv lex.yy.C $@
253.y.cpp:
254	$(YACC) $(YFLAGS) -C $<
255	mv y.tab.C $*.@
256.y~.cpp:
257	$(GET) $(GFLAGS) -p $< > $*.y
258	$(YACC) $(YFLAGS) -C $*.y
259	mv y.tab.C $*.cpp
260.l.cpp:
261	$(LEX) -C $<
262	mv lex.yy.C $*.@
263
264.y.cxx:
265	$(YACC) $(YFLAGS) -C $<
266	mv y.tab.C $*.@
267.y~.cxx:
268	$(GET) $(GFLAGS) -p $< > $*.y
269	$(YACC) $(YFLAGS) -C $*.y
270	mv y.tab.C $*.cxx
271.l.cxx:
272	$(LEX) -C $<
273	mv lex.yy.C $*.@
274.F.a:
275	$(FC) -c $(FFLAGS) $<
276	$(AR) $(ARFLAGS) $@ $*.o
277	rm -f $*.o
278.F~.a:
279	$(GET) $(GFLAGS) -p $< > $*.F
280	$(FC) -c $(FFLAGS) $*.F
281	$(AR) $(ARFLAGS) $@ $*.o
282	rm -f $*.[Fo]
283.f90.a:
284	$(FC) -c $(FFLAGS) $<
285	$(AR) $(ARFLAGS) $@ $*.o
286	rm -f $*.o
287.f90~.a:
288	$(GET) $(GFLAGS) -p $< > $*.f90
289	$(FC) -c $(FFLAGS) $*.f90
290	$(AR) $(ARFLAGS) $@ $*.o
291	rm -f $*.f90 $*.o
292.cc.a:
293	$(CCC) -c $(CCFLAGS) $<
294	$(AR) $(ARFLAGS) $@ $*.o
295	rm -f $*.o
296.cc~.a:
297	$(GET) $(GFLAGS) -p $< > $*.cc
298	$(CCC) -c $(CCFLAGS) $*.cc
299	$(AR) $(ARFLAGS) $@ $*.o
300	rm -f $*.cc $*.o
301.cpp.a:
302	$(CCC) -c $(CCFLAGS) $<
303	$(AR) $(ARFLAGS) $@ $*.o
304	rm -f $*.o
305.cpp~.a:
306	$(GET) $(GFLAGS) -p $< > $*.cpp
307	$(CCC) -c $(CCFLAGS) $*.cpp
308	$(AR) $(ARFLAGS) $@ $*.o
309	rm -f $*.cpp $*.o
310.cxx.a:
311	$(CCC) -c $(CCFLAGS) $<
312	$(AR) $(ARFLAGS) $@ $*.o
313	rm -f $*.o
314.cxx~.a:
315	$(GET) $(GFLAGS) -p $< > $*.cxx
316	$(CCC) -c $(CCFLAGS) $*.cxx
317	$(AR) $(ARFLAGS) $@ $*.o
318	rm -f $*.cxx $*.o
319.H~.H:
320	$(GET) $(GFLAGS) -p $< > $*.H
321.hxx~.hxx:
322	$(GET) $(GFLAGS) -p $< > $*.hxx
323.hpp~.hpp:
324	$(GET) $(GFLAGS) -p $< > $*.hpp
325
326.cbl.o:
327	$(COB) $(COBFLAGS) -c $< -qadata -qexit=adexit=iwzrmgux:: > /dev/null
328.cbl~.o:
329	$(GET) $(GFLAGS) -p $< > $*.cbl
330	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
331	-rm -f $*.cbl
332
333.cbl~.cbl:
334	$(GET) $(GFLAGS) -p $< > $*.cbl; chmod 444 $*.cbl
335
336.cbl.a:
337	$(COB) -c $(COBFLAGS) $< -qadata -qexit=adexit=iwzrmgux:: > /dev/null
338	$(AR) $(ARFLAGS) $@ $*.o
339	-rm -f $*.o
340.cbl~.a:
341	$(GET) $(GFLAGS) -p $< > $*.cbl
342	$(COB) -c $(COBFLAGS) $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
343	$(AR) $(ARFLAGS) $@ $*.o
344	-rm -f $*.o $*.cbl
345
346.cpy~.cpy:
347	$(GET) $(GFLAGS) -p $< > $*.cpy; chmod 444 $*.cpy
348
349.pli.o:
350	$(PLI) $(PLIFLAGS) -c $<
351.pli~.o:
352	$(GET) $(GFLAGS) -p $< > $*.pli
353	$(PLI) $(PLIFLAGS) -c $*.pli
354	-rm -f $*.pli
355
356.pli~.pli:
357	$(GET) $(GFLAGS) -p $< > $*.pli; chmod 444 $*.pli
358
359.pli.a:
360	$(PLI) -c $(PLIFLAGS) $<
361	$(AR) $(ARFLAGS) $@ $*.o
362	-rm -f $*.o
363.pli~.a:
364	$(GET) $(GFLAGS) -p $< > $*.pli
365	$(PLI) -c $(PLIFLAGS) $*.pli
366	$(AR) $(ARFLAGS) $@ $*.o
367	-rm -f $*.o $*.pli
368
369.inc~.inc:
370	$(GET) $(GFLAGS) -p $< > $*.inc; chmod 444 $*.inc
371
372.ccp~.ccp:
373	$(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp
374
375.ccp.cbl:
376	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
377	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
378	    mv -f $*.cbl $*.sqb;  \
379	    chmod 444 $*.sqb; \
380	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
381	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
382	    rm -f $*.sqb; fi
383
384
385.ccp.o:
386	@rm -f $*.cbl
387	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
388	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
389	    mv -f $*.cbl $*.sqb;  \
390	    chmod 444 $*.sqb; \
391	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
392	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
393	    rm -f $*.sqb; fi
394	@chmod 444 $*.cbl
395	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
396
397.ccp~.o:
398	@rm -f $*.cbl
399	$(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp
400	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp
401	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
402	    mv -f $*.cbl $*.sqb;  \
403	    chmod 444 $*.sqb; \
404	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
405	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
406	    rm -f $*.sqb; fi
407	@chmod 444 $*.cbl
408	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
409	-rm -f $*.ccp
410
411.ccp.a:
412	@rm -f $*.cbl
413	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $<
414	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
415	    mv -f $*.cbl $*.sqb;  \
416	    chmod 444 $*.sqb; \
417	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
418	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
419	    rm -f $*.sqb; fi
420	@chmod 444 $*.cbl
421	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
422	$(AR) $(ARFLAGS) $@ $*.o
423	-rm -f $*.o
424
425.ccp~.a:
426	$(GET) $(GFLAGS) -p $< > $*.ccp; chmod 444 $*.ccp
427	@rm -f $*.cbl
428	$(CICSTRAN) $(CICSTRANOPTIONS) -I COBOL $*.ccp
429	@if(egrep -i -e "EXEC[ 	]+SQL[ 	]+" $*.cbl >/dev/null 2>&1 ); then \
430	    mv -f $*.cbl $*.sqb;  \
431	    chmod 444 $*.sqb; \
432	    print "\t$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)"; \
433	    ($(DB2PREP) $*.sqb $(DB2PREPOPTIONS)); \
434	    rm -f $*.sqb; fi
435	@chmod 444 $*.cbl
436	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
437	$(AR) $(ARFLAGS) $@ $*.o
438	-rm -f $*.ccp $*.o
439
440.sqb~.sqb:
441	$(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb
442
443.sqb.cbl:
444	$(DB2PREP) $< $(DB2PREPOPTIONS)
445
446.sqb.o:
447	@rm -f $*.cbl
448	$(DB2PREP) $< $(DB2PREPOPTIONS)
449	@chmod 444 $*.cbl
450	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
451
452.sqb~.o:
453	$(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb
454	@rm -f $*.cbl
455	$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)
456	@chmod 444 $*.cbl
457	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
458	-rm -f $*.sqb
459
460.sqb.a:
461	@rm -f $*.cbl
462	$(DB2PREP) $< $(DB2PREPOPTIONS)
463	@chmod 444 $*.cbl
464	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
465	$(AR) $(ARFLAGS) $@ $*.o
466	-rm -f $*.o
467
468.sqb~.a:
469	$(GET) $(GFLAGS) -p $< > $*.sqb; chmod 444 $*.sqb
470	@rm -f $*.cbl
471	$(DB2PREP) $*.sqb $(DB2PREPOPTIONS)
472	@chmod 444 $*.cbl
473	$(COB) $(COBFLAGS) -c $*.cbl -qadata -qexit=adexit=iwzrmgux:: > /dev/null
474	$(AR) $(ARFLAGS) $@ $*.o
475	-rm -f  $*.sqb $*.o
476
477
478
479#################################
480### Sources Headers and Objects #
481#################################
482
483HDRS		= tablecal.h
484
485EXTHDRS		=
486
487SRCS		= gram.y \
488		  parser.l \
489		parser_ext.c \
490		interpret.c \
491		libfct.c \
492		node.c \
493		object.c \
494		symboltable.c \
495		oper.c \
496		gram_ext.c \
497		module.c \
498		properties.c \
499		project.c \
500		memory.c \
501		util.c \
502		init.c \
503		io.c \
504		abv.c
505#		mathfct.c \
506#		statfct.c \
507#		textfct.c \
508#		informationfct.c
509
510OBJS		= gram.o \
511                  parser.o \
512                parser_ext.o \
513                interpret.o \
514                libfct.o \
515                node.o \
516                object.o \
517		symboltable.o \
518                oper.o  \
519                gram_ext.o \
520		module.o \
521		properties.o \
522		project.o \
523		memory.o \
524		util.o \
525		init.o \
526		io.o \
527		abv.o
528#		mathfct.o \
529#		statfct.o \
530#		textfct.o \
531#		informationfct.o \
532
533
534MAKEFILE	= Makefile
535
536#######################
537### Program Libraries #
538#######################
539
540LIBS		=
541
542########################
543### Additional Targets #
544########################
545
546all:		$(PROGRAM)
547
548$(LIBRARY):	$(OBJS) $(MAKEFILE)
549		@echo "Loading $(LIBRARY) ..."
550		@ar cru $(LIBRARY) $(OBJS)
551		@echo "done"
552
553$(PROGRAM):	$(OBJS) $(LIBS) $(MAKEFILE)
554		@echo "Linking $(PROGRAM) ..."
555		@$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM)
556		@echo "done"
557
558clean:;		@rm -f $(OBJS) core
559
560clobber:;	@rm -f $(OBJS) $(LIBRARY) $(PROGRAM) core tags
561
562depend:
563		makedepend -I../* -- $(CFLAGS) -- $(SRCS)
564
565echo:;		@echo $(HDRS) $(SRCS)
566
567extract:;	@ar x $(DEST)/$(LIBRARY)
568
569index:;		@ctags -wx $(HDRS) $(SRCS)
570
571install:;
572		@if [ "$(LIBRARY)" = "$(TARGET)" ]; then \
573			(make -f $(MAKEFILE) install_lib); fi
574		@if [ "$(PROGRAM)" = "$(TARGET)" ]; then \
575			(make -f $(MAKEFILE) install_pro); fi
576
577install_lib:	$(LIBRARY)
578		@echo Installing $(LIBRARY) in $(DEST)
579		@if [ $(DEST) != . ]; then \
580		(rm -f $(DEST)/$(LIBRARY); $(INSTALL) $(LIBRARY) $(DEST)); fi
581
582install_pro:	$(PROGRAM)
583		@echo Installing $(PROGRAM) in $(DEST)
584		@-strip $(PROGRAM)
585		@if [ $(DEST) != . ]; then \
586		(rm -f $(DEST)/$(PROGRAM); $(INSTALL) $(PROGRAM) $(DEST)); fi
587
588print:;		@$(PRINT) $(HDRS) $(SRCS)
589
590tags:		$(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)
591