Replace lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
[kopensolaris-gnu/glibc.git] / timezone / Makefile
index f4cfa84..9947d45 100644 (file)
@@ -1,20 +1,20 @@
-# Copyright (C) 1998 Free Software Foundation, Inc.
+# Copyright (C) 1998,1999,2000,2002,2005 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.
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 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.
+# Lesser 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.
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
 
 #
 #      Makefile for timezone information
@@ -28,17 +28,18 @@ distribute := tzfile.h private.h scheck.c ialloc.c yearistype       \
 extra-objs := scheck.o ialloc.o
 
 others := zdump zic
-tests  := test-tz
+tests  := test-tz tst-timezone
 
 tzbases := africa antarctica asia australasia europe northamerica \
-          southamerica etcetera factory systemv \
+          southamerica etcetera factory \
           solar87 solar88 solar89
-tzlinks := backward
+tzlinks := backward systemv
 tzfiles := $(tzbases) $(tzlinks)
 # pacificnew doesn't compile; if it is to be used, it should be included in
 # northamerica.
 distribute += $(tzfiles) leapseconds pacificnew simplebackw
 
+generated := $(addprefix z.,$(tzfiles))
 install-sbin := zic zdump
 
 generated-dirs = testdata
@@ -47,14 +48,18 @@ all: # Make this the default target; it will be defined in Rules.
 
 include ../Makeconfig  # Get objpfx defined so we can use it below.
 
+CPPFLAGS-zic = -DNOT_IN_libc
+
 # z.* use this variable.
 define nl
 
 
 endef
-ifneq ($(no_deps),t)
+ifndef avoid-generated
+ifndef inhibit_timezone_rules
 -include $(addprefix $(objpfx)z.,$(tzfiles))
 endif
+endif
 
 # Make these absolute file names.
 installed-localtime-file := $(firstword $(filter /%,$(inst_localtime-file)) \
@@ -74,7 +79,7 @@ endif
 
 ifeq ($(have-ksh),yes)
 install-others += $(inst_zonedir)/iso3166.tab $(inst_zonedir)/zone.tab
-install-bin += tzselect
+install-bin-script = tzselect
 generated += tzselect
 endif
 
@@ -87,29 +92,27 @@ $(tzfiles:%=$(objpfx)z.%): $(objpfx)z.%: % Makefile
 # the files.
 # The extra kludge for the $(tzlinks) files is necessary since running zic
 # this file requires all other files to exist.  Blech!
+       $(make-target-directory)
        (echo 'define $*-zones'                                             ;\
-        awk '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^   ;\
+        $(AWK) '$$1 == "Zone" { print $$2 } $$1 == "Link" { print $$3 }' $^ ;\
         echo 'endef'                                                       ;\
         echo '$*-zones := $$(subst $$(nl), ,$$($*-zones))'                 ;\
         echo 'ifdef $*-zones'                                              ;\
         if test x$(findstring $*, $(tzlinks)) != x; then                    \
           echo '$$(addprefix $$(inst_zonedir)/right/,$$($*-zones)): \';\
-          echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,
-$$($$t-zones)))' ;\
+          echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/right/,$$($$t-zones)))' ;\
           echo '$$(addprefix $$(inst_zonedir)/posix/,$$($*-zones)): \';\
-          echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,
-$$($$t-zones)))' ;\
+          echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/posix/,$$($$t-zones)))' ;\
           echo '$$(addprefix $$(inst_zonedir)/,$$($*-zones)): \'           ;\
-          echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t
--zones)))' ;\
+          echo '$$(foreach t,$$(tzbases),$$(addprefix $$(inst_zonedir)/,$$($$t-zones)))' ;\
         fi                                                                 ;\
-        echo '$$(addprefix $$(inst_datadir)/zone%/right/,$$($*-zones)): \' ;\
+        echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/right/,$$($*-zones)): \' ;\
         echo '$< $$(objpfx)zic leapseconds yearistype'                     ;\
         echo ' $$(tzcompile)'                                              ;\
-        echo '$$(addprefix $$(inst_datadir)/zone%/posix/,$$($*-zones)): \' ;\
+        echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/posix/,$$($*-zones)): \' ;\
         echo '$< $$(objpfx)zic /dev/null yearistype'                       ;\
         echo ' $$(tzcompile)'                                              ;\
-        echo '$$(addprefix $$(inst_datadir)/zone%/,$$($*-zones)): \'       ;\
+        echo '$$(addprefix $$(dir $$(inst_zonedir))zone%/,$$($*-zones)): \' ;\
         echo '$< $$(objpfx)zic $$(leapseconds) yearistype'                 ;\
         echo ' $$(tzcompile)'                                              ;\
         echo 'endif'                                                       ;\
@@ -138,18 +141,20 @@ target-zone-flavor = $(filter /posix /right, \
                                          $(patsubst $(inst_zonedir)/%,%,$@))))
 
 ifdef localtime
