1file=$objdir/Makefile 2 3echo Extracting $file 4rm -f $file 5 6# Path to directories 7cfg=../$config_dir 8data=../$data_dir 9doc=../$doc_dir 10desc=../$desc_dir 11emx=../$emacs_dir 12ex=../$examples_dir 13misc=../$misc_dir 14src=../$src_dir 15 16knone=$src/kernel/none 17kern0=$src/kernel/$kernlvl0 18kern1=$src/kernel/$kernlvl1 19 20# 21# File lists 22# 23kernel="mp mpinl" 24gp=`ls $src_dir/gp/*.c | sed 's,.*/\(.*\)\.c,\1,'` 25language=`ls $src_dir/language/*.c | sed 's,.*/\(.*\)\.c,\1,'` 26basemath=`ls $src_dir/basemath/*.c | sed 's,.*/\(.*\)\.c,\1,'` 27modules=`ls $src_dir/modules/*.c | sed 's,.*/\(.*\)\.c,\1,'` 28systems= 29if test -d "$src_dir/systems/$osname"; then 30 systems=`ls $src_dir/systems/$osname/*.c | sed 's,.*/\(.*\)\.c,\1,'` 31fi 32# remove paridecl: no general recompilation when only changing a prototype 33hlist=`ls $src_dir/headers/*.h | grep -v paridecl | grep -v paripriv |\ 34 sed 's,.*/\(.*\)\.h,\1,'` 35# for installation put paridecl back. Remove \n otherwise make will choke. 36headerlist="paridecl paripriv `echo $hlist| tr '\n' ' '`" 37 38# special systems (OS/2 for now) 39shortlib_prefix=lib 40lib_prefix=lib 41dllib_prefix=lib 42case "$osname" in 43 os2) shortlib_prefix= # 8.3 filenames 44 dllib_prefix= # != lib_prefix to allow gp-dyn link with DLL 45 export_lib_create=emximp; export_lib='$(DLLIBPARI)$(_A)' 46 export_file=pari.def; export_create="emxexp -u" 47 # Actually, the build will fail until the switch to -Zomf 48 dlld_ignore=- ;; 49esac 50 51PLOTCFLAGS= 52PLOTLIBS= 53postconfig="@: " 54case "$which_graphic_lib" in 55none) 56 graph=plotnull;; 57qt) 58 PLOTCFLAGS='-D__FANCY_WIN__ -I$(QTDIR)/include' 59 PLOTLIBS="-L\$(QTDIR)/lib $QTLIB" 60 graph=plotQt;; 61fltk) 62 PLOTCFLAGS="-I\$(FLTKDIR)/include $X11_INC" 63 PLOTLIBS="-L\$(FLTKDIR)/lib -lfltk $FLTK_LIBS" 64 postconfig='-fltk-config --post ' 65 graph=plotfltk;; 66esac 67graph="plotport $graph" 68 69plotrunpath= 70case "$which_graphic_lib" in 71 *X11*) 72 PLOTCFLAGS="$PLOTCFLAGS $X11_INC" 73 PLOTLIBS="$PLOTLIBS $X11_LIBS" 74 plotrunpath=$X11 75 graph="plotX $graph" 76 ;; 77esac 78 79KERNOBJS= 80for f in $kernel; do 81 KERNOBJS="$KERNOBJS $f\$(_O)" 82done 83OBJS=$KERNOBJS 84for f in $basemath $language $modules $systems; do 85 OBJS="$OBJS $f\$(_O)" 86done 87OBJSGP= 88for f in $gp $graph; do 89 OBJSGP="$OBJSGP $f\$(_O)" 90done 91HEADERS=pariinl.h 92for f in $hlist; do 93 HEADERS="$HEADERS $src/headers/$f.h"; 94done 95 96# runpath 97tmp=$runpath 98for d in "$plotrunpath" "$gmp" "$readline" "/usr/lib"; do 99 if test -n "$d"; then 100 case "$tmp" in 101 $d|*$dir_sep$d|*$dir_sep$d$dir_sep*);; 102 *) tmp="$tmp$dir_sep$d";; 103 esac 104 fi 105done 106RUNPTH_FINAL= 107RUNPTH= 108if test -n "$runpathprefix"; then 109 RUNPTH_FINAL=`$config_dir/ldflags "$LDneedsWl" "$runpathprefix$tmp"` 110 RUNPTH=`$config_dir/ldflags "$LDneedsWl" "$runpathprefix$TOP/$objdir$dir_sep$tmp"` 111fi 112 113if test -z "$DLLD"; then 114 exec="gp-sta"; static=y 115else 116 exec="gp-sta gp-dyn" 117fi 118case "$sizeof_long" in 119 4) numbits=32;; 120 8) numbits=64;; 121esac 122dotest="env \"LD_LIBRARY_PATH=.$dir_sep\$\$LD_LIBRARY_PATH\" \$(SHELL) $src/test/dotest $numbits" 123if test -z "$emacs"; then 124 install_emacs_files= 125else 126 install_emacs_files=install_emacs_files 127fi 128case "$static" in 129 n) dft=dyn; libdft=lib-dyn;; 130 y) dft=sta; libdft= ;; 131esac 132 133CPPFLAGS="-I. -I$src/headers" 134if test "$has_dlopen" = builtin; then 135 CPPFLAGS="$CPPFLAGS -I$src/systems/$osname" 136fi 137 138case "$ln_s" in 139 *cp*) ln_objdir=".";; 140 *) ln_objdir="$objdir" 141esac 142 143cat > $file << EOT 144# Makefile for Pari/GP -- $pretty 145# 146# This file was created by Configure. Any change made to it will be 147# lost when Configure is run. 148# 149SHELL = $make_sh 150PERL = $perl 151AR = ar 152 153SIZEOF_LONG= $sizeof_long 154 155CC_FLAVOR = 156CC = $CC \$(CC_FLAVOR) 157CPPFLAGS = $CPPFLAGS 158CFLAGS = $CFLAGS 159DLCFLAGS = $DLCFLAGS 160LD_FLAVOR = \$(CC_FLAVOR) 161LD = $LD \$(LD_FLAVOR) 162LDFLAGS = $LDFLAGS 163DLLD_FLAVOR = \$(LD_FLAVOR) 164DLLD = $DLLD \$(DLLD_FLAVOR) 165DLLDFLAGS = $DLLDFLAGS 166EXTRADLLDFLAGS = $EXTRADLLDFLAGS 167 168# HIGHLY EXPERIMENTAL (only tested with gmp-4.0 on ix86 and Ultra). 169# If you've configured and compiled GMP and would like to tune PARI using 170# the nice cycle counting functions in GMP, uncomment the 4 lines below 171# (correct the first one to the path to your gmp source tree). 172# 173#GMP = /some/directory/gmp-4.0/tune 174#GMPFLAGS= -DGMP_TIMER 175#GMPO1 = \$(GMP)/time.o \$(GMP)/freq.o 176#GMPOBJS=\$(GMPO1) \$(GMPO2) 177# 178#You may need to add a few object files to GMPOBJS. On UltraSparc, uncomment 179#the following line 180#GMPO2 = \$(GMP)/sparcv9.o 181 182_O = .o 183_A = .a 184LIB_PREFIX = $lib_prefix 185DLLIB_PREFIX = $dllib_prefix 186LIBPARI_BASE = $libpari_base 187LIBPARI = \$(LIB_PREFIX)pari 188DLLIBPARI = \$(DLLIB_PREFIX)pari 189LIBPARI_STA = \$(LIBPARI)\$(_A) 190LIBPARI_SO = \$(DLLIBPARI).$DLSUFFIX 191SOLIBPARI = \$(DLLIB_PREFIX)\$(LIBPARI_BASE).$DLSUFFIX 192LIBPARI_DYN = \$(SOLIBPARI)$sodest 193LIBPARI_SONAME= \$(SOLIBPARI)$soname 194DL_DFLT_NAME = $DL_DFLT_NAME 195 196EXPORT_FILE = $export_file 197EXPORT_CREATE = $export_create 198EXPORT_LIB = $export_lib 199EXPORT_LIB_CREATE = $export_lib_create 200DLLD_IGNORE = $dlld_ignore 201 202RUNPTH = $RUNPTH 203RUNPTH_FINAL = $RUNPTH_FINAL 204LDDYN = $LDDYN 205LIBS = $LIBS 206 207RM = rm -f 208MV = mv -f 209LN = $ln_s 210CP_F = cp -f 211STRIP = strip 212STRIPFLAGS = 213 214# Change these installation directories to suit your needs. 215# DESTDIR is used to install to a false hierachy (to build a Debian package) 216INCLUDEDIR= "\$(DESTDIR)$includedir" 217LIBDIR = "\$(DESTDIR)$libdir" 218BINDIR = "\$(DESTDIR)$bindir" 219MANDIR = "\$(DESTDIR)$mandir" 220EMACSDIR = "\$(DESTDIR)$emacsdir" 221DATADIR = "\$(DESTDIR)$datadir" 222SYSDATADIR= "\$(DESTDIR)$sysdatadir" 223 224EXDIR = \$(DATADIR)/examples 225MISCDIR = \$(DATADIR)/misc 226DOCDIR = \$(DATADIR)/doc 227 228INSTALL = $cfg/install 229INSTALL_PROGRAM = \$(INSTALL) 230INSTALL_DATA = \$(INSTALL) -m 644 231 232# Readline 233RLINCLUDE = $RLINCLUDE 234RLLIBS = $RLLIBS 235# GMP 236GMPINCLUDE = $GMPINCLUDE 237# Graphic library. 238QTDIR = "$QTDIR" 239MOC = \$(QTDIR)/bin/moc 240PLOTCFLAGS = $PLOTCFLAGS 241PLOTLIBS = $PLOTLIBS 242CPLUSPLUS = g++ 243 244FLTKDIR = "$FLTKDIR" 245 246TOPLDDYN = -L"$TOP/$objdir" \$(RLLIBS) 247# Description system 248DESC = pari.desc 249DESC_HELP_GEN = $desc/gen_proto $desc/PARI/822.pm 250TMPSUF = -$osname-$arch-$$.tmp 251 252DOTEST=$dotest 253 254OBJS = $OBJS 255OBJSGP = $OBJSGP 256 257gp: gp-$dft ../gp$suffix$exe_suff $libdft 258 259../gp$suffix$exe_suff: gp-$dft 260 -\$(RM) \$@ 261 -\$(LN) $ln_objdir/gp-$dft$exe_suff \$@ 262 263all: $exec lib-sta 264 265lib-sta: \$(LIBPARI_STA) 266lib-dyn: \$(LIBPARI_DYN) 267 268\$(LIBPARI_STA): $add_funclist \$(OBJS) 269 -\$(RM) \$@ 270 \$(AR) r \$@ \$(OBJS) 271 -$ranlib \$@ 272 273kerntest\$(_O): $src/test/kerntest.c 274 \$(CC) -c \$(CFLAGS) -I$src/language \$(CPPFLAGS) -o \$@ $src/test/kerntest.c 275 276kerntest: $KERNOBJS kerntest\$(_O) 277 \$(CC) \$(CFLAGS) \$(CPPFLAGS) -o \$@ $KERNOBJS kerntest\$(_O) \$(LIBS) 278 279mpinl\$(_O): .headers parilvl0.h parilvl1.h $knone/mpinl.c 280 \$(CC) -c \$(CFLAGS) \$(CPPFLAGS) \$(DLCFLAGS) -o mpinl\$(_O) $knone/mpinl.c 281 282test-kernel:: kerntest 283 @./kerntest > gp.out;\ 284 diff -c gp.out $src/test/$numbits/kernel > kern.dif;\ 285 if test -s kern.dif; then echo "KERNEL BUG"; else echo OK; fi 286 287tune.o: $src/test/tune.c 288 \$(CC) \$(CFLAGS) \$(GMPFLAGS) \$(CPPFLAGS) -o \$@ \$< -c 289 290tune: tune-sta 291 -\$(RM) tune ../tune 292 -\$(LN) tune-sta tune 293 -\$(LN) $ln_objdir/tune ../tune 294 295tune-dyn: tune.o \$(LIBPARI_DYN) 296 \$(LD) \$(LDFLAGS) \$(RUNPTH) -o \$@ \$< \$(GMPOBJS) -L. \$(LDDYN) \$(LIBS) 297tune-sta: tune.o \$(LIBPARI_STA) 298 \$(LD) \$(LDFLAGS) -o \$@ \$< \$(GMPOBJS) ./\$(LIBPARI_STA) \$(LIBS) 299 300gp-sta: $add_funclist \$(OBJS) \$(OBJSGP) 301 \$(RM) \$@ 302 \$(LD) -o \$@ \$(LDFLAGS) \$(OBJS) \$(OBJSGP) \$(RUNPTH) \$(RLLIBS) \$(PLOTLIBS) \$(LIBS) 303 $postconfig gp-sta 304 305cleanemacs: 306 \$(RM) $emx/*.elc 307cleantest: 308 \$(RM) *.dif gp.out pari.ps 309cleanobj: 310 -\$(RM) *\$(_O) mp.c *.s pariinl.h parilvl0.h parilvl1.h libpari* tune* $exec 311cleandesc: 312 -\$(RM) $desc/\$(DESC) *\$(TMPSUF) 313 314clean: cleanobj cleantest cleanemacs cleandesc 315 316.headers: $HEADERS 317 @touch \$@ 318 319install: install-lib-$dft install-include install-bin install-man install-misc install-doc install-examples install-cfg install-data 320 321install-include: 322 -mkdir -p \$(INCLUDEDIR)/pari 323 -for i in paricfg.h pariinl.h; do \\ 324 \$(INSTALL_DATA) \$\$i \$(INCLUDEDIR)/pari; done 325 -for i in $headerlist; do \\ 326 \$(INSTALL_DATA) $src/headers/\$\$i.h \$(INCLUDEDIR)/pari; done 327 -\$(RM) \$(INCLUDEDIR)/pari/genpari.h 328 -\$(LN) pari.h \$(INCLUDEDIR)/pari/genpari.h 329 330install-bin: install-bin-$dft 331 332install-bin-dyn: gp-dyn 333 -mkdir -p \$(BINDIR) 334 -\$(RM) \$(BINDIR)/gp-$version$exe_suff \$(BINDIR)/gp$exe_suff 335 \$(LD) -o \$(BINDIR)/gp-$version$exe_suff \$(LDFLAGS) \$(OBJSGP) \$(RUNPTH_FINAL) \$(TOPLDDYN) \$(LDDYN) \$(PLOTLIBS) \$(LIBS) 336 -\$(STRIP) \$(STRIPFLAGS) \$(BINDIR)/gp-$version$exe_suff 337 $postconfig \$(BINDIR)/gp-$version$exe_suff 338 -\$(LN) gp-$version$exe_suff \$(BINDIR)/gp$exe_suff 339 340install-bin-sta: gp-sta 341 -mkdir -p \$(BINDIR) 342 -\$(RM) \$(BINDIR)/gp-$version$exe_suff \$(BINDIR)/gp$exe_suff 343 \$(INSTALL_PROGRAM) gp-sta$exe_suff \$(BINDIR)/gp-$version$exe_suff 344 -\$(LN) gp-$version$exe_suff \$(BINDIR)/gp$exe_suff 345# Can't strip it if we want install() to work on OSF. 346# -\$(STRIP) \$(STRIPFLAGS) \$(BINDIR)/gp-$version 347 $postconfig \$(BINDIR)/gp-$version$exe_suff 348 349install-man:: 350 -mkdir -p \$(MANDIR) 351 -\$(RM) \$(MANDIR)/pari.1 \$(MANDIR)/gp.1 \$(MANDIR)/gp-$version.1 352 \$(INSTALL_DATA) $doc/gphelp.1 \$(MANDIR) 353 \$(INSTALL_DATA) $doc/gp.1 \$(MANDIR)/gp-$version.1 354 -\$(LN) gp.1 \$(MANDIR)/pari.1 355 -\$(LN) gp-$version.1 \$(MANDIR)/gp.1 356 357install-misc: $install_emacs_files 358 -mkdir -p \$(MISCDIR) \$(BINDIR) 359 \$(INSTALL_PROGRAM) $misc/tex2mail \$(BINDIR) 360 \$(INSTALL_DATA) $doc/tex2mail.1 \$(MANDIR) 361 \$(INSTALL_DATA) $misc/README \$(MISCDIR) 362 \$(INSTALL_DATA) $misc/color.dft \$(MISCDIR) 363 \$(INSTALL_DATA) $misc/gpalias \$(MISCDIR) 364 \$(INSTALL_PROGRAM) $misc/gpflog \$(MISCDIR) 365 \$(INSTALL_DATA) $misc/gprc.dft \$(MISCDIR) 366 \$(INSTALL_DATA) $misc/new.dic \$(MISCDIR) 367 \$(INSTALL_DATA) $misc/pari.xpm \$(MISCDIR) 368 \$(INSTALL_PROGRAM) $misc/xgp \$(MISCDIR) 369 370install-cfg:: 371 -mkdir -p \$(SYSDATADIR) 372 -\$(INSTALL_DATA) pari.cfg \$(SYSDATADIR) 373 -if test -n "$add_funclist"; then\ 374 mkdir -p \$(DATADIR)/PARI;\ 375 \$(INSTALL_DATA) $desc/PARI/822.pm \$(DATADIR)/PARI;\ 376 \$(INSTALL_DATA) $desc/\$(DESC) \$(DATADIR); fi 377 378install-doc:: 379 -mkdir -p \$(BINDIR) \$(DOCDIR) 380 -cd $doc; \$(MAKE) all 381 -\$(INSTALL_PROGRAM) $doc/gphelp \$(BINDIR) 382 -\$(INSTALL_DATA) $doc/Makefile \$(DOCDIR) 383 -\$(INSTALL_DATA) $doc/translations \$(DOCDIR) 384 -\$(INSTALL_DATA) $doc/appa.tex \$(DOCDIR) 385 -\$(INSTALL_DATA) $doc/appb.tex \$(DOCDIR) 386 -\$(INSTALL_DATA) $doc/appc.tex \$(DOCDIR) 387 -\$(INSTALL_DATA) $doc/parimacro.tex \$(DOCDIR) 388 -\$(INSTALL_DATA) $doc/pdfmacs.tex \$(DOCDIR) 389 -\$(INSTALL_DATA) $doc/refcard.tex \$(DOCDIR) 390 -\$(INSTALL_DATA) $doc/tutorial.tex \$(DOCDIR) 391 -\$(INSTALL_DATA) $doc/users.tex \$(DOCDIR) 392 -\$(INSTALL_DATA) $doc/usersch1.tex \$(DOCDIR) 393 -\$(INSTALL_DATA) $doc/usersch2.tex \$(DOCDIR) 394 -\$(INSTALL_DATA) $doc/usersch3.tex \$(DOCDIR) 395 -\$(INSTALL_DATA) $doc/usersch4.tex \$(DOCDIR) 396 -\$(INSTALL_DATA) $doc/usersch5.tex \$(DOCDIR) 397 -\$(INSTALL_DATA) $doc/paricfg.tex \$(DOCDIR) 398 -\$(INSTALL_DATA) $doc/libpari.dvi \$(DOCDIR) 399 -\$(INSTALL_DATA) $doc/users.dvi \$(DOCDIR) 400 -\$(INSTALL_DATA) $doc/tutorial.dvi \$(DOCDIR) 401 -\$(INSTALL_DATA) $doc/refcard.dvi \$(DOCDIR) 402 -\$(INSTALL_DATA) $doc/refcard.ps \$(DOCDIR) 403 404install-examples: 405 -mkdir -p \$(EXDIR) 406 -\$(INSTALL_DATA) $ex/EXPLAIN \$(EXDIR) 407 -\$(INSTALL_DATA) $ex/Inputrc \$(EXDIR) 408 -\$(INSTALL_DATA) $ex/Makefile \$(EXDIR) 409 -\$(INSTALL_DATA) $ex/bench.gp \$(EXDIR) 410 -\$(INSTALL_DATA) $ex/cl.gp \$(EXDIR) 411 -\$(INSTALL_DATA) $ex/classno.gp \$(EXDIR) 412 -\$(INSTALL_DATA) $ex/contfrac.gp \$(EXDIR) 413 -\$(INSTALL_DATA) $ex/lucas.gp \$(EXDIR) 414 -\$(INSTALL_DATA) $ex/extgcd.c \$(EXDIR) 415 -\$(INSTALL_DATA) $ex/rho.gp \$(EXDIR) 416 -\$(INSTALL_DATA) $ex/squfof.gp \$(EXDIR) 417 -\$(INSTALL_DATA) $ex/taylor.gp \$(EXDIR) 418 419install-data: 420 -if test -d $data; then cd $data; \ 421 for d in \`ls\`; do \ 422 mkdir -p \$(DATADIR)/\$\$d && \ 423 for f in \`ls \$\$d\`; do \ 424 \$(INSTALL_DATA) \$\$d/\$\$f \$(DATADIR)/\$\$d; \ 425 done >/dev/null;\ 426 done; \ 427 fi 428 429install-lib-sta: \$(LIBPARI_STA) 430 -mkdir -p \$(LIBDIR) 431 -\$(RM) \$(LIBDIR)/\$(LIBPARI_STA) 432 \$(INSTALL_DATA) \$(LIBPARI_STA) \$(LIBDIR)/\$(LIBPARI_STA) 433 434install-lib-dyn-base: 435 -mkdir -p \$(LIBDIR) 436 -\$(RM) \$(LIBDIR)/\$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SONAME) \$(LIBDIR)/\$(LIBPARI_SO) 437 \$(INSTALL_PROGRAM) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_DYN) 438install-lib-dyn-link: install-lib-dyn-base 439 -if test "\$(LIBPARI_SONAME)" != "\$(LIBPARI_SO)"; then \ 440 \$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SONAME);\ 441 \$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SO); fi 442install-lib-dyn: \$(LIBPARI_DYN) install-lib-dyn-link 443 444pariinl.h: parilvl0.h parilvl1.h 445 cat parilvl0.h parilvl1.h > pariinl.h 446 447bench: $exec 448 @\$(DOTEST) $test_basic 449dobench:: 450 @\$(DOTEST) $test_basic 451test-all: $exec 452 @\$(DOTEST) $test_basic $test_extra 453dotest-all:: 454 @\$(DOTEST) $test_basic $test_extra 455EOT 456for i in $test_extra $test_extra_out; do 457 cat >> $file << EOT 458test-$i: $exec 459 @\$(DOTEST) $i 460dotest-$i:: 461 @\$(DOTEST) $i 462EOT 463done 464 465if test -z "$DLLD"; then 466 cat >> $file << EOT 467 468\$(LIBPARI_DYN):: 469 @echo "Configure could not find a way to build a shared library on this machine" 470 471EOT 472else 473 if test -n "$export_file"; then 474 cat >> $file << EOT 475 476EXPORT_FILE_BASE = $src/systems/os2/pari.def.base 477VERSION_VERBOSE = $pari_release_verbose 478 479\$(EXPORT_FILE): \$(OBJS) \$(EXPORT_FILE_BASE) 480 cat \$(EXPORT_FILE_BASE) | sed 's/<DLL_BASE>/\$(DLLIBPARI)/' | sed 's/<VENDOR>/pari.math.u-bordeaux.fr\//' | sed 's/<VERSION>/\$(VERSION_VERBOSE)/' | sed 's/<DESCR>/GP\/PARI compiled with \$(CFLAGS)/' > \$@ 481 \$(EXPORT_CREATE) \$(OBJS) >> \$@ 482 483\$(DLLIBPARI)\$(_A): \$(EXPORT_FILE) 484 \$(EXPORT_LIB_CREATE) -o \$@ \$(EXPORT_FILE) 485 486EOT 487 fi 488 cat >> $file << EOT 489 490gp-dyn: $add_funclist \$(OBJSGP) \$(LIBPARI_DYN) \$(EXPORT_LIB) 491 \$(RM) \$@ 492 \$(LD) -o \$@ \$(LDFLAGS) \$(OBJSGP) \$(RUNPTH) \$(TOPLDDYN) \$(LDDYN) \$(PLOTLIBS) \$(LIBS) 493 $postconfig gp-dyn 494 495\$(LIBPARI_DYN): $add_funclist \$(OBJS) \$(EXPORT_FILE) 496 -\$(RM) \$(LIBPARI_DYN) 497 \$(DLLD_IGNORE)\$(DLLD) -o \$(LIBPARI_DYN) \$(DLLDFLAGS) \$(OBJS) \$(EXTRADLLDFLAGS) \$(EXPORT_FILE) 498 -if test "\$(LIBPARI_DYN)" != "\$(LIBPARI_SO)"; then \ 499 \$(RM) \$(LIBPARI_SO);\ 500 \$(LN) \$(LIBPARI_DYN) \$(LIBPARI_SO); fi 501 -if test "\$(LIBPARI_DYN)" != "\$(LIBPARI_SONAME)"; then \ 502 \$(RM) \$(LIBPARI_SONAME);\ 503 \$(LN) \$(LIBPARI_DYN) \$(LIBPARI_SONAME); fi 504EOT 505fi 506 507if test -n "$emacs"; then 508 cat >> $file << EOT 509elc: 510 @echo "Byte-Compiling elisp files..." 511 -cd $emx; $emacs -batch \ 512 --eval '(setq load-path (append (list ".") load-path))' \ 513 -f batch-byte-compile *.el 514 515$install_emacs_files: elc 516 -mkdir -p \$(EMACSDIR) 517 -cd $emx; for f in *.elc *.el pariemacs.txt; do \ 518 \$(INSTALL_DATA) \$\$f \$(EMACSDIR); \ 519 done 520EOT 521fi 522 523if test -n "$add_funclist"; then 524 cat >> $file << EOT 525desc:: $src/language/init.h $src/gp/gp_init.h $src/gp/highlvl.h $src/language/members.h 526 527$src/funclist:: 528 @-cksum \`env LANG= ls -d $src/functions/*/* | grep -v CVS\` > funclist\$(TMPSUF) 529 @-sh $cfg/mv-if-diff funclist\$(TMPSUF) $src/funclist 530 531$desc/\$(DESC): $src/funclist $desc/merge_822 $desc/PARI/822.pm 532 cd $desc && \$(PERL) merge_822 ../functions/*/* > def\$(TMPSUF) 533 mv $desc/def\$(TMPSUF) \$@ 534 535$src/language/members.h: $desc/\$(DESC) $desc/gen_member 536 cd $desc && \$(PERL) gen_member \$(DESC) > members\$(TMPSUF) 537 mv $desc/members\$(TMPSUF) \$@ 538 539$src/language/init.h: $desc/\$(DESC) \$(DESC_HELP_GEN) 540 cd $desc && \$(PERL) gen_proto basic \$(DESC) > init\$(TMPSUF) 541 mv $desc/init\$(TMPSUF) \$@ 542 543$src/gp/gp_init.h: $desc/\$(DESC) \$(DESC_HELP_GEN) 544 cd $desc && \$(PERL) gen_proto gp \$(DESC) > gp_init\$(TMPSUF) 545 mv $desc/gp_init\$(TMPSUF) \$@ 546 547$src/gp/highlvl.h: $desc/\$(DESC) \$(DESC_HELP_GEN) 548 cd $desc && \$(PERL) gen_proto highlevel \$(DESC) > highlvl\$(TMPSUF) 549 mv $desc/highlvl\$(TMPSUF) \$@ 550 551L0MODS=$kern0/asm0.h $knone/addll.h $knone/mulll.h $knone/bfffo.h $knone/divll.h 552EOT 553fi 554 555# Level 0 556f=$src_dir/kernel/$kernlvl0/MakeLVL0.SH 557if test -s $f; then 558 . $f 559else 560 cat >> $file <<EOT 561parilvl0.h: \$(L0MODS) 562 $cfg/genkernel $kern0/asm0.h > parilvl0.h 563EOT 564fi 565 566# Level 1 567f=$src_dir/kernel/$kernlvl1/MakeLVL1.SH 568if test -s $f; then . $f; fi 569 570HUGELINE= 571for dir in basemath modules language gp graph graphdyn systems; do 572 eval list='$'$dir 573 case "$dir" in 574 systems) SRC=$src/$dir/$osname;; 575 *) SRC=$src/$dir;; 576 esac 577 for f in $list; do 578 579 source="$SRC/$f.c" 580 f=`basename $f` 581 depend= 582 cflags="\$(CFLAGS) \$(CPPFLAGS)" 583 compile='$(CC)' 584 case "$f" in 585 gp|gp_rl) 586 cflags="$cflags -I$src/language \$(RLINCLUDE)" 587 depend="$src/language/anal.h $src/gp/gp.h ./paricfg.h" 588 ;; 589 gp_init) 590 cflags="$cflags -I$src/graph" 591 depend="$src/graph/rect.h $src/gp/gp_init.h" 592 ;; 593 default) 594 depend="$src/language/anal.h ./paricfg.h" 595 cflags="$cflags \$(DLCFLAGS)" 596 ;; 597 plotport) 598 cflags="$cflags -I$src/graph" 599 depend="$src/graph/rect.h" 600 ;; 601 highlvl) 602 cflags="$cflags -DDL_DFLT_NAME=\$(DL_DFLT_NAME)" 603 depend="$src/gp/highlvl.h" 604 ;; 605 plotQt) 606 cflags="$cflags \$(PLOTCFLAGS)" 607 depend="$src/graph/rect.h" 608 compile="\$(MOC) -o plotQt.moc.cpp $src/graph/plotQt.c && \$(CPLUSPLUS)" 609 ;; 610 plotfltk) 611 cflags="$cflags \$(PLOTCFLAGS)" 612 depend="$src/graph/rect.h" 613 compile="\$(CPLUSPLUS)" 614 ;; 615 plot*) 616 cflags="$cflags \$(PLOTCFLAGS)" 617 depend="$src/graph/rect.h" 618 ;; 619 es|sumiter) 620 depend="$src/language/anal.h" 621 cflags="$cflags \$(DLCFLAGS)" 622 ;; 623 whatnow);; 624 init) 625 depend="$src/language/anal.h $src/language/init.h" 626 cflags="$cflags \$(DLCFLAGS)" 627 ;; 628 anal) 629 depend="$src/language/anal.h $src/language/members.h" 630 cflags="$cflags \$(DLCFLAGS)" 631 ;; 632 *) 633 cflags="$cflags \$(DLCFLAGS)" 634 ;; 635 esac 636HUGELINE="$HUGELINE 637$f\$(_O): .headers $depend $source 638 $compile -c $cflags -o $f\$(_O) $source" 639 done 640done 641# avoid execing too many "cat". MS-DOS can't handle it 642echo "$HUGELINE" >> $file 643 644echo ".PHONY: gp dft clean" >> $file 645