Browse Source

os400: move build configuration parameters to a separate script

They can then easily be overriden in a script named "config400.override"
that is not part of the distribution.

Closes #11547
Patrick Monnerat 9 months ago
parent
commit
45a2502d51
4 changed files with 68 additions and 42 deletions
  1. 1 0
      packages/Makefile.am
  2. 10 8
      packages/OS400/README.OS400
  3. 52 0
      packages/OS400/config400.default
  4. 5 34
      packages/OS400/initscript.sh

+ 1 - 0
packages/Makefile.am

@@ -32,6 +32,7 @@ EXTRA_DIST = README.md \
   OS400/curlmain.c \
   OS400/curl.inc.in \
   OS400/initscript.sh \
+  OS400/config400.default \
   OS400/make-include.sh \
   OS400/make-lib.sh \
   OS400/make-src.sh \

+ 10 - 8
packages/OS400/README.OS400

@@ -275,9 +275,11 @@ _ Install the curl source directory in IFS. Do NOT install it in the
 _ Enter Qshell (QSH, not PASE)
 _ Change current directory to the curl installation directory
 _ Change current directory to ./packages/OS400
-_ Edit file iniscript.sh. You may want to change tunable configuration
-  parameters, like debug info generation, optimization level, listing option,
-  target library, ZLIB/LIBSSH2 availability and location, etc.
+- If you want to change the default configuration parameters like debug info
+  generation, optimization level, listing option, target library, ZLIB/LIBSSH2
+  availability and location, etc., copy file config400.default to
+  config400.override and edit the latter. Do not edit the original default file
+  as it might be overwritten by a subsequent source installation.
 _ Copy any file in the current directory to makelog (i.e.:
   cp initscript.sh makelog): this is intended to create the makelog file with
   an ASCII CCSID!
@@ -285,8 +287,8 @@ _ Enter the command "sh makefile.sh > makelog 2>&1"
 _ Examine the makelog file to check for compilation errors. CZM0383 warnings on
   C or system standard API come from QADRT inlining and can safely be ignored.
 
-  Leaving file initscript.sh unchanged, this will produce the following OS/400
-objects:
+  Without configuration parameters override, this will produce the following
+OS/400 objects:
 _ Library CURL. All other objects will be stored in this library.
 _ Modules for all libcurl units.
 _ Binding directory CURL_A, to be used at calling program link time for
@@ -297,6 +299,8 @@ _ Service program CURL.<soname>, where <soname> is extracted from the
   when this program has dynamically bound curl at link time.
 _ Binding directory CURL. To be used to dynamically bind libcurl when linking a
   calling program.
+- CLI tool bound program CURL.
+- CLI command CURL.
 _ Source file H. It contains all the include members needed to compile a C/C++
   module using libcurl, and an ILE/RPG /copy member for support in this
   language.
@@ -305,11 +309,9 @@ _ CCSIDCURL member in file H. This defines the non-standard EBCDIC wrappers for
   C and C++.
 _ CURL.INC member in file H. This defines everything needed by an ILE/RPG
   program using libcurl.
-_ LIBxxx modules and programs. Although the test environment is not supported
-  on OS/400, the libcurl test programs are compiled for manual tests.
 _ IFS directory /curl/include/curl containing the C header files for IFS source
   C/C++ compilation and curl.inc.rpgle for IFS source ILE/RPG compilation.
-
+- IFS link /curl/bin/curl to CLI tool program.
 
 
 Special programming consideration:

+ 52 - 0
packages/OS400/config400.default

