1# Copyright (C) 1991-2022 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# 21subdir := time 22 23include ../Makeconfig 24 25headers := 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 32routines := 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 43aux := era alt_digit lc-time-cleanup 44 45tests := 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 54 55tests-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-timegm-time64 \ 69 tst-timespec_get-time64 \ 70 tst-timespec_getres-time64 \ 71 tst-y2039-time64 72 73include ../Rules 74 75ifeq ($(run-built-tests),yes) 76LOCALES := de_DE.ISO-8859-1 en_US.ISO-8859-1 ja_JP.EUC-JP fr_FR.UTF-8 \ 77 es_ES.UTF-8 pl_PL.UTF-8 ru_RU.UTF-8 \ 78 ja_JP.UTF-8 lo_LA.UTF-8 th_TH.UTF-8 \ 79 zh_TW.UTF-8 cmn_TW.UTF-8 hak_TW.UTF-8 \ 80 nan_TW.UTF-8 lzh_TW.UTF-8 81include ../gen-locales.mk 82 83$(objpfx)tst-ftime_l.out: $(gen-locales) 84$(objpfx)tst-strptime.out: $(gen-locales) 85$(objpfx)tst-strftime2.out: $(gen-locales) 86$(objpfx)tst-strftime3.out: $(gen-locales) 87endif 88 89$(objpfx)tst-clock_nanosleep: $(librt) 90$(objpfx)tst-clock_nanosleep-time64: $(librt) 91 92tz-cflags = -DTZDIR='"$(zonedir)"' \ 93 -DTZDEFAULT='"$(localtime-file)"' \ 94 -DTZDEFRULES='"$(posixrules-file)"' 95 96CFLAGS-tzfile.c += $(tz-cflags) 97CFLAGS-tzset.c += $(tz-cflags) 98CFLAGS-getdate.c += -fexceptions 99CFLAGS-clock_nanosleep.c += -fexceptions -fasynchronous-unwind-tables 100CFLAGS-nanosleep.c += -fexceptions -fasynchronous-unwind-tables 101 102# Don't warn about Y2k problem in strftime format string. 103CFLAGS-test_time.c += -Wno-format 104 105tst-getdate-ENV= DATEMSK=datemsk TZDIR=${common-objpfx}timezone/testdata 106test_time-ARGS= EST5EDT CST 107 108tst-tzname-ENV = TZDIR=${common-objpfx}timezone/testdata 109CPPFLAGS-tst-tzname.c += -DTZDEFRULES='"$(posixrules-file)"' 110 111bug-getdate1-ARGS = ${objpfx}bug-getdate1-fmt 112