-$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic
+$(installed-localtime-file): $(inst_zonedir)/$(localtime) $(objpfx)zic \
+                            $(+force)
        $(make-target-directory)
        if test -r $@; then \
          echo Site timezone NOT reset to Factory.; \
        else \
          rm -f $@T; \
-         $(SHELL) $(..)/rellns-sh $< $@T; \
+         $(SHELL) $(..)scripts/rellns-sh $< $@T; \
          mv -f $@T $@; \
        fi
 endif
 ifdef posixrules
-$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic
+$(installed-posixrules-file): $(inst_zonedir)/$(posixrules) $(objpfx)zic \
+                             $(+force)
        $(zic-cmd) -p $(posixrules)
 endif
 
@@ -158,32 +163,52 @@ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
 
 tz-cflags = -DTZDIR='"$(zonedir)"' \
            -DTZDEFAULT='"$(localtime-file)"' \
-           -DTZDEFRULES='"$(posixrules-file)"'
+           -DTZDEFRULES='"$(posixrules-file)"' \
+           -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
 
-CFLAGS-zdump.c = -Wno-strict-prototypes -DNOID
-CFLAGS-zic.c = -Wno-strict-prototypes -DNOID $(tz-cflags)
-CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID
-CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID
-CFLAGS-tzfile.c = $(tz-cflags)
-CFLAGS-tzset.c = $(tz-cflags)
+CFLAGS-zdump.c = -Wno-strict-prototypes -DNOID $(tz-cflags) -DHAVE_GETTEXT
+CFLAGS-zic.c = -Wno-strict-prototypes -DNOID $(tz-cflags) -DHAVE_GETTEXT
+CFLAGS-ialloc.c = -Wno-strict-prototypes -DNOID -DHAVE_GETTEXT
+CFLAGS-scheck.c = -Wno-strict-prototypes -DNOID -DHAVE_GETTEXT
 
 # We have to make sure the data for testing the tz functions is available.
-$(objpfx)test-tz.out: $(addprefix $(objpfx)testdata/, America/New_York \
-                                                     Etc/UTC UTC)
-
-$(objpfx)testdata/America/New_York: northamerica $(objpfx)zic \
-                                   $(leapseconds) yearistype
-       $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
-         -y yearistype northamerica
-$(objpfx)testdata/Etc/UTC: etcetera $(objpfx)zic $(leapseconds) yearistype
-       $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
-         -y yearistype etcetera
-$(objpfx)testdata/UTC: simplebackw $(objpfx)zic $(objpfx)testdata/Etc/UTC \
-                      $(leapseconds) yearistype
-       $(built-program-cmd) -d $(objpfx)testdata -L $(leapseconds) \
-         -y yearistype simplebackw
+# Don't add leapseconds here since test-tz made checks that work only without
+# leapseconds.
+testdata = $(objpfx)testdata
+define build-testdata
+GCONV_PATH=${common-objpfx}iconvdata LANGUAGE=C LC_ALL=C \
+  $(built-program-cmd) -d $(testdata) -y ./yearistype $<
+endef
 
-test-tz-ENV = TZDIR=$(objpfx)testdata
+$(objpfx)test-tz.out: $(addprefix $(testdata)/, America/New_York Etc/UTC UTC)
+$(objpfx)tst-timezone.out: $(addprefix $(testdata)/, \
+                                      Europe/Berlin Universal \
+                                      Australia/Melbourne \
+                                      America/Sao_Paulo Asia/Tokyo \
+                                      Europe/London)
+
+test-tz-ENV = TZDIR=$(testdata)
+tst-timezone-ENV = TZDIR=$(testdata)
+
+# Note this must come second in the deps list for $(built-program-cmd) to work.
+zic-deps = $(objpfx)zic $(leapseconds) yearistype
+
+$(testdata)/America/New_York: northamerica $(zic-deps)
+       $(build-testdata)
+$(testdata)/Etc/UTC: etcetera $(zic-deps)
+       $(build-testdata)
+# Use a pattern rule to indicate the command produces both targets at once.
+# Two separate targets built separately can collide if in parallel.
+%/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC
+       $(build-testdata)
+$(testdata)/%/Berlin $(testdata)/%/London: europe $(zic-deps)
+       $(build-testdata)
+$(testdata)/Australia/Melbourne: australasia $(zic-deps)
+       $(build-testdata)
+$(testdata)/America/Sao_Paulo: southamerica $(zic-deps)
+       $(build-testdata)
+$(testdata)/Asia/Tokyo: asia $(zic-deps)
+       $(build-testdata)
 
 
 $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
@@ -192,5 +217,6 @@ $(objpfx)tzselect: tzselect.ksh $(common-objpfx)config.make
        chmod 555 $@.new
        mv -f $@.new $@
 
-$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): $(inst_zonedir)/%: %
+$(addprefix $(inst_zonedir)/,iso3166.tab zone.tab): \
+    $(inst_zonedir)/%: % $(+force)
        $(do-install)