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