1:
2:
3:
4:
5:
6:
7:
8:
9:
10: CONFIG_OPTIONS="--prefix=/usr shared no-idea no-rc5 no-mdc2"
11: INSTALL_PREFIX=/tmp/install
12:
13: VERSION=
14: SUBVERSION=$1
15:
16: function cleanup()
17: {
18: rm -rf ${INSTALL_PREFIX}/etc
19: rm -rf ${INSTALL_PREFIX}/usr
20: }
21:
22: function get_openssl_version()
23: {
24: eval `grep '^VERSION=' Makefile`
25: if [ -z "${VERSION}" ]
26: then
27: echo "Error: Couldn't retrieve OpenSSL version from Makefile."
28: echo " Check value of variable VERSION in Makefile."
29: exit 1
30: fi
31: }
32:
33: function base_install()
34: {
35: mkdir -p ${INSTALL_PREFIX}
36: cleanup
37: make install INSTALL_PREFIX="${INSTALL_PREFIX}"
38: }
39:
40: function doc_install()
41: {
42: DOC_DIR=${INSTALL_PREFIX}/usr/share/doc/openssl
43:
44: mkdir -p ${DOC_DIR}
45: cp CHANGES CHANGES.SSLeay INSTALL LICENSE NEWS README ${DOC_DIR}
46:
47: create_cygwin_readme
48: }
49:
50: function certs_install()
51: {
52: CERTS_DIR=${INSTALL_PREFIX}/usr/ssl/certs
53:
54: mkdir -p ${CERTS_DIR}
55: cp -rp certs/* ${CERTS_DIR}
56: }
57:
58: function create_cygwin_readme()
59: {
60: README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
61: README_FILE=${README_DIR}/openssl-${VERSION}.README
62:
63: mkdir -p ${README_DIR}
64: cat > ${README_FILE} <<- EOF
65: The Cygwin version has been built using the following configure:
66:
67: ./config ${CONFIG_OPTIONS}
68:
69: The IDEA, RC5 and MDC2 algorithms are disabled due to patent and/or
70: licensing issues.
71: EOF
72: }
73:
74: function create_profile_files()
75: {
76: PROFILE_DIR=${INSTALL_PREFIX}/etc/profile.d
77:
78: mkdir -p $PROFILE_DIR
79: cat > ${PROFILE_DIR}/openssl.sh <<- "EOF"
80: export MANPATH="${MANPATH}:/usr/ssl/man"
81: EOF
82: cat > ${PROFILE_DIR}/openssl.csh <<- "EOF"
83: if ( $?MANPATH ) then
84: setenv MANPATH "${MANPATH}:/usr/ssl/man"
85: else
86: setenv MANPATH ":/usr/ssl/man"
87: endif
88: EOF
89: }
90:
91: if [ -z "${SUBVERSION}" ]
92: then
93: echo "Usage: $0 subversion"
94: exit 1
95: fi
96:
97: if [ ! -f config ]
98: then
99: echo "You must start this script in the OpenSSL toplevel source dir."
100: exit 1
101: fi
102:
103: ./config ${CONFIG_OPTIONS}
104:
105: get_openssl_version
106:
107: make depend || exit 1
108:
109: make || exit 1
110:
111: base_install
112:
113: doc_install
114:
115: certs_install
116:
117: create_cygwin_readme
118:
119: create_profile_files
120:
121: cd ${INSTALL_PREFIX}
122: chmod u+w usr/lib/engines/*.so
123: strip usr/bin/*.exe usr/bin/*.dll usr/lib/engines/*.so
124: chmod u-w usr/lib/engines/*.so
125:
126:
127: find etc usr/bin usr/lib/engines usr/share/doc usr/ssl/certs \
128: usr/ssl/man/man[157] usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private \
129: -empty -o \! -type d |
130: tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
131:
132: find usr/include usr/lib/*.a usr/lib/pkgconfig usr/ssl/man/man3 \
133: -empty -o \! -type d |
134: tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 -
135:
136: ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2
137: ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2
138:
139: cleanup
140:
141: exit 0