MiniDLNA 1.0.22: cvs 2011-08-25
[tomato.git] / release / src / router / openssl / shlib / hpux10-cc.sh
blob5a9be6dbffa7d5ee22af103bf890407295973017
1 #!/usr/bin/sh
3 # Run this script from the OpenSSL root directory:
4 # sh shlib/hpux10-cc.sh
5 #
6 # HP-UX (10.20) shared library installation:
7 # Compile and install OpenSSL with best possible optimization:
8 # - shared libraries are compiled and installed with +O4 optimization
9 # - executable(s) are compiled and installed with +O4 optimization
10 # - static libraries are compiled and installed with +O3 optimization,
11 # to avoid the time consuming +O4 link-time optimization when using
12 # these libraries. (The shared libs are already optimized during build
13 # at +O4.)
15 # This script must be run with appropriate privileges to install into
16 # /usr/local/ssl. HP-UX prevents used executables and shared libraries
17 # from being deleted or overwritten. Stop all processes using already
18 # installed items of OpenSSL.
20 # WARNING: At high optimization levels, HP's ANSI-C compiler can chew up
21 # large amounts of memory and CPU time. Make sure to have at least
22 # 128MB of RAM available and that your kernel is configured to allow
23 # at least 128MB data size (maxdsiz parameter which can be obtained
24 # by multiplying 'echo maxdsiz/D | adb -k /stand/vmunix /dev/kmem'
25 # by 'getconf PAGE_SIZE').
26 # The installation process can take several hours, even on fast
27 # machines. +O4 optimization of the libcrypto.sl shared library may
28 # take 1 hour on a C200 (200MHz PA8200 CPU), +O3 compilation of
29 # fcrypt_b.c can take 20 minutes on this machine. Stay patient.
31 # SITEFLAGS: site specific flags. I do use +DAportable, since I have to
32 # support older PA1.1-type CPUs. Your mileage may vary.
33 # +w1 enables enhanced warnings, useful when working with snaphots.
35 SITEFLAGS="+DAportable +w1"
37 # Set the default additions to build with HP-UX.
38 # -D_REENTRANT must/should be defined on HP-UX manually, since we do call
39 # Configure directly.
40 # +Oall increases the optimization done.
42 MYFLAGS="-D_REENTRANT +Oall $SITEFLAGS"
44 # Configure for pic and build the static pic libraries
45 perl5 Configure no-shared hpux-parisc-cc-o4 +Z ${MYFLAGS}
46 make clean
47 make DIRS="crypto ssl"
48 # Rename the static pic libs and build dynamic libraries from them
49 # Be prepared to see a lot of warnings about shared libraries being built
50 # with optimizations higher than +O2. When using these libraries, it is
51 # not possible to replace internal library functions with functions from
52 # the program to be linked.
54 make -f shlib/Makefile.hpux10-cc
56 # Copy the libraries to /usr/local/ssl/lib (they have to be in their
57 # final location when linking applications).
58 # If the directories are still there, no problem.
59 mkdir /usr/local
60 mkdir /usr/local/ssl
61 mkdir /usr/local/ssl/lib
62 chmod 444 lib*_pic.a
63 chmod 555 lib*.sl.0.9.6d
64 cp -p lib*_pic.a lib*.sl.0.9.6d /usr/local/ssl/lib
65 (cd /usr/local/ssl/lib ; ln -sf libcrypto.sl.0.9.6d libcrypto.sl ; ln -sf libssl.sl.0.9.6d libssl.sl)
67 # Reconfigure without pic to compile the executables. Unfortunately, while
68 # performing this task we have to recompile the library components, even
69 # though we use the already installed shared libs anyway.
71 perl5 Configure no-shared hpux-parisc-cc-o4 ${MYFLAGS}
73 make clean
75 # Hack the Makefiles to pick up the dynamic libraries during linking
77 sed 's/^PEX_LIBS=.*$/PEX_LIBS=-L\/usr\/local\/ssl\/lib/' Makefile.ssl >xxx; mv xxx Makefile.ssl
78 sed 's/-L\.\.//' apps/Makefile.ssl >xxx; mv xxx apps/Makefile.ssl
79 sed 's/-L\.\.//' test/Makefile.ssl >xxx; mv xxx test/Makefile.ssl
80 # Build the static libs and the executables in one make.
81 make
82 # Install everything
83 make install
85 # Finally build the static libs with +O3. This time we only need the libraries,
86 # once created, they are simply copied into place.
88 perl5 Configure no-shared hpux-parisc-cc ${MYFLAGS}
89 make clean
90 make DIRS="crypto ssl"
91 chmod 644 libcrypto.a libssl.a
92 cp -p libcrypto.a libssl.a /usr/local/ssl/lib