1# ***************************************************************************
2# Makefile for Hercules S/370, ESA/390 and z/Architecture emulator
3# Process this file with 'automake' to produce Makefile.in
4# ***************************************************************************
5
6AUTOMAKE_OPTIONS = foreign 1.5
7ACLOCAL_AMFLAGS  = -I m4 -I autoconf
8
9lns=@LN_S@
10
11SUBDIRS = decNumber softfloat m4 util html man . crypto
12
13LDADD = @LIBS@
14
15AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/decNumber -I$(top_srcdir)/softfloat
16
17if BUILD_HERCIFC
18  HERCIFC = hercifc
19else
20  HERCIFC=
21endif
22
23if BUILD_SHARED
24  HERCLIN=herclin
25else
26  HERCLIN=
27endif
28
29fthreads_SRC  = fthreads.c
30fishio_SRC    = w32chan.c
31
32if BUILD_FTHREADS
33  FTHREADS    = $(fthreads_SRC)
34  FISHIO      = $(fishio_SRC)
35else
36  FTHREADS    =
37  FISHIO      =
38endif
39
40# We need to still include the source for the dynamic modules
41# in with the distribution regardless of whether or not the dyanmic
42# modules themselves are to be built so if dynamic load not possible,
43# then we need to include the source on the EXTRA_hercules_SOURCES
44# statement so even though they won't/don't actually get built, they
45# still nonetheless get included into distribution tarball. This is
46# *similar* to (bit not identical to) the way the fthreads sources
47# are handled. With the fthreads sources though, they can at least always
48# be built (even though they may not always generate any actual code
49# whenever they do) whereas the dynamic module source CANNOT (MUST not)
50# even be *attempted* to be "built" if support for building dynamic modules
51# doesn't even exist on the system doing the building.
52
53dynamic_SRC        = dyngui.c   \
54                     dyninst.c  \
55                     hdteq.c
56
57dyndev_SRC         = commadpt.c  \
58                     comm3705.c  \
59                     console.c   \
60                     cardpch.c   \
61                     cardrdr.c   \
62                     sockdev.c   \
63                     printer.c   \
64                     tapedev.c   \
65                     tapeccws.c  \
66                     sllib.c     \
67                     hetlib.c    \
68                     awstape.c   \
69                     faketape.c  \
70                     hettape.c   \
71                     omatape.c   \
72                     scsitape.c  \
73                     w32stape.c  \
74                     ctc_lcs.c   \
75                     ctc_ctci.c  \
76                     ctcadpt.c   \
77                     w32ctca.c   \
78                     hchan.c     \
79                     tuntap.c    \
80                     qeth.c      \
81                     con1052c.c
82
83
84# -module         : create a dlopen'able module
85# -no-undefined   : required on all platform that do not allow shared modules
86#                   to have undefined symbols
87# $(LDADD)        : Misc Linker flags set by autoconf
88# -export-dynamic : so dlsym works (to be verified - not sure it is necessary)
89# -avoid-version  : needed.. Otherwise libtool gives crazy names to Windows
90#                   DLLs
91#
92
93if BUILD_SHARED
94   XSTATIC =
95else
96   XSTATIC = -static
97endif
98
99if OPTION_DYNAMIC_LOAD
100  DYNSRC         =
101  LTDL           = ltdl.c
102
103  DYNMOD_LD_FLAGS = -module         \
104                   -no-undefined    \
105                   $(XSTATIC)       \
106                   -export-dynamic  \
107                   -avoid-version
108
109  DYNMOD_LD_ADD   = libherc.la    \
110                   libhercs.la    \
111                   libhercu.la    \
112                   $(LDADD)
113
114  LIB_LD_FLAGS    = -export-dynamic  \
115                   $(XSTATIC)        \
116                   -no-undefined     \
117                   -avoid-version
118else
119  DYNSRC         = $(dyndev_SRC)
120  LTDL           =
121  DYNMOD_LD_FLAGS =
122  DYNMOD_LD_ADD =
123  LIB_LD_FLAGS    = $(XSTATIC)    \
124                   -no-undefined  \
125                   -avoid-version
126endif
127
128#
129# List of Libtool shared libraries & loadable modules
130#
131
132  HERCLIBS =
133
134  HERCLIBS2 = libhercs.la  \
135              libhercu.la \
136              libherct.la \
137              libhercd.la \
138              libherc.la
139
140  HERCMODS = dyngui.la   \
141             dyninst.la  \
142             hdteq.la    \
143             hdt1403.la  \
144             hdt2703.la  \
145             hdt3705.la  \
146             hdt3088.la  \
147             hdt3270.la  \
148             hdt3420.la  \
149             hdt3505.la  \
150             hdt2880.la  \
151             hdt3525.la  \
152             hdtqeth.la  \
153             hdt1052c.la
154
155if OPTION_DYNAMIC_LOAD
156  modexec_LTLIBRARIES = $(HERCMODS)
157endif
158
159  noinst_LTLIBRARIES = $(HERCLIBS)
160  lib_LTLIBRARIES = $(HERCLIBS2)
161
162# The following causes the dyanmic modules to not even get built
163# unless support for building dynamic modules exists on the build system
164
165bin_PROGRAMS = hercules \
166               dasdinit dasdisup dasdload dasdconv dasdls dasdcat dasdpdsu dasdseq \
167               tapecopy tapemap tapesplt \
168               cckdcdsk cckdcomp cckddiag cckdswap \
169               dasdcopy \
170               hetget hetinit hetmap hetupd \
171               dmap2hrc \
172               $(HERCIFC) \
173               $(HERCLIN)
174
175EXTRA_PROGRAMS = hercifc
176
177if OPTION_DYNAMIC_LOAD
178
179#
180# For each module:
181#
182#   ModuleName_la_SOURCES      = <list of source files>
183#   ModuleName_la_LDFLAGS      = $(DYNMOD_LD_FLAGS) (see above)
184#   ModuleName_la_LIBADD       = libherc.la (the Core Hercules Shared Library)
185#   ModuleName_la_DEPENDENCIES = libherc.la (may not be necessary)
186#
187  dyngui_la_SOURCES  = dyngui.c
188  dyngui_la_LDFLAGS  = $(DYNMOD_LD_FLAGS)
189  dyngui_la_LIBADD   = $(DYNMOD_LD_ADD)
190
191  dyninst_la_SOURCES = dyninst.c
192  dyninst_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
193  dyninst_la_LIBADD  = $(DYNMOD_LD_ADD)
194
195  hdteq_la_SOURCES   = hdteq.c
196  hdteq_la_LDFLAGS   = $(DYNMOD_LD_FLAGS)
197  hdteq_la_LIBADD    = $(DYNMOD_LD_ADD)
198
199  hdt1403_la_SOURCES = printer.c sockdev.c
200  hdt1403_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
201  hdt1403_la_LIBADD  = $(DYNMOD_LD_ADD)
202
203  hdt2880_la_SOURCES = hchan.c
204  hdt2880_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
205  hdt2880_la_LIBADD  = $(DYNMOD_LD_ADD)
206
207  hdt2703_la_SOURCES = commadpt.c
208  hdt2703_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
209  hdt2703_la_LIBADD  = $(DYNMOD_LD_ADD)
210
211  hdt3705_la_SOURCES = comm3705.c
212  hdt3705_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
213  hdt3705_la_LIBADD  = $(DYNMOD_LD_ADD)
214
215  hdt3088_la_SOURCES = ctc_lcs.c ctc_ctci.c ctcadpt.c w32ctca.c tuntap.c
216  hdt3088_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
217  hdt3088_la_LIBADD  = $(DYNMOD_LD_ADD)
218
219  hdt3270_la_SOURCES = console.c
220  hdt3270_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
221  hdt3270_la_LIBADD  = $(DYNMOD_LD_ADD)
222
223  hdt3420_la_SOURCES = tapedev.c tapeccws.c awstape.c faketape.c hettape.c omatape.c scsitape.c w32stape.c
224  hdt3420_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
225  hdt3420_la_LIBADD  = $(DYNMOD_LD_ADD) libherct.la
226
227  hdt3505_la_SOURCES = cardrdr.c sockdev.c
228  hdt3505_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
229  hdt3505_la_LIBADD  = $(DYNMOD_LD_ADD)
230
231  hdt3525_la_SOURCES = cardpch.c
232  hdt3525_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
233  hdt3525_la_LIBADD  = $(DYNMOD_LD_ADD)
234
235  hdtqeth_la_SOURCES = qeth.c
236  hdtqeth_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
237  hdtqeth_la_LIBADD  = $(DYNMOD_LD_ADD)
238
239  hdt1052c_la_SOURCES = con1052c.c
240  hdt1052c_la_LDFLAGS = $(DYNMOD_LD_FLAGS)
241  hdt1052c_la_LIBADD  = $(DYNMOD_LD_ADD)
242
243endif
244
245#
246# Common data areas (shared) library
247#
248
249  libhercs_la_SOURCES = hsys.c
250
251  libhercs_la_LDFLAGS = $(LIB_LD_FLAGS)
252
253  libhercs_la_LIBADD  = $(LDADD)
254
255#
256# Tape utility subroutines (shared) library
257#
258
259  libherct_la_SOURCES = sllib.c  \
260                        hetlib.c
261
262  libherct_la_LDFLAGS = $(LIB_LD_FLAGS)
263
264  libherct_la_LIBADD  = $(LDADD) libhercs.la libhercu.la
265
266#
267# DASD utility subroutines (shared) library
268#
269
270  libhercd_la_SOURCES = ckddasd.c   \
271                        fbadasd.c   \
272                        cckddasd.c  \
273                        cckdutil.c  \
274                        dasdtab.c   \
275                        cache.c     \
276                        dasdutil.c  \
277                        shared.c
278
279  libhercd_la_LDFLAGS = $(LIB_LD_FLAGS)
280
281  libhercd_la_LIBADD  = $(LDADD) libhercs.la libhercu.la
282
283#
284## Pure Utility functions
285#
286  libhercu_la_SOURCES = version.c    \
287                        hscutl.c     \
288                        hscutl2.c    \
289                        codepage.c   \
290                        logger.c     \
291                        logmsg.c     \
292                        hdl.c        \
293                        hostinfo.c   \
294                        hsocket.c    \
295                        memrchr.c    \
296                        parser.c     \
297                        pttrace.c    \
298                        $(FTHREADS)  \
299                        $(LTDL)
300
301  libhercu_la_LDFLAGS = $(LIB_LD_FLAGS)
302
303  libhercu_la_LIBADD  = $(LDADD) libhercs.la
304
305#
306# Core Hercules (shared) library
307#
308
309  libherc_la_SOURCES = hconsole.c   \
310                       w32util.c    \
311                       strsignal.c  \
312                       impl.c       \
313                       config.c     \
314                       bldcfg.c     \
315                       panel.c      \
316                       history.c    \
317                       fillfnam.c   \
318                       ipl.c        \
319                       assist.c     \
320                       dat.c        \
321                       stack.c      \
322                       cpu.c        \
323                       vstore.c     \
324                       general1.c   \
325                       general2.c   \
326                       general3.c   \
327                       pfpo.c       \
328                       plo.c        \
329                       control.c    \
330                       crypto.c     \
331                       io.c         \
332                       decimal.c    \
333                       service.c    \
334                       scedasd.c    \
335                       losc.c       \
336                       chsc.c       \
337                       opcode.c     \
338                       diagnose.c   \
339                       diagmssf.c   \
340                       vm.c         \
341                       vmd250.c     \
342                       channel.c    \
343                       external.c   \
344                       float.c      \
345                       trace.c      \
346                       machchk.c    \
347                       vector.c     \
348                       xstore.c     \
349                       cmpsc.c      \
350                       sie.c        \
351                       qdio.c       \
352                       clock.c      \
353                       timer.c      \
354                       esame.c      \
355                       ieee.c       \
356                       dfp.c        \
357                       machdep.h    \
358                       httpserv.c   \
359                       cgibin.c     \
360                       loadparm.c   \
361                       hsccmd.c     \
362                       cmdtab.c     \
363                       hao.c        \
364                       hscmisc.c    \
365                       sr.c         \
366                       $(FISHIO)    \
367                       $(DYNSRC)    \
368                       ecpsvm.c
369
370  EXTRA_libherc_la_SOURCES = $(fthreads_SRC)  \
371                             $(fishio_SRC)    \
372                             memrchr.c        \
373                             $(dynamic_SRC)   \
374                             $(extra_SRC)     \
375                             $(dyndev_SRC)    \
376                             ltdl.c
377
378  libherc_la_LDFLAGS = $(LIB_LD_FLAGS)
379
380  libherc_la_LIBADD = libhercs.la     \
381                      libhercu.la     \
382                      libherct.la     \
383                      libhercd.la     \
384                      decNumber/libdecNumber.la \
385                      softfloat/libsoftfloat.la \
386                      $(LDADD)
387
388#
389# THIS is the hercules executable.
390#      hdlmain.c is requires so that dlopen(self) retrieves
391#                the 'main' hdl symbols
392#
393
394if OPTION_DYNAMIC_LOAD
395
396if BUILD_SHARED
397  HLDFLAGS = -dlopen self
398  HDEPS =
399
400else
401  HLDFLAGS = -dlopen self         \
402             -dlopen dyngui.la    \
403             -dlopen dyninst.la   \
404             -dlopen hdteq.la     \
405             -dlopen hdt1403.la   \
406             -dlopen hdt3420.la   \
407             -dlopen hdt2703.la   \
408             -dlopen hdt3705.la   \
409             -dlopen hdt3088.la   \
410             -dlopen hdt3270.la   \
411             -dlopen hdt3505.la   \
412             -dlopen hdt3525.la   \
413             -dlopen hdtqeth.la   \
414             -dlopen hdt1052c.la
415
416  HDEPS    = dyngui.la    \
417             dyninst.la   \
418             hdteq.la     \
419             hdt1403.la   \
420             hdt3420.la   \
421             hdt2703.la   \
422             hdt3705.la   \
423             hdt3088.la   \
424             hdt3270.la   \
425             hdt3505.la   \
426             hdt3525.la   \
427             hdtqeth.la   \
428             hdt1052c.la  \
429             libherc.la   \
430             libherct.la  \
431             libhercd.la
432endif
433
434else
435  HLDFLAGS =
436  HDEPS    =
437
438endif
439
440  hercules_SOURCES      = bootstrap.c  \
441                          hdlmain.c
442
443  hercules_LDADD        = libherc.la libhercs.la $(LDADD)
444
445  hercules_LDFLAGS      = $(HLDFLAGS)
446
447  hercules_DEPENDENCIES = libherc.la libhercs.la $(HDEPS)
448
449if BUILD_SHARED
450herclin_SOURCES       = herclin.c hdlmain.c
451herclin_LDADD        = libherc.la libhercs.la $(LDADD)
452herclin_LDFLAGS      = $(HLDFLAGS)
453herclin_DEPENDENCIES = libherc.la libhercs.la $(HDEPS)
454endif
455
456#
457# side binaries
458#
459
460tools_LD_FLAGS =
461tools_ADDLIBS = $(HERCLIBS2) $(LDADD)
462
463if BUILD_HERCIFC
464hercifc_SOURCES       = hercifc.c
465hercifc_LDADD         = $(tools_ADDLIBS)
466hercifc_LDFLAGS       = $(tools_LD_FLAGS)
467endif
468
469
470dasdinit_SOURCES      = dasdinit.c
471dasdinit_LDADD        = $(tools_ADDLIBS)
472dasdinit_LDFLAGS      = $(tools_LD_FLAGS)
473
474dasdisup_SOURCES      = dasdisup.c
475dasdisup_LDADD        = $(tools_ADDLIBS)
476dasdisup_LDFLAGS      = $(tools_LD_FLAGS)
477
478dasdload_SOURCES      = dasdload.c
479dasdload_LDADD        = $(tools_ADDLIBS)
480dasdload_LDFLAGS      = $(tools_LD_FLAGS)
481
482dasdconv_SOURCES      = dasdconv.c
483dasdconv_LDADD        = $(tools_ADDLIBS)
484dasdconv_LDFLAGS      = $(tools_LD_FLAGS)
485
486dasdls_SOURCES        = dasdls.c
487dasdls_LDADD          = $(tools_ADDLIBS)
488dasdls_LDFLAGS        = $(tools_LD_FLAGS)
489
490dasdcat_SOURCES       = dasdcat.c
491dasdcat_LDADD         = $(tools_ADDLIBS)
492dasdcat_LDFLAGS       = $(tools_LD_FLAGS)
493
494dasdpdsu_SOURCES      = dasdpdsu.c
495dasdpdsu_LDADD        = $(tools_ADDLIBS)
496dasdpdsu_LDFLAGS      = $(tools_LD_FLAGS)
497
498dasdseq_SOURCES       = dasdseq.c
499dasdseq_LDADD         = $(tools_ADDLIBS)
500dasdseq_LDFLAGS       = $(tools_LD_FLAGS)
501
502tapecopy_SOURCES      = tapecopy.c
503tapecopy_LDADD        = $(tools_ADDLIBS)
504tapecopy_LDFLAGS      = $(tools_LD_FLAGS)
505
506tapemap_SOURCES       = tapemap.c
507tapemap_LDADD         = $(tools_ADDLIBS)
508tapemap_LDFLAGS       = $(tools_LD_FLAGS)
509
510tapesplt_SOURCES      = tapesplt.c
511tapesplt_LDADD        = $(tools_ADDLIBS)
512tapesplt_LDFLAGS      = $(tools_LD_FLAGS)
513
514cckdcdsk_SOURCES      = cckdcdsk.c
515cckdcdsk_LDADD        = $(tools_ADDLIBS)
516cckdcdsk_LDFLAGS      = $(tools_LD_FLAGS)
517
518cckdcomp_SOURCES      = cckdcomp.c
519cckdcomp_LDADD        = $(tools_ADDLIBS)
520cckdcomp_LDFLAGS      = $(tools_LD_FLAGS)
521
522cckddiag_SOURCES      = cckddiag.c
523cckddiag_LDADD        = $(tools_ADDLIBS)
524cckddiag_LDFLAGS      = $(tools_LD_FLAGS)
525
526dasdcopy_SOURCES      = dasdcopy.c
527dasdcopy_LDADD        = $(tools_ADDLIBS)
528dasdcopy_LDFLAGS      = $(tools_LD_FLAGS)
529
530cckdswap_SOURCES      = cckdswap.c
531cckdswap_LDADD        = $(tools_ADDLIBS)
532cckdswap_LDFLAGS      = $(tools_LD_FLAGS)
533
534hetget_SOURCES        = hetget.c
535hetget_LDADD          = $(tools_ADDLIBS)
536hetget_LDFLAGS        = $(tools_LD_FLAGS)
537
538hetinit_SOURCES       = hetinit.c
539hetinit_LDADD         = $(tools_ADDLIBS)
540hetinit_LDFLAGS       = $(tools_LD_FLAGS)
541
542hetmap_SOURCES        = hetmap.c
543hetmap_LDADD          = $(tools_ADDLIBS)
544hetmap_LDFLAGS        = $(tools_LD_FLAGS)
545
546hetupd_SOURCES        = hetupd.c
547hetupd_LDADD          = $(tools_ADDLIBS)
548hetupd_LDFLAGS        = $(tools_LD_FLAGS)
549
550dmap2hrc_SOURCES      = dmap2hrc.c
551dmap2hrc_LDADD        = $(tools_ADDLIBS)
552dmap2hrc_LDFLAGS      = $(tools_LD_FLAGS)
553
554#
555# files that are not 'built' per-se
556#
557#
558# Also contains some WIN32 only source files
559#
560
561EXTRA_DIST = autoconf/config.rpath \
562             autoconf/mkinstalldirs \
563             COPYRIGHT             \
564             hercules.cnf          \
565             cckdfix.c             \
566             README.COMMADPT       \
567             README.DYNMOD         \
568             README.ECPSVM         \
569             README.HDL            \
570             README.NETWORKING     \
571             README.OSX            \
572             README.TAPE           \
573             README.HERCLOGO       \
574             RELEASE.NOTES         \
575             README.WIN32          \
576             README.WIN64          \
577             README.SUN            \
578             makefile.msvc         \
579             makefile-dllmod.msvc  \
580             msvc.makefile.includes/BZIP2_DIR.msvc    \
581             msvc.makefile.includes/BZIP2_FLAGS.msvc  \
582             msvc.makefile.includes/BZIP2_RULES.msvc  \
583             msvc.makefile.includes/CONFIG.msvc       \
584             msvc.makefile.includes/DEBUG_RETAIL.msvc \
585             msvc.makefile.includes/HERC_FLAGS.msvc   \
586             msvc.makefile.includes/MOD_RULES1.msvc   \
587             msvc.makefile.includes/MOD_RULES2.msvc   \
588             msvc.makefile.includes/MODULES.msvc      \
589             msvc.makefile.includes/OBJ_CODE.msvc     \
590             msvc.makefile.includes/OUTDIR_RULES.msvc \
591             msvc.makefile.includes/OUTPUT_DIRS.msvc  \
592             msvc.makefile.includes/PCRE_DIR.msvc     \
593             msvc.makefile.includes/PCRE_FLAGS.msvc   \
594             msvc.makefile.includes/PCRE_RULES.msvc   \
595             msvc.makefile.includes/PRIM_RULES.msvc   \
596             msvc.makefile.includes/VERSION.msvc      \
597             msvc.makefile.includes/ZLIB_DIR.msvc     \
598             msvc.makefile.includes/ZLIB_FLAGS.msvc   \
599             msvc.makefile.includes/ZLIB_RULES.msvc   \
600             hercver.rc            \
601             build_pch.c           \
602             conspawn.c            \
603             getopt.c              \
604             herclogo.txt          \
605             hercules.ico
606
607
608#
609# Source Header files. No 'build' for those
610#
611noinst_HEADERS = hostinfo.h     \
612                 cpuint.h       \
613                 feat370.h      \
614                 feat390.h      \
615                 feat900.h      \
616                 featall.h      \
617                 featchk.h      \
618                 feature.h      \
619                 esa390.h       \
620                 opcode.h       \
621                 clock.h        \
622                 hercules.h     \
623                 inline.h       \
624                 dat.h          \
625                 vstore.h       \
626                 hbyteswp.h     \
627                 dasdblks.h     \
628                 hetlib.h       \
629                 version.h      \
630                 parser.h       \
631                 dasdtab.h      \
632                 sllib.h        \
633                 htypes.h       \
634                 fthreads.h     \
635                 w32chan.h      \
636                 w32ctca.h      \
637                 tt32api.h      \
638                 linklist.h     \
639                 httpmisc.h     \
640                 devtype.h      \
641                 codepage.h     \
642                 ctcadpt.h      \
643                 hercifc.h      \
644                 tuntap.h       \
645                 tapedev.h      \
646                 scsitape.h     \
647                 logger.h       \
648                 commadpt.h     \
649                 comm3705.h     \
650                 cache.h        \
651                 ecpsvm.h       \
652                 memrchr.h      \
653                 shared.h       \
654                 hscutl.h       \
655                 cmdtab.h       \
656                 hdl.h          \
657                 crypto.h       \
658                 sockdev.h      \
659                 ltdl.h         \
660                 herc_getopt.h  \
661                 service.h      \
662                 chsc.h         \
663                 pttrace.h      \
664                 history.h      \
665                 sr.h           \
666                 hchan.h        \
667                 fillfnam.h     \
668                 hthreads.h     \
669                 hostopts.h     \
670                 w32util.h      \
671                 hconsts.h      \
672                 hmacros.h      \
673                 hstructs.h     \
674                 hexterns.h     \
675                 hconsole.h     \
676                 hextapi.h      \
677                 hstdinc.h      \
678                 hstdint.h      \
679                 hsocket.h      \
680                 w32stape.h     \
681                 w32dl.h        \
682                 hercwind.h     \
683                 getopt.h       \
684                 w32mtio.h      \
685                 vmd250.h       \
686                 $(extra_dynamic_SRC)
687
688cckd: cckd2ckd$(EXEEXT)  \
689      cckdcdsk$(EXEEXT)  \
690      cckddiag$(EXEEXT)  \
691      cckdcomp$(EXEEXT)  \
692      cckdswap$(EXEEXT)  \
693      dasdcopy$(EXEEXT)
694
695#########################################################
696#           B U I L D   R U L E S  . . .
697#########################################################
698#
699#            ***  PROGRAMMING NOTE! ***
700#
701#  The tabs in the below statements ARE significant!
702#  Not all make programs accept (handle correctly)
703#  make files that use blanks instead of tabs in their
704#  build rules. Thus in order to remain compatible
705#  with older make programs the below build rules
706#  MUST use *tabs* and NOT BLANKS!
707#
708#########################################################
709
710tar: dist
711
712install-exec-local:
713
714install-exec-hook:
715if BUILD_SHARED
716	rm -f $(DESTDIR)$(libdir)/libherc*.a
717	rm -f $(DESTDIR)$(modexecdir)/dyn*.a
718	rm -f $(DESTDIR)$(modexecdir)/hdt*.a
719else
720	rm -f $(DESTDIR)$(libdir)/libherc*
721endif
722#
723# NOTE : symbolic links point to FINAL destination (not to staged install)
724#
725	rm -f $(DESTDIR)$(bindir)/fba2cfba$(EXEEXT)
726	(cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) fba2cfba$(EXEEXT))
727	rm -f $(DESTDIR)$(bindir)/ckd2cckd$(EXEEXT)
728	(cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) ckd2cckd$(EXEEXT))
729	rm -f $(DESTDIR)$(bindir)/cfba2fba$(EXEEXT)
730	(cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) cfba2fba$(EXEEXT))
731	rm -f $(DESTDIR)$(bindir)/cckd2ckd$(EXEEXT)
732	(cd $(DESTDIR)$(bindir); @LN_S@ ./dasdcopy$(EXEEXT) cckd2ckd$(EXEEXT))
733if SETUID_HERCIFC
734	chown root $(DESTDIR)$(bindir)/hercifc
735if HERCIFC_GROUPSET
736	chgrp $(HERCIFC_GROUPNAME) $(DESTDIR)$(bindir)/hercifc
737endif
738	chmod 0750 $(DESTDIR)$(bindir)/hercifc
739	chmod +s   $(DESTDIR)$(bindir)/hercifc
740	rm                             hercifc
741endif
742
743uninstall-local:
744
745uninstall-hook:
746	rm -f $(DESTDIR)$(bindir)/fba2cfba$(EXEEXT)
747	rm -f $(DESTDIR)$(bindir)/ckd2cckd$(EXEEXT)
748	rm -f $(DESTDIR)$(bindir)/cfba2fba$(EXEEXT)
749	rm -f $(DESTDIR)$(bindir)/cckd2ckd$(EXEEXT)
750
751%.s: %.c
752	$(COMPILE) -S $<
753