* g10.c (i18n_init) [W32]: Pass registry key to gettext
[gnupg.git] / scripts / mk-w32-dist
1 #!/bin/sh
2 #
3 # Copyright (C) 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
4 #
5 # This file is free software; as a special exception the author gives
6 # unlimited permission to copy and/or distribute it, with or without
7 # modifications, as long as this notice is preserved.
8 #
9 # This program is distributed in the hope that it will be useful, but
10 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
11 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12
13
14 set -e
15
16 cd dist-w32
17
18 bindir=..
19
20 if [ -f ../README ]; then
21     srcdir=..
22 elif [ -f ../../README ]; then
23     srcdir=../..
24     bindir=..
25 elif [ -f ../../gnupg-stable/README ]; then
26     srcdir=../../gnupg-stable
27 elif [ -f ../../../gnupg-stable/README ]; then
28     srcdir=../../../gnupg-stable
29 else
30     echo "cannot figure out the source dir" >&2
31     exit 1
32 fi
33
34 if i586-mingw32msvc-strip --version >/dev/null 2>&1 ; then
35    STRIP=i586-mingw32msvc-strip
36 else
37    STRIP="mingw32 strip"
38 fi
39
40
41 version=$(sed -n 's/^#[ ]*define[ ][ ]*VERSION[ ][ ]*\"\([0-9.a-z-]*\)\"/\1/p' $bindir/config.h)
42 prod_version=$(echo "$version"|awk -F'[^0-9]' '{print $1 "." $2 "." $3 ".1"}')
43 echo "building version $version ($prod_version)"
44
45 rm * >/dev/null 2>/dev/null || true
46
47 cp ${bindir}/g10/gpg.exe gpg.exe
48 $STRIP gpg.exe
49 cp ${bindir}/g10/gpgv.exe gpgv.exe
50 $STRIP gpgv.exe
51 for name in hkp http ldap finger; do 
52   cp ${bindir}/keyserver/gpgkeys_$name.exe gpgkeys_$name.exe
53   $STRIP gpgkeys_$name.exe
54 done
55 cp ${bindir}/tools/gpgsplit.exe gpgsplit.exe
56 $STRIP gpgsplit.exe
57
58 for i in FAQ; do
59   cp ${bindir}/doc/$i $i.txt
60   todos $i.txt
61 done
62 man -Tlatin1 -l ${srcdir}/doc/gpg.1 | sed `printf "s/\b.//g"`  >gpg.man
63 todos gpg.man
64 man -Tlatin1 -l ${srcdir}/doc/gpgv.1 | sed `printf "s/\b.//g"`  >gpgv.man
65 todos gpgv.man
66 man -Tlatin1 -l ${srcdir}/doc/gnupg.7 | sed `printf "s/\b.//g"`  >gnupg.man
67 todos gnupg.man
68 for i in README COPYING NEWS; do
69   cp ${srcdir}/$i $i.txt
70   todos $i.txt
71 done
72 for i in README.W32 gnupg-w32.reg; do
73   cp ${srcdir}/doc/$i .
74   todos $i
75 done
76
77 # We must distribute the MO files in UTF-8, the conversion is done by
78 # gpg at runtime.
79 for i in ${srcdir}/po/*.po; do
80    lang=$(basename $i .po)
81    grep -s $lang ${srcdir}/po/LINGUAS >/dev/null || continue
82
83    fromset=`sed -n '/^"Content-Type:/ s/.*charset=\([a-zA-Z0-9_-]*\).*/\1/p' $i`
84    case "$fromset" in 
85      utf8|utf-8|UTF8|UTF-8) 
86        echo "$lang: keeping $fromset" >&2 
87        msgfmt --output-file=$lang.mo $i
88        ;;
89      *)
90        echo "$lang: converting from $fromset to utf-8" >&2 
91        iconv --silent --from-code=$fromset --to-code=utf-8 < $i | \
92          sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/" | \
93          msgfmt --output-file=$lang.mo -
94        ;;
95    esac
96 done
97
98 if makensis -version >/dev/null 2>&1 ; then
99   echo "invokin installer as:"
100   echo makensis -v3 -nocd -DVERSION="${version}" \
101            -DPROD_VERSION="${prod_version}" \
102            -DGNUPG_SRCDIR="${srcdir}" ${srcdir}/scripts/w32installer.nsi
103   makensis -v3 -nocd -DVERSION="${version}" \
104            -DPROD_VERSION="${prod_version}" \
105            -DGNUPG_SRCDIR="${srcdir}" ${srcdir}/scripts/w32installer.nsi
106   echo "Installer created" >&2
107 else
108   zip -9 "gnupg-w32cli-${version}.zip" *
109   echo "ZIP archive created" >&2
110 fi