* Depending on the configuration, the library name may either end with version number or shared object suffix.
*/
static void createFileNames(UPKGOptions *o, const char mode, const char *version_major, const char *version, const char *libName, UBool reverseExt, UBool noVersion) {
+ const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT]) == 0 ? "" : ".";
+ const char* FILE_SUFFIX = pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "";
+
#if U_PLATFORM == U_PF_MINGW
/* MinGW does not need the library prefix when building in dll mode. */
if (IN_DLL_MODE(mode)) {
#if U_PLATFORM == U_PF_MINGW
sprintf(libFileNames[LIB_FILE_MINGW], "%s%s.lib", pkgDataFlags[LIBPREFIX], libName);
#elif U_PLATFORM == U_PF_CYGWIN
- sprintf(libFileNames[LIB_FILE_CYGWIN], "cyg%s.%s",
+ sprintf(libFileNames[LIB_FILE_CYGWIN], "cyg%s%s%s",
libName,
+ FILE_EXTENSION_SEP,
pkgDataFlags[SO_EXT]);
- sprintf(libFileNames[LIB_FILE_CYGWIN_VERSION], "cyg%s%s.%s",
+ sprintf(libFileNames[LIB_FILE_CYGWIN_VERSION], "cyg%s%s%s%s",
libName,
version_major,
+ FILE_EXTENSION_SEP,
pkgDataFlags[SO_EXT]);
uprv_strcat(pkgDataFlags[SO_EXT], ".");
uprv_strcat(pkgDataFlags[SO_EXT], pkgDataFlags[A_EXT]);
#elif U_PLATFORM == U_PF_OS400 || defined(_AIX)
- sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s.%s",
+ sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s",
libFileNames[LIB_FILE],
+ FILE_EXTENSION_SEP,
pkgDataFlags[SOBJ_EXT]);
#elif U_PLATFORM == U_PF_OS390
- sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s.%s",
+ sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s%s%s",
libFileNames[LIB_FILE],
pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
reverseExt ? version : pkgDataFlags[SOBJ_EXT],
+ FILE_EXTENSION_SEP,
reverseExt ? pkgDataFlags[SOBJ_EXT] : version);
sprintf(libFileNames[LIB_FILE_OS390BATCH_VERSION], "%s%s.x",
if (noVersion && !reverseExt) {
sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s",
libFileNames[LIB_FILE],
- pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
+ FILE_SUFFIX,
pkgDataFlags[SOBJ_EXT]);
} else {
- sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s.%s",
+ sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s%s%s",
libFileNames[LIB_FILE],
- pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
+ FILE_SUFFIX,
reverseExt ? version : pkgDataFlags[SOBJ_EXT],
+ FILE_EXTENSION_SEP,
reverseExt ? pkgDataFlags[SOBJ_EXT] : version);
}
#endif
if (noVersion && !reverseExt) {
sprintf(libFileNames[LIB_FILE_VERSION_MAJOR], "%s%s%s",
libFileNames[LIB_FILE],
- pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
+ FILE_SUFFIX,
pkgDataFlags[SO_EXT]);
sprintf(libFileNames[LIB_FILE_VERSION], "%s%s%s",
libFileNames[LIB_FILE],
- pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
+ FILE_SUFFIX,
pkgDataFlags[SO_EXT]);
} else {
- sprintf(libFileNames[LIB_FILE_VERSION_MAJOR], "%s%s%s.%s",
+ sprintf(libFileNames[LIB_FILE_VERSION_MAJOR], "%s%s%s%s%s",
libFileNames[LIB_FILE],
- pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
+ FILE_SUFFIX,
reverseExt ? version_major : pkgDataFlags[SO_EXT],
+ FILE_EXTENSION_SEP,
reverseExt ? pkgDataFlags[SO_EXT] : version_major);
- sprintf(libFileNames[LIB_FILE_VERSION], "%s%s%s.%s",
+ sprintf(libFileNames[LIB_FILE_VERSION], "%s%s%s%s%s",
libFileNames[LIB_FILE],
- pkgDataFlags[LIB_EXT_ORDER][0] == '.' ? "." : "",
+ FILE_SUFFIX,
reverseExt ? version : pkgDataFlags[SO_EXT],
+ FILE_EXTENSION_SEP,
reverseExt ? pkgDataFlags[SO_EXT] : version);
}
char cmd[LARGE_BUFFER_MAX_SIZE];
char name1[SMALL_BUFFER_MAX_SIZE]; /* symlink file name */
char name2[SMALL_BUFFER_MAX_SIZE]; /* file name to symlink */
+ const char* FILE_EXTENSION_SEP = uprv_strlen(pkgDataFlags[SO_EXT]) == 0 ? "" : ".";
#if !defined(USING_CYGWIN) && U_PLATFORM != U_PF_MINGW
/* No symbolic link to make. */
}
/* Needs to be set here because special handling skips it */
- sprintf(name1, "%s.%s", libFileNames[LIB_FILE], pkgDataFlags[SO_EXT]);
+ sprintf(name1, "%s%s%s", libFileNames[LIB_FILE], FILE_EXTENSION_SEP, pkgDataFlags[SO_EXT]);
sprintf(name2, "%s", libFileNames[LIB_FILE_VERSION]);
#else
goto normal_symlink_mode;
#if U_PLATFORM != U_PF_CYGWIN
normal_symlink_mode:
#endif
- sprintf(name1, "%s.%s", libFileNames[LIB_FILE], pkgDataFlags[SO_EXT]);
+ sprintf(name1, "%s%s%s", libFileNames[LIB_FILE], FILE_EXTENSION_SEP, pkgDataFlags[SO_EXT]);
sprintf(name2, "%s", libFileNames[LIB_FILE_VERSION]);
}