mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-10 07:39:16 +00:00
ICU-10711 Update more fixes to zos pds dataset build
X-SVN-Rev: 35251
This commit is contained in:
parent
fcb9a8ed56
commit
fefa024ccc
3 changed files with 76 additions and 33 deletions
|
@ -1,6 +1,6 @@
|
|||
## -*-makefile-*-
|
||||
## os/390, z/OS specific setup
|
||||
## Copyright (c) 1999-2013, International Business Machines Corporation and
|
||||
## Copyright (c) 1999-2014, International Business Machines Corporation and
|
||||
## others. All Rights Reserved.
|
||||
|
||||
###################################################################
|
||||
|
@ -42,9 +42,9 @@ IEEE390=1#M#
|
|||
endif
|
||||
|
||||
ifeq (${IEEE390}, 1)
|
||||
ICU_IEEE =#M#
|
||||
else
|
||||
ICU_IEEE = -Wc,'FLOAT(IEEE)' -DIEEE_754=0#M#
|
||||
else
|
||||
ICU_IEEE =#M#
|
||||
endif
|
||||
|
||||
## Additional flags when building libraries and with threads
|
||||
|
@ -137,30 +137,37 @@ DEFS += -DOS390_STUBDATA -DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)
|
|||
endif
|
||||
|
||||
ifeq ($(OS390BATCH),1)
|
||||
## PDS_NAME_PREFIX sets the prefix of the PDS dataset name while keeping the ICU version number.
|
||||
## To use custom names set ICU_PDS_NAME and ICU_PDS_NAME_SUFFIX
|
||||
## IXM is used as a name prefix for XML Toolkit, default value
|
||||
ifeq ($(PDS_NAME_PREFIX),)
|
||||
PDS_NAME_PREFIX= IXMI
|
||||
endif
|
||||
ifeq ($(OS390_STUBDATA),1)
|
||||
BATCH_STUB_TARGET= "//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}D1)'"
|
||||
BATCH_LIBICUDT= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}D1)'"
|
||||
ifeq ($(ICU_PDS_NAME),)
|
||||
PDS_FULL_NAME=${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}
|
||||
else
|
||||
BATCH_STUB_TARGET= "//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}DA)'"
|
||||
BATCH_LIBICUDT= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}DA)'"
|
||||
PDS_FULL_NAME=${ICU_PDS_NAME}
|
||||
endif
|
||||
ifeq ($(OS390_STUBDATA),1)
|
||||
BATCH_STUB_TARGET= "//'${LOADMOD}(${PDS_FULL_NAME}D1${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LIBICUDT= "//'${LOADEXP}(${PDS_FULL_NAME}D1${ICU_PDS_NAME_SUFFIX})'"
|
||||
else
|
||||
BATCH_STUB_TARGET= "//'${LOADMOD}(${PDS_FULL_NAME}DA${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LIBICUDT= "//'${LOADEXP}(${PDS_FULL_NAME}DA${ICU_PDS_NAME_SUFFIX})'"
|
||||
PKGDATA_DEFS += -DU_LIBICUDATA_NAME=\"$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)\"
|
||||
endif
|
||||
|
||||
BATCH_COMMON_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}UC)'"
|
||||
BATCH_I18N_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IN)'"
|
||||
BATCH_IO_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IO)'"
|
||||
BATCH_LAYOUT_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LE)'"
|
||||
BATCH_LAYOUTEX_TARGET="//'${LOADMOD}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LX)'"
|
||||
BATCH_COMMON_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}UC${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_I18N_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}IN${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_IO_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}IO${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LAYOUT_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}LE${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LAYOUTEX_TARGET="//'${LOADMOD}(${PDS_FULL_NAME}LX${ICU_PDS_NAME_SUFFIX})'"
|
||||
|
||||
BATCH_LIBICUUC= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}UC)'"
|
||||
BATCH_LIBICUI18N= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IN)'"
|
||||
BATCH_LIBICUIO= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}IO)'"
|
||||
BATCH_LIBICULE= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LE)'"
|
||||
BATCH_LIBICULX= "//'${LOADEXP}(${PDS_NAME_PREFIX}${SO_TARGET_VERSION_MAJOR}LX)'"
|
||||
BATCH_LIBICUUC= "//'${LOADEXP}(${PDS_FULL_NAME}UC${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LIBICUI18N= "//'${LOADEXP}(${PDS_FULL_NAME}IN${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LIBICUIO= "//'${LOADEXP}(${PDS_FULL_NAME}IO${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LIBICULE= "//'${LOADEXP}(${PDS_FULL_NAME}LE${ICU_PDS_NAME_SUFFIX})'"
|
||||
BATCH_LIBICULX= "//'${LOADEXP}(${PDS_FULL_NAME}LX${ICU_PDS_NAME_SUFFIX})'"
|
||||
endif
|
||||
|
||||
|
||||
|
|
|
@ -44,7 +44,11 @@ CURDIR:=$(CURR_FULL_DIR)
|
|||
ifeq ($(CURDIR),)
|
||||
CURDIR=.
|
||||
endif
|
||||
ifeq ($(OS390BATCH),1)
|
||||
PKGDATA = $(TOOLBINDIR)/pkgdata $(PKGDATA_OPTS) -z -q -c -s $(CURDIR)/out/build/$(ICUDATA_PLATFORM_NAME) -d $(ICUPKGDATA_OUTDIR)
|
||||
else
|
||||
PKGDATA = $(TOOLBINDIR)/pkgdata $(PKGDATA_OPTS) -q -c -s $(CURDIR)/out/build/$(ICUDATA_PLATFORM_NAME) -d $(ICUPKGDATA_OUTDIR)
|
||||
endif
|
||||
OS390_PDS_NAME = -z -L $(BATCH_STUB_TARGET)
|
||||
|
||||
ifeq ($(OS390_STUBDATA),1)
|
||||
|
@ -180,11 +184,7 @@ ifeq ($(PKGDATA_MODE),dll)
|
|||
endif
|
||||
endif
|
||||
ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
|
||||
ifeq ($(OS390BATCH),1)
|
||||
$(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) -z $(PKGDATA_LIST)
|
||||
else
|
||||
$(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) $(PKGDATA_LIBNAME) $(PKGDATA_LIST)
|
||||
endif
|
||||
else
|
||||
$(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
|
||||
endif
|
||||
|
|
|
@ -378,7 +378,13 @@ main(int argc, char* argv[]) {
|
|||
}
|
||||
|
||||
if(options[PDS_BUILD].doesOccur) {
|
||||
#if U_PLATFORM == U_PF_OS390
|
||||
o.pdsbuild = TRUE;
|
||||
#else
|
||||
o.pdsbuild = FALSE;
|
||||
fprintf(stdout, "Warning: You are using the -z option which only works on z/OS.\n");
|
||||
|
||||
#endif
|
||||
} else {
|
||||
o.pdsbuild = FALSE;
|
||||
}
|
||||
|
@ -650,7 +656,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) {
|
|||
/* Using the base libName and version number, generate the library file names. */
|
||||
createFileNames(o, mode, version_major, o->version == NULL ? "" : o->version, o->libName, reverseExt, noVersion);
|
||||
|
||||
if ((o->version!=NULL || IN_STATIC_MODE(mode)) && o->rebuild == FALSE) {
|
||||
if ((o->version!=NULL || IN_STATIC_MODE(mode)) && o->rebuild == FALSE && o->pdsbuild == FALSE) {
|
||||
/* Check to see if a previous built data library file exists and check if it is the latest. */
|
||||
sprintf(checkLibFile, "%s%s", targetDir, libFileNames[LIB_FILE_VERSION]);
|
||||
if (T_FileStream_file_exists(checkLibFile)) {
|
||||
|
@ -1380,22 +1386,52 @@ static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, c
|
|||
result = runCommand(cmd);
|
||||
|
||||
#if U_PLATFORM == U_PF_OS390
|
||||
char *env_tmp;
|
||||
char PDS_LibName[512];
|
||||
char PDS_Name[512];
|
||||
|
||||
PDS_Name[0] = 0;
|
||||
PDS_LibName[0] = 0;
|
||||
if (specialHandling && uprv_strcmp(libFileNames[LIB_FILE],"libicudata") == 0) {
|
||||
sprintf(PDS_LibName,"%s%s%s",
|
||||
"\"//'",
|
||||
getenv("LOADMOD"),
|
||||
"(IXMI" U_ICU_VERSION_SHORT "DA)'\"");
|
||||
if (env_tmp = getenv("ICU_PDS_NAME")) {
|
||||
sprintf(PDS_Name, "%s%s",
|
||||
env_tmp,
|
||||
"DA");
|
||||
strcat(PDS_Name, getenv("ICU_PDS_NAME_SUFFIX"));
|
||||
} else if (env_tmp = getenv("PDS_NAME_PREFIX")) {
|
||||
sprintf(PDS_Name, "%s%s",
|
||||
env_tmp,
|
||||
U_ICU_VERSION_SHORT "DA");
|
||||
} else {
|
||||
sprintf(PDS_Name, "%s%s",
|
||||
"IXMI",
|
||||
U_ICU_VERSION_SHORT "DA");
|
||||
}
|
||||
} else if (!specialHandling && uprv_strcmp(libFileNames[LIB_FILE],"libicudata_stub") == 0) {
|
||||
sprintf(PDS_LibName,"%s%s%s",
|
||||
"\"//'",
|
||||
getenv("LOADMOD"),
|
||||
"(IXMI" U_ICU_VERSION_SHORT "D1)'\"");
|
||||
if (env_tmp = getenv("ICU_PDS_NAME")) {
|
||||
sprintf(PDS_Name, "%s%s",
|
||||
env_tmp,
|
||||
"D1");
|
||||
strcat(PDS_Name, getenv("ICU_PDS_NAME_SUFFIX"));
|
||||
} else if (env_tmp = getenv("PDS_NAME_PREFIX")) {
|
||||
sprintf(PDS_Name, "%s%s",
|
||||
env_tmp,
|
||||
U_ICU_VERSION_SHORT "D1");
|
||||
} else {
|
||||
sprintf(PDS_Name, "%s%s",
|
||||
"IXMI",
|
||||
U_ICU_VERSION_SHORT "D1");
|
||||
}
|
||||
}
|
||||
|
||||
if (PDS_LibName[0]) {
|
||||
sprintf(cmd, "%s %s -o %s %s %s%s %s %s",
|
||||
if (PDS_Name[0]) {
|
||||
sprintf(PDS_LibName,"%s%s%s%s%s",
|
||||
"\"//'",
|
||||
getenv("LOADMOD"),
|
||||
"(",
|
||||
PDS_Name,
|
||||
")'\"");
|
||||
sprintf(cmd, "%s %s -o %s %s %s%s %s %s",
|
||||
pkgDataFlags[GENLIB],
|
||||
pkgDataFlags[LDICUDTFLAGS],
|
||||
PDS_LibName,
|
||||
|
|
Loading…
Add table
Reference in a new issue