Blob Blame History Raw
From 7970d0d039d921a9d5db34b7e40f90b055096feb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Tue, 28 May 2013 21:57:36 +0200
Subject: [PATCH 1/2] use system ltdl library

---
 Makefile.am           |  11 ++--
 bootstrap.c           |   2 +-
 configure.ac          | 147 +-------------------------------------------------
 decNumber/Makefile.am |   2 -
 hdl.h                 |   2 +-
 herclin.c             |   2 +-
 6 files changed, 8 insertions(+), 158 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 221b2bf..a443106 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -10,7 +10,7 @@ lns=@LN_S@
 
 SUBDIRS = decNumber m4 util html man . crypto
 
-LDADD = @LIBS@
+LDADD = @LIBS@ -lltdl
 
 AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/decNumber
 
@@ -98,7 +98,6 @@ endif
 
 if OPTION_DYNAMIC_LOAD
   DYNSRC         =
-  LTDL           = ltdl.c
 
   DYNMOD_LD_FLAGS = -module         \
                    -no-undefined    \
@@ -117,7 +116,6 @@ if OPTION_DYNAMIC_LOAD
                    -avoid-version
 else
   DYNSRC         = $(dyndev_SRC)
-  LTDL           =
   DYNMOD_LD_FLAGS =
   DYNMOD_LD_ADD =
   LIB_LD_FLAGS    = $(XSTATIC)    \
@@ -295,8 +293,7 @@ endif
                         memrchr.c    \
                         parser.c     \
                         pttrace.c    \
-                        $(FTHREADS)  \
-                        $(LTDL)
+                        $(FTHREADS)
 
   libhercu_la_LDFLAGS = $(LIB_LD_FLAGS)
 
@@ -372,8 +369,7 @@ endif
                              memrchr.c        \
                              $(dynamic_SRC)   \
                              $(extra_SRC)     \
-                             $(dyndev_SRC)    \
-                             ltdl.c
+                             $(dyndev_SRC)
 
   libherc_la_LDFLAGS = $(LIB_LD_FLAGS)
 
@@ -659,7 +655,6 @@ noinst_HEADERS = hostinfo.h     \
                  hdl.h          \
                  crypto.h       \
                  sockdev.h      \
-                 ltdl.h         \
                  herc_getopt.h  \
                  service.h      \
                  chsc.h         \
diff --git a/bootstrap.c b/bootstrap.c
index 476fb07..edbc68c 100644
--- a/bootstrap.c
+++ b/bootstrap.c
@@ -11,7 +11,7 @@
 #include "hstdinc.h"
 #include "hercules.h"
 #if defined(HDL_USE_LIBTOOL)
-#include "ltdl.h"
+#include <ltdl.h>
 #endif
 
 #if !defined( _MSVC_ )
diff --git a/configure.ac b/configure.ac
index bd1e385..1f18dde 100644
--- a/configure.ac
+++ b/configure.ac
@@ -44,151 +44,8 @@ modexecdir='$(libdir)/$(PACKAGE)'
 AC_SUBST(modexecdir)
 
 