@@ -0,0 +1,52 @@
+#!/bin/sh
+#***************************************************************************
+#                                  _   _ ____  _
+#  Project                     ___| | | |  _ \| |
+#                             / __| | | | |_) | |
+#                            | (__| |_| |  _ <| |___
+#                             \___|\___/|_| \_\_____|
+#
+# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at https://curl.se/docs/copyright.html.
+#
+# You may opt to use, copy, modify, merge, publish, distribute and/or sell
+# copies of the Software, and permit persons to whom the Software is
+# furnished to do so, under the terms of the COPYING file.
+#
+# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+# KIND, either express or implied.
+#
+# SPDX-License-Identifier: curl
+#
+###########################################################################
+
+#                       Tunable configuration parameters.
+
+setenv TARGETLIB        'CURL'                  # Target OS/400 program library.
+setenv STATBNDDIR       'CURL_A'                # Static binding directory.
+setenv DYNBNDDIR        'CURL'                  # Dynamic binding directory.
+setenv SRVPGM           "CURL.${SONAME}"        # Service program.
+setenv TGTCCSID         '500'                   # Target CCSID of objects.
+setenv DEBUG            '*ALL'                  # Debug level.
+setenv OPTIMIZE         '10'                    # Optimization level
+setenv OUTPUT           '*NONE'                 # Compilation output option.
+setenv TGTRLS           '*CURRENT'              # Target OS release.
+setenv IFSDIR           '/curl'                 # Installation IFS directory.
+setenv QADRTDIR         '/QIBM/ProdData/qadrt'  # QADRT IFS directory.
+
+#       Define ZLIB availability and locations.
+
+setenv WITH_ZLIB        0                       # Define to 1 to enable.
+setenv ZLIB_INCLUDE     '/zlib/include'         # ZLIB include IFS directory.
+setenv ZLIB_LIB         'ZLIB'                  # ZLIB library.
+setenv ZLIB_BNDDIR      'ZLIB_A'                # ZLIB binding directory.
+
+#       Define LIBSSH2 availability and locations.
+
+setenv WITH_LIBSSH2     0                       # Define to 1 to enable.
+setenv LIBSSH2_INCLUDE  '/libssh2/include'      # LIBSSH2 include IFS directory.
+setenv LIBSSH2_LIB      'LIBSSH2'               # LIBSSH2 library.
+setenv LIBSSH2_BNDDIR   'LIBSSH2_A'             # LIBSSH2 binding directory.

+ 5 - 34
packages/OS400/initscript.sh

@@ -62,41 +62,12 @@ SONAME=`sed -e '/^VERSIONCHANGE=/!d;s/^.*=\([0-9]*\).*/\1/'             \
                                         < "${TOPDIR}/lib/Makefile.soname"`
 export SONAME
 
+#	Get OS/400 configuration parameters.
 
-################################################################################
-#
-#                       Tunable configuration parameters.
-#
-################################################################################
-
-setenv TARGETLIB        'CURL'                  # Target OS/400 program library.
-setenv STATBNDDIR       'CURL_A'                # Static binding directory.
-setenv DYNBNDDIR        'CURL'                  # Dynamic binding directory.
-setenv SRVPGM           "CURL.${SONAME}"        # Service program.
-setenv TGTCCSID         '500'                   # Target CCSID of objects.
-setenv DEBUG            '*ALL'                  # Debug level.
-setenv OPTIMIZE         '10'                    # Optimization level
-setenv OUTPUT           '*NONE'                 # Compilation output option.
-setenv TGTRLS           '*CURRENT'              # Target OS release.
-setenv IFSDIR           '/curl'                 # Installation IFS directory.
-setenv QADRTDIR         '/QIBM/ProdData/qadrt'  # QADRT IFS directory.
-
-#       Define ZLIB availability and locations.
-
-setenv WITH_ZLIB        0                       # Define to 1 to enable.
-setenv ZLIB_INCLUDE     '/zlib/include'         # ZLIB include IFS directory.
-setenv ZLIB_LIB         'ZLIB'                  # ZLIB library.
-setenv ZLIB_BNDDIR      'ZLIB_A'                # ZLIB binding directory.
-
-#       Define LIBSSH2 availability and locations.
-
-setenv WITH_LIBSSH2     0                       # Define to 1 to enable.
-setenv LIBSSH2_INCLUDE  '/libssh2/include'      # LIBSSH2 include IFS directory.
-setenv LIBSSH2_LIB      'LIBSSH2'               # LIBSSH2 library.
-setenv LIBSSH2_BNDDIR   'LIBSSH2_A'             # LIBSSH2 binding directory.
-
-
-################################################################################
+. "${SCRIPTDIR}/config400.default"
+if [ -f "${SCRIPTDIR}/config400.override" ]
+then	. "${SCRIPTDIR}/config400.override"
+fi
 
 #       Need to get the version definitions.