diff options
author | Luotao Fu <l.fu@pengutronix.de> | 2007-10-16 14:12:16 +0000 |
---|---|---|
committer | Luotao Fu <l.fu@pengutronix.de> | 2007-10-16 14:12:16 +0000 |
commit | 5761a727b5daaab80de05cfe18645c9939294871 (patch) | |
tree | 381df71788cc817050092895a3086adf7888ce9e | |
parent | 325719f4ba5765fa1d8ec2e1272262906fd55ec8 (diff) | |
download | ptxdist-5761a727b5daaab80de05cfe18645c9939294871.tar.gz ptxdist-5761a727b5daaab80de05cfe18645c9939294871.tar.xz |
added timezone support(thx to Manfred Gruber)
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@7404 33e552b5-05e3-0310-8538-816dae2090ed
-rw-r--r-- | rules/Kconfig | 1 | ||||
-rw-r--r-- | rules/glibc.in | 304 | ||||
-rw-r--r-- | rules/pre/Rules.make | 18 | ||||
-rw-r--r-- | rules/timezone.in | 309 | ||||
-rw-r--r-- | rules/timezone.make | 186 | ||||
-rwxr-xr-x | scripts/install_copy_toolchain.sh | 2 | ||||
-rwxr-xr-x | scripts/make_zoneinfo.sh | 60 |
7 files changed, 575 insertions, 305 deletions
diff --git a/rules/Kconfig b/rules/Kconfig index 47cacf2e3..13494643f 100644 --- a/rules/Kconfig +++ b/rules/Kconfig @@ -44,6 +44,7 @@ source "rules/dtc.in" source "rules/libc.in" source "rules/gcclibs.in" source "rules/locales.in" +source "rules/timezone.in" source "rules/u-boot.in" endmenu diff --git a/rules/glibc.in b/rules/glibc.in index 9cbf16ae7..150b17609 100644 --- a/rules/glibc.in +++ b/rules/glibc.in @@ -220,307 +220,3 @@ config GLIBC_GCONV_ZH endmenu # ----- - -comment "Timezone Files" - depends on GLIBC && BROKEN - -comment "glibc zoneinfo is BROKEN" - depends on GLIBC && !BROKEN - -config GLIBC_ZONEINFO - bool - prompt "Install zoneinfo files" - depends on GLIBC && BROKEN - help - FIXME: This item needs to be documented - -config GLIBC_ZONEINFO_AFRICA - bool - prompt "Africa" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ATLANTIC - bool - prompt "Atlantic" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_EUROPE - bool - prompt "Europe" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_EST5EDT - bool - prompt "EST5EDT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_CANADA - bool - prompt "Canada" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_FACTORY - bool - prompt "Factory" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_GMT0 - bool - prompt "GMT-0" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ICELAND - bool - prompt "Iceland" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_JAPAN - bool - prompt "Japan" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_MST7MDT - bool - prompt "MST7MDT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_NAVAJO - bool - prompt "Navajo" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_WSU - bool - prompt "W-SU" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_AMERICA - bool - prompt "America" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_AUSTRALIA - bool - prompt "Australia" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_CHILE - bool - prompt "Chile" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_EGYPT - bool - prompt "Egypt" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_GB - bool - prompt "GB" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_GMT0 - bool - prompt "GMT0" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_INDIAN - bool - prompt "Indian" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_KWAJALEIN - bool - prompt "Kwajalein" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_MEXICO - bool - prompt "Mexico" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_PRC - bool - prompt "PRC" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ROC - bool - prompt "ROC" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_UCT - bool - prompt "UCT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_WET - bool - prompt "WET" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ANTARCTICA - bool - prompt "Antarctica" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_BRAZIL - bool - prompt "Brazil" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_CUBA - bool - prompt "Cuba" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_EIRE - bool - prompt "Eire" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_IRAN - bool - prompt "Iran" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_LIBYA - bool - prompt "Libya" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_MIDEAST - bool - prompt "Mideast" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_PST8PDT - bool - prompt "PST8PDT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ROK - bool - prompt "ROK" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_US - bool - prompt "US" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ZULU - bool - prompt "Zulu" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ARCTIC - bool - prompt "Arctic" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_CET - bool - prompt "CET" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_EET - bool - prompt "EET" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ETC - bool - prompt "Etc" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_GMT - bool - prompt "GMT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_HST - bool - prompt "HST" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ISRAEL - bool - prompt "Israel" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_MET - bool - prompt "MET" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_NZ - bool - prompt "NZ" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_PACIFIC - bool - prompt "Pacific" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_SINGAPORE - bool - prompt "Singapore" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_UTC - bool - prompt "UTC" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_ASIA - bool - prompt "Asia" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_CST6CDT - bool - prompt "CST6CDT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_EST - bool - prompt "EST" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_GMT0 - bool - prompt "GMT+0" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_HONGKONG - bool - prompt "Hongkong" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_JAMAICA - bool - prompt "Jamaica" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_MST - bool - prompt "MST" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_NZ_CHAT - bool - prompt "NZ-CHAT" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_SYSTEMV - bool - prompt "SystemV" - depends on GLIBC_ZONEINFO - -config GLIBC_ZONEINFO_UNIVERSAL - bool - prompt "Universal" - depends on GLIBC_ZONEINFO - diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make index 046236de1..b3b947d9b 100644 --- a/rules/pre/Rules.make +++ b/rules/pre/Rules.make @@ -406,6 +406,24 @@ add_locale = \ -p $$PREF \ -n $$LOCALE_NAME + +# +# add_zoneinfo +# +# add zoneinfo support to glibc-archive +# +# $1: zoneinfoname: zoneinfoname (i.E. Europe) +# $2: prefix; installation prefix for glibc-archive +# +# +add_zoneinfo = \ + ZONEINFO_NAME=$(strip $(1)); \ + PREF=$(strip $(2)); \ + ${CROSS_ENV_CC} $(CROSS_ENV_STRIP) \ + $(SCRIPTSDIR)/make_zoneinfo.sh \ + -n $$ZONEINFO_NAME \ + -p $$PREF + # # extract # diff --git a/rules/timezone.in b/rules/timezone.in new file mode 100644 index 000000000..85425202f --- /dev/null +++ b/rules/timezone.in @@ -0,0 +1,309 @@ +comment "Time zone support doesn't work with OELAS.Toolchain1.1.0" +comment "and prio versions, hence marked as broken for now" + +menuconfig TIMEZONE + bool + prompt "Timezone Files " + depends on GLIBC + depends on BROKEN + help + installs timezone files + +comment "Timezone support" + depends on TIMEZONE + +config GLIBC_LOCALTIME_LINK + prompt "Link of /etc/localtime" + depends on TIMEZONE + default "/usr/share/zoneinfo/Europe/Berlin" + string + help + Where should /etc/localtime point to. + (e.g. /usr/share/zoneinfo/Europe/Berlin) + +config TIMEZONE_AFRICA + bool + prompt "Africa" + depends on TIMEZONE + +config TIMEZONE_ATLANTIC + bool + prompt "Atlantic" + depends on TIMEZONE + +config TIMEZONE_EUROPE + bool + prompt "Europe" + depends on TIMEZONE + +config TIMEZONE_EST5EDT + bool + prompt "EST5EDT" + depends on TIMEZONE + +config TIMEZONE_CANADA + bool + prompt "Canada" + depends on TIMEZONE + +config TIMEZONE_FACTORY + bool + prompt "Factory" + depends on TIMEZONE + +config TIMEZONE_GMT0 + bool + prompt "GMT-0" + depends on TIMEZONE + +config TIMEZONE_ICELAND + bool + prompt "Iceland" + depends on TIMEZONE + +config TIMEZONE_JAPAN + bool + prompt "Japan" + depends on TIMEZONE + +config TIMEZONE_MST7MDT + bool + prompt "MST7MDT" + depends on TIMEZONE + +config TIMEZONE_NAVAJO + bool + prompt "Navajo" + depends on TIMEZONE + +config TIMEZONE_WSU + bool + prompt "W-SU" + depends on TIMEZONE + +config TIMEZONE_AMERICA + bool + prompt "America" + depends on TIMEZONE + +config TIMEZONE_AUSTRALIA + bool + prompt "Australia" + depends on TIMEZONE + +config TIMEZONE_CHILE + bool + prompt "Chile" + depends on TIMEZONE + +config TIMEZONE_EGYPT + bool + prompt "Egypt" + depends on TIMEZONE + +config TIMEZONE_GB + bool + prompt "GB" + depends on TIMEZONE + +config TIMEZONE_GMT0 + bool + prompt "GMT0" + depends on TIMEZONE + +config TIMEZONE_INDIAN + bool + prompt "Indian" + depends on TIMEZONE + +config TIMEZONE_KWAJALEIN + bool + prompt "Kwajalein" + depends on TIMEZONE + +config TIMEZONE_MEXICO + bool + prompt "Mexico" + depends on TIMEZONE + +config TIMEZONE_PRC + bool + prompt "PRC" + depends on TIMEZONE + +config TIMEZONE_ROC + bool + prompt "ROC" + depends on TIMEZONE + +config TIMEZONE_UCT + bool + prompt "UCT" + depends on TIMEZONE + +config TIMEZONE_WET + bool + prompt "WET" + depends on TIMEZONE + +config TIMEZONE_ANTARCTICA + bool + prompt "Antarctica" + depends on TIMEZONE + +config TIMEZONE_BRAZIL + bool + prompt "Brazil" + depends on TIMEZONE + +config TIMEZONE_CUBA + bool + prompt "Cuba" + depends on TIMEZONE + +config TIMEZONE_EIRE + bool + prompt "Eire" + depends on TIMEZONE + +config TIMEZONE_IRAN + bool + prompt "Iran" + depends on TIMEZONE + +config TIMEZONE_LIBYA + bool + prompt "Libya" + depends on TIMEZONE + +config TIMEZONE_MIDEAST + bool + prompt "Mideast" + depends on TIMEZONE + +config TIMEZONE_PST8PDT + bool + prompt "PST8PDT" + depends on TIMEZONE + +config TIMEZONE_ROK + bool + prompt "ROK" + depends on TIMEZONE + +config TIMEZONE_US + bool + prompt "US" + depends on TIMEZONE + +config TIMEZONE_ZULU + bool + prompt "Zulu" + depends on TIMEZONE + +config TIMEZONE_ARCTIC + bool + prompt "Arctic" + depends on TIMEZONE + +config TIMEZONE_CET + bool + prompt "CET" + depends on TIMEZONE + +config TIMEZONE_EET + bool + prompt "EET" + depends on TIMEZONE + +config TIMEZONE_ETC + bool + prompt "Etc" + depends on TIMEZONE + +config TIMEZONE_GMT + bool + prompt "GMT" + depends on TIMEZONE + +config TIMEZONE_HST + bool + prompt "HST" + depends on TIMEZONE + +config TIMEZONE_ISRAEL + bool + prompt "Israel" + depends on TIMEZONE + +config TIMEZONE_MET + bool + prompt "MET" + depends on TIMEZONE + +config TIMEZONE_NZ + bool + prompt "NZ" + depends on TIMEZONE + +config TIMEZONE_PACIFIC + bool + prompt "Pacific" + depends on TIMEZONE + +config TIMEZONE_SINGAPORE + bool + prompt "Singapore" + depends on TIMEZONE + +config TIMEZONE_UTC + bool + prompt "UTC" + depends on TIMEZONE + +config TIMEZONE_ASIA + bool + prompt "Asia" + depends on TIMEZONE + +config TIMEZONE_CST6CDT + bool + prompt "CST6CDT" + depends on TIMEZONE + +config TIMEZONE_EST + bool + prompt "EST" + depends on TIMEZONE + +config TIMEZONE_GMT0 + bool + prompt "GMT+0" + depends on TIMEZONE + +config TIMEZONE_HONGKONG + bool + prompt "Hongkong" + depends on TIMEZONE + +config TIMEZONE_JAMAICA + bool + prompt "Jamaica" + depends on TIMEZONE + +config TIMEZONE_MST + bool + prompt "MST" + depends on TIMEZONE + +config TIMEZONE_NZ_CHAT + bool + prompt "NZ-CHAT" + depends on TIMEZONE + +config TIMEZONE_UNIVERSAL + bool + prompt "Universal" + depends on TIMEZONE + + diff --git a/rules/timezone.make b/rules/timezone.make new file mode 100644 index 000000000..891d2eb25 --- /dev/null +++ b/rules/timezone.make @@ -0,0 +1,186 @@ +# -*-makefile-*- +# $Id: template 6655 2007-01-02 12:55:21Z rsc $ +# +# Copyright (C) 2007 by Luotao Fu <l.fu@pengutronix.de> +# +# See CREDITS for details about who has contributed to this project. +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_TIMEZONE) += timezone + +# +# Paths and names +# +TIMEZONE_VERSION := 1.0 +TIMEZONE := timezone +TIMEZONE_DIR := $(BUILDDIR)/$(TIMEZONE)-temp/usr/share/ +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_AFRICA) := "Africa" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ATLANTIC) += "Atlantic" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_EUROPE) += "Europe" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_EST5EDT) += "EST5EDT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_CANADA) += "Canada" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_FACTORY) += "Factory" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_GMT0) += "GMT-0" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ICELAND) += "Iceland" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_JAPAN) += "Japan" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_MST7MDT) += "MST7MDT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_NAVAJO) += "Navajo" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_WSU) += "W-SU" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_AMERICA) += "America" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_AUSTRALIA) += "Australia" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_CHILE) += "Chile" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_EGYPT) += "Egypt" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_GB) += "GB" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_GMT0) += "GMT0" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_INDIAN) += "Indian" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_KWAJALEIN) += "Kwajalein" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_MEXICO) += "Mexico" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_PRC) += "PRC" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ROC) += "ROC" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_UCT) += "UCT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_WET) += "WET" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ANTARCTICA) += "Antarctica" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_BRAZIL) += "Brazil" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_CUBA) += "Cuba" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_EIRE) += "Eire" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_IRAN) += "Iran" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_LIBYA) += "Libya" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_MIDEAST) += "Mideast" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_PST8PDT) += "PST8PDT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ROK) += "ROK" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_US) += "US" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ZULU) += "Zulu" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ARCTIC) += "Arctic" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_CET) += "CET" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_EET) += "EET" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ETC) += "Etc" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_GMT) += "GMT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_HST) += "HST" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ISRAEL) += "Israel" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_MET) += "MET" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_NZ) += "NZ" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_PACIFIC) += "Pacific" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_SINGAPORE) += "Singapore" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_UTC) += "UTC" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_ASIA) += "Asia" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_CST6CDT) += "CST6CDT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_EST) += "EST" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_GMT0) += "GMT+0" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_HONGKONG) += "Hongkong" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_JAMAICA) += "Jamaica" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_MST) += "MST" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_NZ_CHAT) += "NZ-CHAT" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_SYSTEMV) += "SystemV" +GLIBC_ZONEFILES-$(PTXCONF_TIMEZONE_UNIVERSAL) += "Universal" + +# ---------------------------------------------------------------------------- +# Get +# ---------------------------------------------------------------------------- + +timezone_get: $(STATEDIR)/timezone.get + +$(STATEDIR)/timezone.get: $(timezone_get_deps_default) + @$(call targetinfo, $@) + @$(call touch, $@) + +$(TIMEZONE_SOURCE): + @$(call targetinfo, $@) + @$(call get, TIMEZONE) + +# ---------------------------------------------------------------------------- +# Extract +# ---------------------------------------------------------------------------- + +timezone_extract: $(STATEDIR)/timezone.extract + +$(STATEDIR)/timezone.extract: $(timezone_extract_deps_default) + @$(call targetinfo, $@) + @$(call clean, $(TIMEZONE_DIR)) + @mkdir -p $(TIMEZONE_DIR) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +timezone_prepare: $(STATEDIR)/timezone.prepare + +$(STATEDIR)/timezone.prepare: $(timezone_prepare_deps_default) + @$(call targetinfo, $@) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Compile +# ---------------------------------------------------------------------------- + +timezone_compile: $(STATEDIR)/timezone.compile + +$(STATEDIR)/timezone.compile: $(timezone_compile_deps_default) + @$(call targetinfo, $@) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Install +# ---------------------------------------------------------------------------- + +timezone_install: $(STATEDIR)/timezone.install + +$(STATEDIR)/timezone.install: $(timezone_install_deps_default) + @$(call targetinfo, $@) + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +timezone_targetinstall: $(STATEDIR)/timezone.targetinstall + +$(STATEDIR)/timezone.targetinstall: $(timezone_targetinstall_deps_default) + @$(call targetinfo, $@) + + @$(call install_init, timezone) + @$(call install_fixup, timezone,PACKAGE,timezone) + @$(call install_fixup, timezone,PRIORITY,optional) + @$(call install_fixup, timezone,VERSION,$(TIMEZONE_VERSION)) + @$(call install_fixup, timezone,SECTION,base) + @$(call install_fixup, timezone,AUTHOR,"Robert Schwebel <r.schwebel\@pengutronix.de>") + @$(call install_fixup, timezone,DEPENDS,) + @$(call install_fixup, timezone,DESCRIPTION,missing) + + @for target in $(GLIBC_ZONEFILES-y); do \ + $(call add_zoneinfo, $$target, $(TIMEZONE_DIR)); \ + done + + @$(call install_copy, timezone, 0, 0, 0755, /usr/share/zoneinfo) + @for d in `find ${TIMEZONE_DIR}/zoneinfo/ -type d | awk -v FS="zoneinfo/" '{print $$2}'`; do \ + $(call install_copy, timezone, 0, 0, 0755, /usr/share/zoneinfo/$$d); \ + done + + @for f in `find ${TIMEZONE_DIR}/zoneinfo/ -type f | awk -v FS="zoneinfo/" '{print $$2}'`; do \ + $(call install_copy, timezone, 0, 0, 0655, $(TIMEZONE_DIR)/zoneinfo/$$f, /usr/share/zoneinfo/$$f,n); \ + done + +ifdef PTXCONF_GLIBC_LOCALTIME_LINK + @$(call install_link, timezone, $(PTXCONF_GLIBC_LOCALTIME_LINK), /etc/localtime) +endif + + @$(call install_finish, timezone) + + @$(call touch, $@) + +# ---------------------------------------------------------------------------- +# Clean +# ---------------------------------------------------------------------------- + +timezone_clean: + rm -rf $(STATEDIR)/timezone.* + rm -rf $(IMAGEDIR)/timezone_* + rm -rf $(TIMEZONE_DIR) + +# vim: syntax=make diff --git a/scripts/install_copy_toolchain.sh b/scripts/install_copy_toolchain.sh index cd80acca5..517d93a54 100755 --- a/scripts/install_copy_toolchain.sh +++ b/scripts/install_copy_toolchain.sh @@ -335,4 +335,4 @@ ptxd_install_copy_toolchain() { # # FIXME: ugly hack to use this script as library as well # -[ `basename $0` != "make_locale.sh" ] && ptxd_install_copy_toolchain "${@}" +[ `basename $0` != "make_locale.sh" ] && [ `basename $0` != "make_zoneinfo.sh" ] && ptxd_install_copy_toolchain "${@}" diff --git a/scripts/make_zoneinfo.sh b/scripts/make_zoneinfo.sh new file mode 100755 index 000000000..ad3367584 --- /dev/null +++ b/scripts/make_zoneinfo.sh @@ -0,0 +1,60 @@ +#!/bin/bash + +if test -z "${PTXDIST_TOPDIR}"; then + echo PTXDIST_TOPDIR is unset + exit +fi + +. ${PTXDIST_TOPDIR}/scripts/ptxdist_vars.sh +. ${SCRIPTSDIR}/libptxdist.sh +. ${SCRIPTSDIR}/install_copy_toolchain.sh + +usage() { + echo + echo "usage: $0 <args>" + echo + echo " Arguments:" + echo + echo " -n name zoneinfoe name" + echo " -p prefix prefix dir" + exit 1 +} + +add_zoneinfo() { + local PREF ZONEINFO_NAME + while getopts "n:p:" opt; do + case "${opt}" in + n) + ZONEINFO_NAME="${OPTARG}" + ;; + p) + PREF="${OPTARG}" + ;; + *) + usage + ;; + esac + done + + SYSROOT_USR=`ptxd_get_sysroot_usr` + [ ! -d ${SYSROOT_USR} ] && { echo "Toolchain sysroot dir not found"; exit 1; } + [ ! -d ${SYSROOT_USR}/share/zoneinfo ] && { echo "Zoneinfo dir not found"; exit 1; } + + if [ ! -d ${PREF}/zoneinfo ]; then + mkdir -p ${PREF}/zoneinfo + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo directory ${PREF}/usr/share/zoneinfo"; exit 1; } + fi + + if [ -d ${SYSROOT_USR}/share/zoneinfo/${ZONEINFO_NAME} ]; then + mkdir -p ${PREF}/zoneinfo/${ZONEINFO_NAME} + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo directory ${PREF}/zoneinfo/${ZONEINFO_NAME}"; exit 1; } + cp -R ${SYSROOT_USR}/share/zoneinfo/${ZONEINFO_NAME}/* ${PREF}/zoneinfo/${ZONEINFO_NAME} + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo files ${PREF}/zoneinfo${ZONEINFO_NAME}"; exit 1; } + else + cp ${SYSROOT_USR}/share/zoneinfo/${ZONEINFO_NAME} ${PREF}/zoneinfo/${ZONEINFO_NAME} + [ $? -ne 0 ] && { echo "Could not create temporary zoneinfo file ${PREF}/zoneinfo/${ZONEINFO_NAME}"; exit 1; } + fi +} + +add_zoneinfo "${@}" +exit 0 |