[v3,0/7] Fix some libm static issues
[platform/upstream/glibc.git] / time / Makefile
1 # Copyright (C) 1991-2024 Free Software Foundation, Inc.
2 # This file is part of the GNU C Library.
3
4 # The GNU C Library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
8
9 # The GNU C Library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 # Lesser General Public License for more details.
13
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with the GNU C Library; if not, see
16 # <https://www.gnu.org/licenses/>.
17
18 #
19 #       Makefile for time routines
20 #
21 subdir  := time
22
23 include ../Makeconfig
24
25 headers := time.h sys/time.h sys/timeb.h bits/time.h                    \
26            bits/types/clockid_t.h bits/types/clock_t.h                  \
27            bits/types/struct_itimerspec.h                               \
28            bits/types/struct_timespec.h bits/types/struct_timeval.h     \
29            bits/types/struct_tm.h bits/types/timer_t.h                  \
30            bits/types/time_t.h bits/types/struct_timeb.h
31
32 routines := offtime asctime clock ctime ctime_r difftime \
33             gmtime localtime mktime time                 \
34             gettimeofday settimeofday settimezone        \
35             adjtime tzset tzfile getitimer setitimer     \
36             stime dysize timegm ftime                    \
37             getdate strptime strptime_l                  \
38             strftime wcsftime strftime_l wcsftime_l      \
39             timespec_get timespec_getres                 \
40             clock_getcpuclockid clock_getres             \
41             clock_gettime clock_settime clock_nanosleep
42
43 aux :=      era alt_digit lc-time-cleanup
44
45 tests   := test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
46            tst-getdate tst-mktime tst-mktime2 tst-ftime_l tst-strftime \
47            tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
48            tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \
49            tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 \
50            tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1 \
51            tst-adjtime tst-ctime tst-difftime tst-mktime4 tst-clock_settime \
52            tst-settimeofday tst-itimer tst-gmtime tst-timegm \
53            tst-timespec_get tst-timespec_getres tst-strftime4
54
55 tests-time64 := \
56   tst-adjtime-time64 \
57   tst-clock-time64 \
58   tst-clock2-time64 \
59   tst-clock_nanosleep-time64 \
60   tst-clock_settime-time64 \
61   tst-cpuclock1-time64 \
62   tst-ctime-time64 \
63   tst-difftime-time64 \
64   tst-gmtime-time64 \
65   tst-itimer-time64 \
66   tst-mktime4-time64 \
67   tst-settimeofday-time64 \
68   tst-strftime4-time64 \
69   tst-timegm-time64 \
70   tst-timespec_get-time64 \
71   tst-timespec_getres-time64 \
72   tst-y2039-time64
73
74 include ../Rules
75
76 ifeq ($(run-built-tests),yes)
77 LOCALES := de_DE.ISO-8859-1 en_US.ISO-8859-1 ja_JP.EUC-JP fr_FR.UTF-8 \
78            es_ES.UTF-8 pl_PL.UTF-8 ru_RU.UTF-8 \
79            ja_JP.UTF-8 lo_LA.UTF-8 th_TH.UTF-8 \
80            zh_TW.UTF-8 cmn_TW.UTF-8 hak_TW.UTF-8 \
81            nan_TW.UTF-8 lzh_TW.UTF-8
82 include ../gen-locales.mk
83
84 $(objpfx)tst-ftime_l.out: $(gen-locales)
85 $(objpfx)tst-strptime.out: $(gen-locales)
86 $(objpfx)tst-strftime2.out: $(gen-locales)
87 $(objpfx)tst-strftime3.out: $(gen-locales)
88 endif
89
90 $(objpfx)tst-clock_nanosleep: $(librt)
91 $(objpfx)tst-clock_nanosleep-time64: $(librt)
92
93 tz-cflags = -DTZDIR='"$(zonedir)"' \
94             -DTZDEFAULT='"$(localtime-file)"' \
95             -DTZDEFRULES='"$(posixrules-file)"'
96
97 CFLAGS-tzfile.c += $(tz-cflags)
98 CFLAGS-tzset.c += $(tz-cflags)
99 CFLAGS-getdate.c += -fexceptions
100 CFLAGS-clock_nanosleep.c += -fexceptions -fasynchronous-unwind-tables
101 CFLAGS-nanosleep.c += -fexceptions -fasynchronous-unwind-tables
102 CFLAGS-mktime.c += $(config-cflags-wno-ignored-attributes)
103
104 # Don't warn about Y2k problem in strftime format string.
105 CFLAGS-test_time.c += -Wno-format
106
107 test_time-ARGS= EST5EDT CST
108
109 tst-tzname-ENV = TZDIR=${common-objpfx}timezone/testdata
110 CPPFLAGS-tst-tzname.c += -DTZDEFRULES='"$(posixrules-file)"'
111
112 bug-getdate1-ARGS = ${objpfx}bug-getdate1-fmt