Skip to content

Commit d390758

Browse files
committed
ICU-6981 pkg-config (closing out old merge)
X-SVN-Rev: 28551
1 parent d6213d7 commit d390758

File tree

4 files changed

+83
-30
lines changed

4 files changed

+83
-30
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ icu4c/source/config.cache
3535
icu4c/source/config.log
3636
icu4c/source/config.status
3737
icu4c/source/config/Makefile.inc
38+
icu4c/source/config/icu-*.pc
3839
icu4c/source/config/icu-config
3940
icu4c/source/config/icu-config.1
4041
icu4c/source/config/icu.pc

icu4c/source/Makefile.in

+45-7
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,11 @@ DOCZIP = icu-docs.zip
4242
## Files to remove for 'make clean'
4343
CLEANFILES = *~
4444

45+
ALL_PKGCONFIG_SUFFIX=uc i18n io le lx
46+
ALL_PKGCONFIG_FILES=$(ALL_PKGCONFIG_SUFFIX:%=$(top_builddir)/config/icu-%.pc)
47+
4548
## Files built (autoconfed) and installed
46-
INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/pkgdata.inc $(top_builddir)/config/icu-config @platform_make_fragment@ $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%) $(top_builddir)/config/icu.pc.out $(top_builddir)/config/icu.pc
49+
INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/pkgdata.inc $(top_builddir)/config/icu-config @platform_make_fragment@ $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%) $(ALL_PKGCONFIG_FILES)
4750

