about summary refs log tree commit diff
path: root/iconvdata/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'iconvdata/Makefile')
-rw-r--r--iconvdata/Makefile119
1 files changed, 119 insertions, 0 deletions
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
new file mode 100644
index 0000000000..a79e12a291
--- /dev/null
+++ b/iconvdata/Makefile
@@ -0,0 +1,119 @@
+# Copyright (C) 1997 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+
+# The GNU C Library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+
+# You should have received a copy of the GNU Library General Public
+# License along with the GNU C Library; see the file COPYING.LIB.  If
+# not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#
+#	Makefile for iconv data and code.
+#
+subdir	:= iconvdata
+
+# Names of all the shared objects which implement the transformations.
+modules	:= ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5	\
+	   ISO8859-6 ISO8859-7 ISO8859-8 ISO8859-9 ISO8859-10	\
+	   T.61 ISO_6937
+modules.so := $(addsuffix .so, $(modules))
+
+
+ISO8859-1-routines := iso8859-1
+ISO8859-2-routines := iso8859-2
+ISO8859-3-routines := iso8859-3
+ISO8859-4-routines := iso8859-4
+ISO8859-5-routines := iso8859-5
+ISO8859-6-routines := iso8859-6
+ISO8859-7-routines := iso8859-7
+ISO8859-8-routines := iso8859-8
+ISO8859-9-routines := iso8859-9
+ISO8859-10-routines := iso8859-10
+T.61-routines := t61
+ISO_6937-routines := iso6937
+
+distribute := iso8859-generic.c \
+	      iso8859-1.c iso8859-2.c iso8859-3.c iso8859-4.c iso8859-5.c \
+	      iso8859-6.c iso8859-7.c iso8859-8.c iso8859-9.c iso8859-10.c\
+	      iso8859-2.h iso8859-3.h iso8859-4.h iso8859-5.h iso8859-6.h \
+	      iso8859-7.h iso8859-8.h iso8859-9.h iso8859-10.h t61.c	  \
+	      iso6937.c
+
+include ../Makeconfig
+
+# We build the transformation modules only when we build shared libs.
+ifeq (yes,$(build-shared))
+
+# This macro is similar to build-shlib but it does not define a soname
+# and it does not depend on the destination name to start with `lib'.
+define build-module
+$(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS)  \
+	  -B$(csu-objpfx) $(load-map-file:%=-Wl,--version-script=%) \
+	  $(LDFLAGS.so) $(LDFLAGS-$(@F:%.so=%).so) \
+	  -L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \
+	  -Wl,--whole-archive \
+	  $(filter-out $($(@F:.so=)-map) $(+preinit) $(+postinit),$^) \
+	  $(no-whole-archive) $(LDLIBS-$(@F:%.so=%).so)
+endef
+
+# Rule to generate the shared objects.
+extra-modules-left := $(modules)
+include extra-module.mk
+
+
+extra-objs	+= $(modules.so)
+install-others	= $(addprefix $(inst_gconvdir)/, $(modules.so))	\
+		  $(inst_gconvdir)/gconv-modules
+
+# If we have the localedata add-on available we can build the conversion
+# tables for numerous charsets.
+ifneq (,$(findstring localedata,$(add-ons)))
+define generate-8bit-table
+( echo "static const wchar_t to_ucs4[256] = {"; \
+  sed -e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/  [0x\1] = 0x\2,/p' -e d $^ | sort -u; \
+  echo "};"; \
+  echo "static const char from_ucs4[] = {"; \
+  sed -e 's/^[^[:space:]]*[[:space:]]*.x\(..\)[[:space:]]*<U\(....\)>.*/  [0x\2] = 0x\1,/p' -e d $^ | sort -u; \
+  echo "};" ) > $@.new && rm -f $@ && mv $@.new $@
+endef
+
+iso8859-2.h: ../localedata/charmaps/ISO-8859-2
+	$(generate-8bit-table)
+iso8859-3.h: ../localedata/charmaps/ISO-8859-3
+	$(generate-8bit-table)
+iso8859-4.h: ../localedata/charmaps/ISO-8859-4
+	$(generate-8bit-table)
+iso8859-5.h: ../localedata/charmaps/ISO-8859-5
+	$(generate-8bit-table)
+iso8859-6.h: ../localedata/charmaps/ISO-8859-6
+	$(generate-8bit-table)
+iso8859-7.h: ../localedata/charmaps/ISO-8859-7
+	$(generate-8bit-table)
+iso8859-8.h: ../localedata/charmaps/ISO-8859-8
+	$(generate-8bit-table)
+iso8859-9.h: ../localedata/charmaps/ISO-8859-9
+	$(generate-8bit-table)
+iso8859-10.h: ../localedata/charmaps/ISO-8859-10
+	$(generate-8bit-table)
+
+headers: iso8859-2.h iso8859-3.h iso8859-4.h iso8859-5.h iso8859-6.h	\
+	 iso8859-7.h iso8859-8.h iso8859-9.h iso8859-10.h
+endif
+
+
+$(addprefix $(inst_gconvdir)/, $(modules.so)): $(inst_gconvdir)/%: $(objpfx)%
+	$(do-install-program)
+$(inst_gconvdir)/gconv_modules: gconv-modules
+	$(do-install)
+endif
+
+include ../Rules