file=$objdir/Makefile case "$asmarch" in sparcv8*) ASMARCH=sparcv8;; *) ASMARCH=$asmarch;; esac echo Extracting $file rm -f $file # Path to directories case "$config_dir" in /*) cfg=$config_dir ;; *) cfg=../$config_dir ;; esac case "$data_dir" in /*) data=$data_dir ;; *) data=../$data_dir ;; esac case "$doc_dir" in /*) doc=$doc_dir ;; *) doc=../$doc_dir ;; esac case "$emacs_dir" in /*) emx=$emacs_dir ;; *) emx=../$emacs_dir ;; esac case "$examples_dir" in /*) ex=$examples_dir ;; *) ex=../$examples_dir ;; esac case "$misc_dir" in /*) misc=$misc_dir ;; *) misc=../$misc_dir ;; esac case "$src_dir" in /*) src=$src_dir ;; *) src=../$src_dir ;; esac # File lists kernel="kernel mp" inline="mpinl" khlist="pariinl" graph="plot plotport" gp="gp gp_init gp_rl highlvl whatnow" case "$osname" in cygwin*) graphdyn="plot-dyn plotport-dyn"; gpdyn="gp-dyn gp_init-dyn gp_rl-dyn";; esac language=`ls $src_dir/language/*.c | sed 's,.*/\(.*\)\.c,\1,'` basemath=`ls $src_dir/basemath/*.c | sed 's,.*/\(.*\)\.c,\1,'` modules=`ls $src_dir/modules/*.c | sed 's,.*/\(.*\)\.c,\1,'` if test m68k = "$ASMARCH"; then hlist=pari68k; else hlist=pariport; fi hlist="pari paritype paricast paricom parierr parigen paristio parisys $hlist" HEADERS='' for f in $khlist; do HEADERS="$HEADERS $f.h"; done for f in $hlist; do HEADERS="$HEADERS $src/headers/$f.h"; done # We don't want to recompile everything when only changing a prototype hlist="$hlist paridecl" KERNOBJS='' for f in $kernel; do KERNOBJS="$KERNOBJS $f\$(_O)" done OBJS=$KERNOBJS for f in $basemath $modules $language; do OBJS="$OBJS $f\$(_O)" done OBJSGP='' OBJSDGP='' for f in $gp $graph; do OBJSGP="$OBJSGP $f\$(_O)" OBJSDGP="$OBJSDGP $f-dyn\$(_O)" done for f in $inline; do OBJS="$OBJS $f\$(_O)" done case "$which_graphic_lib" in none) PLOTFILE=plotnull.c PLOTCFLAGS= PLOTLIBS= plotrunpath= ;; gnuplot) PLOTFILE=plotgnuplot.c PLOTCFLAGS= GNUPLOT_OBJS="bitmap\$(_O) term\$(_O) util\$(_O) version\$(_O) stdfn\$(_O)" PLOTLIBS="$gnuplot_libs" plotrunpath= case "$osname" in os2) libgnuplot=$gnuplot/gnuplot.a;; *) libgnuplot=$gnuplot/libgnuplot.a;; esac ;; X11) PLOTFILE=plotX.c PLOTCFLAGS=-I$Xincroot PLOTLIBS="-L$X11 -lX11 $extralib" if test "$osname" = concentrix; then PLOTLIBS="-lX11"; fi plotrunpath=$X11 ;; esac case "$runpathprefix" in -R) RUNPTH_FINAL="-R$runpath" if test -n "$plotrunpath"; then RUNPTH_FINAL="$RUNPTH_FINAL -R$plotrunpath" fi RUNPTH="-R$TOP/$objdir $RUNPTH_FINAL";; *-rpath*) tmp="$runpath:$plotrunpath" RUNPTH_FINAL="$runpathprefix $tmp" RUNPTH="$runpathprefix $TOP/$objdir:$tmp";; esac if test -z "$DLLD"; then exec="gp-sta"; static=y else exec="gp-sta gp-dyn" fi doexec="env \"LD_LIBRARY_PATH=.;\$\$LD_LIBRARY_PATH\" $src/test/dotest $sizeof_long" case "$sizeof_long" in 4) numbits=32;; 8) numbits=64;; esac if test -z "$emacs"; then install_emacs_files= pari_elc= else install_emacs_files=install_emacs_files pari_elc=$emx/pari.elc fi case "$static" in n) dft=dyn; libdft=lib-dyn;; y) dft=sta; libdft= ;; esac cat > $file << EOT # Makefile for Pari/GP -- $pretty # # This file was created by Configure. Any change made to it will be # lost when Configure is run. # SHELL = $make_sh AS = $AS ASFLAGS = $ASFLAGS AR = ar CC = $CC CPPFLAGS = -I. -I$src/headers CFLAGS = $cflags LD = $LD LDFLAGS = $LDFLAGS DLLD = $DLLD DLLDFLAGS = $DLLDFLAGS EXTRADLLDFLAGS = $EXTRADLLDFLAGS CPP = $CPP _O = .o _A = .a LIB_PREFIX = lib LIBPARI = \$(LIB_PREFIX)$libpari_base LIBPARI_STA= \$(LIBPARI)\$(_A) LIBPARI_SO = \$(LIBPARI).$DLSUFFIX LIBPARI_DYN = \$(LIBPARI_SO).$sodest LIBPARI_SONAME= \$(LIBPARI_SO).$soname RUNPTH = $RUNPTH RUNPTH_FINAL = $RUNPTH_FINAL LDDYN = $LDDYN DLCFLAGS = $DLCFLAGS LIBS = $LIBS DYNLIBS = $DYNLIBS DYNFLAGS = $DYNFLAGS DYNRELOC = $DYNRELOC RM = rm -f MV = mv -f LN = $ln_s # Change these installation directories to suit your needs. # DESTDIR is used to install to a false hierachy (to build a Debian package) INCLUDEDIR = \$(DESTDIR)$includedir LIBDIR = \$(DESTDIR)$libdir BINDIR = \$(DESTDIR)$bindir DATADIR= \$(DESTDIR)$datadir MANDIR = \$(DESTDIR)$mandir ALLDIR = \$(DESTDIR)$miscdir READMEDIR = \$(ALLDIR) DOCDIR = \$(ALLDIR)/doc EMACSDIR= \$(ALLDIR)/emacs EXDIR = \$(ALLDIR)/examples MISCDIR = \$(ALLDIR)/misc INSTALL = $cfg/install INSTALL_PROGRAM = \$(INSTALL) INSTALL_DATA = \$(INSTALL) -m 644 # Graphic library. PLOTFILE = $PLOTFILE PLOTCFLAGS = $PLOTCFLAGS PLOTLIBS = $PLOTLIBS GNUPLOT_OBJS = $GNUPLOT_OBJS # Try uncommenting this line if you're using X11 and linking fails: # PLOTLIBS=-L$X11 -lX11 EOT if test -n "$readline"; then cat >> $file << EOT RLINCLUDE = $RLINCLUDE RLLIBS = $RLLIBS EOT fi case "$ln_s" in *cp*) ln_objdir=".";; *) ln_objdir="$objdir" esac cat >> $file << EOT TOPLDDYN = -L$TOP/$objdir \$(RLLIBS) OBJS = $OBJS OBJSGP = $OBJSGP OBJSDGP = $OBJSDGP dft: gp $pari_elc - gp: gp-$dft ../gp$suffix$exe_suff $libdft - ../gp$suffix$exe_suff: gp-$dft -\$(RM) \$@ -\$(LN) $ln_objdir/gp-$dft$exe_suff \$@ all: $exec lib-sta lib-sta: \$(LIBPARI_STA) lib-dyn: \$(LIBPARI_DYN) \$(LIBPARI_STA): \$(OBJS) -\$(RM) \$@ \$(AR) r \$@ \$(OBJS) kerntest\$(_O): ../src/test/kerntest.c \$(CC) -c \$(CFLAGS) -I$src/language \$(CPPFLAGS) -o \$@ \$< kerntest: $KERNOBJS mp\$(_O) kerntest\$(_O) \$(CC) \$(CFLAGS) \$(CPPFLAGS) -o \$@ $KERNOBJS kerntest\$(_O) \$(LIBS) test-kernel:: kerntest @./kerntest > gp.out;\ diff -c gp.out $src/test/$numbits/kernel > kern.dif;\ if test -s kern.dif; then echo "KERNEL BUG"; else echo OK; fi EOT if test -n "$ranlib"; then cat >> $file << EOT EOT fi cat >> $file << EOT gp-sta: \$(OBJS) \$(OBJSGP) \$(GNUPLOT_OBJS) \$(RM) \$@ \$(LD) -o \$@ \$(LDFLAGS) \$(OBJS) \$(OBJSGP) \$(GNUPLOT_OBJS) \$(RUNPTH) \$(RLLIBS) \$(PLOTLIBS) \$(LIBS) EOT cat >> $file << EOT bench: $exec dobench test-compat: $exec dotest-compat test-graphic: $exec dotest-graphic cleantest: \$(RM) *.dif gp.out pari.ps dobench:: @$doexec dotest-compat:: @$doexec -c dotest-graphic:: @$doexec -g cleanobj: cleantest -\$(RM) *\$(_O) *.s pariinl.h \$(LIBPARI_STA) libpari.* $exec clean: cleanobj .headers: $HEADERS @touch \$@ install: install-lib-$dft install-include install-bin install-man install-misc install-data install-doc install-examples install-include: -mkdir -p \$(INCLUDEDIR) \$(INSTALL_DATA) paricfg.h \$(INCLUDEDIR) -for i in $khlist; do \\ \$(INSTALL_DATA) \$\$i.h \$(INCLUDEDIR); done -for i in $hlist; do \\ \$(INSTALL_DATA) $src/headers/\$\$i.h \$(INCLUDEDIR); done -\$(RM) \$(INCLUDEDIR)/genpari.h -\$(LN) pari.h \$(INCLUDEDIR)/genpari.h install-bin: install-bin-$dft install-bin-dyn: gp-dyn -mkdir -p \$(BINDIR) -\$(RM) \$(BINDIR)/gp-$version \$(BINDIR)/gp$exe_suff -\$(LD) -o \$(BINDIR)/gp-$version \$(LDFLAGS) \$(OBJSGP) \$(RUNPTH_FINAL) \$(TOPLDDYN) \$(LDDYN) \$(PLOTLIBS) \$(LIBS) strip \$(BINDIR)/gp-$version -\$(LN) gp-$version$exe_suff \$(BINDIR)/gp$exe_suff install-bin-sta: gp-sta -mkdir -p \$(BINDIR) -\$(RM) \$(BINDIR)/gp-$version \$(BINDIR)/gp$exe_suff \$(INSTALL_PROGRAM) gp-sta$exe_suff \$(BINDIR)/gp-$version$exe_suff -\$(LN) gp-$version$exe_suff \$(BINDIR)/gp$exe_suff # Can't strip it if we want install() to work on Linux or OSF. # strip \$(BINDIR)/gp-$version install-man:: -mkdir -p \$(MANDIR) \$(INSTALL_DATA) $doc/gphelp.1 \$(MANDIR) \$(INSTALL_DATA) $doc/gp.1 \$(MANDIR) -\$(RM) \$(MANDIR)/pari.1 -\$(LN) gp.1 \$(MANDIR)/pari.1 install-misc: $install_emacs_files install-top -mkdir -p \$(MISCDIR) \$(BINDIR) \$(INSTALL_PROGRAM) $misc/tex2mail \$(BINDIR) \$(INSTALL_DATA) $doc/tex2mail.1 \$(MANDIR) \$(INSTALL_DATA) $misc/README \$(MISCDIR) \$(INSTALL_DATA) $misc/color.dft \$(MISCDIR) \$(INSTALL_DATA) $misc/gpalias \$(MISCDIR) \$(INSTALL_PROGRAM) $misc/gpflog \$(MISCDIR) \$(INSTALL_DATA) $misc/gprc.dft \$(MISCDIR) \$(INSTALL_DATA) $misc/new.dic \$(MISCDIR) \$(INSTALL_DATA) $misc/pari.xpm \$(MISCDIR) \$(INSTALL_PROGRAM) $misc/xgp \$(MISCDIR) install-top:: -mkdir -p \$(READMEDIR) \$(INSTALL_DATA) $TOP/AUTHORS \$(READMEDIR) \$(INSTALL_DATA) $TOP/Announce.2.1 \$(READMEDIR) \$(INSTALL_DATA) $TOP/CHANGES \$(READMEDIR) \$(INSTALL_DATA) $TOP/COMPAT \$(READMEDIR) \$(INSTALL_DATA) $TOP/COPYING \$(READMEDIR) \$(INSTALL_DATA) $TOP/CVS.txt \$(READMEDIR) \$(INSTALL_DATA) $TOP/MACHINES \$(READMEDIR) \$(INSTALL_DATA) $TOP/NEW \$(READMEDIR) \$(INSTALL_DATA) $TOP/README \$(READMEDIR) \$(INSTALL_DATA) $TOP/TODO \$(READMEDIR) install-doc:: -mkdir -p \$(BINDIR) \$(DOCDIR) -cd $doc; \$(MAKE) all -\$(INSTALL_PROGRAM) $doc/gphelp \$(BINDIR) -\$(INSTALL_DATA) $doc/Makefile \$(DOCDIR) -\$(INSTALL_DATA) $doc/translations \$(DOCDIR) -\$(INSTALL_DATA) $doc/appa.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/appb.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/appc.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/paricfg.tex.in \$(DOCDIR) -\$(INSTALL_DATA) $doc/parimacro.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/pdfmacs.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/refcard.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/tutorial.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/users.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/usersch1.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/usersch2.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/usersch3.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/usersch4.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/usersch5.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/paricfg.tex \$(DOCDIR) -\$(INSTALL_DATA) $doc/users.dvi \$(DOCDIR) -\$(INSTALL_DATA) $doc/tutorial.dvi \$(DOCDIR) -\$(INSTALL_DATA) $doc/refcard.dvi \$(DOCDIR) -\$(INSTALL_DATA) $doc/refcard.ps \$(DOCDIR) install-examples: -mkdir -p \$(EXDIR) -\$(INSTALL_DATA) $ex/EXPLAIN \$(EXDIR) -\$(INSTALL_DATA) $ex/Inputrc \$(EXDIR) -\$(INSTALL_DATA) $ex/Makefile \$(EXDIR) -\$(INSTALL_DATA) $ex/bench.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/cl.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/classno.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/contfrac.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/lucas.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/matexp.c \$(EXDIR) -\$(INSTALL_DATA) $ex/rho.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/squfof.gp \$(EXDIR) -\$(INSTALL_DATA) $ex/taylor.gp \$(EXDIR) install-data: -mkdir -p \$(DATADIR) -for f in $data/*; do \$(INSTALL_DATA) \$\$f \$(DATADIR); done 2>/dev/null install-lib-sta: \$(LIBPARI_STA) -mkdir -p \$(LIBDIR) -\$(RM) \$(LIBDIR)/\$(LIBPARI_STA) \$(INSTALL_DATA) \$(LIBPARI_STA) \$(LIBDIR)/\$(LIBPARI_STA).$version -\$(LN) \$(LIBPARI_STA).$version \$(LIBDIR)/\$(LIBPARI_STA) install-lib-dyn: \$(LIBPARI_DYN) -mkdir -p \$(LIBDIR) -\$(RM) \$(LIBDIR)/\$(LIBPARI_DYN) \$(INSTALL_PROGRAM) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_DYN) EOT if test "$soname" != "$sodest"; then cat >> $file << EOT -\$(RM) \$(LIBDIR)/\$(LIBPARI_SONAME) -\$(RM) \$(LIBDIR)/\$(LIBPARI_SO) -\$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SONAME) -\$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SO) EOT fi if test -z "$DLLD"; then cat >> $file << EOT \$(LIBPARI_DYN):: @echo "Configure could not find a way to build a shared library on this machine." EOT else if test -z "$DYNLIBS"; then cat >> $file << EOT gp-dyn: \$(OBJSGP) \$(LIBPARI_DYN) \$(GNUPLOT_OBJS) \$(RM) \$@ \$(LD) -o \$@ \$(LDFLAGS) \$(OBJSGP) \$(GNUPLOT_OBJS) \$(RUNPTH) \$(TOPLDDYN) \$(LDDYN) \$(PLOTLIBS) \$(LIBS) \$(LIBPARI_DYN): \$(OBJS) -\$(RM) \$(LIBPARI_DYN) \$(DLLD) -o \$@ \$(DLLDFLAGS) \$(OBJS) \$(EXTRADLLDFLAGS) EOT if test "$soname" != "$sodest"; then cat >> $file << EOT -\$(RM) \$(LIBPARI_SONAME) -\$(RM) \$(LIBPARI_SO) -\$(LN) \$(LIBPARI_DYN) \$(LIBPARI_SONAME) -\$(LN) \$(LIBPARI_DYN) \$(LIBPARI_SO) EOT fi else cat >> $file << EOT gp-dyn: \$(OBJSDGP) \$(LIBPARI_DYN) \$(RM) \$@ \$(LD) -o \$@ \$(LDFLAGS) \$(OBJSDGP) \$(RUNPTH) \$(TOPLDDYN) \$(LDDYN) \$(PLOTLIBS) \$(LIBS) \$(DYNLIBS) EOT fi fi if test -n "$GNUPLOT_OBJS"; then cat >> $file << EOT \$(GNUPLOT_OBJS): \$(AR) x $libgnuplot \$(GNUPLOT_OBJS) EOT fi if test -n "$emacs"; then cat >> $file << EOT $pari_elc: $emx/pari.el @echo "Byte-Compiling pari.el..." -cd $emx; $emacs -batch -l compile $install_emacs_files: $pari_elc -mkdir -p \$(EMACSDIR) -\$(INSTALL_DATA) $pari_elc \$(EMACSDIR) \$(INSTALL_DATA) $emx/pari.el \$(EMACSDIR) \$(INSTALL_DATA) $emx/pariemacs.txt \$(EMACSDIR) \$(INSTALL_DATA) $emx/with-syntax.el \$(EMACSDIR) \$(INSTALL_DATA) $emx/pari-translator.el \$(EMACSDIR) EOT fi if test -s $src_dir/kernel/$ASMARCH/Makefile.SH; then . $src_dir/kernel/$ASMARCH/Makefile.SH fi HUGELINE= for dir in basemath modules language gp graph gpdyn graphdyn; do eval list='$'$dir for f in $list; do source="$src/$dir/$f.c" depend= cflags= case "$f" in plot) source="$src/graph/\$(PLOTFILE)" cflags="\$(PLOTCFLAGS)" depend="$src/graph/rect.h" ;; gp|gp_rl) cflags="-I$src/language \$(RLINCLUDE)" depend="$src/language/anal.h $src/gp/gp.h ./paricfg.h" ;; gp_init|plotport) cflags="-I$src/graph" depend="$src/graph/rect.h" ;; plot-dyn) source="$src/graph/\$(PLOTFILE)" cflags="\$(DYNFLAGS) \$(PLOTCFLAGS)" depend="$src/graph/rect.h \$(LIBPARI).dll libpari_dll.h libpari_globals.h \$(LIBPARI).dll" ;; gp-dyn|gp_rl-dyn) source=$src\/`echo $dir | sed -e "s/dyn//"`\/`echo $f | cut -f1 -d-`.c cflags="\$(DYNFLAGS) -I$src/language \$(RLINCLUDE)" depend="$src/language/anal.h $src/gp/gp.h ./paricfg.h libpari_dll.h libpari_globals.h \$(LIBPARI).dll" ;; gp_init-dyn|plotport-dyn) source=$src\/`echo $dir | sed -e "s/dyn//"`\/`echo $f | cut -f1 -d-`.c cflags="\$(DYNFLAGS) -I$src/graph" depend="$src/graph/rect.h libpari_dll.h libpari_globals.h \$(LIBPARI).dll" ;; init|es|sumiter) depend="$src/language/anal.h" ;; anal) depend="$src/language/anal.h $src/headers/parinf.h" ;; base1|bibli1|buch2) depend="$src/headers/parinf.h" ;; esac HUGELINE="$HUGELINE $f\$(_O): .headers $depend $source \$(CC) -c \$(CFLAGS) \$(CPPFLAGS) $cflags -o $f\$(_O) $source" done done #to avoid execing too many "cat". echo "$HUGELINE" >> $file if test -n "$DYNFLAGS"; then echo "include Makefile.DLLs" >> $file cp $config_dir/Makefile.DLLs $objdir fi