Build Fix -- compatibility issue with newer autoconf
[sxemacs] / src / ent / ent-mpc.h
index 2adcac1..43724d6 100644 (file)
@@ -88,25 +88,36 @@ extern bigc ent_scratch_bigc;
 \f
 /********************************* Bigcs ********************************/
 
-#define HAVE_MPC 1
 
 /***** Bigc: basic functions *****/
+#if defined(HAVE_MPC_INIT) && HAVE_MPC_INIT
 #define bigc_init(f)                mpc_init(f)
-#define bigc_init_prec(f,prec)      mpc_init2(f, prec)
-#define bigc_init_2prec(f,p1,p2)    mpc_init3(f, p1, p2)
+#else
+#define bigc_init(f)                mpc_init2((f),internal_get_precision(Qnil))
+#endif
+#define bigc_init_prec(f,prec)      mpc_init2((f), (prec))
+#define bigc_init_2prec(f,p1,p2)    mpc_init3((f), (p1), (p2))
 #define bigc_fini(f)                mpc_clear(f)
 #define bigc_hashcode(f)            (bigfr_hashcode(bigc_re(f)) ^ \
                                     bigfr_hashcode(bigc_im(f)))
 #define bigc_get_prec(f)            max(bigfr_get_prec(bigc_re(f)), \
                                        bigfr_get_prec(bigc_im(f)))
-#define bigc_set_prec(f, prec)      mpc_set_prec(f, prec)
-#define bigc_set_default_prec(prec) mpc_set_default_prec(prec)
+#define bigc_set_prec(f, prec)      mpc_set_prec((f), (prec))
+#define bigc_set_default_prec(prec) mpc_set_default_prec((prec))
 #define bigc_get_default_prec()     mpc_get_default_prec()
 
 /***** Bigc: conversions *****/
 extern Bufbyte *bigc_to_string(bigc, int);
 
 /***** Bigc: converting assignments *****/
+#if ! defined(HAVE_MPC_SET_UI_FR) || ! HAVE_MPC_SET_UI_FR
+#if defined(MPC_SET_X_Y)
+int mpc_set_ui_fr (mpc_t rop, unsigned long int re, mpfr_t im, mpc_rnd_t rnd);
+#else
+#error Cannot derived mpc_set_ui_fr without MPC_SET_X_Y!
+#endif
+#endif
+
 #define bigc_set(f1, f2)               mpc_set(f1, f2, GMP_RNDN)
 #define bigc_set_long(f, l)            mpc_set_si(f, l, GMP_RNDN)
 #define bigc_set_ulong(f, l)           mpc_set_ui(f, l, GMP_RNDN)