-# -----------------------------------------------------------------------------
-#
-#  AC_LIBTOOL_DLOPEN
-#
-#       Enable checking for dlopen support. This macro should be used if the
-#       package makes use of the '-dlopen' and '-dlpreopen' flags, otherwise
-#       libtool will assume that the system does not support dlopening. The
-#       macro must be called before AC_PROG_LIBTOOL.
-#
-# -----------------------------------------------------------------------------
-
-AC_LIBTOOL_DLOPEN()                     # (we need libtool's dlopen support)
-
-
-# -----------------------------------------------------------------------------
-#
-#  AC_LIBTOOL_WIN32_DLL
-#
-#       This macro should be used if the package has been ported to build
-#       clean dlls on win32 platforms. Usually this means that any library
-#       data items are exported with __declspec(dllexport) and imported with
-#       __declspec(dllimport). If this macro is not used, libtool will assume
-#       that the package libraries are not dll clean and will build only static
-#       libraries on win32 hosts.
-#
-#       This macro must be called before AC_PROG_LIBTOOL, and provision must
-#       be made to pass '-no-undefined' to libtool in link mode from the package
-#       Makefile. Naturally, if you pass '-no-undefined', you must ensure that
-#       all the library symbols really are defined at link time!
-#
-# -----------------------------------------------------------------------------
-
-AC_LIBTOOL_WIN32_DLL()                  # (we need Win32 support in libtool)
-
-
-# -----------------------------------------------------------------------------
-#  See: 'AC_PROG_LIBTOOL' below.
-# -----------------------------------------------------------------------------
-
-AC_DISABLE_STATIC()                     # (forces libtool to build shared
-
-                                        #  libraries instead of static ones)
-# -----------------------------------------------------------------------------
-#  AC_PROG_LIBTOOL
-#
-#       Add support for the '--enable-shared' and '--disable-shared'
-#       configure flags. By default, this macro turns on shared libraries
-#       if they are available, and also enables static libraries if they
-#       don't conflict with the shared libraries. You can modify these
-#       defaults by calling either the AC_DISABLE_SHARED or AC_DISABLE_STATIC
-#       macros.
-#
-#       Hercules REQUIRES shared libraries (i.e. DLLs), so we do indeed use
-#       the AC_DISABLE_STATIC macro above.
-#
-# -----------------------------------------------------------------------------
-
-AC_PROG_LIBTOOL()                       # (we build libtool for ourselves)
-
-
-# -----------------------------------------------------------------------------
-#
-#  AC_LIB_LTDL
-#
-#       Even though libltdl is installed together with libtool, you may wish
-#       to include libltdl in the distribution of your package, for the convenience
-#       of users of your package that don't have libtool or libltdl installed.
-#
-#       The most simplistic way to add libltdl to your package is to copy the
-#       source files, 'ltdl.c' and 'ltdl.h', to a source directory withing your
-#       package and to build and link them along with the rest of your sources.
-#
-#       To do this, you must add a call to the 'AC_LIB_LTDL' macro to your package's
-#       'configure.in' to perform the required configure time checks in order that
-#       'ltdl.o' is built correctly.
-#
-#       This method does have its problems though: if you try to link the package
-#       binaries with an installed libltdl, or a library which depends on libltdl,
-#       you may have problems with duplicate symbol definitions.
-#
-#       In order to enable this flavor of libltdl, you should add the line
-#       'AC_LIBLTDL_CONVENIENCE' to your `configure.in', before 'AC_PROG_LIBTOOL'.
-#
-#       In order to select the installable version of libltdl, you should add a
-#       call of the macro 'AC_LIBLTDL_INSTALLABLE' to your 'configure.in' before
-#       'AC_PROG_LIBTOOL'. This macro will check whether libltdl is already
-#       installed and, if not, request the libltdl embedded in your package to be
-#       built and installed.
-#
-#       Whatever macro you use, it is up to you to ensure that your 'configure.in'
-#       will configure libltdl, using 'AC_CONFIG_SUBDIRS', and that your 'Makefile's
-#       will start sub-makes within libltdl's directory, using automake's SUBDIRS,
-#       for example. Both macros define the shell variables LIBLTDL, to the link flag
-#       that you should use to link with libltdl, and LTDLINCL, to the preprocessor
-#       flag that you should use to compile with programs that include 'ltdl.h'. It
-#       is up to you to use 'AC_SUBST' to ensure that this variable will be available
-#       in 'Makefile's, or add them to variables that are 'AC_SUBST'ed by default,
-#       such as LIBS and CPPFLAGS.
-#
-#       So, when you want to link a program with libltdl, be it a convenience,
-#       installed or installable library, just compile with '$(LTDLINCL)' and link
-#       it with '$(LIBLTDL)', using libtool.
-#
-#       You should probably also add 'AC_LIBTOOL_DLOPEN' to your 'configure.in' before
-#       'AC_PROG_LIBTOOL', otherwise libtool will assume no dlopening mechanism is
-#       supported, and revert to dlpreopening, which is probably not what you want.
-#
-#       The following example shows you how to embed the convenience libltdl
-#       in your package. In order to use the installable variant just replace
-#       'AC_LIBLTDL_CONVENIENCE' with 'AC_LIBLTDL_INSTALLABLE'. We assume that libltdl
-#       was embedded using 'libtoolize --ltdl':
-#
-#           configure.in:
-#
-#               ...
-#               dnl Enable building of the convenience library
-#               dnl and set LIBLTDL accordingly
-#               AC_LIBLTDL_CONVENIENCE
-#               dnl Substitute LTDLINCL and LIBLTDL in the Makefiles
-#               AC_SUBST(LTDLINCL)
-#               AC_SUBST(LIBLTDL)
-#               dnl Check for dlopen support
-#               AC_LIBTOOL_DLOPEN
-#               dnl Configure libtool
-#               AC_PROG_LIBTOOL
-#               dnl Configure libltdl
-#               AC_CONFIG_SUBDIRS(libltdl)
-#               ...
-#
-#           Makefile.am:
-#
-#               ...
-#               SUBDIRS = libltdl
-#
-#               INCLUDES = $(LTDLINCL)
-#
-#               myprog_LDFLAGS = -export-dynamic
-#               # The quotes around -dlopen below fool automake <= 1.4 into accepting it
-#               myprog_LDADD = $(LIBLTDL) "-dlopen" self "-dlopen" foo1.la
-#               myprog_DEPENDENCIES = $(LIBLTDL) foo1.la
-#               ...
-#
-# -----------------------------------------------------------------------------
-
-AC_LIB_LTDL()                           # (we need the ltdl libtool library)
+LT_INIT([dlopen win32-dll disable-static])
+LTDL_INIT([])
 AC_SUBST([LIBTOOL_DEPS])                # (see PROGRAMMING NOTE above)
 
 
