Introduction to NSPR
        
        
          Netscape Portable Runtime (NSPR)
          provides a platform-neutral API for system level and libc like
          functions.
        
        
       
      
        
          Installation of NSPR
        
        
          Install NSPR by running the
          following commands:
        
        cd nspr &&
sed -i '/^RELEASE/s|^|#|' pr/src/misc/Makefile.in &&
sed -i 's|$(LIBRARY) ||'  config/rules.mk         &&
./configure --prefix=/usr   \
            --with-mozilla  \
            --with-pthreads \
            $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make
        
          The test suite is designed for testing changes to nss or nspr and
          is not particularly useful for checking a released version (e.g. it
          needs to be run on a non-optimized build with both nss and nspr
          directories existing alongside each other).
        
        
          Now, as the root user:
        
        make install
       
      
        
          32-bit Installation of NSPR
        
        
          First clean the directory by running the following command:
        
        make distclean
        
          Install lib32-NSPR by running the
          following commands:
        
        CC="gcc -m32" CXX="g++ -m32"         \
PKG_CONFIG_PATH=/usr/lib32/pkgconfig \
./configure --prefix=/usr            \
            --libdir=/usr/lib32      \
            --host=i686-pc-linux-gnu \
            --with-mozilla           \
            --with-pthreads          \
            --disable-64bit &&
make
        
          Now, as the root user:
        
        make DESTDIR=$PWD/DESTDIR install
cp -vr DESTDIR/usr/lib32/* /usr/lib32
rm -rf DESTDIR
ldconfig
       
      
        
          Possible Parameters
        
        
          --disable-option-checking: This
          parameter ignores incorrect parameters.
        
        
          --enable-x32: This parameter enables
          x32-bit support, not to be confused with 32-bit. Meant for 64-bit
          systems.
        
        
          --enable-64bit: This parameter enables
          64-bit support, meant for and needed by 64-bit systems.
        
        
          --enable-mdupdate: This parameter
          enables some compilers' mdupdate feature.
        
        
          --enable-cplus: This parameter enables
          some of the C++ API routines.
        
        
          --enable-strip: This parameter enables
          stripping the built libraries and programs of debug symbols.
        
        
          --enable-user-pthreads: This parameter
          enables the use of pthreads.
        
        
          --enable-nspr-threads: This parameter
          enables building the classic NSPR threads.
        
        
          --enable-ipv6: This parameter enables
          building in ipv6 support.
        
        
          --enable-wrap-malloc: This parameter
          enables wrapping malloc calls (meant to be used when linking via
          the GNU linker).
        
        
          --with-mozilla: This option enables
          building with Mozilla support.
        
        
          --with-ccache=<PATH>: This parameter
          enables compiling with ccache.
        
        
          --with-pthreads: This parameter uses
          the system pthreads library.
        
       
      
        
          Command Explanations
        
        
          sed -ri '/^RELEASE/s/^/#/'
          pr/src/misc/Makefile.in: This sed disables
          installing two unneeded scripts.
        
        
          sed -i 's#$(LIBRARY) ##'
          config/rules.mk: This sed disables installing the
          static libraries.
        
        
          --with-mozilla: This
          parameter adds Mozilla support to the libraries (required if you
          want to build any other Mozilla products and link them to these
          libraries).
        
        
          --with-pthreads: This
          parameter forces use of the system pthread library.
        
        
          --enable-64bit: The
          --enable-64bit parameter is required on an x86_64 system to prevent
          configure failing
          with a claim that this is a system without pthread support. The [
          $(uname -m) = x86_64 ] test ensures it has no effect on a 32 bit
          system. Keep the line if intending to do multilib, and the lib32
          instructions will be down below.
        
       
      
        
          Contents
        
        
          
            
              Installed Programs:
              nspr-config
            
            
              Installed Libraries:
              libnspr4.so, libplc4.so, and
              libplds4.so
            
            
              Installed Directories:
              /usr/include/nspr
            
           
         
        
          
            Short Descriptions
          
          
            
              
              
            
            
              
                | 
                    nspr-config
                   | 
                    provides compiler and linker options to other packages
                    that use NSPR
                   | 
              
                | 
                    libnspr4.so | 
                    contains functions that provide platform independence for
                    non-GUI operating system facilities such as threads,
                    thread synchronization, normal file and network I/O,
                    interval timing and calendar time, basic memory
                    management and shared library linking
                   | 
              
                | 
                    libplc4.so | 
                    contains functions that implement many of the features
                    offered by libnspr4
                   | 
              
                | 
                    libplds4.so | 
                    contains functions that provide data structures
                   |