[BACK]Return to INSTALL CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / gmp-2.0.2-ssh-2

Annotation of OpenXM/src/kan96xx/gmp-2.0.2-ssh-2/INSTALL, Revision 1.1

1.1     ! takayama    1: THIS IS A MODIFIED VERSION OF GMP-2.0.2.  THE MODIFICATIONS WERE MADE
        !             2: TO INTEGRATE THIS CODE TO THE SSH SOFTWARE PACKAGE.  PLEASE CONTACT
        !             3: ssh-bugs@cs.hut.fi IF MORE INFORMATION IS NEEDED.
        !             4: -------------------------------------------------------------------------
        !             5: INSTALLING GMP
        !             6: ==============
        !             7:
        !             8: These instructions are only for the impatient.  Others should read the install
        !             9: instructions in the manual, gmp.info.  Use "info -f gmp.info", or, if you
        !            10: don't have info, use type "C-h i g (gmp.info)Top" in emacs.
        !            11:
        !            12: Here are short instructions how to install MP, and some examples that help you
        !            13: get started using MP.
        !            14:
        !            15: First, you need to compile, and optionally install, MP.  Since you're
        !            16: impatient, try this:
        !            17:
        !            18:        ./configure; make
        !            19:
        !            20: If that fails, or you care about the performance of MP, you need to read the
        !            21: full instructions in the chapter "Installing MP", in the manual.
        !            22:
        !            23: Next, you need to try some small test programs, for example the ones below.
        !            24:
        !            25: In MP programs, all variables need to be initialized before they are assigned,
        !            26: and cleared out before program flow leaves the scope in which it was declared.
        !            27: Here is an example of a program that reads two numbers from the command line,
        !            28: multiplies them, and prints the result to stdout.
        !            29:
        !            30:     #include <stdio.h>
        !            31:     #include <gmp.h>         /* All MP programs need to include gmp.h */
        !            32:
        !            33:     main (int argc, char **argv)
        !            34:     {
        !            35:       mpz_t a, b, p;
        !            36:
        !            37:       /* Initialize variables */
        !            38:       mpz_init (a);
        !            39:       mpz_init (b);
        !            40:       mpz_init (p);
        !            41:
        !            42:       /* Assign a and b from base 10 strings in argv */
        !            43:       mpz_set_str (a, argv[1], 10);
        !            44:       mpz_set_str (b, argv[2], 10);
        !            45:
        !            46:       /* Multiply a and b and put the result in p */
        !            47:       mpz_mul (p, a, b);
        !            48:
        !            49:       /* Print p in base 10 */
        !            50:       mpz_out_str (stdout, 10, p);
        !            51:       fputc ('\n', stdout);
        !            52:
        !            53:       /* Clear out variables */
        !            54:       mpz_clear (a);
        !            55:       mpz_clear (b);
        !            56:       mpz_clear (p);
        !            57:       exit (0);
        !            58:     }
        !            59:
        !            60:
        !            61: In practice, that example would be written like this instead:
        !            62:
        !            63:     #include <stdio.h>
        !            64:     #include <gmp.h>
        !            65:
        !            66:     main (int argc, char **argv)
        !            67:     {
        !            68:       mpz_t a, b, p;
        !            69:
        !            70:       /* Initialize and assign a and b from base 10 strings in argv */
        !            71:       mpz_init_set_str (a, argv[1], 10);
        !            72:       mpz_init_set_str (b, argv[2], 10);
        !            73:       /* Initialize p */
        !            74:       mpz_init (p);
        !            75:
        !            76:       /* Multiply a and b and put the result in p */
        !            77:       mpz_mul (p, a, b);
        !            78:
        !            79:       /* Print p in base 10 */
        !            80:       mpz_out_str (stdout, 10, p);
        !            81:       fputc ('\n', stdout);
        !            82:
        !            83:       /* Since we're about to exit, no need to clear out variables */
        !            84:       exit (0);
        !            85:     }
        !            86:
        !            87: Finally, you have to compile your test program, and link it with the MP
        !            88: library.  Assuming your working directory is still the gmp source directory,
        !            89: type:
        !            90:
        !            91:        gcc -g -I. example.c libgmp.a
        !            92:
        !            93:
        !            94: Now try to run the example:
        !            95:
        !            96:        a.out 98365871231256752134 319378318340103345227
        !            97:        31415926535897932384618573336104570964418
        !            98:
        !            99: The functions used here all operate on the domain of signed integers.
        !           100: Functions operating on that domain have names starting with "mpz_".  There are
        !           101: many more such functions than used in these examples.  See the chapter
        !           102: "Integer Functions" in the manual, for a complete list.
        !           103:
        !           104: There are two other main classes of functions in MP.  They operate on rational
        !           105: numbers and floating-point numbers, respectively.  The chapters "Rational
        !           106: Number Functions", and "Floating-point Functions" documents these classes.
        !           107:
        !           108: To run a set of tests, do "make check".  This will take a while.
        !           109:
        !           110: To create the printable documentation from the texinfo source, type "make
        !           111: dvi".  This requires the "tex" command to be available in your search path.
        !           112:
        !           113: To install the library, do "make install".
        !           114:
        !           115: If you decide to use MP, It is a good idea you read at least the chapter "MP
        !           116: Basics" in the manual.
        !           117:
        !           118:
        !           119: Known Build Problems
        !           120: --------------------
        !           121:
        !           122: Note that GCC 2.7.2 (as well as 2.6.3) for the RS/6000 and PowerPC can not
        !           123: be used to compile GMP, due to a bug in GCC.  If you want to use GCC, you
        !           124: need to apply the patch at the end of this file, or use a later version of
        !           125: the compiler.
        !           126:
        !           127: If you are on a Sequent Symmetry, use GAS instead of the system's assembler
        !           128: due to the latter's serious bugs.
        !           129:
        !           130: The system compiler on NeXT is a massacred and old gcc, even if the
        !           131: compiler calls itself cc.  This compiler cannot be used to build GMP.  You
        !           132: need to get a real gcc, and install that before you compile GMP.  (NeXT
        !           133: might have fixed this in newer releases of their system.)
        !           134:
        !           135: Please report other problems to bug-gmp@prep.ai.mit.edu.
        !           136:
        !           137:
        !           138: Patch to apply to GCC 2.6.3 and 2.7.2:
        !           139:
        !           140: *** config/rs6000/rs6000.md    Sun Feb 11 08:22:11 1996
        !           141: --- config/rs6000/rs6000.md.new        Sun Feb 18 03:33:37 1996
        !           142: ***************
        !           143: *** 920,926 ****
        !           144:      (set (match_operand:SI 0 "gpc_reg_operand" "=r")
        !           145:        (not:SI (match_dup 1)))]
        !           146:     ""
        !           147: !   "nor. %0,%2,%1"
        !           148:     [(set_attr "type" "compare")])
        !           149:
        !           150:   (define_insn ""
        !           151: --- 920,926 ----
        !           152:      (set (match_operand:SI 0 "gpc_reg_operand" "=r")
        !           153:        (not:SI (match_dup 1)))]
        !           154:     ""
        !           155: !   "nor. %0,%1,%1"
        !           156:     [(set_attr "type" "compare")])
        !           157:
        !           158:   (define_insn ""

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>