4851
## Files built (autoconfed) but not installed
4952
LOCAL_BUILT_FILES = icudefs.mk config/icucross.mk
@@ -145,7 +148,7 @@ install-icu: $(INSTALLED_BUILT_FILES)
145148
$(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs
146149
$(INSTALL_SCRIPT) $(top_srcdir)/install-sh $(DESTDIR)$(pkgdatadir)/install-sh
147150
@$(MKINSTALLDIRS) $(DESTDIR)$(libdir)/pkgconfig
148-
$(INSTALL_DATA) $(top_builddir)/config/icu.pc.out $(DESTDIR)$(libdir)/pkgconfig/icu.pc
151+
$(INSTALL_DATA) $(ALL_PKGCONFIG_FILES) $(DESTDIR)$(libdir)/pkgconfig/
149152
$(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html
150153
$(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
151154
$(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
@@ -176,10 +179,11 @@ clean-local:
176179
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
177180
-$(RMV) "test-*.xml"
178181
-$(RMV) "perf-*.xml"
182+
-$(RMV) $(ALL_PKGCONFIG_FILES)
179183
$(RMV) Doxyfile doc $(DOCZIP)
180184

181185
distclean-local: clean-local
182-
$(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/pkgdata.inc $(top_builddir)/config/icu-config $(top_builddir)/config/icu.pc $(top_builddir)/config/icu.pc.out
186+
$(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/pkgdata.inc $(top_builddir)/config/icu-config $(top_builddir)/config/icu.pc $(ALL_PKGCONFIG_FILES)
183187
$(RMV) config.cache config.log config.status $(top_builddir)/config/icucross.mk autom4te.cache
184188
$(RMV) Makefile config/Makefile icudefs.mk $(LIBDIR) $(BINDIR)
185189
-$(RMV) dist
@@ -217,13 +221,47 @@ config/icu.pc: $(srcdir)/config/icu.pc.in
217221
cd $(top_builddir) \
218222
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
219223

220-
config/icu.pc.out: config/icu.pc config/icu-config
224+
config/icu-uc.pc: config/icu.pc Makefile icudefs.mk
225+
@cat config/icu.pc > $@
226+
@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Common and Data libraries" >> $@
227+
@echo "Name: $(PACKAGE)-uc" >> $@
228+
@echo "Libs:" '-L$${libdir}' "${ICULIBS_UC}" "${ICULIBS_DT}" >> $@
229+
@echo "Libs.private:" '$${baselibs}' >> $@
230+
@echo $@ updated.
231+
232+
config/icu-i18n.pc: config/icu.pc Makefile icudefs.mk
233+
@cat config/icu.pc > $@
234+
@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Internationalization library" >> $@
235+
@echo "Name: $(PACKAGE)-i18n" >> $@
236+
@echo "Requires: icu-uc" >> $@
237+
@echo "Libs:" "${ICULIBS_I18N}" >> $@
238+
@echo $@ updated.
239+
240+
config/icu-io.pc: config/icu.pc Makefile icudefs.mk
221241
@cat config/icu.pc > $@
222-
@echo "Libs:" '-L$${libdir}' $(shell config/icu-config --noverify --ldflags-libsonly) >> $@
223-
@echo "Libs.private: " $(shell config/icu-config --noverify --ldflags-system) >> $@
224-
# @echo "Cflags: " $(shell config/icu-config --noverify --cppflags) >> $@
242+
@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Stream and I/O Library" >> $@
243+
@echo "Name: $(PACKAGE)-io" >> $@
244+
@echo "Requires: icu-i18n" >> $@
245+
@echo "Libs:" "${ICULIBS_IO}" >> $@
225246
@echo $@ updated.
226247

248+
config/icu-le.pc: config/icu.pc Makefile icudefs.mk
249+
@cat config/icu.pc > $@
250+
@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Layout library" >> $@
251+
@echo "Name: $(PACKAGE)-le" >> $@
252+
@echo "Requires: icu-uc" >> $@
253+
@echo "Libs:" "${ICULIBS_LE}" >> $@
254+
@echo $@ updated.
255+
256+
config/icu-lx.pc: config/icu.pc Makefile icudefs.mk
257+
@cat config/icu.pc > $@
258+
@echo "Description: $(PACKAGE_ICU_DESCRIPTION): Paragraph Layout library" >> $@
259+
@echo "Name: $(PACKAGE)-lx" >> $@
260+
@echo "Requires: icu-le" >> $@
261+
@echo "Libs:" "${ICULIBS_LX}" >> $@
262+
@echo $@ updated.
263+
264+
227265
Makefile: $(srcdir)/Makefile.in icudefs.mk $(top_builddir)/config.status
228266
cd $(top_builddir) \
229267
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status

icu4c/source/config/icu.pc.in

+14-15
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,30 @@
22

33
prefix = @prefix@
44
exec_prefix = @exec_prefix@
5-
bindir = @bindir@
5+
#bindir = @bindir@
66
libdir = @libdir@
77
includedir = @includedir@
8-
datarootdir = @datarootdir@
9-
datadir = @datadir@
10-
sbindir = @sbindir@
11-
mandir = @mandir@
12-
sysconfdir = @sysconfdir@
8+
baselibs = @LIBS@
9+
#datarootdir = @datarootdir@
10+
#datadir = @datadir@
11+
#sbindir = @sbindir@
12+
#mandir = @mandir@
13+
#sysconfdir = @sysconfdir@
1314
CFLAGS = @CFLAGS@
14-
CXXFLAGS = @CXXFLAGS@
15+
#CXXFLAGS = @CXXFLAGS@
1516
DEFS = @DEFS@
1617
UNICODE_VERSION=@UNICODE_VERSION@
1718
ICUPREFIX=icu
1819
ICULIBSUFFIX=@ICULIBSUFFIX@
1920
LIBICU=lib${ICUPREFIX}
20-
SHAREDLIBCFLAGS=-fPIC
21+
#SHAREDLIBCFLAGS=-fPIC
2122
pkglibdir=${libdir}/@PACKAGE@${ICULIBSUFFIX}/@VERSION@
22-
pkgdatadir=${datadir}/@PACKAGE@${ICULIBSUFFIX}/@VERSION@
23+
#pkgdatadir=${datadir}/@PACKAGE@${ICULIBSUFFIX}/@VERSION@
2324
ICUDATA_NAME = icudt@LIB_VERSION_MAJOR@@ICUDATA_CHAR@
24-
ICUPKGDATA_DIR=@libdir@
25-
ICUDATA_DIR=${pkgdatadir}
25+
#ICUPKGDATA_DIR=@libdir@
26+
#ICUDATA_DIR=${pkgdatadir}
27+
ICUDESC=International Components for Unicode
2628

27-
Name: @PACKAGE@
28-
Description: International Components for Unicode
29-
URL: http://icu-project.org
3029
Version: @VERSION@
31-
# end of icu.pc.in
3230
Cflags: -I${includedir}
31+
# end of icu.pc.in

icu4c/source/icudefs.mk.in

+23-8
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ cross_buildroot = @cross_buildroot@
3434

3535
# Package information
3636

37+
PACKAGE_ICU_DESCRIPTION = "International Components for Unicode"
38+
PACKAGE_ICU_URL = "http://icu-project.org"
3739
PACKAGE = @PACKAGE@
3840
VERSION = @VERSION@
3941
UNICODE_VERSION = @UNICODE_VERSION@
@@ -234,15 +236,28 @@ IO_STUBNAME = io
234236
TOOLUTIL_STUBNAME = tu
235237
CTESTFW_STUBNAME = test
236238

239+
# Just the libs.
240+
ICULIBS_DT = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
241+
ICULIBS_UC = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(COMMON_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
242+
ICULIBS_I18N = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
243+
ICULIBS_LE = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
244+
ICULIBS_LX = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
245+
ICULIBS_IO = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(IO_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
246+
ICULIBS_CTESTFW = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
247+
ICULIBS_TOOLUTIL = -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
237248
# Link commands to link to ICU libs
238-
LIBICUDT= -L$(LIBDIR) -L$(top_builddir)/stubdata -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(DATA_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
239-
LIBICUUC= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(COMMON_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX) $(LIBICUDT)
240-
LIBICUI18N= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(I18N_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
241-
LIBICULE= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUT_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
242-
LIBICULX= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(LAYOUTEX_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
243-
LIBCTESTFW= -L$(top_builddir)/tools/ctestfw -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(CTESTFW_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
244-
LIBICUTOOLUTIL= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(TOOLUTIL_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
245-
LIBICUIO= -L$(LIBDIR) -l$(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)$(IO_STUBNAME)$(ICULIBSUFFIX)$(SO_TARGET_VERSION_SUFFIX)
249+
LLIBDIR = -L$(LIBDIR)
250+
LSTUBDIR = -L$(top_builddir)/stubdata
251+
LCTESTFW = -L$(top_builddir)/tools/ctestfw
252+
253+
LIBICUDT = $(LLIBDIR) $(LSTUBDIR) $(ICULIBS_DT)
254+
LIBICUUC = $(LLIBDIR) $(ICULIBS_UC) $(LSTUBDIR) $(ICULIBS_DT)
255+
LIBICUI18N = $(LLIBDIR) $(ICULIBS_I18N)
256+
LIBICULE = $(LLIBDIR) $(ICULIBS_LE)
257+
LIBICULX = $(LLIBDIR) $(ICULIBS_LX)
258+
LIBCTESTFW = $(LCTESTFW) $(ICULIBS_CTESTFW)
259+
LIBICUTOOLUTIL = $(LLIBDIR) $(ICULIBS_TOOLUTIL)
260+
LIBICUIO = $(LLIBDIR) $(ICULIBS_IO)
246261

247262
# Invoke, set library path for all ICU libraries.
248263
# overridden by icucross.mk

0 commit comments

Comments
 (0)