Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

Testing latest pari + WASM + node.js... and it works?! Wow.

28495 views
License: GPL3
ubuntu2004
1
file=$objdir/Makefile
2
3
echo Extracting $file
4
rm -f $file
5
6
# Path to directories
7
cfg=../$config_dir
8
data=../$data_dir
9
doc=../$doc_dir
10
desc=../$desc_dir
11
ex=../$examples_dir
12
misc=../$misc_dir
13
src=../$src_dir
14
15
knone=$src/kernel/none
16
kern0=$src/kernel/$kernlvl0
17
kern1=$src/kernel/$kernlvl1
18
19
if test -n "$add_funclist"; then
20
add_funclist=$src/funclist
21
fi
22
23
#
24
# File lists
25
#
26
kernel="mpker mpinl"
27
gp=`ls $src_dir/gp/*.c | sed 's,.*/\(.*\)\.c,\1,'`
28
language=`ls $src_dir/language/*.c | sed 's,.*/\(.*\)\.c,\1,'`
29
basemath=`ls $src_dir/basemath/*.c | sed 's,.*/\(.*\)\.c,\1,'`
30
modules=`ls $src_dir/modules/*.c | sed 's,.*/\(.*\)\.c,\1,'`
31
mt="mt $thread_engine"
32
33
systems=
34
if test -d "$src_dir/systems/$osname"; then
35
systems=`ls $src_dir/systems/$osname/*.c | sed 's,.*/\(.*\)\.c,\1,'`
36
fi
37
# remove paridecl: no general recompilation when only changing a prototype
38
hlist=`ls $src_dir/headers/*.h | grep -v paridecl | grep -v paripriv |\
39
sed 's,.*/\(.*\)\.h,\1,'`
40
# for installation put paridecl back. Remove \n otherwise make will choke.
41
headerlist="paridecl paripriv `echo $hlist| tr '\n' ' '`"
42
43
#Add src/language/parse.c if it is not yet generated
44
case $language in *parse*);; *) language="$language parse";; esac
45
46
# special systems (OS/2 for now)
47
shortlib_prefix=lib
48
lib_prefix=lib
49
dllib_prefix=lib
50
case "$osname" in
51
os2) shortlib_prefix= # 8.3 filenames
52
dllib_prefix= # != lib_prefix to allow gp-dyn link with DLL
53
export_lib_create=emximp; export_lib='$(DLLIBPARI)$(_A)'
54
export_file=pari.def; export_create="emxexp -u"
55
# Actually, the build will fail until the switch to -Zomf
56
dlld_ignore=- ;;
57
mingw)
58
export_file='$(LIBPARI).def';
59
export_exe='$(LIBPARI)_exe.def';;
60
darwin)
61
ld_install_name="-Wl,-install_name -Wl,\"$libdir\"/\$(LIBPARI_DYN)";;
62
esac
63
case "$osname" in
64
mingw|cygwin)
65
install_implib="\$(INSTALL_DATA) \$(LIBPARI_SO)\$(_A) \$(LIBDIR)/\$(LIBPARI_SO)\$(_A)";;
66
*)
67
install_implib="";;
68
esac
69
70
PLOTCFLAGS=
71
PLOTLIBS=
72
postconfig=:
73
plotrunpath=
74
case "$which_graphic_lib" in
75
ps|svg|none)
76
graph=plot$which_graphic_lib;;
77
Qt4)
78
PLOTCFLAGS="\$(QTINC)"
79
PLOTLIBS="\$(QTLIB) $QTLIBS"
80
graph=plotQt4;;
81
fltk)
82
PLOTCFLAGS=
83
PLOTLIBS="$FLTK_LIBS"
84
postconfig='fltk-config --post '
85
graph=plotfltk;;
86
win32)
87
PLOTLIBS="-lgdi32"
88
graph=plotWin32;;
89
X11)
90
PLOTCFLAGS="$PLOTCFLAGS $X11_INC"
91
PLOTLIBS="$PLOTLIBS $X11_LIBS"
92
plotrunpath=$X11
93
graph=plotX;;
94
*)
95
echo >&2 "### Unrecognized graphic library '$which_graphic_lib'."
96
exit 1;;
97
esac
98
libgraph="plotport plottty"
99
100
KERNOBJS=
101
for f in $kernel; do
102
KERNOBJS="$KERNOBJS $f\$(_O)"
103
done
104
OBJS=$KERNOBJS
105
for f in $basemath $language $modules $systems $mt $libgraph; do
106
OBJS="$OBJS $f\$(_O)"
107
done
108
OBJSGP=
109
for f in $gp $graph; do
110
OBJSGP="$OBJSGP $f\$(_O)"
111
done
112
HEADERS="mpinl.h parimt.h"
113
for f in $hlist; do
114
HEADERS="$HEADERS $src/headers/$f.h";
115
done
116
117
graph="$graph $libgraph"
118
119
# runpath
120
tmp=$runpath
121
for d in "$plotrunpath" "$gmp" "$readline"; do
122
case "$d" in
123
""|yes) ;;
124
*) case "$tmp" in
125
$d|*$dir_sep$d|*$dir_sep$d$dir_sep*);;
126
*) tmp="$tmp$dir_sep$d";;
127
esac ;;
128
esac
129
done
130
RUNPTH_FINAL=
131
RUNPTH=
132
if test -n "$runpathprefix"; then
133
RUNPTH_FINAL=`$config_dir/ldflags "$LDneedsWl" $runpathprefix"$tmp"`
134
RUNPTH=`$config_dir/ldflags "$LDneedsWl" $runpathprefix\\\$\(TOPDIR\)/$objdir$dir_sep"$tmp"`
135
fi
136
137
if test -z "$DLLD"; then
138
exec="gp-sta$exe_suff"; static=y
139
else
140
exec="gp-sta$exe_suff gp-dyn$exe_suff"
141
fi
142
case "$sizeof_long" in
143
4) numbits=32;;
144
8) numbits=64;;
145
esac
146
dotest="env \"RUNTEST=\$(RUNTEST)\" \"LD_LIBRARY_PATH=.$dir_sep\$\$LD_LIBRARY_PATH\" \$(SHELL) ../src/test/dotest $numbits \"$exe_suff\""
147
case "$static" in
148
n) dft=dyn; libdft=lib-dyn; dfttarget="gp-dyn gp-sta";;
149
y) dft=sta; libdft= ; dfttarget="gp-sta";;
150
esac
151
152
CPPFLAGS="-I. -I$src/headers"
153
if test "$has_dlopen" = builtin; then
154
CPPFLAGS="$CPPFLAGS -I$src/systems/$osname"
155
fi
156
157
case "$ln_s" in
158
*cp*) ln_objdir=".";;
159
*) ln_objdir="$objdir"
160
esac
161
162
cat > $file << EOT
163
# Makefile for Pari/GP -- $pretty
164
#
165
# This file was created by Configure. Any change made to it will be
166
# lost when Configure is run.
167
#
168
TOPDIR="$TOP"
169
170
SHELL = $make_sh
171
PERL = $perl
172
BISON = bison
173
AR = ar
174
RANLIB = ranlib
175
176
SIZEOF_LONG= $sizeof_long
177
178
CC_FLAVOR =
179
CC = $CC \$(CC_FLAVOR)
180
CPPFLAGS = $CPPFLAGS
181
CFLAGS = $CFLAGS
182
DLCFLAGS = $DLCFLAGS
183
KERNELCFLAGS = $KERNELCFLAGS
184
LD_FLAVOR = \$(CC_FLAVOR)
185
LD = $LD \$(LD_FLAVOR)
186
LDFLAGS = $LDFLAGS
187
DLLD_FLAVOR = \$(LD_FLAVOR)
188
DLLD = $DLLD \$(DLLD_FLAVOR)
189
DLLDFLAGS = $DLLDFLAGS
190
EXTRADLLDFLAGS = $EXTRADLLDFLAGS
191
RUNTEST = $RUNTEST
192
193
# HIGHLY EXPERIMENTAL (only tested with gmp-4.0 on ix86 and Ultra).
194
# If you've configured and compiled GMP and would like to tune PARI using
195
# the nice cycle counting functions in GMP, uncomment the 4 lines below
196
# (correct the first one to the path to your gmp source tree).
197
#
198
#GMP = /some/directory/gmp-4.0/tune
199
#GMPFLAGS= -DGMP_TIMER
200
#GMPO1 = \$(GMP)/time.o \$(GMP)/freq.o
201
#GMPOBJS=\$(GMPO1) \$(GMPO2)
202
#
203
#You may need to add a few object files to GMPOBJS. On UltraSparc, uncomment
204
#the following line
205
#GMPO2 = \$(GMP)/sparcv9.o
206
207
_O = .o
208
_A = .a
209
LIB_PREFIX = $lib_prefix
210
DLLIB_PREFIX = $dllib_prefix
211
LIBPARI_BASE = $libpari_base
212
LIBPARI = \$(LIB_PREFIX)pari
213
DLLIBPARI = \$(DLLIB_PREFIX)pari
214
LIBPARI_STA = \$(LIBPARI)\$(_A)
215
LIBPARI_SO = \$(DLLIBPARI).$DLSUFFIX
216
SOLIBPARI = \$(DLLIB_PREFIX)\$(LIBPARI_BASE).$DLSUFFIX
217
LIBPARI_DYN = \$(SOLIBPARI)$sodest
218
LIBPARI_SONAME= \$(SOLIBPARI)$soname
219
DL_DFLT_NAME = $DL_DFLT_NAME
220
221
LD_INSTALL_NAME = $ld_install_name
222
223
EXPORT_FILE = $export_file
224
EXPORT_EXE = $export_exe
225
EXPORT_CREATE = $export_create
226
EXPORT_LIB = $export_lib
227
EXPORT_LIB_CREATE = $export_lib_create
228
DLLD_IGNORE = $dlld_ignore
229
DLLTOOL = $DLLTOOL
230
231
RUNPTH = $RUNPTH
232
RUNPTH_FINAL = $RUNPTH_FINAL
233
LDDYN = $LDDYN
234
LIBS = $LIBS
235
GMPLIBS = $GMPLIBS
236
MT_LIBS = $MT_LIBS
237
RT_LIBS = $RT_LIBS
238
DL_LIBS = $DL_LIBS
239
DYN_LIBS = \$(GMPLIBS) \$(DL_LIBS) \$(RT_LIBS) \$(MT_LIBS) \$(LIBS)
240
STA_LIBS = \$(GMPLIBS) \$(DL_LIBS) \$(RT_LIBS) \$(MT_LIBS) \$(LIBS)
241
242
RM = rm -f
243
MV = mv -f
244
LN = $ln_s
245
CP_F = cp -f
246
STRIP = strip
247
STRIPFLAGS =
248
249
# Change these installation directories to suit your needs.
250
# DESTDIR is used to install to a false hierachy (to build a Debian package)
251
INCLUDEDIR= "\$(DESTDIR)$includedir"
252
LIBDIR = "\$(DESTDIR)$libdir"
253
BINDIR = "\$(DESTDIR)$bindir"
254
MANDIR = "\$(DESTDIR)$mandir"
255
DATADIR = "\$(DESTDIR)$datadir"
256
SYSDATADIR= "\$(DESTDIR)$sysdatadir"
257
258
EXDIR = \$(DATADIR)/examples
259
MISCDIR = \$(DATADIR)/misc
260
DOCDIR = \$(DATADIR)/doc
261
262
INSTALL = $cfg/install
263
INSTALL_PROGRAM = \$(INSTALL)
264
INSTALL_DATA = \$(INSTALL) -m 644
265
TAR = tar
266
267
# Readline
268
RLINCLUDE = $RLINCLUDE
269
RLLIBS = $RLLIBS
270
# GMP
271
GMPINCLUDE = $GMPINCLUDE
272
# Graphic library.
273
QTMOC = $QTMOC
274
QTINC = $QTINC
275
QTLIB = $QTLIB
276
PLOTCFLAGS = $PLOTCFLAGS
277
PLOTLIBS = $PLOTLIBS
278
CXX = g++
279
280
TOPLDDYN = "$TOP/$objdir"
281
# Description system
282
DESC = pari.desc
283
DESC_HELP_GEN = $desc/gen_proto $desc/PARI/822.pm
284
TMPSUF = $osname-$arch.tmp
285
286
DOTEST=$dotest
287
288
OBJS = $OBJS
289
OBJSGP = $OBJSGP
290
291
TESTS = $test_extra
292
293
.PHONY: gp dft clean
294
295
dft: $dfttarget ../gp$suffix$exe_suff $libdft
296
297
gp: gp-$dft ../gp$suffix$exe_suff $libdft
298
299
../gp$suffix$exe_suff: gp-$dft$exe_suff
300
-\$(RM) \$@
301
-\$(LN) $ln_objdir/gp-$dft$exe_suff \$@
302
303
all: $exec lib-sta
304
305
lib-sta: \$(LIBPARI_STA)
306
lib-dyn: \$(LIBPARI_DYN)
307
308
\$(LIBPARI_STA): $add_funclist \$(OBJS)
309
-\$(RM) \$@
310
\$(AR) r \$@ \$(OBJS)
311
-\$(RANLIB) \$@
312
313
kerntest\$(_O): $src/test/kerntest.c
314
\$(CC) -c -I$src/language \$(CPPFLAGS) \$(CFLAGS) -o \$@ $src/test/kerntest.c
315
316
dummy\$(_O): $src/test/dummy.c
317
\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) -o \$@ $src/test/dummy.c
318
319
kerntest: $KERNOBJS dummy\$(_O) kerntest\$(_O)
320
\$(CC) \$(CPPFLAGS) \$(CFLAGS) -o \$@ $KERNOBJS dummy\$(_O) kerntest\$(_O) \$(STA_LIBS)
321
322
mpinl\$(_O): .headers parilvl0.h parilvl1.h $knone/mpinl.c
323
\$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLCFLAGS) -o mpinl\$(_O) $knone/mpinl.c
324
325
test-kernel:: kerntest
326
@./kerntest > gp.out;\
327
diff -c gp.out $src/test/32/kernel > kern.dif;\
328
if test -s kern.dif; then echo "KERNEL BUG"; else echo OK; fi
329
330
tune\$(_O): .headers $src/test/tune.c
331
\$(CC) \$(GMPFLAGS) \$(CPPFLAGS) \$(CFLAGS) -o \$@ $src/test/tune.c -c
332
333
tune: mpinl.h tune-sta
334
-\$(RM) tune ../tune
335
-\$(LN) tune-sta tune
336
-\$(LN) $ln_objdir/tune ../tune
337
338
tune-dyn: tune\$(_O) \$(LIBPARI_DYN)
339
\$(LD) -L. \$(LDFLAGS) \$(RUNPTH) -o \$@ \$< \$(GMPOBJS) \$(LDDYN) \$(STA_LIBS)
340
tune-sta: tune\$(_O) \$(LIBPARI_STA)
341
\$(LD) \$(LDFLAGS) \$(RUNPTH) -o \$@ \$< \$(GMPOBJS) ./\$(LIBPARI_STA) \$(STA_LIBS)
342
343
gp-sta$exe_suff: $add_funclist \$(OBJS) \$(OBJSGP) \$(EXPORT_EXE)
344
\$(RM) \$@
345
\$(LD) -o \$@ \$(LDFLAGS) \$(OBJS) \$(OBJSGP) \$(RUNPTH) \$(RLLIBS) \$(PLOTLIBS) \$(STA_LIBS) \$(EXPORT_EXE)
346
$postconfig gp-sta$exe_suff
347
348
clean_pari_ps::
349
@-\$(RM) pari.ps
350
cleantest:
351
\$(RM) *.dif gp.out io-testfile pari.ps
352
cleanobj:
353
-\$(RM) *\$(_O) mpker.c *.s parimt.h mpinl.h parilvl0.h parilvl1.h libpari* $exec kerntest
354
-\$(RM) gmon.out
355
-\$(RM) *.gcno *.gcda
356
cleandesc:
357
-\$(RM) $desc/\$(DESC) *\$(TMPSUF)
358
cleantune:
359
-\$(RM) tune tune-sta tune\$(_O)
360
361
cleanall: cleanobj cleantune cleantest cleandesc
362
363
clean: cleanall
364
365
366
# Use this version to avoid problems with NFS and slightly out of synch
367
# fileserver/host. We are recompiling everything anyway. Not on by default:
368
# 3s is slower than the whole compilation on our development server :-)
369
# .headers: $HEADERS
370
# @sleep 3; touch \$@
371
.headers: $HEADERS
372
@touch \$@
373
374
install-nodata: install-lib-$dft install-include install-bin install-man install-misc install-examples install-cfg
375
376
install: install-doc install-nodata install-data
377
378
install-include:
379
-mkdir -p \$(INCLUDEDIR)/pari
380
-for i in paricfg.h mpinl.h parimt.h; do \\
381
\$(INSTALL_DATA) \$\$i \$(INCLUDEDIR)/pari; done
382
-for i in $headerlist; do \\
383
\$(INSTALL_DATA) $src/headers/\$\$i.h \$(INCLUDEDIR)/pari; done
384
-\$(RM) \$(INCLUDEDIR)/pari/genpari.h
385
-\$(LN) pari.h \$(INCLUDEDIR)/pari/genpari.h
386
387
install-bin: install-bin-$dft
388
389
install-bin-dyn: gp-dyn$exe_suff install-lib-dyn
390
-mkdir -p \$(BINDIR)
391
-\$(RM) \$(BINDIR)/gp-$version$exe_suff \$(BINDIR)/gp$exe_suff
392
\$(LD) -o \$(BINDIR)/gp-$version$exe_suff -L\$(LIBDIR) \$(LDFLAGS) \$(OBJSGP) \$(RUNPTH_FINAL) \$(LDDYN) \$(RLLIBS) \$(PLOTLIBS) \$(LIBS)
393
-\$(STRIP) \$(STRIPFLAGS) \$(BINDIR)/gp-$version$exe_suff
394
-cd \$(BINDIR); $postconfig gp-$version$exe_suff
395
-\$(LN) gp-$version$exe_suff \$(BINDIR)/gp$exe_suff
396
397
install-bin-sta: gp-sta$exe_suff
398
-mkdir -p \$(BINDIR)
399
-\$(RM) \$(BINDIR)/gp-$version$exe_suff \$(BINDIR)/gp$exe_suff
400
\$(INSTALL_PROGRAM) gp-sta$exe_suff \$(BINDIR)/gp-$version$exe_suff
401
-\$(LN) gp-$version$exe_suff \$(BINDIR)/gp$exe_suff
402
# Can't strip it if we want install() to work on OSF.
403
# -\$(STRIP) \$(STRIPFLAGS) \$(BINDIR)/gp-$version
404
-cd \$(BINDIR); $postconfig gp-$version$exe_suff
405
406
install-man::
407
-mkdir -p \$(MANDIR)
408
-\$(RM) \$(MANDIR)/pari.1 \$(MANDIR)/gp.1 \$(MANDIR)/gp-$version.1
409
\$(INSTALL_DATA) $doc/gphelp.1 \$(MANDIR)
410
\$(INSTALL_DATA) $doc/gp.1 \$(MANDIR)/gp-$version.1
411
-\$(LN) gp.1 \$(MANDIR)/pari.1
412
-\$(LN) gp-$version.1 \$(MANDIR)/gp.1
413
414
install-misc:
415
-mkdir -p \$(MISCDIR) \$(BINDIR)
416
\$(INSTALL_PROGRAM) $misc/tex2mail \$(BINDIR)
417
\$(INSTALL_DATA) $doc/tex2mail.1 \$(MANDIR)
418
\$(INSTALL_DATA) $misc/README \$(MISCDIR)
419
\$(INSTALL_DATA) $misc/color.dft \$(MISCDIR)
420
\$(INSTALL_DATA) $misc/gpalias \$(MISCDIR)
421
\$(INSTALL_PROGRAM) $misc/gpflog \$(MISCDIR)
422
\$(INSTALL_DATA) $misc/gprc.dft \$(MISCDIR)
423
\$(INSTALL_PROGRAM) $misc/xgp \$(MISCDIR)
424
425
install-cfg::
426
-mkdir -p \$(SYSDATADIR)
427
-\$(INSTALL_DATA) pari.cfg \$(SYSDATADIR)
428
-if test -n "$add_funclist"; then\
429
mkdir -p \$(DATADIR)/PARI;\
430
\$(INSTALL_DATA) $desc/PARI/822.pm \$(DATADIR)/PARI;\
431
\$(INSTALL_DATA) $desc/\$(DESC) \$(DATADIR); fi
432
433
install-doc: install-docdvi install-doctex
434
435
install-doctex:
436
-mkdir -p \$(BINDIR) \$(DOCDIR)
437
-\$(INSTALL_DATA) $doc/translations \$(DOCDIR)
438
-\$(INSTALL_PROGRAM) $doc/gphelp \$(BINDIR)
439
-cd $doc; \$(MAKE) usersch3.tex
440
-\$(INSTALL_DATA) $doc/appa.tex \$(DOCDIR)
441
-\$(INSTALL_DATA) $doc/appb.tex \$(DOCDIR)
442
-\$(INSTALL_DATA) $doc/appd.tex \$(DOCDIR)
443
-\$(INSTALL_DATA) $doc/parimacro.tex \$(DOCDIR)
444
-\$(INSTALL_DATA) $doc/pdfmacs.tex \$(DOCDIR)
445
-\$(INSTALL_DATA) $doc/develop.tex \$(DOCDIR)
446
-\$(INSTALL_DATA) $doc/refcard.tex \$(DOCDIR)
447
-\$(INSTALL_DATA) $doc/tutorial.tex \$(DOCDIR)
448
-\$(INSTALL_DATA) $doc/tutorial-mf.tex \$(DOCDIR)
449
-\$(INSTALL_DATA) $doc/users.tex \$(DOCDIR)
450
-\$(INSTALL_DATA) $doc/usersch1.tex \$(DOCDIR)
451
-\$(INSTALL_DATA) $doc/usersch2.tex \$(DOCDIR)
452
-\$(INSTALL_DATA) $doc/usersch3.tex \$(DOCDIR)
453
-\$(INSTALL_DATA) $doc/usersch4.tex \$(DOCDIR)
454
-\$(INSTALL_DATA) $doc/usersch5.tex \$(DOCDIR)
455
-\$(INSTALL_DATA) $doc/usersch6.tex \$(DOCDIR)
456
-\$(INSTALL_DATA) $doc/usersch7.tex \$(DOCDIR)
457
-\$(INSTALL_DATA) $doc/usersch8.tex \$(DOCDIR)
458
-\$(INSTALL_DATA) $doc/paricfg.tex \$(DOCDIR)
459
460
install-docdvi::
461
-mkdir -p \$(DOCDIR)
462
-cd $doc; \$(MAKE) doc; for f in *.dvi; do \
463
\$(INSTALL_DATA) \$\$f \$(DOCDIR); \
464
done
465
466
install-docpdf::
467
-mkdir -p \$(DOCDIR)
468
-cd $doc; \$(MAKE) docpdf; for f in *.pdf; do \
469
\$(INSTALL_DATA) \$\$f \$(DOCDIR); \
470
done
471
472
install-examples:
473
-mkdir -p \$(EXDIR)
474
-\$(INSTALL_DATA) $ex/EXPLAIN \$(EXDIR)
475
-\$(INSTALL_DATA) $ex/Inputrc \$(EXDIR)
476
-\$(INSTALL_DATA) Makefile.examples \$(EXDIR)/Makefile
477
-\$(INSTALL_DATA) $ex/bench.gp \$(EXDIR)
478
-\$(INSTALL_DATA) $ex/cl.gp \$(EXDIR)
479
-\$(INSTALL_DATA) $ex/classno.gp \$(EXDIR)
480
-\$(INSTALL_DATA) $ex/contfrac.gp \$(EXDIR)
481
-\$(INSTALL_DATA) $ex/lucas.gp \$(EXDIR)
482
-\$(INSTALL_DATA) $ex/extgcd.c \$(EXDIR)
483
-\$(INSTALL_DATA) $ex/rho.gp \$(EXDIR)
484
-\$(INSTALL_DATA) $ex/squfof.gp \$(EXDIR)
485
-\$(INSTALL_DATA) $ex/taylor.gp \$(EXDIR)
486
487
install-data:
488
mkdir -p \$(DATADIR); \
489
if test -d $data; then cd $data; \
490
for d in \`ls\`; do \
491
test -d "\$\$d" && (\$(TAR) c \$\$d | (cd \$(DATADIR) && \$(TAR) xo )); \
492
done; \
493
fi;
494
495
link-data:
496
mkdir -p \$(DATADIR); \
497
if test -d $data; then cd $data; \
498
for d in \`ls\`; do \
499
\$(LN) \$(TOPDIR)/$data_dir/\$\$d \$(DATADIR)/; \
500
done; \
501
fi;
502
503
install-lib-sta: \$(LIBPARI_STA)
504
-mkdir -p \$(LIBDIR)
505
-\$(RM) \$(LIBDIR)/\$(LIBPARI_STA)
506
\$(INSTALL_DATA) \$(LIBPARI_STA) \$(LIBDIR)/\$(LIBPARI_STA)
507
508
install-lib-dyn-base:
509
-mkdir -p \$(LIBDIR)
510
-\$(RM) \$(LIBDIR)/\$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SONAME) \$(LIBDIR)/\$(LIBPARI_SO)
511
\$(DLLD_IGNORE)\$(DLLD) -o \$(LIBDIR)/\$(LIBPARI_DYN) \$(DLLDFLAGS) \$(OBJS) \$(EXTRADLLDFLAGS) \$(DYN_LIBS) \$(EXPORT_FILE) \$(LD_INSTALL_NAME)
512
$install_implib
513
514
install-lib-dyn-link: install-lib-dyn-base
515
-if test "\$(LIBPARI_DYN)" != "\$(LIBDIR)/\$(LIBPARI_SO)"; then \
516
\$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SO); fi
517
-if test "\$(LIBPARI_SONAME)" != "\$(LIBPARI_SO)"; then \
518
\$(LN) \$(LIBPARI_DYN) \$(LIBDIR)/\$(LIBPARI_SONAME); fi
519
install-lib-dyn: \$(LIBPARI_DYN) install-lib-dyn-link
520
521
nsis: gp
522
-cd $doc; \$(MAKE) docpdf
523
makensis pari.nsi
524
525
parimt.h: $src/mt/$thread_engine.h
526
cat $src/mt/$thread_engine.h > parimt.h
527
528
mpinl.h: parilvl0.h parilvl1.h
529
cat parilvl0.h parilvl1.h > mpinl.h
530
531
bench: $exec clean_pari_ps
532
@\$(DOTEST) $test_basic
533
dobench:: clean_pari_ps
534
@\$(DOTEST) $test_basic
535
test-all: $exec clean_pari_ps
536
@\$(DOTEST) \$(TESTS)
537
dotest-all:: clean_pari_ps
538
@\$(DOTEST) \$(TESTS)
539
dyntest-all: gp-dyn$exe_suff clean_pari_ps
540
@env dotestSUF=dyn \$(DOTEST) \$(TESTS)
541
statest-all: gp-sta$exe_suff clean_pari_ps
542
@env dotestSUF=sta \$(DOTEST) \$(TESTS)
543
544
dotest-env::
545
@export AAA=XXX BBB=YYY; \$(DOTEST) env
546
EOT
547
548
for i in $test_extra $test_extra_out $test_extra_OUT; do
549
echo "test-$i: $exec dotest-$i" >>$file
550
done
551
for i in $test_extra $test_extra_out; do
552
cat >> $file << EOT
553
dotest-$i::
554
@\$(DOTEST) $i
555
EOT
556
done
557
558
if test "$optimization" = gcov; then
559
cat >> $file << EOT
560
561
.PHONY: lcov-report lcov-reset
562
LCOV_TRACE = lcov.info
563
LCOV_REPORT= lcov-report
564
LCOV_FLAGS=
565
GENHTML_FLAGS=
566
LCOV_TITLE="PARI/GP v$version.$patch lcov report ($status)"
567
568
lcov-report:
569
\$(RM) \$(LCOV_TRACE)
570
rm -rf \$(LCOV_REPORT)
571
lcov -c \$(LCOV_FLAGS) -d . -b . -o \$(LCOV_TRACE)
572
genhtml \$(GENHTML_FLAGS) --legend -t \$(LCOV_TITLE) -o \$(LCOV_REPORT) \$(LCOV_TRACE)
573
574
lcov-reset:
575
\$(RM) *.gcda
576
EOT
577
fi
578
579
if test -n "$exe_suff"; then
580
cat >> $file << EOT
581
gp-sta: gp-sta$exe_suff
582
gp-dyn: gp-dyn$exe_suff
583
EOT
584
fi
585
586
if test -z "$DLLD"; then
587
cat >> $file << EOT
588
589
\$(LIBPARI_DYN)::
590
@echo "Configure could not find a way to build a shared library on this machine"
591
592
EOT
593
else
594
if test -n "$export_file"; then
595
case "$osname" in
596
os2)
597
cat >> $file << EOT
598
599
EXPORT_FILE_BASE = $src/systems/os2/pari.def.base
600
VERSION_VERBOSE = $pari_release_verbose
601
602
\$(EXPORT_FILE): \$(OBJS) \$(EXPORT_FILE_BASE)
603
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)/' > \$@
604
\$(EXPORT_CREATE) \$(OBJS) >> \$@
605
606
\$(DLLIBPARI)\$(_A): \$(EXPORT_FILE)
607
\$(EXPORT_LIB_CREATE) -o \$@ \$(EXPORT_FILE)
608
609
EOT
610
;;
611
mingw)
612
cat >> $file << EOT
613
614
\$(EXPORT_EXE): \$(OBJS)
615
\$(DLLTOOL) --export-all-symbols -k -z \[email protected] \$(OBJS)
616
echo "NAME \$(LIBPARI)_exe" > \$@ && cat \[email protected] >> \$@
617
rm \[email protected]
618
619
\$(EXPORT_FILE): \$(OBJS)
620
\$(DLLTOOL) --export-all-symbols -k -z \[email protected] \$(OBJS)
621
echo "LIBRARY \$(LIBPARI)" > \$@ && cat \[email protected] >> \$@
622
rm \[email protected]
623
EOT
624
;;
625
esac
626
fi
627
cat >> $file << EOT
628
629
gp-dyn$exe_suff: $add_funclist \$(OBJSGP) \$(LIBPARI_DYN) \$(EXPORT_LIB)
630
\$(RM) \$@
631
\$(LD) -o \$@ -L\$(TOPLDDYN) \$(LDFLAGS) \$(OBJSGP) \$(RUNPTH) \$(RLLIBS) \$(LDDYN) \$(PLOTLIBS) \$(LIBS)
632
$postconfig gp-dyn$exe_suff
633
634
\$(LIBPARI_DYN): $add_funclist \$(OBJS) \$(EXPORT_FILE)
635
-\$(RM) \$(LIBPARI_DYN)
636
\$(DLLD_IGNORE)\$(DLLD) -o \$(TOPLDDYN)/\$(LIBPARI_DYN) \$(DLLDFLAGS) \$(OBJS) \$(EXTRADLLDFLAGS) \$(DYN_LIBS) \$(EXPORT_FILE)
637
-if test "\$(LIBPARI_DYN)" != "\$(LIBPARI_SO)"; then \
638
\$(RM) \$(LIBPARI_SO);\
639
\$(LN) \$(LIBPARI_DYN) \$(LIBPARI_SO); fi
640
-if test "\$(LIBPARI_DYN)" != "\$(LIBPARI_SONAME)"; then \
641
\$(RM) \$(LIBPARI_SONAME);\
642
\$(LN) \$(LIBPARI_DYN) \$(LIBPARI_SONAME); fi
643
EOT
644
fi
645
646
cat >> $file << EOT
647
$src/language/parse.c $src/language/parse.h: $src/language/parse.y
648
\$(BISON) -d $src/language/parse.y -o $src/language/parse.c
649
EOT
650
651
if test -n "$add_funclist"; then
652
# files generated using external scripts
653
HUGELINE="
654
$src/funclist::
655
@-$cfg/genfunclist $src/funclist $desc"
656
suffix='$$$$-$(TMPSUF)'
657
list="funclist init default gp_init"
658
for name in $list; do
659
case $name in
660
funclist)
661
target="$desc/\$(DESC)"
662
depend="$src/funclist $desc/merge_822 $desc/PARI/822.pm"
663
script="merge_822 ../$src/funclist"
664
;;
665
init)
666
target=$src/language/init.h
667
depend="$desc/\$(DESC) \$(DESC_HELP_GEN)"
668
script="gen_proto basic \$(DESC)"
669
;;
670
default)
671
target=$src/language/default.h
672
depend="$desc/\$(DESC) \$(DESC_HELP_GEN)"
673
script="gen_proto default \$(DESC)"
674
;;
675
gp_init)
676
target=$src/gp/gp_init.h
677
depend="$desc/\$(DESC) \$(DESC_HELP_GEN)"
678
script="gen_proto gp \$(DESC)"
679
;;
680
esac
681
HUGELINE="$HUGELINE
682
$target: $depend
683
f=$name-$suffix; (cd $desc && \$(PERL) $script > \$\$f) && mv $desc/\$\$f \$@"
684
done
685
echo "$HUGELINE" >> $file
686
687
fi
688
689
# Level 0
690
f=src/kernel/$kernlvl0/MakeLVL0.SH
691
if test -s $f; then
692
. $f
693
else
694
cat >> $file <<EOT
695
L0MODS=$kern0/asm0.h $knone/addll.h $knone/mulll.h $knone/bfffo.h $knone/divll.h $knone/divll_pre.h
696
parilvl0.h: \$(L0MODS)
697
$cfg/genkernel $src $kern0/asm0.h > parilvl0.h
698
EOT
699
fi
700
701
if test -f "$TOP/.git/index"; then
702
vcfile="../.git/index"
703
cat >> $file <<EOT
704
paricfg.h: $vcfile $cfg/version
705
-sh $cfg/setversion
706
EOT
707
fi
708
709
# Level 1
710
f=src/kernel/$kernlvl1/MakeLVL1.SH
711
if test -s $f; then . $f; fi
712
713
ANAL_H=$src/language/anal.h
714
RECT_H=$src/graph/rect.h
715
HUGELINE=
716
for dir in basemath modules language gp graph systems mt; do
717
eval list='$'$dir
718
case "$dir" in
719
systems) SRC=$src/$dir/$osname;;
720
*) SRC=$src/$dir;;
721
esac
722
for f in $list; do
723
724
source="$SRC/$f.c"
725
f=`basename $f`
726
depend=
727
cflags="\$(CPPFLAGS)"
728
compile='$(CC)'
729
case "$f" in
730
gp)
731
cflags="$cflags -I$src/language -DDL_DFLT_NAME=\$(DL_DFLT_NAME)"
732
depend="$src/gp/gp.h $src/gp/gp_init.h"
733
;;
734
gp_rl|texmacs)
735
cflags="$cflags -I$src/language \$(RLINCLUDE)"
736
depend="$src/gp/gp.h"
737
;;
738
paricfg)
739
depend="./paricfg.h"
740
cflags="$cflags \$(DLCFLAGS)"
741
;;
742
plotport)
743
cflags="$cflags \$(DLCFLAGS)"
744
depend="$RECT_H"
745
;;
746
plotsvg|plotps)
747
;;
748
plotQt4)
749
cflags="$cflags \$(PLOTCFLAGS)"
750
depend="$RECT_H"
751
compile="\$(QTMOC) \$(PLOTCFLAGS) -o plotQt4.moc.cpp $src/graph/plotQt4.c && \$(CXX)"
752
;;
753
plotfltk)
754
cflags="$cflags \$(PLOTCFLAGS)"
755
depend="$RECT_H"
756
compile="\$(CXX)"
757
;;
758
plotX)
759
cflags="$cflags \$(PLOTCFLAGS)"
760
depend="$RECT_H"
761
;;
762
es)
763
cflags="$cflags \$(DLCFLAGS)"
764
depend="$ANAL_H"
765
;;
766
whatnow)
767
depend="$src/gp/whatnow.h"
768
;;
769
init)
770
depend="$ANAL_H $src/language/init.h $src/language/default.h"
771
cflags="$cflags \$(DLCFLAGS)"
772
;;
773
anal)
774
depend="$ANAL_H $src/language/parse.h"
775
cflags="$cflags \$(DLCFLAGS)"
776
;;
777
parse)
778
depend="$ANAL_H $src/language/parse.h $src/language/parsec.h $src/language/tree.h"
779
cflags="$cflags \$(DLCFLAGS)"
780
;;
781
compile)
782
depend="$ANAL_H $src/language/tree.h $src/language/opcode.h"
783
cflags="$cflags \$(DLCFLAGS)"
784
;;
785
eval)
786
depend="$ANAL_H $src/language/opcode.h"
787
cflags="$cflags \$(DLCFLAGS)"
788
;;
789
mpqs)
790
depend="$src/modules/mpqs.h"
791
cflags="$cflags \$(DLCFLAGS)"
792
;;
793
ratpoints)
794
cflags="$cflags \$(DLCFLAGS) \$(KERNELCFLAGS)"
795
;;
796
F2v)
797
cflags="$cflags \$(DLCFLAGS) \$(KERNELCFLAGS)"
798
;;
799
F3v)
800
cflags="$cflags \$(DLCFLAGS) \$(KERNELCFLAGS)"
801
;;
802
*)
803
cflags="$cflags \$(DLCFLAGS)"
804
;;
805
esac
806
cflags="$cflags \$(CFLAGS)"
807
HUGELINE="$HUGELINE
808
$f\$(_O): .headers $depend $source
809
$compile -c $cflags -o $f\$(_O) $source"
810
done
811
done
812
# avoid execing too many "cat". MS-DOS can't handle it
813
echo "$HUGELINE" >> $file
814
815