home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / c / gmp / Makefile < prev   
Encoding:
Makefile  |  1995-02-23  |  12.7 KB  |  280 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. CC = gcc -mstubs
  21.  
  22. # If you cross compile on a machine with the same sizes of the integral
  23. # types ("int", "long int", "short int", and "char") define this as the
  24. # local compiler.  Otherwise, you need look for the uses of LOCAL_CC below,
  25. # and handle those cases manually.
  26. LOCAL_CC = $(CC)
  27. OPT = -O2
  28. CFLAGS = -I. $(OPT) -DARCH
  29. AR = makeALF
  30. RANLIB= echo
  31.  
  32. # Hideous macro to convert RISC OS dependencies to gcc Unix filenames.
  33. define UBASE
  34. $(subst .,/,$(dir $@))$(basename $@)
  35. endef
  36.  
  37. o.%:    c.%
  38.     $(CC) $(CFLAGS) -c $(expand $(UBASE)).c -o $(expand $(UBASE)).o
  39.  
  40. IMPL_SRCS = c.memory c.mp_set_fns mpz.c._set_str mpz.c._get_str \
  41.   mpz.c.realloc c.mp_clz_tab c.alloca
  42. IMPL_OBJS = o.memory o.mp_set_fns mpz.o._set_str mpz.o._get_str \
  43.   mpz.o.realloc o.mp_clz_tab o.alloca
  44.  
  45. MPZ_SRCS = mpz.c.init mpz.c.set mpz.c.set_ui mpz.c.set_si mpz.c.set_str \
  46.   mpz.c.iset mpz.c.iset_ui mpz.c.iset_si mpz.c.iset_str mpz.c.clear \
  47.   mpz.c.get_ui mpz.c.get_si mpz.c.get_str mpz.c.size mpz.c.sizeinb \
  48.   mpz.c.add mpz.c.add_ui mpz.c.sub mpz.c.sub_ui mpz.c.mul mpz.c.mul_ui \
  49.   mpz.c.div mpz.c.div_ui mpz.c.mod mpz.c.mod_ui mpz.c.dm mpz.c.dm_ui \
  50.   mpz.c.mdiv mpz.c.mmod mpz.c.mdm mpz.c.mdiv_ui mpz.c.mmod_ui mpz.c.mdm_ui \
  51.   mpz.c.gcd mpz.c.gcdext mpz.c.sqrt mpz.c.sqrtrem mpz.c.powm mpz.c.powm_ui \
  52.   mpz.c.cmp mpz.c.cmp_ui mpz.c.cmp_si mpz.c.mul_2exp mpz.c.div_2exp \
  53.   mpz.c.mod_2exp mpz.c.abs mpz.c.neg mpz.c.com mpz.c.and mpz.c.ior \
  54.   mpz.c.inp_raw mpz.c.inp_str mpz.c.out_raw mpz.c.out_str \
  55.   mpz.c.perfsqr mpz.c.random mpz.c.random2 mpz.c.pow_ui \
  56.   mpz.c.clrbit mpz.c.fac_ui mpz.c.pprime_p
  57. MPZ_OBJS = mpz.o.init mpz.o.set mpz.o.set_ui mpz.o.set_si mpz.o.set_str \
  58.   mpz.o.iset mpz.o.iset_ui mpz.o.iset_si mpz.o.iset_str mpz.o.clear \
  59.   mpz.o.get_ui mpz.o.get_si mpz.o.get_str mpz.o.size mpz.o.sizeinb \
  60.   mpz.o.add mpz.o.add_ui mpz.o.sub mpz.o.sub_ui mpz.o.mul mpz.o.mul_ui \
  61.   mpz.o.div mpz.o.div_ui mpz.o.mod mpz.o.mod_ui mpz.o.dm mpz.o.dm_ui \
  62.   mpz.o.mdiv mpz.o.mmod mpz.o.mdm mpz.o.mdiv_ui mpz.o.mmod_ui mpz.o.mdm_ui \
  63.   mpz.o.gcd mpz.o.gcdext mpz.o.sqrt mpz.o.sqrtrem mpz.o.powm mpz.o.powm_ui \
  64.   mpz.o.cmp mpz.o.cmp_ui mpz.o.cmp_si mpz.o.mul_2exp mpz.o.div_2exp \
  65.   mpz.o.mod_2exp mpz.o.abs mpz.o.neg mpz.o.com mpz.o.and mpz.o.ior \
  66.   mpz.o.inp_raw mpz.o.inp_str mpz.o.out_raw mpz.o.out_str \
  67.   mpz.o.perfsqr mpz.o.random mpz.o.random2 mpz.o.pow_ui \
  68.   mpz.o.clrbit mpz.o.fac_ui mpz.o.pprime_p
  69.  
  70. MPQ_SRCS = mpq.c.init mpq.c.set mpq.c.set_ui mpq.c.set_si \
  71.   mpq.c.set_num mpq.c.set_den mpq.c.get_num mpq.c.get_den \
  72.   mpq.c.add mpq.c.sub mpq.c.mul mpq.c.div \
  73.   mpq.c.clear mpq.c.cmp mpq.c.inv mpq.c.neg
  74. MPQ_OBJS = mpq.o.init mpq.o.set mpq.o.set_ui mpq.o.set_si \
  75.   mpq.o.set_num mpq.o.set_den mpq.o.get_num mpq.o.get_den \
  76.   mpq.o.add mpq.o.sub mpq.o.mul mpq.o.div \
  77.   mpq.o.clear mpq.o.cmp mpq.o.inv mpq.o.neg
  78.  
  79. MPN_SRCS = mpn.c.add mpn.c.sub mpn.c.cmp mpn.c.mul mpn.c.div mpn.c.dm_1 \
  80.   mpn.c.mod_1 mpn.c.lshift mpn.c.rshift mpn.c.rshiftci mpn.c.sqrt
  81. MPN_OBJS = mpn.o.add mpn.o.sub mpn.o.cmp mpn.o.mul mpn.o.div mpn.o.dm_1 \
  82.   mpn.o.mod_1 mpn.o.lshift mpn.o.rshift mpn.o.rshiftci mpn.o.sqrt
  83.  
  84. # There are fewer members in the BSDMP_SRCS list that in the BSDMP_OBJS
  85. # list because some of the c. files are created by this Makefile.
  86. BSDMP_SRCS = c.itom c.mdiv c.move c.mtox c.xtom c.sdiv c.mout c.min c.mfree
  87. BSDMP_OBJS = o.gcd o.itom o.madd o.mcmp o.mdiv o.move o.msub o.mtox o.mult \
  88.   o.pow o.rpow o.xtom o.msqrt o.sdiv o.mout o.min o.mfree
  89.  
  90. SRCS = $(MPZ_SRCS) $(MPQ_SRCS) $(BSDMP_SRCS) $(MPN_SRCS) $(IMPL_SRCS)
  91. OBJS = $(MPZ_OBJS) $(MPQ_OBJS) $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS)
  92.  
  93. MP_OBJS = $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS) o.mp_bases mpz.o.sizeinb
  94. GMP_OBJS = $(MPZ_OBJS) $(MPQ_OBJS) $(MPN_OBJS) $(IMPL_OBJS) o.mp_bases
  95.  
  96. all: libgmp libmp
  97.  
  98. define EQUAL
  99. =
  100. endef
  101.  
  102. check:    libgmp
  103.     $(MAKE) -C tests CC$(EQUAL)"$(CC)" OPT$(EQUAL)"$(OPT)"
  104.  
  105. libgmp: $(GMP_OBJS)
  106.     rm -f $@ listfile
  107.     touch listfile
  108.     $(dolines i,$^, echo $i { >> listfile })
  109.     -makealf -i listfile -o $@
  110.     rm listfile
  111.  
  112. # libmp.a depend on libgmp.a, to get around Unix(tm) ar/ranlib concurrency bug.
  113. libmp: $(MP_OBJS)
  114.     rm -f $@ listfile
  115.     touch listfile
  116.     $(dolines i,$^, echo $i { >> listfile })
  117.     -makealf -i listfile -o $@
  118.     rm listfile
  119.  
  120. c.mp_bases: creconvtab
  121.     creconvtab > c.mp_bases
  122.  
  123. creconvtab: o.creconvtab o.alloca o.memory h.gmp h.gmp-impl h.gmp-mparam h.longlong
  124.         $(CC) $(CFLAGS) -o creconvtab o.creconvtab o.alloca o.memory
  125.  
  126. h.gmp-mparam: cre-mparam
  127.     cre-mparam > h.gmp-mparam
  128.  
  129. cre-mparam: c.cre-mparam h.gmp
  130.     $(LOCAL_CC) $(CFLAGS) c.cre-mparam -o $@
  131.  
  132. c.gcd : mpz.c.gcd h.mp h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  133.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/c.gcd > tmpfile
  134.     egrep -h -v '^\#' tmpfile > $@
  135.     rm tmpfile
  136.  
  137. c.pow : mpz.c.powm h.mp h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  138.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/powm.c > tmpfile
  139.     egrep -h -v '^\#' tmpfile > $@
  140.     rm tmpfile
  141.  
  142. c.rpow: mpz.c.pow_ui h.mp h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  143.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/pow_ui.c > tmpfile
  144.     egrep -h -v '^\#' tmpfile > $@
  145.     rm tmpfile
  146.  
  147. c.madd : mpz.c.add h.mp h.gmp h.gmp-impl h.gmp-mparam
  148.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/add.c > tmpfile
  149.     egrep -h -v '^\#' tmpfile > $@
  150.     rm tmpfile
  151.  
  152. c.msub : mpz.c.sub h.mp h.gmp h.gmp-impl h.gmp-mparam
  153.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/sub.c > tmpfile
  154.     egrep -h -v '^\#' tmpfile > $@
  155.     rm tmpfile
  156.  
  157. c.mult : mpz.c.mul h.mp h.gmp h.gmp-impl h.gmp-mparam
  158.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/mul.c > tmpfile
  159.     egrep -h -v '^\#' tmpfile > $@
  160.     rm tmpfile
  161.  
  162. c.mcmp : mpz.c.cmp h.mp h.gmp h.gmp-impl h.gmp-mparam
  163.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/cmp.c > tmpfile
  164.     egrep -h -v '^\#' tmpfile > $@
  165.     rm tmpfile
  166.  
  167. c.msqrt : mpz.c.sqrtrem h.mp h.gmp h.gmp-impl h.gmp-mparam
  168.     $(CC) $(CFLAGS) -E -DBERKELEY_MP mpz/sqrtrem.c > tmpfile
  169.     egrep -h -v '^\#' tmpfile > $@
  170.     rm tmpfile
  171.  
  172. # Automatically generated dependencies
  173. mpz.o._get_str : mpz.c._get_str h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  174. mpz.o._set_str : mpz.c._set_str h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  175. o.cre-conv-tab : c.cre-conv-tab h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  176. o.cre-mparam : c.cre-mparam h.gmp 
  177. o.cre-stddefh : c.cre-stddefh 
  178. o.itom : c.itom h.mp h.gmp h.gmp-impl h.gmp-mparam 
  179. o.mdiv : c.mdiv h.mp h.gmp h.gmp-impl h.gmp-mparam h.longlong mpz.c.dmincl 
  180. o.memory : c.memory h.gmp h.gmp-impl h.gmp-mparam 
  181. o.mfree : c.mfree h.mp h.gmp h.gmp-impl h.gmp-mparam 
  182. o.min : c.min h.mp h.gmp h.gmp-impl h.gmp-mparam 
  183. o.mout : c.mout h.mp h.gmp h.gmp-impl h.gmp-mparam 
  184. o.move : c.move h.mp h.gmp h.gmp-impl h.gmp-mparam 
  185. o.mp_bases : c.mp_bases h.gmp h.gmp-impl h.gmp-mparam 
  186. o.mp_clz_tab : c.mp_clz_tab h.gmp h.gmp-impl h.gmp-mparam 
  187. o.mp_set_fns : c.mp_set_fns h.gmp h.gmp-impl h.gmp-mparam 
  188. mpn.o.add : mpn.c.add h.gmp h.gmp-impl h.gmp-mparam 
  189. mpn.o.cmp : mpn.c.cmp h.gmp h.gmp-impl h.gmp-mparam 
  190. mpn.o.div : mpn.c.div h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  191. mpn.o.dm_1 : mpn.c.dm_1 h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  192. mpn.o.lshift : mpn.c.lshift h.gmp h.gmp-impl h.gmp-mparam 
  193. mpn.o.mod_1 : mpn.c.mod_1 h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  194. mpn.o.mul : mpn.c.mul h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  195. mpn.o.rshift : mpn.c.rshift h.gmp h.gmp-impl h.gmp-mparam 
  196. mpn.o.rshiftci : mpn.c.rshiftci h.gmp h.gmp-impl h.gmp-mparam 
  197. mpn.o.sqrt : mpn.c.sqrt h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  198. mpn.o.sub : mpn.c.sub h.gmp h.gmp-impl h.gmp-mparam 
  199. mpq.o.add : mpq.c.add h.gmp h.gmp-impl h.gmp-mparam 
  200. mpq.o.clear : mpq.c.clear h.gmp h.gmp-impl h.gmp-mparam 
  201. mpq.o.cmp : mpq.c.cmp h.gmp h.gmp-impl h.gmp-mparam 
  202. mpq.o.div : mpq.c.div h.gmp h.gmp-impl h.gmp-mparam 
  203. mpq.o.get_den : mpq.c.get_den h.gmp h.gmp-impl h.gmp-mparam 
  204. mpq.o.get_num : mpq.c.get_num h.gmp h.gmp-impl h.gmp-mparam 
  205. mpq.o.init : mpq.c.init h.gmp h.gmp-impl h.gmp-mparam 
  206. mpq.o.inv : mpq.c.inv h.gmp h.gmp-impl h.gmp-mparam 
  207. mpq.o.mul : mpq.c.mul h.gmp h.gmp-impl h.gmp-mparam 
  208. mpq.o.neg : mpq.c.neg h.gmp h.gmp-impl h.gmp-mparam 
  209. mpq.o.set : mpq.c.set h.gmp h.gmp-impl h.gmp-mparam 
  210. mpq.o.set_den : mpq.c.set_den h.gmp h.gmp-impl h.gmp-mparam 
  211. mpq.o.set_num : mpq.c.set_num h.gmp h.gmp-impl h.gmp-mparam 
  212. mpq.o.set_si : mpq.c.set_si h.gmp h.gmp-impl h.gmp-mparam 
  213. mpq.o.set_ui : mpq.c.set_ui h.gmp h.gmp-impl h.gmp-mparam 
  214. mpq.o.sub : mpq.c.sub h.gmp h.gmp-impl h.gmp-mparam 
  215. mpz.o.abs : mpz.c.abs h.gmp h.gmp-impl h.gmp-mparam 
  216. mpz.o.add : mpz.c.add h.gmp h.gmp-impl h.gmp-mparam 
  217. mpz.o.add_ui : mpz.c.add_ui h.gmp h.gmp-impl h.gmp-mparam 
  218. mpz.o.and : mpz.c.and h.gmp h.gmp-impl h.gmp-mparam 
  219. mpz.o.clear : mpz.c.clear h.gmp h.gmp-impl h.gmp-mparam 
  220. mpz.o.clrbit : mpz.c.clrbit h.gmp h.gmp-impl h.gmp-mparam 
  221. mpz.o.cmp : mpz.c.cmp h.gmp h.gmp-impl h.gmp-mparam 
  222. mpz.o.cmp_si : mpz.c.cmp_si h.gmp h.gmp-impl h.gmp-mparam 
  223. mpz.o.cmp_ui : mpz.c.cmp_ui h.gmp h.gmp-impl h.gmp-mparam 
  224. mpz.o.com : mpz.c.com h.gmp h.gmp-impl h.gmp-mparam 
  225. mpz.o.div : mpz.c.div h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  226. mpz.o.div_2exp : mpz.c.div_2exp h.gmp h.gmp-impl h.gmp-mparam 
  227. mpz.o.div_ui : mpz.c.div_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  228. mpz.o.dm : mpz.c.dm h.gmp h.gmp-impl h.gmp-mparam h.longlong mpz.c.dmincl 
  229. mpz.o.dm_ui : mpz.c.dm_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  230. mpz.o.fac_ui : mpz.c.fac_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  231. mpz.o.gcd : mpz.c.gcd h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  232. mpz.o.gcdext : mpz.c.gcdext h.gmp h.gmp-impl h.gmp-mparam 
  233. mpz.o.get_si : mpz.c.get_si h.gmp h.gmp-impl h.gmp-mparam 
  234. mpz.o.get_str : mpz.c.get_str h.gmp h.gmp-impl h.gmp-mparam 
  235. mpz.o.get_ui : mpz.c.get_ui h.gmp h.gmp-impl h.gmp-mparam 
  236. mpz.o.init : mpz.c.init h.gmp h.gmp-impl h.gmp-mparam 
  237. mpz.o.inp_raw : mpz.c.inp_raw h.gmp h.gmp-impl h.gmp-mparam 
  238. mpz.o.inp_str : mpz.c.inp_str h.gmp h.gmp-impl h.gmp-mparam 
  239. mpz.o.ior : mpz.c.ior h.gmp h.gmp-impl h.gmp-mparam 
  240. mpz.o.iset : mpz.c.iset h.gmp h.gmp-impl h.gmp-mparam 
  241. mpz.o.iset_si : mpz.c.iset_si h.gmp h.gmp-impl h.gmp-mparam 
  242. mpz.o.iset_str : mpz.c.iset_str h.gmp h.gmp-impl h.gmp-mparam 
  243. mpz.o.iset_ui : mpz.c.iset_ui h.gmp h.gmp-impl h.gmp-mparam 
  244. mpz.o.mdiv : mpz.c.mdiv h.gmp h.gmp-impl h.gmp-mparam 
  245. mpz.o.mdiv_ui : mpz.c.mdiv_ui h.gmp h.gmp-impl h.gmp-mparam 
  246. mpz.o.mdm : mpz.c.mdm h.gmp h.gmp-impl h.gmp-mparam 
  247. mpz.o.mdm_ui : mpz.c.mdm_ui h.gmp h.gmp-impl h.gmp-mparam 
  248. mpz.o.mmod : mpz.c.mmod h.gmp h.gmp-impl h.gmp-mparam 
  249. mpz.o.mmod_ui : mpz.c.mmod_ui h.gmp h.gmp-impl h.gmp-mparam 
  250. mpz.o.mod : mpz.c.mod h.gmp h.gmp-impl h.gmp-mparam h.longlong mpz.c.dmincl 
  251. mpz.o.mod_2exp : mpz.c.mod_2exp h.gmp h.gmp-impl h.gmp-mparam 
  252. mpz.o.mod_ui : mpz.c.mod_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  253. mpz.o.mul : mpz.c.mul h.gmp h.gmp-impl h.gmp-mparam 
  254. mpz.o.mul_2exp : mpz.c.mul_2exp h.gmp h.gmp-impl h.gmp-mparam 
  255. mpz.o.mul_ui : mpz.c.mul_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  256. mpz.o.neg : mpz.c.neg h.gmp h.gmp-impl h.gmp-mparam 
  257. mpz.o.out_raw : mpz.c.out_raw h.gmp h.gmp-impl h.gmp-mparam 
  258. mpz.o.out_str : mpz.c.out_str h.gmp h.gmp-impl h.gmp-mparam 
  259. mpz.o.perfsqr : mpz.c.perfsqr h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  260. mpz.o.pow_ui : mpz.c.pow_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  261. mpz.o.powm : mpz.c.powm h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  262. mpz.o.powm_ui : mpz.c.powm_ui h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  263. mpz.o.pprime_p : mpz.c.pprime_p h.gmp h.gmp-impl h.gmp-mparam 
  264. mpz.o.random : mpz.c.random h.gmp h.gmp-impl h.gmp-mparam 
  265. mpz.o.random2 : mpz.c.random2 h.gmp h.gmp-impl h.gmp-mparam 
  266. mpz.o.realloc : mpz.c.realloc h.gmp h.gmp-impl h.gmp-mparam 
  267. mpz.o.set : mpz.c.set h.gmp h.gmp-impl h.gmp-mparam 
  268. mpz.o.set_si : mpz.c.set_si h.gmp h.gmp-impl h.gmp-mparam 
  269. mpz.o.set_str : mpz.c.set_str h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  270. mpz.o.set_ui : mpz.c.set_ui h.gmp h.gmp-impl h.gmp-mparam 
  271. mpz.o.size : mpz.c.size h.gmp h.gmp-impl h.gmp-mparam 
  272. mpz.o.sizeinb : mpz.c.sizeinb h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  273. mpz.o.sqrt : mpz.c.sqrt h.gmp h.gmp-impl h.gmp-mparam 
  274. mpz.o.sqrtrem : mpz.c.sqrtrem h.gmp h.gmp-impl h.gmp-mparam 
  275. mpz.o.sub : mpz.c.sub h.gmp h.gmp-impl h.gmp-mparam 
  276. mpz.o.sub_ui : mpz.c.sub_ui h.gmp h.gmp-impl h.gmp-mparam 
  277. o.mtox : c.mtox h.mp h.gmp h.gmp-impl h.gmp-mparam 
  278. o.sdiv : c.sdiv h.mp h.gmp h.gmp-impl h.gmp-mparam h.longlong 
  279. o.xtom : c.xtom h.mp h.gmp h.gmp-impl h.gmp-mparam 
  280.