blob: d543638cd3de8e326b7c0c7dc3b9ef80a44a55e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
all: linhes_timezone
clean:
rm -Rf tables maps \
WorldTZ.mdb WorldTZ.mfd WorldTZ.mas WorldTZ.mws WorldTZ_readme.txt map_data.txt \
extract_map_data create_map_include linhes_timezone timezone_map.h
#WorldTZ.mdb WorldTZ.mfd : WorldTZ_102.zip
# unzip WorldTZ_102.zip ; touch WorldTZ.mdb WorldTZ.mfd
tables/AttrDesc : WorldTZ.mdb
mkdir -p tables
for table in $$(mdb-tables WorldTZ.mdb) ; do mdb-export WorldTZ.mdb $$table > tables/$$table ; done
sed -i 's/ //g' tables/AttrDesc # Fix TZ corruption.
echo 1254 >> tables/11001 # Add Central African Republic to the UTC+1 borders.
grep -v ^7867$$ tables/11017 > tables/11017.tmp ; mv tables/11017.tmp tables/11017 # Remove WA from UTC+9
grep -v ^7866$$ tables/11017 > tables/11017.tmp ; mv tables/11017.tmp tables/11017 # Remove WA/SA border from UTC+9
echo 7867 >> tables/11016 # Put WA in UTC+8
map_data.txt : extract_map_data WorldTZ.mfd
./extract_map_data > map_data.txt
extract_map_data : extract_map_data.c
cc --std=c99 -o extract_map_data -lm extract_map_data.c
maps : map_data.txt tables/AttrDesc
mkdir maps
for zone in $$(cat tables/AttrDesc | grep 110 | grep -v 11000 | grep -v 11020 | cut -d ',' -f 1) ; \
do \
offset=$$(grep $$zone tables/AttrDesc | cut -d '"' -f 2 | sed 's/+//g' ) ; \
echo $$offset >> maps/zones ; \
boundary=boundary$$offset; \
echo $$boundary ; \
for section in $$(cat tables/$$zone) ; do grep "^$$section," map_data.txt >> maps/$$boundary ; done ; \
done ; \
for i in `cat tables/U8000 | grep -v ObjID | cut -d '"' -f 2 ` ; do \
echo i=$$i ; \
zone=$$(grep "^\\\"$$i\\\"," tables/U8000 | cut -d '"' -f 4) ; \
echo zone=$$zone ; \
tz_name=$$(grep "^\\\"$$i\\\"," tables/U7000 | cut -d '"' -f 4) ; \
echo tz_name=$$tz_name ; \
tz_lat=$$(grep "^$$i," tables/U5000 | cut -d ',' -f 2) ; \
echo tz_lat=$$tz_lat ; \
tz_lon=$$(grep "^$$i," tables/U6000 | cut -d ',' -f 2) ; \
echo tz_lon=$$tz_lon ; \
echo $$tz_lat $$tz_lon $$tz_name >> maps/places$$zone ; \
done ;\
for places in maps/places* ; do \
sort -g -r $$places > $$places.sorted ; mv $$places.sorted $$places ; \
done ; \
sort -g maps/zones > maps/zones.sorted
cat Tux.csv >> maps/boundary14
./create_map_include : create_map_include.c maps
cc -lm --std=gnu99 -o ./create_map_include create_map_include.c
timezone_map.h : ./create_map_include
./create_map_include > timezone_map.h
linhes_timezone : linhes_timezone.c timezone_map.h
cc --std=gnu99 -O3 -pthread -lXt -llirc_client -lm -o linhes_timezone linhes_timezone.c
|