home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / gnu / gmp-1.3.2-src.lha / src / amiga / gmp-1.3.2 / Makefile.in < prev    next >
Makefile  |  1994-05-04  |  15KB  |  370 lines

  1. # Makefile for GNU MP (a.k.a. biGNUm)
  2. # Copyright (C) 1991, 1993 Free Software Foundation, Inc.
  3.  
  4. # This file is part of the GNU MP Library.
  5.  
  6. # The GNU MP Library is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2, or (at your option)
  9. # any later version.
  10.  
  11. # The GNU MP Library is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. # GNU General Public License for more details.
  15.  
  16. # You should have received a copy of the GNU General Public License
  17. # along with the GNU MP Library; see the file COPYING.  If not, write to
  18. # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  19.  
  20. #### Start of system configuration section. ####
  21.  
  22. VPATH = @srcdir@
  23. srcdir = @srcdir@
  24.  
  25. # Common prefix for machine-independent installed files.
  26. prefix = /gnu
  27. # Common prefix for machine-dependent installed files.
  28. exec_prefix = $(prefix)
  29.  
  30. # Directory to install executables in.
  31. bindir = $(exec_prefix)/bin
  32. # Directory to install libraries in.
  33. libdir = $(exec_prefix)/lib
  34. # Directory to install the Info files in.
  35. infodir = $(prefix)/info
  36. # Directory to install the man page in.
  37. mandir = $(prefix)/man/man$(manext)
  38. # Number to put on the man page filename.
  39. manext = 1
  40.  
  41. # Program to install executables.
  42. INSTALL_PROGRAM = @INSTALL_PROGRAM@
  43. # Program to install data like man pages.
  44. INSTALL_DATA = @INSTALL_DATA@
  45. # Generic install program.
  46. INSTALL = @INSTALL@
  47.  
  48. CC = @CC@
  49. DEFS = @DEFS@
  50. CFLAGS = @CFLAGS@
  51.  
  52. LDFLAGS = @LDFLAGS@
  53. LIBS = @LIBS@
  54.  
  55. RANLIB = @RANLIB@
  56. LN = @LN_S@
  57.  
  58. #### End of system configuration section. ####
  59.  
  60. .c.o:
  61.     $(CC) -c -I. -I$(srcdir) $(DEFS) $(CFLAGS) $< $(OUTPUT_OPTION)
  62.  
  63. AR = ar
  64. SHELL = /bin/sh
  65. TEX = tex
  66. TEXINDEX = texindex
  67.  
  68. SRCS =        $(MPZ_SRCS) $(MPQ_SRCS) $(BSDMP_SRCS) $(MPN_SRCS) \
  69.         $(IMPL_SRCS)
  70.  
  71. OBJS =        $(MPZ_OBJS) $(MPQ_OBJS) $(BSDMP_OBJS) $(MPN_OBJS) \
  72.         $(IMPL_OBJS)
  73.  
  74. MP_OBJS =    $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS) mp_bases.o \
  75.         mpz_sizeinb.o
  76.  
  77. GMP_OBJS =    $(MPZ_OBJS) $(MPQ_OBJS) $(MPN_OBJS) $(IMPL_OBJS) mp_bases.o
  78.  
  79. IMPL_SRCS =    memory.c mp_set_fns.c _mpz_set_str.c _mpz_get_str.c \
  80.         mpz_realloc.c mp_clz_tab.c alloca.c
  81.  
  82. IMPL_OBJS =    memory.o mp_set_fns.o _mpz_set_str.o _mpz_get_str.o \
  83.         mpz_realloc.o mp_clz_tab.o alloca.o
  84.  
  85. MPZ_SRCS =    mpz_init.c mpz_set.c mpz_set_ui.c mpz_set_si.c \
  86.         mpz_set_str.c mpz_iset.c mpz_iset_ui.c mpz_iset_si.c \
  87.         mpz_iset_str.c mpz_clear.c mpz_get_ui.c mpz_get_si.c \
  88.         mpz_get_str.c mpz_size.c mpz_sizeinb.c mpz_add.c \
  89.         mpz_add_ui.c mpz_sub.c mpz_sub_ui.c mpz_mul.c mpz_mul_ui.c \
  90.         mpz_div.c mpz_div_ui.c mpz_mod.c mpz_mod_ui.c mpz_dm.c \
  91.         mpz_dm_ui.c mpz_mdiv.c mpz_mmod.c mpz_mdm.c mpz_mdiv_ui.c \
  92.         mpz_mmod_ui.c mpz_mdm_ui.c mpz_gcd.c mpz_gcdext.c \
  93.         mpz_sqrt.c mpz_sqrtrem.c mpz_powm.c mpz_powm_ui.c \
  94.         mpz_cmp.c mpz_cmp_ui.c mpz_cmp_si.c mpz_mul_2exp.c \
  95.         mpz_div_2exp.c mpz_mod_2exp.c mpz_abs.c mpz_neg.c \
  96.         mpz_com.c mpz_and.c mpz_ior.c mpz_inp_raw.c mpz_inp_str.c \
  97.         mpz_out_raw.c mpz_out_str.c mpz_perfsqr.c mpz_random.c \
  98.         mpz_random2.c mpz_pow_ui.c mpz_clrbit.c mpz_fac_ui.c \
  99.         mpz_pprime_p.c
  100.  
  101. MPZ_OBJS =    mpz_init.o mpz_set.o mpz_set_ui.o mpz_set_si.o \
  102.         mpz_set_str.o mpz_iset.o mpz_iset_ui.o mpz_iset_si.o \
  103.         mpz_iset_str.o mpz_clear.o mpz_get_ui.o mpz_get_si.o \
  104.         mpz_get_str.o mpz_size.o mpz_sizeinb.o mpz_add.o \
  105.         mpz_add_ui.o mpz_sub.o mpz_sub_ui.o mpz_mul.o mpz_mul_ui.o \
  106.         mpz_div.o mpz_div_ui.o mpz_mod.o mpz_mod_ui.o mpz_dm.o \
  107.         mpz_dm_ui.o mpz_mdiv.o mpz_mmod.o mpz_mdm.o mpz_mdiv_ui.o \
  108.         mpz_mmod_ui.o mpz_mdm_ui.o mpz_gcd.o mpz_gcdext.o \
  109.         mpz_sqrt.o mpz_sqrtrem.o mpz_powm.o mpz_powm_ui.o \
  110.         mpz_cmp.o mpz_cmp_ui.o mpz_cmp_si.o mpz_mul_2exp.o \
  111.         mpz_div_2exp.o mpz_mod_2exp.o mpz_abs.o mpz_neg.o \
  112.         mpz_com.o mpz_and.o mpz_ior.o mpz_inp_raw.o mpz_inp_str.o \
  113.         mpz_out_raw.o mpz_out_str.o mpz_perfsqr.o mpz_random.o \
  114.         mpz_random2.o mpz_pow_ui.o mpz_clrbit.o mpz_fac_ui.o \
  115.         mpz_pprime_p.o
  116.  
  117. MPQ_SRCS =    mpq_init.c mpq_set.c mpq_set_ui.c mpq_set_si.c \
  118.         mpq_set_num.c mpq_set_den.c mpq_get_num.c mpq_get_den.c \
  119.         mpq_add.c mpq_sub.c mpq_mul.c mpq_div.c \
  120.         mpq_clear.c mpq_cmp.c mpq_inv.c mpq_neg.c
  121.  
  122. MPQ_OBJS =    mpq_init.o mpq_set.o mpq_set_ui.o mpq_set_si.o \
  123.         mpq_set_num.o mpq_set_den.o mpq_get_num.o mpq_get_den.o \
  124.         mpq_add.o mpq_sub.o mpq_mul.o mpq_div.o \
  125.         mpq_clear.o mpq_cmp.o mpq_inv.o mpq_neg.o
  126.  
  127. MPN_SRCS =    mpn_add.c mpn_sub.c mpn_cmp.c mpn_mul.c mpn_div.c \
  128.         mpn_dm_1.c mpn_mod_1.c mpn_lshift.c mpn_rshift.c \
  129.         mpn_rshiftci.c mpn_sqrt.c
  130.  
  131. MPN_OBJS =    mpn_add.o mpn_sub.o mpn_cmp.o mpn_mul.o mpn_div.o \
  132.         mpn_dm_1.o mpn_mod_1.o mpn_lshift.o mpn_rshift.o \
  133.         mpn_rshiftci.o mpn_sqrt.o
  134.  
  135. # There are fewer members in the BSDMP_SRCS list that in the BSDMP_OBJS
  136. # list because some of the .c files are created by this Makefile.
  137.  
  138. BSDMP_SRCS =    itom.c mdiv.c move.c mtox.c xtom.c sdiv.c mout.c min.c \
  139.         mfree.c
  140.  
  141. BSDMP_OBJS =    gcd.o itom.o madd.o mcmp.o mdiv.o move.o msub.o mtox.o \
  142.         mult.o pow.o rpow.o xtom.o msqrt.o sdiv.o mout.o min.o \
  143.         mfree.o
  144.  
  145. all:        libgmp.a libmp.a
  146.  
  147. check:        libgmp.a
  148.         cd tests; $(MAKE) CC="$(CC)" SHELL="$(SHELL)" OPT="$(OPT)"
  149.  
  150. libgmp.a:    stamp-stddefh $(GMP_OBJS)
  151.         rm -f $@
  152.         $(AR) cr $@ $(GMP_OBJS)
  153.         $(RANLIB) $@
  154.  
  155. # libmp.a depend on libgmp.a, to get around Unix(tm) ar/ranlib concurrency
  156. # bug.
  157.  
  158. libmp.a:    stamp-stddefh $(MP_OBJS) libgmp.a
  159.         rm -f $@
  160.         $(AR) cr $@ $(MP_OBJS)
  161.         $(RANLIB) $@
  162.  
  163. stamp-stddefh:
  164.         rm -f stddef.h
  165.         rm -f test-stddefh.c
  166.         (echo '#include <stddef.h>'                ;\
  167.           echo 'main(){size_t foo=sizeof(size_t);exit(0);}'    ;\
  168.         ) > test-stddefh.c
  169.         @if $(CC) $(DEFS) $(CFLAGS) test-stddefh.c -c 2> /dev/null;\
  170.         then true                        ;\
  171.         else                            \
  172.           echo 'This machine has no "stddef.h".  Creating a minimal in ./';\
  173.           $(CC) $(DEFS) $(CFLAGS) $(srcdir)/cre-stddefh.c -o cre-stddefh        ;\
  174.           ./cre-stddefh > stddef.h                ;\
  175.         fi
  176.         rm -f test-stddefh.o
  177.         touch stamp-stddefh
  178.  
  179. mp_bases.c:    cre-conv-tab
  180.         ./cre-conv-tab > tmp-$@
  181.         mv tmp-$@ $@
  182.  
  183. cre-conv-tab.o:    cre-conv-tab.c gmp.h gmp-impl.h gmp-mparam.h longlong.h
  184.  
  185. cre-conv-tab:    cre-conv-tab.o
  186.         $(CC) $(LDFLAGS) cre-conv-tab.o -o $@ -lm
  187.  
  188. gmp-mparam.h:    cre-mparam
  189.         ./cre-mparam > tmp-$@
  190.         mv tmp-$@ $@
  191.  
  192. cre-mparam:    cre-mparam.c stamp-stddefh gmp.h
  193.         $(CC) $(DEFS) $(CFLAGS) $(srcdir)/cre-mparam.c -o $@
  194.  
  195. gcd.c:        mpz_gcd.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h \
  196.         longlong.h 
  197.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  198.             $(srcdir)/mpz_gcd.c | grep -v '^#' > $@
  199.  
  200. pow.c:        mpz_powm.c stamp-stddefh mp.h gmp.h gmp-impl.h \
  201.         gmp-mparam.h  longlong.h 
  202.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  203.             $(srcdir)/mpz_powm.c | grep -v '^#' > $@
  204.  
  205. rpow.c:        mpz_pow_ui.c stamp-stddefh mp.h gmp.h gmp-impl.h \
  206.         gmp-mparam.h longlong.h 
  207.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  208.             $(srcdir)/mpz_pow_ui.c | grep -v '^#' > $@
  209.  
  210. madd.c:        mpz_add.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  211.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  212.             $(srcdir)/mpz_add.c | grep -v '^#' > $@
  213.  
  214. msub.c:        mpz_sub.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  215.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  216.             $(srcdir)/mpz_sub.c | grep -v '^#' > $@
  217.  
  218. mult.c:        mpz_mul.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  219.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  220.             $(srcdir)/mpz_mul.c | grep -v '^#' > $@
  221.  
  222. mcmp.c:        mpz_cmp.c stamp-stddefh mp.h gmp.h gmp-impl.h gmp-mparam.h
  223.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  224.             $(srcdir)/mpz_cmp.c | grep -v '^#' > $@
  225.  
  226. msqrt.c:    mpz_sqrtrem.c stamp-stddefh mp.h gmp.h gmp-impl.h \
  227.         gmp-mparam.h
  228.         $(CC) -I. -I$(srcdir) $(DEFS) $(CFLAGS) -E -DBERKELEY_MP \
  229.             $(srcdir)/mpz_sqrtrem.c | grep -v '^#' > $@
  230.  
  231. doc:        gmp.dvi gmp.info
  232.  
  233. gmp.dvi:    $(srcdir)/gmp.texi
  234.         rm -f tmp.texi
  235.         $(LN) $(srcdir)/gmp.texi tmp.texi
  236.         $(TEX) tmp.texi < /dev/null
  237.         $(TEXINDEX) tmp.cp tmp.fn
  238.         $(TEX) tmp.texi < /dev/null 2> /dev/null
  239.         mv tmp.dvi $@
  240.  
  241. gmp.info:    gmp.texi
  242.         makeinfo $(srcdir)/gmp.texi
  243.  
  244. clean:
  245.         rm -f *.o libgmp.a libmp.a cre-conv-tab cre-mparam \
  246.             cre-stddefh gmp.dvi gmp.info mp_bases.c \
  247.             g