ICU-1596 treat the ICU data library as any other regular library,

giving it a proper name and versioning scheme, and using rpath as needed too.

X-SVN-Rev: 7366
This commit is contained in:
Yves Arrouye 2001-12-21 20:10:23 +00:00
parent d8facfd734
commit 42b2966822
6 changed files with 21 additions and 23 deletions

View file

@ -142,8 +142,7 @@ binary-arch: build install
#
$(RM) debian/tmp/usr/lib/libicuctestfw.*
dh_movefiles -plibicu$(major) \
usr/lib/*.so.* \
usr/lib/libicudt*
usr/lib/*.so.*
mkdir debian/libicu$(major)/usr/lib/icu
#
# build icu package by moving files from icu-dev

View file

@ -28,7 +28,7 @@ include @platform_make_fragment@
## Files to remove for 'make clean'
ifeq ($(strip $(PKGDATA_MODE)), dll)
CLEANFILES = *~ $(SPECIALTESTDATA) $(LIB_ICUDATA_NAME).$(SO) libicudata.$(SO)
CLEANFILES = *~ $(SPECIALTESTDATA) $(LIB_ICUDATA_NAME).$(SO)
else
CLEANFILES = *~ $(SPECIALTESTDATA)
endif
@ -45,7 +45,7 @@ top_builddir_from_tmp = $(patsubst ..%,../..%,$(top_builddir))
INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(top_builddir_from_tmp)/common:$(top_builddir_from_tmp)/tools/toolutil:$(top_builddir_from_tmp)/stubdata:$$$(LDLIBRARYPATH_ENVVAR)
CURDIR=$(shell pwd)
PKGDATA = $(top_builddir_from_tmp)/tools/pkgdata/pkgdata -O $(top_builddir_from_tmp)/tools/pkgdata/icupkg.inc -d $(CURDIR)
PKGDATA_VERSIONING = -V $(SO_TARGET_VERSION)
## List of phony targets
.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls install-convrtrstxt \
@ -110,27 +110,21 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
packagedata: build/icudata.lst $(top_builddir)/tools/pkgdata/icupkg.inc
cd build ; \
$(INVOKE) $(PKGDATA) -e $(ICUDATA_BASENAME_VERSION) -s . -T . -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) icudata.lst
ifeq ($(strip $(PKGDATA_MODE)), dll)
$(RM) libicudata.$(SO) && ln -s $(LIB_ICUDATA_NAME).$(SO) libicudata.$(SO) ;
endif
$(INVOKE) $(PKGDATA) -e $(ICUDATA_BASENAME_VERSION) -s . -T . -p $(ICUDATA_NAME) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) icudata.lst
packagetest: $(TESTDATAOBJDIR)/testdata.lst $(top_builddir)/tools/pkgdata/icupkg.inc
cd $(TESTDATAOBJDIR) ; $(INVOKE) $(PKGDATA) -T . -s . -p testdata -m common testdata.lst
cleanpackage:
@echo Cleaning up packaged data..
@-cd build ; $(INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) -s . -T . -p $(ICUDATA_NAME) icudata.lst --clean 2> /dev/null
@-cd build ; $(INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -s . -T . -p $(ICUDATA_NAME) icudata.lst --clean 2> /dev/null
@-cd $(TESTDATAOBJDIR) ; $(INVOKE) $(PKGDATA) -m common -T . -s . -p testdata testdata.lst --clean 2> /dev/null
$(RMV) $(ICUDATA_NAME).* build/icudata.lst build/*.mak
## Install ICU data. Make a convenience link 'icudata' library if it's a library mode.
install-local: build/icudata.lst $(top_builddir)/tools/pkgdata/icupkg.inc install-convrtrstxt $(OS390INSTALL)
$(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(ICUPKGDATA_DIR)
cd build ; $(INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) -e $(ICUDATA_BASENAME_VERSION) -T . -s . -p $(ICUDATA_NAME) icudata.lst -I $(DESTDIR)$(ICUPKGDATA_DIR)
ifeq ($(strip $(PKGDATA_MODE)),dll)
cd $(DESTDIR)$(ICUPKGDATA_DIR); $(RM) libicudata.$(SO) && ln -s $(LIB_ICUDATA_NAME).$(SO) libicudata.$(SO)
endif
cd build ; $(INVOKE) $(PKGDATA) -m $(PKGDATA_MODE) $(PKGDATA_VERSIONING) -e $(ICUDATA_BASENAME_VERSION) -T . -s . -p $(ICUDATA_NAME) icudata.lst -I $(DESTDIR)$(ICUPKGDATA_DIR)
install-convrtrstxt: $(top_srcdir)/../data/convrtrs.txt
$(MKINSTALLDIRS) $(DESTDIR)$(pkgsysconfdir)
@ -150,7 +144,7 @@ testudata_nam.typ: build/te_IN.res
#### 390 support
install390: build/icudata390.lst $(top_builddir)/tools/pkgdata/icupkg.inc
$(MKINSTALLDIRS) $(TMPDATADIR) $(DESTDIR)$(libdir)
cd build ; $(INVOKE) $(PKGDATA) -s . -T ../tmp3901 -p $(ICUDATA_NAME)$(BATCH_STUB_SUFFIX) -e $(ICUDATA_BASENAME_VERSION) icudata390.lst -m dll -I $(DESTDIR)$(ICUPKGDATA_DIR)
cd build ; $(INVOKE) $(PKGDATA) -s . -T ../tmp3901 -p $(ICUDATA_NAME)$(BATCH_STUB_SUFFIX) -e $(ICUDATA_BASENAME_VERSION) icudata390.lst -m dll $(PKGDATA_VERSIONING) -I $(DESTDIR)$(ICUPKGDATA_DIR)
#### $(LIB_ICUDATA_NAME)$(BATCH_SUFFIX) is the subset data for batch mode
package390: build/icudata390.lst build/icudata.lst $(top_builddir)/tools/pkgdata/icupkg.inc

View file

@ -35,13 +35,19 @@ UNICODE_VERSION = @UNICODE_VERSION@
SO_TARGET_VERSION = @LIB_VERSION@
SO_TARGET_VERSION_MAJOR = @LIB_VERSION_MAJOR@
# Should be the same as U_ICUDATA_NAME
# The ICU data external name is usually icudata; the entry point name is
# the version-dependent name (for no particula reason except it was easier
# to change the build this way). When building in common mode, the data
# name is the versioned platform-dependent one.
ICUDATA_BASENAME_VERSION = icudt@LIB_VERSION_MAJOR@
ICUDATA_NAME = $(ICUDATA_BASENAME_VERSION)@ICUDATA_CHAR@
ICUDATA_PLATFORM_NAME = $(ICUDATA_BASENAME_VERSION)@ICUDATA_CHAR@
ICUDATA_NAME = icudata
ifeq ($(strip $(PKGDATA_MODE)),)
PKGDATA_MODE=@DATA_PACKAGING_MODE@
endif
ifeq ($(PKGDATA_MODE),common)
ICUDATA_NAME = $(ICUDATA_PLATFORM_NAME)
ICUDATA_DIR = $(pkgdatadir)
ICUPKGDATA_DIR = $(ICUDATA_DIR)
else

View file

@ -48,8 +48,8 @@ endif
#
ifneq ($(ENABLE_SHARED),)
SO_TARGET = libicudata.$(SO)
MIDDLE_SO_TARGET = lib$(ICUDATA_NAME)$(BATCH_STUB_SUFFIX).$(SO)
ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(BATCH_STUB_TARGET)
MIDDLE_SO_TARGET = libicudata$(BATCH_STUB_SUFFIX).$(SO).$(SO_TARGET_VERSION_MAJOR)
ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET) $(BATCH_STUB_TARGET)
endif
ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS)
@ -129,11 +129,9 @@ $(TARGET): $(TARGET)($(STATIC_OBJECTS))
endif
ifneq ($(ENABLE_SHARED),)
$(MIDDLE_SO_TARGET): $(OBJECTS)
$(FINAL_SO_TARGET): $(OBJECTS)
$(SHLIB.c) $(LD_SONAME) -o $@ $^ $(LIBS)
$(SO_TARGET): $(MIDDLE_SO_TARGET)
$(RM) $(SO_TARGET) && ln -s $(MIDDLE_SO_TARGET) $(SO_TARGET)
ifeq ($(OS390BATCH),1)
$(BATCH_STUB_TARGET): $(OBJECTS)
$(SHLIB.c) $(LD_SONAME) -o $@ $^ $(LIBS)

View file

@ -40,7 +40,7 @@ BUILDDIR := $(shell pwd)/../..
# we define ICU_UNICODE_VERSION so we can test it
CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw -I$(top_srcdir)/tools/toolutil \
-DICU_UNICODE_VERSION=\"$(UNICODE_VERSION)\" -DICU_VERSION=\"@VERSION@\" -DICUDATA_NAME=\"$(ICUDATA_NAME)\" -DU_TOPSRCDIR=\"$(top_srcdir)/\" -DU_TOPBUILDDIR=\"$(BUILDDIR)\"
-DICU_UNICODE_VERSION=\"$(UNICODE_VERSION)\" -DICU_VERSION=\"@VERSION@\" -DICUDATA_NAME=\"$(ICUDATA_PLATFORM_NAME)\" -DU_TOPSRCDIR=\"$(top_srcdir)/\" -DU_TOPBUILDDIR=\"$(BUILDDIR)\"
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
ENABLE_RPATH = @ENABLE_RPATH@

View file

@ -39,6 +39,7 @@ DATABUILDDIR=$(OBJDATADIR)
top_builddir_from_tmp = $(patsubst ..%,../..%,$(top_builddir))
INVOKE = $(LDLIBRARYPATH_ENVVAR)=$(top_builddir_from_tmp)/common:$(top_builddir_from_tmp)/tools/toolutil:$$$(LDLIBRARYPATH_ENVVAR)
PKGDATA = ../pkgdata/pkgdata -T . -s $(DATABUILDDIR) -O ./icupkg.inc -d $(DATABUILDDIR)
PKGDATA_VERSIONING = -V $(SO_TARGET_VERSION)
## Install program information
MKINSTALLDIRS = $(SHELL) $(top_srcdir)/mkinstalldirs
@ -151,7 +152,7 @@ clean-local: clean-pkgdata
$(RMV) $(DATAFILES)
$(RMV) icupkg.inc
-@if [ -f $(TMPDATADIR)/$(ICUDATA_NAME)_dll.mak ]; then \
(cd pkgdata ; $(INVOKE) ./pkgdata -T $(TMPDATADIR) -m dll -p $(ICUDATA_NAME) -O $(DATABUILDDIR)/icupkg.inc $(TMPDATADIR)/$(ICUDATA_NAME).lst -d $(DATABUILDDIR) --clean ) \
(cd pkgdata ; $(INVOKE) ./pkgdata -T $(TMPDATADIR) -m dll $(PKGDATA_VERSIONING) -p $(ICUDATA_NAME) -O $(DATABUILDDIR)/icupkg.inc $(TMPDATADIR)/$(ICUDATA_NAME).lst -d $(DATABUILDDIR) --clean ) \
fi
-@if [ -f $(TMPDATADIR)/$(ICUDATA_NAME)_common.mak ]; then \
(cd pkgdata; $(INVOKE) ./pkgdata -T $(TMPDATADIR) -m common -p $(ICUDATA_NAME) -O $(DATABUILDDIR)/icupkg.inc $(TMPDATADIR)/$(ICUDATA_NAME).lst -d $(DATABUILDDIR) --clean ) \