diff --git a/decNumber/Makefile.am b/decNumber/Makefile.am
index 3c20bdd..fd3149f 100644
--- a/decNumber/Makefile.am
+++ b/decNumber/Makefile.am
@@ -37,13 +37,11 @@ else
 endif
 
 if OPTION_DYNAMIC_LOAD
-  LTDL  	 = ../ltdl.c
   LIB_LD_FLAGS    = -export-dynamic  \
 		   $(XSTATIC)       \
 		   -no-undefined    \
 		   -avoid-version
 else
-  LTDL  	 =
   LIB_LD_FLAGS    = $(XSTATIC)    \
 		   -no-undefined \
 		   -avoid-version
diff --git a/hdl.h b/hdl.h
index 656e831..08b005a 100644
--- a/hdl.h
+++ b/hdl.h
@@ -157,7 +157,7 @@ typedef struct _DLLENT {                /* DLL entry                 */
   #elif defined(_MSVC_)
     #define HDL_MODULE_SUFFIX   ".dll"
   #else
-    #define HDL_MODULE_SUFFIX   ".la"
+    #define HDL_MODULE_SUFFIX   ".so"
   #endif
 #endif
 
diff --git a/herclin.c b/herclin.c
index a4b0494..1f935aa 100644
--- a/herclin.c
+++ b/herclin.c
@@ -26,7 +26,7 @@
 /* This must be included if HDL uses the   */
 /* libtool ltdl convenience library        */
 
-#include "ltdl.h"
+#include <ltdl.h>
 #endif
 
 
-- 
1.8.1.4


From 1190a8f19ebdc6a5281cc56b5a35147c7262f31c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Fri, 31 May 2013 19:50:36 +0200
Subject: [PATCH 2/2] add manual page for hercules

---
 man/Makefile.am |  2 +-
 man/hercules.1  | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 man/hercules.1

diff --git a/man/Makefile.am b/man/Makefile.am
index 324d87e..7822826 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -1,4 +1,4 @@
-man_MANS = cckddiag.1 cckd.4 dasdseq.1
+man_MANS = cckddiag.1 cckd.4 dasdseq.1 hercules.1
 
 EXTRA_DIST = $(man_MANS)
 
diff --git a/man/hercules.1 b/man/hercules.1
new file mode 100644
index 0000000..a0f2028
--- /dev/null
+++ b/man/hercules.1
@@ -0,0 +1,74 @@
+.TH HERCULES 1 "May 2013" "Hercules Version 3.08.2" "User Commands"
+.SH NAME
+\fBHercules\fR \- IBM System/370, ESA/390, and z/Architecture Emulator
+.SH SYNOPSIS
+.B hercules
+[\fB\-f\fR \fIconfig\-filename\fR]
+[\fB\-d\fR]
+[\fB\-b\fR \fIlogo\-filename\fR]
+[\fB\-p\fR \fIdyn\-load\-dir\fR] [[\fB\-l\fR \fIdynmod\-to\-load\fR]...]
+[> \fIlogfile\fR]
+.SH DESCRIPTION
+\fBHercules\fR is a software implementation of the System/370, ESA/390 and
+z/Architecture mainframe architectures.
+
+It means that your PC can emulate an IBM mainframe processor. The mainframe
+can range from a System/360 to a z10 - running in "S/370" mode, "ESA/390"
+mode, or "z/Architecture" mode.
+
+\fBHercules\fR executes S/370, ESA/390, and z/Architecture instructions and channel
+programs. It emulates mainframe I/O devices by using PC devices. For example,
+3390 DASD devices are emulated by large files on your hard disk, and local 3270
+screens are emulated by tn3270 sessions. (Note: Not all 370 and 390 features
+have been implemented in \fBHercules\fR. Also, certain non-standard models, 360/20s,
+and the 360/67 virtual memory mode are not emulated.)
+
+\fBHercules\fR implements only the raw S/370, ESA/390, and z/Architecture instruction
+set; it does not provide any operating system facilities. This means that you
+need to provide an operating system or standalone program which \fBHercules\fR can
+load from an emulated disk or tape device. You will have to write the operating
+system or standalone program yourself, unless you can manage to obtain
+a license from IBM to run one of their operating systems on your PC, or use
+IBM programs and operating systems which have been placed in the public domain.
+.SH OPTIONS
+.TP
+\fB\-f\fR \fIconfig\-filename\fR
+Sets the name of the configuration file. The default, if none is specified, is
+\fBhercules.cnf\fR. The default may be overridden via the \fBHERCULES_CNF\fR
+environment variable.
+.TP
+\fB\-d\fR
+Specifies that Hercules is to be run in 'daemon' mode, wherein it runs invisibly
+with no attached console. 
+.TP
+\fB\-b\fR \fIlogo\-filename\fR
+Sets the name of the file containg the screen logo that's presented when a 3270
+terminal connects. When not specified the default \fBherclogo.txt\fR file is
+looked for and when not found the built-in logo is used.
+.TP
+\fB\-p\fR \fIdyn\-load\-dir\fR
+Sets the directory from which dynamic modules are to be loaded. The default depends
+on the host platform on which Hercules is being run. This option overrides the default.
+.TP
+\fB\-l\fR \fIdynmod\-to\-load\fR
+Sets the name of an additional dynamic module to be loaded at startup. More than one
+additional module may be specified, although each must be preceded with the \fB-l\fR
+option specifier.
+.TP
+\fIlogfile\fR
+Sets an optional log file which will receive a copy of all messages displayed
+on the control panel 
+.SH FILES
+.B hercules.cnf
+.SH ENVIRONMENT
+.B HERCULES_CNF
+.SH AUTHORS
+\fBHercules\fR was created by Roger Bowler. Jay Maynard (“the Tron Guy”) was the maintainer
+from 2000 to 2012. Jan Jaeger designed and implemented many of the advanced features
+of \fBHercules\fR, including dynamic reconfiguration, integrated console, interpretive
+execution and z/Architecture support. A dedicated crew of programmers is constantly
+at work implementing new features and fixing bugs.
+
+This manual page was written by Dan Horák using text snippets from the \fBHercules\fR web site.
+.SH SEE ALSO
+\fBHercules\fR Homepage: \fBhttp://www.hercules-s390.eu\fR
-- 
1.8.1.4