*** Makefile.orig Wed May 19 03:14:17 1993 --- Makefile Fri Jan 27 14:29:26 1995 *************** *** 23,28 **** --- 23,30 ---- # types ("int", "long int", "short int", and "char") define this as the # local compiler. Otherwise, you need look for the uses of LOCAL_CC below, # and handle those cases manually. + PREFIX ?= /usr/local + PICFLAGS = -fpic -DPIC LOCAL_CC = $(CC) OPT = -O -g CFLAGS = -I. $(OPT) *************** *** 31,47 **** --- 33,61 ---- then echo ranlib; else echo true; fi` SHELL = /bin/sh + .SUFFIXES: .c .o .so + + .c.so: + $(CC) $(PICFLAGS) $(CFLAGS) -c $< -o $@ + SRCS = $(MPZ_SRCS) $(MPQ_SRCS) $(BSDMP_SRCS) $(MPN_SRCS) $(IMPL_SRCS) OBJS = $(MPZ_OBJS) $(MPQ_OBJS) $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS) MP_OBJS = $(BSDMP_OBJS) $(MPN_OBJS) $(IMPL_OBJS) mp_bases.o mpz_sizeinb.o + SMP_OBJS = $(SBSDMP_OBJS) $(SMPN_OBJS) $(SIMPL_OBJS) mp_bases.so mpz_sizeinb.so + GMP_OBJS = $(MPZ_OBJS) $(MPQ_OBJS) $(MPN_OBJS) $(IMPL_OBJS) mp_bases.o + SGMP_OBJS = $(SMPZ_OBJS) $(SMPQ_OBJS) $(SMPN_OBJS) $(SIMPL_OBJS) mp_bases.so IMPL_SRCS = memory.c mp_set_fns.c _mpz_set_str.c _mpz_get_str.c \ mpz_realloc.c mp_clz_tab.c alloca.c + IMPL_OBJS = memory.o mp_set_fns.o _mpz_set_str.o _mpz_get_str.o \ mpz_realloc.o mp_clz_tab.o alloca.o + SIMPL_OBJS = memory.so mp_set_fns.so _mpz_set_str.so _mpz_get_str.so \ + mpz_realloc.so mp_clz_tab.so alloca.so + MPZ_SRCS = mpz_init.c mpz_set.c mpz_set_ui.c mpz_set_si.c mpz_set_str.c \ mpz_iset.c mpz_iset_ui.c mpz_iset_si.c mpz_iset_str.c mpz_clear.c \ mpz_get_ui.c mpz_get_si.c mpz_get_str.c mpz_size.c mpz_sizeinb.c \ *************** *** 54,59 **** --- 68,74 ---- mpz_inp_raw.c mpz_inp_str.c mpz_out_raw.c mpz_out_str.c \ mpz_perfsqr.c mpz_random.c mpz_random2.c mpz_pow_ui.c \ mpz_clrbit.c mpz_fac_ui.c mpz_pprime_p.c + MPZ_OBJS = mpz_init.o mpz_set.o mpz_set_ui.o mpz_set_si.o mpz_set_str.o \ mpz_iset.o mpz_iset_ui.o mpz_iset_si.o mpz_iset_str.o mpz_clear.o \ mpz_get_ui.o mpz_get_si.o mpz_get_str.o mpz_size.o mpz_sizeinb.o \ *************** *** 67,93 **** mpz_perfsqr.o mpz_random.o mpz_random2.o mpz_pow_ui.o \ mpz_clrbit.o mpz_fac_ui.o mpz_pprime_p.o MPQ_SRCS = mpq_init.c mpq_set.c mpq_set_ui.c mpq_set_si.c \ mpq_set_num.c mpq_set_den.c mpq_get_num.c mpq_get_den.c \ mpq_add.c mpq_sub.c mpq_mul.c mpq_div.c \ mpq_clear.c mpq_cmp.c mpq_inv.c mpq_neg.c MPQ_OBJS = mpq_init.o mpq_set.o mpq_set_ui.o mpq_set_si.o \ mpq_set_num.o mpq_set_den.o mpq_get_num.o mpq_get_den.o \ mpq_add.o mpq_sub.o mpq_mul.o mpq_div.o \ mpq_clear.o mpq_cmp.o mpq_inv.o mpq_neg.o MPN_SRCS = mpn_add.c mpn_sub.c mpn_cmp.c mpn_mul.c mpn_div.c mpn_dm_1.c \ mpn_mod_1.c mpn_lshift.c mpn_rshift.c mpn_rshiftci.c mpn_sqrt.c MPN_OBJS = mpn_add.o mpn_sub.o mpn_cmp.o mpn_mul.o mpn_div.o mpn_dm_1.o \ mpn_mod_1.o mpn_lshift.o mpn_rshift.o mpn_rshiftci.o mpn_sqrt.o # There are fewer members in the BSDMP_SRCS list that in the BSDMP_OBJS # list because some of the .c files are created by this Makefile. BSDMP_SRCS = itom.c mdiv.c move.c mtox.c xtom.c sdiv.c mout.c min.c mfree.c BSDMP_OBJS = gcd.o itom.o madd.o mcmp.o mdiv.o move.o msub.o mtox.o mult.o \ pow.o rpow.o xtom.o msqrt.o sdiv.o mout.o min.o mfree.o ! all: libgmp.a libmp.a check: libgmp.a cd tests; $(MAKE) CC="$(CC)" SHELL="$(SHELL)" OPT="$(OPT)" --- 82,137 ---- mpz_perfsqr.o mpz_random.o mpz_random2.o mpz_pow_ui.o \ mpz_clrbit.o mpz_fac_ui.o mpz_pprime_p.o + SMPZ_OBJS = mpz_init.so mpz_set.so mpz_set_ui.so mpz_set_si.so mpz_set_str.so\ + mpz_iset.so mpz_iset_ui.so mpz_iset_si.so mpz_iset_str.so \ + mpz_clear.so mpz_get_ui.so mpz_get_si.so mpz_get_str.so mpz_size.so \ + mpz_sizeinb.so mpz_add.so mpz_add_ui.so mpz_sub.so mpz_sub_ui.so \ + mpz_mul.so mpz_mul_ui.so mpz_div.so mpz_div_ui.so mpz_mod.so \ + mpz_mod_ui.so mpz_dm.so mpz_dm_ui.so mpz_mdiv.so mpz_mmod.so \ + mpz_mdm.so mpz_mdiv_ui.so mpz_mmod_ui.so mpz_mdm_ui.so mpz_gcd.so \ + mpz_gcdext.so mpz_sqrt.so mpz_sqrtrem.so mpz_powm.so mpz_powm_ui.so \ + mpz_cmp.so mpz_cmp_ui.so mpz_cmp_si.so mpz_mul_2exp.so \ + mpz_div_2exp.so mpz_mod_2exp.so mpz_abs.so mpz_neg.so mpz_com.so \ + mpz_and.so mpz_ior.so mpz_inp_raw.so mpz_inp_str.so mpz_out_raw.so \ + mpz_out_str.so mpz_perfsqr.so mpz_random.so mpz_random2.so \ + mpz_pow_ui.so mpz_clrbit.so mpz_fac_ui.so mpz_pprime_p.so + MPQ_SRCS = mpq_init.c mpq_set.c mpq_set_ui.c mpq_set_si.c \ mpq_set_num.c mpq_set_den.c mpq_get_num.c mpq_get_den.c \ mpq_add.c mpq_sub.c mpq_mul.c mpq_div.c \ mpq_clear.c mpq_cmp.c mpq_inv.c mpq_neg.c + MPQ_OBJS = mpq_init.o mpq_set.o mpq_set_ui.o mpq_set_si.o \ mpq_set_num.o mpq_set_den.o mpq_get_num.o mpq_get_den.o \ mpq_add.o mpq_sub.o mpq_mul.o mpq_div.o \ mpq_clear.o mpq_cmp.o mpq_inv.o mpq_neg.o + SMPQ_OBJS = mpq_init.so mpq_set.so mpq_set_ui.so mpq_set_si.so \ + mpq_set_num.so mpq_set_den.so mpq_get_num.so mpq_get_den.so \ + mpq_add.so mpq_sub.so mpq_mul.so mpq_div.so \ + mpq_clear.so mpq_cmp.so mpq_inv.so mpq_neg.so + MPN_SRCS = mpn_add.c mpn_sub.c mpn_cmp.c mpn_mul.c mpn_div.c mpn_dm_1.c \ mpn_mod_1.c mpn_lshift.c mpn_rshift.c mpn_rshiftci.c mpn_sqrt.c + MPN_OBJS = mpn_add.o mpn_sub.o mpn_cmp.o mpn_mul.o mpn_div.o mpn_dm_1.o \ mpn_mod_1.o mpn_lshift.o mpn_rshift.o mpn_rshiftci.o mpn_sqrt.o + SMPN_OBJS = mpn_add.so mpn_sub.so mpn_cmp.so mpn_mul.so mpn_div.so mpn_dm_1.so \ + mpn_mod_1.so mpn_lshift.so mpn_rshift.so mpn_rshiftci.so mpn_sqrt.so + # There are fewer members in the BSDMP_SRCS list that in the BSDMP_OBJS # list because some of the .c files are created by this Makefile. BSDMP_SRCS = itom.c mdiv.c move.c mtox.c xtom.c sdiv.c mout.c min.c mfree.c + BSDMP_OBJS = gcd.o itom.o madd.o mcmp.o mdiv.o move.o msub.o mtox.o mult.o \ pow.o rpow.o xtom.o msqrt.o sdiv.o mout.o min.o mfree.o ! SBSDMP_OBJS = gcd.so itom.so madd.so mcmp.so mdiv.so move.so msub.so \ ! mtox.so mult.so pow.so rpow.so xtom.so msqrt.so sdiv.so mout.so min.so \ ! mfree.so ! ! all: libgmp.a libmp.a libgmp.so.1.3 libmp.so.1.3 check: libgmp.a cd tests; $(MAKE) CC="$(CC)" SHELL="$(SHELL)" OPT="$(OPT)" *************** *** 97,107 **** --- 141,166 ---- $(AR) cr $@ $(GMP_OBJS) $(RANLIB) $@ + libgmp.so.1.3: stamp-stddefh $(SGMP_OBJS) + rm -f $@ + ld -Bshareable -Bforcearchive -o $@ $(SGMP_OBJS) + # libmp.a depend on libgmp.a, to get around Unix(tm) ar/ranlib concurrency bug. libmp.a: stamp-stddefh $(MP_OBJS) libgmp.a rm -f $@ $(AR) cr $@ $(MP_OBJS) $(RANLIB) $@ + + libmp.so.1.3: stamp-stddefh $(SMP_OBJS) + rm -f $@ + ld -Bshareable -Bforcearchive -o $@ $(SMP_OBJS) + + install: libgmp.a libmp.a libgmp.so.1.3 libmp.so.1.3 + install -c -m 444 libgmp.a libmp.a libgmp.so.1.3 libmp.so.1.3 \ + $(PREFIX)/lib + ranlib ${PREFIX}/lib/libgmp.a + ranlib ${PREFIX}/lib/libmp.a + install -c -m 444 gmp.h mp.h ${PREFIX}/include stamp-stddefh: rm -f stddef.h