From c6192a34ec2ce5d0da1e8fc05df6b9c1dcbf8a34 Mon Sep 17 00:00:00 2001 From: Yves Arrouye Date: Mon, 9 Oct 2000 19:06:57 +0000 Subject: [PATCH] ICU-3 support compiling the source files twice with different options while building; used on platforms that pass some special flags while building shared libs (eg. -fPIC, -KPIC and others), but don't need these flags when building static libs. X-SVN-Rev: 2608 --- .gitignore | 2 ++ icu4c/.cvsignore | 2 ++ icu4c/source/common/Makefile.in | 10 +++++++-- icu4c/source/config/mh-aix | 18 +++++++++++------ icu4c/source/config/mh-aix-va | 18 +++++++++++------ icu4c/source/config/mh-darwin | 27 +++++++++++++++++-------- icu4c/source/config/mh-freebsd | 18 +++++++++++------ icu4c/source/config/mh-hpux-acc | 18 +++++++++++------ icu4c/source/config/mh-hpux-cc | 18 +++++++++++------ icu4c/source/config/mh-irix | 26 ++++++++++++++++-------- icu4c/source/config/mh-linux | 25 ++++++++++++++--------- icu4c/source/config/mh-os390 | 14 +++++++++---- icu4c/source/config/mh-os400 | 14 +++++++++---- icu4c/source/config/mh-ptx | 25 ++++++++++++++++------- icu4c/source/config/mh-solaris | 27 +++++++++++++++++-------- icu4c/source/config/mh-solaris-gcc | 23 +++++++++++++++------ icu4c/source/config/mh-solaris-sparcv9 | 18 +++++++++++------ icu4c/source/extra/ustdio/Makefile.in | 10 +++++++-- icu4c/source/i18n/Makefile.in | 10 +++++++-- icu4c/source/tools/toolutil/Makefile.in | 10 +++++++-- 20 files changed, 235 insertions(+), 98 deletions(-) create mode 100644 icu4c/.cvsignore diff --git a/.gitignore b/.gitignore index b7352facc08..cd1270a3fce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +icu4c/*-stamp icu4c/data/*.cnv icu4c/data/*.dat icu4c/data/*.lst @@ -11,6 +12,7 @@ icu4c/data/line_th.brk icu4c/data/sent.brk icu4c/data/word.brk icu4c/data/word_th.brk +icu4c/debian icu4c/source/Makefile icu4c/source/common/*.d icu4c/source/common/Debug diff --git a/icu4c/.cvsignore b/icu4c/.cvsignore new file mode 100644 index 00000000000..67fb07cb52f --- /dev/null +++ b/icu4c/.cvsignore @@ -0,0 +1,2 @@ +debian +*-stamp diff --git a/icu4c/source/common/Makefile.in b/icu4c/source/common/Makefile.in index bb273489510..60ed57dbf20 100644 --- a/icu4c/source/common/Makefile.in +++ b/icu4c/source/common/Makefile.in @@ -68,6 +68,10 @@ endif ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) +DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS) +DYNAMICCFLAGS = $(SHAREDLIBCFLAGS) +DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS) + DEFS = @DEFS@ CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I. -I$(srcdir) -DICU_DATA_DIR=\"$(pkgdatadir)/$(VERSION)/\" -DUDATA_SO_SUFFIX=\".$(SO)\" -DU_COMMON_LIBNAME=\"$(FINAL_SO_TARGET)\" CFLAGS = @CFLAGS@ @@ -87,6 +91,8 @@ uresbund.o uresdata.o ustring.o rbdata.o ubidi.o ubidiwrt.o ubidiln.o \ bidi.o ushape.o uvector.o udata.o unames.o utf_impl.o \ ucnv2022.o ucnvebdc.o ucnvlat1.o ucnv_utf.o ucnvsbcs.o ucnvmbcs.o ucnv_lmb.o +STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O)) + DEPS = $(OBJECTS:.o=.d) ## Header files to install @@ -136,7 +142,7 @@ dist-local: clean-local: test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) - $(RMV) $(OBJECTS) $(ALL_TARGETS) + $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) distclean-local: clean-local $(RMV) Makefile @@ -152,7 +158,7 @@ unicode/platform.h: $(srcdir)/unicode/platform.h.in $(top_builddir)/config.statu && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ifneq ($(ENABLE_STATIC),) -$(TARGET): $(TARGET)($(OBJECTS)) +$(TARGET): $(TARGET)($(STATIC_OBJECTS)) $(RANLIB) $@ endif diff --git a/icu4c/source/config/mh-aix b/icu4c/source/config/mh-aix index e0f40ae6fd2..b3eab5f006f 100644 --- a/icu4c/source/config/mh-aix +++ b/icu4c/source/config/mh-aix @@ -38,6 +38,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= a +## Non-shared intermediate object suffix +STATIC_O = o RMV = rm -rf ## Platform commands to remove or move executable and library targets @@ -63,14 +65,18 @@ LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@" ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : %.u diff --git a/icu4c/source/config/mh-aix-va b/icu4c/source/config/mh-aix-va index 8488b2f94ab..e42f1a13ee4 100644 --- a/icu4c/source/config/mh-aix-va +++ b/icu4c/source/config/mh-aix-va @@ -38,6 +38,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= a +## Non-shared intermediate object suffix +STATIC_O = o RMV = rm -rf ## Platform commands to remove or move executable and library targets @@ -64,14 +66,18 @@ LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@" ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : %.u diff --git a/icu4c/source/config/mh-darwin b/icu4c/source/config/mh-darwin index 564d6e305fb..a5b446053a7 100644 --- a/icu4c/source/config/mh-darwin +++ b/icu4c/source/config/mh-darwin @@ -4,13 +4,18 @@ ## Copyright (c) 1999-2000, International Business Machines Corporation and ## others. All Rights Reserved. +## Flags for position independent code +SHAREDLIBCFLAGS = -dynamic +SHAREDLIBCXXFLAGS = -dynamic +SHAREDLIBCPPFLAGS = + ## Commands to generate dependency files GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) ## Commands to compile -COMPILE.c= $(CC) -dynamic $(DEFS) $(CPPFLAGS) $(CFLAGS) -c -COMPILE.cc= $(CXX) -dynamic $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c +COMPILE.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c +COMPILE.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c ## Commands to link LINK.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) @@ -36,6 +41,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= dylib +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -51,14 +58,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-freebsd b/icu4c/source/config/mh-freebsd index 8592c637758..c664338d9a2 100644 --- a/icu4c/source/config/mh-freebsd +++ b/icu4c/source/config/mh-freebsd @@ -43,6 +43,8 @@ MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR) LIBICU = libicu- ## Shared object suffix SO= so +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -58,14 +60,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-hpux-acc b/icu4c/source/config/mh-hpux-acc index 984401a2851..ddbf1b5f074 100644 --- a/icu4c/source/config/mh-hpux-acc +++ b/icu4c/source/config/mh-hpux-acc @@ -38,6 +38,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= sl +## Non-shared intermediate object suffix +STATIC_O = o ## Force removal [for make clean] RMV = rm -rf @@ -53,14 +55,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-hpux-cc b/icu4c/source/config/mh-hpux-cc index 116162c0f80..f2651071384 100644 --- a/icu4c/source/config/mh-hpux-cc +++ b/icu4c/source/config/mh-hpux-cc @@ -45,6 +45,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= sl +## Non-shared intermediate object suffix +STATIC_O = o ## Force removal [for make clean] RMV = rm -rf @@ -60,14 +62,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-irix b/icu4c/source/config/mh-irix index 36f6fcaedee..6848bf31c1f 100644 --- a/icu4c/source/config/mh-irix +++ b/icu4c/source/config/mh-irix @@ -3,14 +3,18 @@ ## Copyright (c) 1999-2000, International Business Machines Corporation and ## others. All Rights Reserved. +## Flags for position independent code +SHAREDLIBCFLAGS = -shared +SHAREDLIBCXXFLAGS = -shared +SHAREDLIBCPPFLAGS = ## Commands to generate dependency files GEN_DEPS.c= $(CC) -E -M $(DEFS) $(CPPFLAGS) GEN_DEPS.cc= $(CXX) -E -M $(DEFS) $(CPPFLAGS) ## Commands to compile -COMPILE.c= $(CC) -shared $(DEFS) $(CPPFLAGS) $(CFLAGS) -c -COMPILE.cc= $(CXX) -shared $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c +COMPILE.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -c +COMPILE.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c ## Commands to link ## We need to use the C++ linker, even when linking C programs, since @@ -43,6 +47,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= so +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -58,14 +64,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-linux b/icu4c/source/config/mh-linux index 0147069ff22..bda1e941bac 100644 --- a/icu4c/source/config/mh-linux +++ b/icu4c/source/config/mh-linux @@ -46,7 +46,9 @@ MIDDLE_SO_TARGET = $(SO_TARGET).$(SO_TARGET_VERSION_MAJOR) ## Prefix for the ICU library names LIBICU = libicu- ## Shared object suffix -SO= so +SO = so +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -62,23 +64,27 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules -%.d : $(srcdir)/%.c +%.d: $(srcdir)/%.c @echo "Generating dependency information for $<" @$(SHELL) -ec '$(GEN_DEPS.c) $< \ | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ [ -s $@ ] || rm -f $@' -%.d : $(srcdir)/%.cpp +%.d: $(srcdir)/%.cpp @echo "Generating dependency information for $<" @$(SHELL) -ec '$(GEN_DEPS.cc) $< \ | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ @@ -92,3 +98,4 @@ LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio $(RM) $@ && ln -s $*.$(SO).$(SO_TARGET_VERSION) $@ ## End Linux-specific setup + diff --git a/icu4c/source/config/mh-os390 b/icu4c/source/config/mh-os390 index d77e892025e..e5483b1a2fb 100644 --- a/icu4c/source/config/mh-os390 +++ b/icu4c/source/config/mh-os390 @@ -67,6 +67,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix (switch to dll for shared library build) SO= dll +## Non-shared intermediate object suffix +STATIC_O = o ## Force removal [for make clean] RMV = rm -rf @@ -88,11 +90,15 @@ LIBUSTDIO= $(top_builddir)/extra/ustdio/libustdio.x $(AR) $(ARFLAGS) $@ $(OBJECTS) ## Compilation rules -%.o :$(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o :$(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< ## Dependency rules %.d : %.u diff --git a/icu4c/source/config/mh-os400 b/icu4c/source/config/mh-os400 index 2689792708a..856b99cbf77 100644 --- a/icu4c/source/config/mh-os400 +++ b/icu4c/source/config/mh-os400 @@ -41,6 +41,8 @@ TO= o ## Shared object suffix SO= o +## Non-shared intermediate object suffix +STATIC_O = o ## Platform command to remove or move executable target RMV = del @@ -67,11 +69,15 @@ LIBUSTDIO= $(top_builddir)/extra/ustdio/libustdio.o @$(SHELL) -ec "echo '#! $*.a($*.so)' | cat - $< > $@" ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< %.qwobj : $(srcdir)/%.c $(COMPILE.c) -o $@ $< diff --git a/icu4c/source/config/mh-ptx b/icu4c/source/config/mh-ptx index a0f0faf1663..4f96410629b 100644 --- a/icu4c/source/config/mh-ptx +++ b/icu4c/source/config/mh-ptx @@ -3,13 +3,18 @@ ## Copyright (c) 1999-2000, International Business Machines Corporation and ## others. All Rights Reserved. +## Flags for position independent code +SHAREDLIBCFLAGS = -KPIC +SHAREDLIBCXXFLAGS = -KPIC +SHAREDLIBCPPFLAGS = -DPIC + ## Commands to generate dependency files -GEN_DEPS.c= $(CC) -Kthread -KPIC -DPTX -c $(DEFS) $(CPPFLAGS) +GEN_DEPS.c= $(CC) -Kthread -DPTX -c $(DEFS) $(CPPFLAGS) GEN_DEPS.cc= $(CXX) -M -DPTX $(DEFS) $(CPPFLAGS) ## Commands to compile -COMPILE.c= $(CC) -Kthread -KPIC -DPTX $(DEFS) $(CPPFLAGS) $(CFLAGS) -c -COMPILE.cc= $(CXX) -Kthread -KPIC -DPTX $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c +COMPILE.c= $(CC) -Kthread -DPTX $(DEFS) $(CPPFLAGS) $(CFLAGS) -c +COMPILE.cc= $(CXX) -Kthread -DPTX $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c ## Commands to link #LINK.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) @@ -36,6 +41,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= so +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -51,11 +58,15 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-solaris b/icu4c/source/config/mh-solaris index 402fc1b7663..97771c407df 100644 --- a/icu4c/source/config/mh-solaris +++ b/icu4c/source/config/mh-solaris @@ -3,13 +3,18 @@ ## Copyright (c) 1999-2000, International Business Machines Corporation and ## others. All Rights Reserved. +## Flags for position independent code +SHAREDLIBCFLAGS = -KPIC +SHAREDLIBCXXFLAGS = -KPIC +SHAREDLIBCPPFLAGS = -DPIC + ## Commands to generate dependency files GEN_DEPS.c= $(CC) -xM $(DEFS) $(CPPFLAGS) GEN_DEPS.cc= $(CXX) -xM $(DEFS) $(CPPFLAGS) ## Commands to compile -COMPILE.c= $(CC) -KPIC -mt $(DEFS) $(CPPFLAGS) $(CFLAGS) -c -COMPILE.cc= $(CXX) -KPIC -mt $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c +COMPILE.c= $(CC) -mt $(DEFS) $(CPPFLAGS) $(CFLAGS) -c +COMPILE.cc= $(CXX) -mt $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -c ## Commands to link #LINK.c= $(CC) -mt $(DEFS) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) @@ -37,6 +42,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= so +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -52,14 +59,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-solaris-gcc b/icu4c/source/config/mh-solaris-gcc index 593ee06b323..15278eed619 100644 --- a/icu4c/source/config/mh-solaris-gcc +++ b/icu4c/source/config/mh-solaris-gcc @@ -3,6 +3,11 @@ ## Copyright (c) 1999-2000, International Business Machines Corporation and ## others. All Rights Reserved. +## Flags for position independent code +SHAREDLIBCFLAGS = -fPIC +SHAREDLIBCXXFLAGS = -fPIC +SHAREDLIBCPPFLAGS = -DPIC + ## Commands to generate dependency files GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS) GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS) @@ -42,6 +47,8 @@ MIDDLE_SO_TARGET = $(SO_TARGET) LIBICU = libicu- ## Shared object suffix SO= so +## Non-shared intermediate object suffix +STATIC_O = static.o ## Force removal [for make clean] RMV = rm -rf @@ -57,14 +64,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/config/mh-solaris-sparcv9 b/icu4c/source/config/mh-solaris-sparcv9 index b4e9404446a..39ebec9c8f8 100644 --- a/icu4c/source/config/mh-solaris-sparcv9 +++ b/icu4c/source/config/mh-solaris-sparcv9 @@ -36,6 +36,8 @@ MIDDLE_SO_TARGET = LIBICU = libicu- ## Shared object suffix SO= so +## Non-shared intermediate object suffix +STATIC_O = o ## Force removal [for make clean] RMV = rm -rf @@ -51,14 +53,18 @@ LIBICU-TOOLUTIL=-L$(top_builddir)/tools/toolutil -licu-toolutil LIBUSTDIO= -L$(top_builddir)/extra/ustdio -lustdio ## Compilation rules -%.o : $(srcdir)/%.c - $(COMPILE.c) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.c + $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< +%.o: $(srcdir)/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< -%.o : $(srcdir)/%.cpp - $(COMPILE.cc) -o $@ $< +%.$(STATIC_O): $(srcdir)/%.cpp + $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< +%.o: $(srcdir)/%.cpp + $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< -../data/%.o : ../data/%.c - $(COMPILE.c) -o $@ $< +../data/%.o: ../data/%.c + $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< ## Dependency rules %.d : $(srcdir)/%.c diff --git a/icu4c/source/extra/ustdio/Makefile.in b/icu4c/source/extra/ustdio/Makefile.in index d7f4d139393..16271d1a245 100644 --- a/icu4c/source/extra/ustdio/Makefile.in +++ b/icu4c/source/extra/ustdio/Makefile.in @@ -68,6 +68,10 @@ endif ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) +DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS) +DYNAMICCFLAGS = $(SHAREDLIBCFLAGS) +DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS) + DEFS = @DEFS@ CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n CFLAGS = @CFLAGS@ @@ -82,6 +86,8 @@ LIBS = $(LIBICU-UC) $(LIBICU-I18N) @LIBS@ OBJECTS = locbund.o loccache.o ufile.o ufmt_cmn.o uprintf.o uprntf_p.o \ uscanf.o uscanf_p.o uscanset.o ustdio.o +STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O)) + HEADERS = $(srcdir)/unicode/*.h DEPS = $(OBJECTS:.o=.d) @@ -130,7 +136,7 @@ dist-local: clean-local: test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) - $(RMV) $(OBJECTS) $(ALL_TARGETS) + $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) distclean-local: clean-local $(RMV) Makefile @@ -142,7 +148,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ifneq ($(ENABLE_STATIC),) -$(TARGET): $(TARGET)($(OBJECTS)) +$(TARGET): $(TARGET)($(STATIC_OBJECTS)) $(RANLIB) $@ endif diff --git a/icu4c/source/i18n/Makefile.in b/icu4c/source/i18n/Makefile.in index fa29d710f8a..cd16e9195f2 100644 --- a/icu4c/source/i18n/Makefile.in +++ b/icu4c/source/i18n/Makefile.in @@ -62,6 +62,10 @@ endif ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) +DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS) +DYNAMICCFLAGS = $(SHAREDLIBCFLAGS) +DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS) + DEFS = @DEFS@ CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I$(srcdir) -I$(top_builddir)/common -I$(top_srcdir)/common CFLAGS = @CFLAGS@ @@ -84,6 +88,8 @@ unifltlg.o unirange.o uniset.o unitohex.o unum.o wdbkdat.o wdbktbl.o \ dbbi.o dbbi_tbl.o rbbi.o rbbi_tbl.o brkdict.o nultrans.o jamohang.o hangjamo.o \ utrans.o +STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O)) + DEPS = $(OBJECTS:.o=.d) ## Header files to install @@ -133,7 +139,7 @@ dist-local: clean-local: test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) - $(RMV) $(OBJECTS) $(ALL_TARGETS) + $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) distclean-local: clean-local $(RMV) Makefile @@ -145,7 +151,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ifneq ($(ENABLE_STATIC),) -$(TARGET): $(TARGET)($(OBJECTS)) +$(TARGET): $(TARGET)($(STATIC_OBJECTS)) $(RANLIB) $@ endif diff --git a/icu4c/source/tools/toolutil/Makefile.in b/icu4c/source/tools/toolutil/Makefile.in index e06cdf27384..d52358c1550 100644 --- a/icu4c/source/tools/toolutil/Makefile.in +++ b/icu4c/source/tools/toolutil/Makefile.in @@ -63,6 +63,10 @@ endif ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) +DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS) +DYNAMICCFLAGS = $(SHAREDLIBCFLAGS) +DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS) + DEFS = @DEFS@ CPPFLAGS = @CPPFLAGS@ $(LIBCPPFLAGS) -I$(top_builddir)/common -I$(top_srcdir)/common -I$(top_srcdir)/i18n -I$(top_srcdir)/tools/ctestfw CFLAGS = @CFLAGS@ @@ -76,6 +80,8 @@ LIBS = $(LIBICU-UC) @LIBS@ OBJECTS = toolutil.o unewdata.o ucmpwrit.o uoptions.o uparse.o +STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O)) + DEPS = $(OBJECTS:.o=.d) ## List of phony targets @@ -114,7 +120,7 @@ dist-local: clean-local: test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES) - $(RMV) $(OBJECTS) $(ALL_TARGETS) + $(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) distclean-local: clean-local $(RMV) Makefile @@ -126,7 +132,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status ifneq ($(ENABLE_STATIC),) -$(TARGET): $(TARGET)($(OBJECTS)) +$(TARGET): $(TARGET)($(STATIC_OBJECTS)) $(RANLIB) $@ endif