HOME

PDF

my GIAC/C++ cheat sheet

Nasser M. Abbasi

September 8, 2023   Compiled on September 8, 2023 at 9:51am

Contents

 1 Introduction
 2 Installing Giac
  2.1 download an extract software
  2.2 check prerequisites
  2.3 run configure
  2.4 run make
  2.5 install
  2.6 post installation
 3 Verify installation
 4 Writing a C++ program to call giac
  4.1 Makefile
  4.2 example 1. C++ program to do integration
  4.3 example 2. C++ program to solve for roots of equation
  4.4 example 3. C++ program to solve an ode

1 Introduction

This document describes how to install and write a C++ program using Giac computer algebra software. This assumes you already have C++ installed on your PC. I did this on a Linux OS.

Here is a post about the history of Giac.

The help pages that describes the giac commands are HTML and PDF

2 Installing Giac

2.1 download an extract software

  1. Downloaded giac from here. The latest version is in a tar.gz at the bottom of the page. This document was written using giac_1.9.0-35.tar.gz
  2. Copied the above file to an empty folder ~/TMP/GIAC/ folder and then cd to the above, and extracted the content using the commands

    > cd ~/TMP/GIAC/ 
    > ls -lrt 
     
    total 111092 
    -rwxrwxrwx 1 me me 113753631 Jan 12 18:13 giac_1.9.0-35.tar.gz 
     
    > gunzip giac_1.9.0-35.tar.gz 
    > tar -xvf giac_1.9.0-35.tar
     
    

    The above creates a new folder giac-1.9.0/

2.2 check prerequisites

  1. cd to the above folder created

    > cd giac-1.9.0/
     
    
  2. The file INSTALL contains more directions. This is what I did.

    1. edited as root the file /etc/ld.so.conf and added this new line at the top /usr/local/lib of the file and saved it.
    2. installed the extra software mentioned in the above file. I did all that using Linux Manjaro installation manager as it is easier.

               >locate mpfr.h 
               /usr/include/mpfr.h 
       
               >locate gmp.h 
               /usr/include/gmp.h 
       
               >locate readline.h 
               /usr/include/readline/readline.h 
       
               >locate gsl_blas.h 
               /usr/include/gsl/gsl_blas.h 
       
               >pacman -Ql lapack 
                  lapack /usr/ 
                  lapack /usr/lib/ 
                  lapack /usr/lib/cmake/ 
                  lapack /usr/lib/cmake/lapack-3.11.0/ 
                  lapack /usr/lib/cmake/lapack-3.11.0/lapack-config-version.cmake 
                  lapack /usr/lib/cmake/lapack-3.11.0/lapack-config.cmake 
                  lapack /usr/lib/cmake/lapack-3.11.0/lapack-targets-release.cmake 
                  lapack /usr/lib/cmake/lapack-3.11.0/lapack-targets.cmake 
                  lapack /usr/lib/liblapack.so 
                  lapack /usr/lib/liblapack.so.3 
                  lapack /usr/lib/liblapack.so.3.11.0 
                  lapack /usr/lib/libtmglib.so 
                  lapack /usr/lib/libtmglib.so.3 
                  lapack /usr/lib/libtmglib.so.3.11.0 
                  lapack /usr/lib/pkgconfig/ 
                  lapack /usr/lib/pkgconfig/lapack.pc 
       
               >pacman -Ql pari 
                  etc.. 
             
       
      
    3. run ldconfig command as root after installing all the extra packages mentioned in the INSTALL file.

2.3 run configure

Now that all needed extra software is installed, it is time to build and install giac itself. First configure the makefile as follows

>./configure 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking for gcc... gcc 
checking whether the C compiler works... yes 
checking for C compiler default output file name... a.out 
checking for suffix of executables... 
checking whether we are cross compiling... no 
checking for suffix of object files... o 
checking whether we are using the GNU C compiler... yes 
checking whether gcc accepts -g... yes 
checking for gcc option to accept ISO C89... none needed 
checking for style of include used by make... GNU 
checking dependency style of gcc... gcc3 
checking whether ln -s works... yes 
checking for g++... g++ 
checking whether we are using the GNU C++ compiler... yes 
checking whether g++ accepts -g... yes 
checking dependency style of g++... gcc3 
checking how to run the C++ preprocessor... g++ -E 
checking build system type... x86_64-pc-linux-gnu 
checking host system type... x86_64-pc-linux-gnu 
checking for a sed that does not truncate output... /usr/bin/sed 
checking for grep that handles long lines and -e... /usr/bin/grep 
checking for egrep... /usr/bin/grep -E 
checking for fgrep... /usr/bin/grep -F 
checking for ld used by gcc... /usr/bin/ld 
checking if the linker (/usr/bin/ld) is GNU ld... yes 
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B 
checking the name lister (/usr/bin/nm -B) interface... BSD nm 
checking the maximum length of command line arguments... 1572864 
checking whether the shell understands some XSI constructs... yes 
checking whether the shell understands "+="... yes 
checking for /usr/bin/ld option to reload object files... -r 
checking how to recognize dependent libraries... pass_all 
checking for ar... ar 
checking for strip... strip 
checking for ranlib... ranlib 
checking command to parse /usr/bin/nm -B output from gcc object... ok 
checking how to run the C preprocessor... gcc -E 
checking for ANSI C header files... yes 
checking for sys/types.h... yes 
checking for sys/stat.h... yes 
checking for stdlib.h... yes 
checking for string.h... yes 
checking for memory.h... yes 
checking for strings.h... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for unistd.h... yes 
checking for dlfcn.h... yes 
checking whether we are using the GNU C++ compiler... (cached) yes 
checking whether g++ accepts -g... (cached) yes 
checking dependency style of g++... (cached) gcc3 
checking how to run the C++ preprocessor... g++ -E 
checking for objdir... .libs 
checking if gcc supports -fno-rtti -fno-exceptions... no 
checking for gcc option to produce PIC... -fPIC -DPIC 
checking if gcc PIC flag -fPIC -DPIC works... yes 
checking if gcc static flag -static works... yes 
checking if gcc supports -c -o file.o... yes 
checking if gcc supports -c -o file.o... (cached) yes 
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes 
checking whether -lc should be explicitly linked in... no 
checking dynamic linker characteristics... GNU/Linux ld.so 
checking how to hardcode library paths into programs... immediate 
checking whether stripping libraries is possible... yes 
checking if libtool supports shared libraries... yes 
checking whether to build shared libraries... yes 
checking whether to build static libraries... yes 
checking for ld used by g++... /usr/bin/ld -m elf_x86_64 
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes 
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes 
checking for g++ option to produce PIC... -fPIC -DPIC 
checking if g++ PIC flag -fPIC -DPIC works... yes 
checking if g++ static flag -static works... yes 
checking if g++ supports -c -o file.o... yes 
checking if g++ supports -c -o file.o... (cached) yes 
checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes 
checking dynamic linker characteristics... GNU/Linux ld.so 
checking how to hardcode library paths into programs... immediate 
checking for bison... bison -y 
checking for flex... flex 
checking lex output file root... lex.yy 
checking lex library... none needed 
checking whether yytext is a pointer... no 
checking whether byte ordering is bigendian... no 
checking for standard C++ header files... yes 
checking gmp.h usability... yes 
checking gmp.h presence... yes 
checking for gmp.h... yes 
checking for main in -lgmp... yes 
checking mpfr.h usability... yes 
checking mpfr.h presence... yes 
checking for mpfr.h... yes 
checking for main in -lmpfr... yes 
checking for mpfr_set_str_raw... no 
checking mpfi.h usability... yes 
checking mpfi.h presence... yes 
checking for mpfi.h... yes 
checking for main in -lmpfi... yes 
checking gmpxx.h usability... yes 
checking gmpxx.h presence... yes 
checking for gmpxx.h... yes 
checking for main in -lgmpxx... yes 
checking ecm.h usability... yes 
checking ecm.h presence... yes 
checking for ecm.h... yes 
checking for main in -lecm... yes 
checking bern_rat.h usability... no 
checking bern_rat.h presence... no 
checking for bern_rat.h... no 
checking NTL/ZZ.h usability... yes 
checking NTL/ZZ.h presence... yes 
checking for NTL/ZZ.h... yes 
checking for main in -lntl... yes 
checking pari/pari.h usability... yes 
checking pari/pari.h presence... yes 
checking for pari/pari.h... yes 
checking for main in -lpari... yes 
checking for main in -lm... yes 
checking png.h usability... yes 
checking png.h presence... yes 
checking for png.h... yes 
checking for library containing png_sig_cmp... -lpng16 
checking for dlopen in -ldl... yes 
checking size of void *... 8 
checking size of int... 4 
checking size of long... 8 
checking size of long long... 8 
checking gsl/gsl_blas.h usability... yes 
checking gsl/gsl_blas.h presence... yes 
checking for gsl/gsl_blas.h... yes 
checking gsl/gsl_eigen.h usability... yes 
checking gsl/gsl_eigen.h presence... yes 
checking for gsl/gsl_eigen.h... yes 
checking for main in -lgslcblas... yes 
checking for gsl_sf_gamma in -lgsl... yes 
checking for main in -lgfortran... yes 
checking for main in -lblas... yes 
checking for main in -llapack... yes 
checking CoCoA/io.H usability... no 
checking CoCoA/io.H presence... no 
checking for CoCoA/io.H... no 
checking ao/ao.h usability... yes 
checking ao/ao.h presence... yes 
checking for ao/ao.h... yes 
checking for main in -lao... yes 
checking glpk.h usability... yes 
checking glpk.h presence... yes 
checking for glpk.h... yes 
checking for main in -lglpk... yes 
checking samplerate.h usability... yes 
checking samplerate.h presence... yes 
checking for samplerate.h... yes 
checking for main in -lsamplerate... yes 
checking curl/curl.h usability... yes 
checking curl/curl.h presence... yes 
checking for curl/curl.h... yes 
checking for main in -lcurl... yes 
checking for tgetent... no 
checking for tgetent in -lncurses... yes 
checking readline/readline.h usability... yes 
checking readline/readline.h presence... yes 
checking for readline/readline.h... yes 
checking readline/history.h usability... yes 
checking readline/history.h presence... yes 
checking for readline/history.h... yes 
checking for version of libreadline... yes 
checking for readline in -lreadline... yes 
checking for X... libraries , headers 
checking for gethostbyname... yes 
checking for connect... yes 
checking for remove... yes 
checking for shmat... yes 
checking for IceConnectionNumber in -lICE... yes 
checking for main in -lGL... yes 
checking FL/Fl.H usability... yes 
checking FL/Fl.H presence... yes 
checking for FL/Fl.H... yes 
checking for main in -lX11... yes 
checking for main in -lXcursor... yes 
checking for main in -lXfixes... yes 
checking for main in -lXinerama... yes 
checking for main in -lfontconfig... yes 
checking for main in -lXft... yes 
checking for main in -lXext... yes 
checking for main in -lXrender... yes 
checking for main in -lfltk_gl... yes 
checking for main in -lfltk... yes 
checking for main in -lz... yes 
checking for png.h... (cached) yes 
checking for main in -lpng... yes 
checking for main in -ljpeg... yes 
checking for main in -lfltk_images... yes 
checking dfu_lib.h usability... no 
checking dfu_lib.h presence... no 
checking for dfu_lib.h... no 
checking for main in -lusb-1.0... yes 
checking for dfu_main in -ldfu... no 
checking for main in -lcliquer... no 
checking for main in -lnauty... yes 
checking nauty/naututil.h usability... yes 
checking nauty/naututil.h presence... yes 
checking for nauty/naututil.h... yes 
checking vcl1/vectorclass.h usability... no 
checking vcl1/vectorclass.h presence... no 
checking for vcl1/vectorclass.h... no 
checking for main in -lpthread... yes 
checking pthread.h usability... yes 
checking pthread.h presence... yes 
checking for pthread.h... yes 
checking malloc.h usability... yes 
checking malloc.h presence... yes 
checking for malloc.h... yes 
checking for sysconf... yes 
checking for clock_gettime in -lrt... yes 
checking unordered_map usability... yes 
checking unordered_map presence... yes 
checking for unordered_map... yes 
checking ext/hash_map usability... yes 
checking ext/hash_map presence... yes 
checking for ext/hash_map... yes 
checking tr1/unordered_map usability... yes 
checking tr1/unordered_map presence... yes 
checking for tr1/unordered_map... yes 
checking hash_map usability... yes 
checking hash_map presence... yes 
checking for hash_map... yes 
checking pwd.h usability... yes 
checking pwd.h presence... yes 
checking for pwd.h... yes 
checking locale.h usability... yes 
checking locale.h presence... yes 
checking for locale.h... yes 
checking for unistd.h... (cached) yes 
checking sys/time.h usability... yes 
checking sys/time.h presence... yes 
checking for sys/time.h... yes 
checking sys/times.h usability... yes 
checking sys/times.h presence... yes 
checking for sys/times.h... yes 
checking sys/resource.h usability... yes 
checking sys/resource.h presence... yes 
checking for sys/resource.h... yes 
checking for sys/types.h... (cached) yes 
checking signal.h usability... yes 
checking signal.h presence... yes 
checking for signal.h... yes 
checking for getpid... yes 
checking for getcwd... yes 
checking for getpwuid... yes 
checking for system... yes 
checking whether NLS is requested... yes 
checking for msgfmt... /usr/bin/msgfmt 
checking for gmsgfmt... /usr/bin/msgfmt 
checking for xgettext... /usr/bin/xgettext 
checking for msgmerge... /usr/bin/msgmerge 
checking whether we are using the GNU C Library 2 or newer... yes 
checking for ranlib... (cached) ranlib 
checking for strerror in -lcposix... no 
checking for an ANSI C-conforming const... yes 
checking for signed... yes 
checking for inline... inline 
checking for off_t... yes 
checking for size_t... yes 
checking for long long... yes 
checking for long double... yes 
checking for wchar_t... yes 
checking for wint_t... yes 
checking for inttypes.h... yes 
checking for stdint.h... yes 
checking for intmax_t... yes 
checking whether printf() supports POSIX/XSI format strings... yes 
checking for working alloca.h... yes 
checking for alloca... yes 
checking for stdlib.h... (cached) yes 
checking for unistd.h... (cached) yes 
checking for sys/param.h... yes 
checking for getpagesize... yes 
checking for working mmap... yes 
checking whether we are using the GNU C Library 2.1 or newer... yes 
checking whether integer division by zero raises SIGFPE... yes 
checking for unsigned long long... yes 
checking for inttypes.h... yes 
checking whether the inttypes.h PRIxNN macros are broken... no 
checking for stdint.h... (cached) yes 
checking for SIZE_MAX... yes 
checking for stdint.h... (cached) yes 
checking for CFPreferencesCopyAppValue... no 
checking for CFLocaleCopyCurrent... no 
checking for ld used by GCC... /usr/bin/ld -m elf_x86_64 
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes 
checking for shared library run path origin... done 
checking for ptrdiff_t... yes 
checking argz.h usability... yes 
checking argz.h presence... yes 
checking for argz.h... yes 
checking limits.h usability... yes 
checking limits.h presence... yes 
checking for limits.h... yes 
checking for locale.h... (cached) yes 
checking nl_types.h usability... yes 
checking nl_types.h presence... yes 
checking for nl_types.h... yes 
checking for malloc.h... (cached) yes 
checking stddef.h usability... yes 
checking stddef.h presence... yes 
checking for stddef.h... yes 
checking for stdlib.h... (cached) yes 
checking for string.h... (cached) yes 
checking for unistd.h... (cached) yes 
checking for sys/param.h... (cached) yes 
checking for asprintf... yes 
checking for fwprintf... yes 
checking for getcwd... (cached) yes 
checking for getegid... yes 
checking for geteuid... yes 
checking for getgid... yes 
checking for getuid... yes 
checking for mempcpy... yes 
checking for munmap... yes 
checking for putenv... yes 
checking for setenv... yes 
checking for setlocale... yes 
checking for snprintf... yes 
checking for stpcpy... yes 
checking for strcasecmp... yes 
checking for strdup... yes 
checking for strtoul... yes 
checking for tsearch... yes 
checking for wcslen... yes 
checking for __argz_count... yes 
checking for __argz_stringify... yes 
checking for __argz_next... yes 
checking for __fsetlocking... yes 
checking whether _snprintf is declared... no 
checking whether _snwprintf is declared... no 
checking whether feof_unlocked is declared... yes 
checking whether fgets_unlocked is declared... yes 
checking whether getc_unlocked is declared... yes 
checking for iconv... yes 
checking for iconv declaration... 
         extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); 
checking for nl_langinfo and CODESET... yes 
checking for LC_MESSAGES... yes 
checking for bison... bison 
checking version of bison... 3.8.2, ok 
checking for CFPreferencesCopyAppValue... (cached) no 
checking for CFLocaleCopyCurrent... (cached) no 
checking whether NLS is requested... yes 
checking whether included gettext is requested... no 
checking for GNU gettext in libc... yes 
checking whether to use NLS... yes 
checking where the gettext function comes from... libc 
checking for egrep... (cached) /usr/bin/grep -E 
checking for latex... /usr/local/texlive/2022/bin/x86_64-linux/latex 
checking for makeindex... /usr/local/texlive/2022/bin/x86_64-linux/makeindex 
checking for pdflatex... /usr/local/texlive/2022/bin/x86_64-linux/pdflatex 
checking for dvips... /usr/local/texlive/2022/bin/x86_64-linux/dvips 
checking sstream usability... yes 
checking sstream presence... yes 
checking for sstream... yes 
configure: creating ./config.status 
config.status: creating Makefile 
config.status: creating src/Makefile 
config.status: creating check/Makefile 
config.status: creating doc/Makefile 
config.status: creating doc/en/Makefile 
config.status: creating doc/es/Makefile 
config.status: creating doc/fr/Makefile 
config.status: creating doc/el/Makefile 
config.status: creating doc/el/tutoriel/Makefile 
config.status: creating doc/el/casinter/Makefile 
config.status: creating doc/local/Makefile 
config.status: creating doc/pt/Makefile 
config.status: creating doc/zh/Makefile 
config.status: creating doc/de/Makefile 
config.status: creating intl/Makefile 
config.status: WARNING:  'intl/Makefile.in' seems to ignore the --datarootdir setting 
config.status: creating po/Makefile.in 
config.status: WARNING:  'po/Makefile.in.in' seems to ignore the --datarootdir setting 
config.status: creating examples/Makefile 
config.status: creating debianold/Makefile 
config.status: creating debian/Makefile 
config.status: creating micropython-1.12/Makefile 
config.status: creating micropython-1.12/docs/Makefile 
config.status: creating micropython-1.12/drivers/Makefile 
config.status: creating micropython-1.12/examples/Makefile 
config.status: creating micropython-1.12/extmod/Makefile 
config.status: creating micropython-1.12/lib/Makefile 
config.status: creating micropython-1.12/logo/Makefile 
config.status: creating micropython-1.12/ports/Makefile 
config.status: creating micropython-1.12/py/Makefile 
config.status: creating micropython-1.12/tests/Makefile 
config.status: creating micropython-1.12/tools/Makefile 
config.status: creating micropython-1.12/unix/Makefile 
config.status: creating micropython-1.12/ulab/Makefile 
config.status: creating micropython-1.12/ulab/numpy/Makefile 
config.status: creating micropython-1.12/ulab/numpy/fft/Makefile 
config.status: creating micropython-1.12/ulab/numpy/ndarray/Makefile 
config.status: creating micropython-1.12/ulab/numpy/linalg/Makefile 
config.status: creating micropython-1.12/ulab/scipy/Makefile 
config.status: creating micropython-1.12/ulab/scipy/linalg/Makefile 
config.status: creating micropython-1.12/ulab/scipy/optimize/Makefile 
config.status: creating micropython-1.12/ulab/scipy/signal/Makefile 
config.status: creating micropython-1.12/ulab/scipy/special/Makefile 
config.status: creating micropython-1.12/ulab/user/Makefile 
config.status: creating micropython-1.12/ulab/utils/Makefile 
config.status: creating config.h 
config.status: executing depfiles commands 
config.status: executing libtool commands 
config.status: executing default-1 commands 
config.status: creating po/POTFILES 
config.status: creating po/Makefile 
Adding link . to giac in src 
>
 

2.4 run make

>make 
 
make  all-recursive 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0' 
Making all in micropython-1.12 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
Making all in xcas 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12/xcas' 
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity. 
../py/mkrules.mk:176: warning: overriding recipe for target 'libmicropython.a' 
../py/mkrules.mk:145: warning: ignoring old recipe for target 'libmicropython.a' 
mkdir -p build/genhdr 
GEN build/genhdr/mpversion.h 
GEN build/genhdr/moduledefs.h 
GEN build/genhdr/qstr.i.last 
GEN build/genhdr/qstr.split 
GEN build/genhdr/qstrdefs.collected.h 
QSTR updated 
GEN build/genhdr/qstrdefs.generated.h 
mkdir -p build/extmod/ 
mkdir -p build/lib/embed/ 
mkdir -p build/lib/utils/ 
mkdir -p build/py/ 
mkdir -p build/ulab/ 
mkdir -p build/ulab/numpy/ 
mkdir -p build/ulab/numpy/fft/ 
mkdir -p build/ulab/numpy/linalg/ 
mkdir -p build/ulab/numpy/ndarray/ 
mkdir -p build/ulab/scipy/ 
mkdir -p build/ulab/scipy/linalg/ 
mkdir -p build/ulab/scipy/optimize/ 
mkdir -p build/ulab/scipy/signal/ 
mkdir -p build/ulab/scipy/special/ 
mkdir -p build/ulab/user/ 
mkdir -p build/ulab/utils/ 
CC ../py/mpstate.c 
CC ../py/nlr.c 
CC ../py/nlrx86.c 
CC ../py/nlrx64.c 
CC ../py/nlrthumb.c 
CC ../py/nlrpowerpc.c 
CC ../py/nlrxtensa.c 
CC ../py/nlrsetjmp.c 
CC ../py/malloc.c 
CC ../py/gc.c 
CC ../py/pystack.c 
CC ../py/qstr.c 
CC ../py/vstr.c 
CC ../py/mpprint.c 
CC ../py/unicode.c 
CC ../py/mpz.c 
CC ../py/reader.c 
CC ../py/lexer.c 
CC ../py/parse.c 
CC ../py/scope.c 
CC ../py/compile.c 
CC ../py/emitcommon.c 
CC ../py/emitbc.c 
CC ../py/asmbase.c 
CC ../py/asmx64.c 
CC ../py/emitnx64.c 
CC ../py/asmx86.c 
CC ../py/emitnx86.c 
CC ../py/asmthumb.c 
CC ../py/emitnthumb.c 
CC ../py/emitinlinethumb.c 
CC ../py/asmarm.c 
CC ../py/emitnarm.c 
CC ../py/asmxtensa.c 
CC ../py/emitnxtensa.c 
CC ../py/emitinlinextensa.c 
CC ../py/emitnxtensawin.c 
CC ../py/formatfloat.c 
CC ../py/parsenumbase.c 
CC ../py/parsenum.c 
CC ../py/emitglue.c 
CC ../py/persistentcode.c 
CC ../py/runtime.c 
CC ../py/runtime_utils.c 
CC ../py/scheduler.c 
CC ../py/nativeglue.c 
CC ../py/ringbuf.c 
CC ../py/stackctrl.c 
CC ../py/argcheck.c 
CC ../py/warning.c 
CC ../py/profile.c 
CC ../py/map.c 
CC ../py/obj.c 
CC ../py/objarray.c 
CC ../py/objattrtuple.c 
CC ../py/objbool.c 
CC ../py/objboundmeth.c 
CC ../py/objcell.c 
CC ../py/objclosure.c 
CC ../py/objcomplex.c 
CC ../py/objdeque.c 
CC ../py/objdict.c 
CC ../py/objenumerate.c 
CC ../py/objexcept.c 
CC ../py/objfilter.c 
CC ../py/objfloat.c 
CC ../py/objfun.c 
.... 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
make[2]: Nothing to be done for 'all'. 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0'
 

2.5 install

Now that make is finished, time to install Giac.

>sudo make install 
[sudo] password for me: 
Making install in micropython-1.12 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
Making install in xcas 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12/xcas' 
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity. 
../py/mkrules.mk:176: warning: overriding recipe for target 'libmicropython.a' 
../py/mkrules.mk:145: warning: ignoring old recipe for target 'libmicropython.a' 
/bin/cp libmicropython.a ../.. 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12/xcas' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
make[3]: Nothing to be done for 'install-exec-am'. 
make[3]: Nothing to be done for 'install-data-am'. 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/micropython-1.12' 
Making install in src 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/src' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/src' 
 /usr/bin/mkdir -p '/usr/local/lib' 
 /bin/sh ../libtool   --mode=install /usr/bin/install -c   libgiac.la '/usr/local/lib' 
libtool: install: /usr/bin/install -c .libs/libgiac.so.0.0.0 /usr/local/lib/libgiac.so.0.0.0 
libtool: install: (cd /usr/local/lib && { ln -s -f libgiac.so.0.0.0 libgiac.so.0 || { rm -f libgiac.so.0 && ln -s libgiac.so.0.0.0 libgiac.so.0; }; }) 
libtool: install: (cd /usr/local/lib && { ln -s -f libgiac.so.0.0.0 libgiac.so || { rm -f libgiac.so && ln -s libgiac.so.0.0.0 libgiac.so; }; }) 
libtool: install: /usr/bin/install -c .libs/libgiac.lai /usr/local/lib/libgiac.la 
libtool: install: /usr/bin/install -c .libs/libgiac.a /usr/local/lib/libgiac.a 
libtool: install: chmod 644 /usr/local/lib/libgiac.a 
libtool: install: ranlib /usr/local/lib/libgiac.a 
libtool: finish: PATH="/usr/local/texlive/2022/bin/x86_64-linux:/mnt/g/public_html/scripts:/usr/local/bin:/usr/bin:/bin:/home/me/TMP/sage-9.7:/home/me/TMP/sage-9.7/local/bin:/home/me/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin:/sbin" ldconfig -n /usr/local/lib 
---------------------------------------------------------------------- 
Libraries have been installed in: 
   /usr/local/lib 
 
If you ever happen to want to link against installed libraries 
in a given directory, LIBDIR, you must either use libtool, and 
specify the full pathname of the library, or use the `-LLIBDIR' 
flag during linking and do at least one of the following: 
   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable 
     during execution 
   - add LIBDIR to the `LD_RUN_PATH' environment variable 
     during linking 
   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag 
   - have your system administrator add LIBDIR to `/etc/ld.so.conf' 
 
See any operating system documentation about shared libraries for 
more information, such as the ld(1) and ld.so(8) manual pages. 
---------------------------------------------------------------------- 
 /usr/bin/mkdir -p '/usr/local/bin' 
  /bin/sh ../libtool   --mode=install /usr/bin/install -c icas xcas aide hevea2mml '/usr/local/bin' 
libtool: install: /usr/bin/install -c .libs/icas /usr/local/bin/icas 
libtool: install: /usr/bin/install -c .libs/xcas /usr/local/bin/xcas 
libtool: install: /usr/bin/install -c .libs/aide /usr/local/bin/aide 
libtool: install: /usr/bin/install -c hevea2mml /usr/local/bin/hevea2mml 
 /usr/bin/mkdir -p '/usr/local/bin' 
 /usr/bin/install -c pgiac '/usr/local/bin' 
make  install-exec-hook 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/src' 
rm -f /usr/local/bin/cas_help 
mv /usr/local/bin/aide /usr/local/bin/cas_help 
ln -sf cas_help /usr/local/bin/en_cas_help 
ln -sf cas_help /usr/local/bin/es_cas_help 
ln -sf cas_help /usr/local/bin/fr_cas_help 
ln -sf icas /usr/local/bin/giac 
ln -sf xcas /usr/local/bin/xcasnew 
mkdir -p /usr/local/include/giac 
cp -f config.h /usr/local/include/giac 
cp -f input_lexer.h /usr/local/include/giac 
cp -f input_parser.h /usr/local/include/giac 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/src' 
 /usr/bin/mkdir -p '/usr/local/include/giac' 
 /usr/bin/install -c -m 644 dispatch.h fraction.h gen.h desolve.h misc.h ti89.h mathml.h identificateur.h unary.h symbolic.h index.h modpoly.h modfactor.h permu.h monomial.h poly.h threaded.h gausspol.h sym2poly.h ezgcd.h derive.h solve.h quater.h subst.h usual.h intg.h intgab.h risch.h lin.h series.h vecteur.h sparse.h vector.h csturm.h moyal.h tex.h global.h ifactor.h alg_ext.h gauss.h '/usr/local/include/giac' 
 /usr/bin/install -c -m 644 isom.h plot.h plot3d.h rpn.h prog.h pari.h cocoa.h giac.h first.h maple.h help.h tinymt32.h tinymt32_license.h static.h static_extern.h static_lexer.h static_lexer_.h lexer_tab_int.h static_help.h giacPCH.h giacintl.h gmp_replacements.h myostream.h lpsolve.h optimization.h signalprocessing.h graphe.h graphtheory.h nautywrapper.h markup.h kdisplay.h k_csdk.h k_defs.h fenv.h libregexp.h libregexp-opcode.h libunicode.h libunicode-table.h libbf.h list.h '/usr/local/include/giac' 
 /usr/bin/install -c -m 644 cutils.h qjsgiac.h quickjs.h js.h quickjs-atom.h quickjs-libc.h quickjs-opcode.h bf2gmp.h '/usr/local/include/giac' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/src' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/src' 
Making install in check 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/check' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/check' 
make[2]: Nothing to be done for 'install-exec-am'. 
make[2]: Nothing to be done for 'install-data-am'. 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/check' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/check' 
Making install in intl 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/intl' 
if { test "giac" = "gettext-runtime" || test "giac" = "gettext-tools"; } \ 
   && test 'no' = yes; then \ 
  /bin/sh ../config/mkinstalldirs /usr/local/lib /usr/local/include; \ 
  /usr/bin/install -c -m 644 libintl.h /usr/local/include/libintl.h; \ 
  /bin/sh ../libtool --mode=install \ 
    /usr/bin/install -c -m 644 libintl.a /usr/local/lib/libintl.a; \ 
  if test "@RELOCATABLE@" = yes; then \ 
    dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < /usr/local/lib/libintl.la | sed -e "s,^',," -e "s,'\$,,"`; \ 
    if test -n "$dependencies"; then \ 
      rm -f /usr/local/lib/libintl.la; \ 
    fi; \ 
  fi; \ 
else \ 
  : ; \ 
fi 
if test "giac" = "gettext-tools" \ 
   && test 'no' = no \ 
   && test yes != no; then \ 
  /bin/sh ../config/mkinstalldirs /usr/local/lib; \ 
  /bin/sh ../libtool --mode=install \ 
    /usr/bin/install -c -m 644 libgnuintl.a /usr/local/lib/libgnuintl.a; \ 
  rm -f /usr/local/lib/preloadable_libintl.so; \ 
  /usr/bin/install -c -m 644 /usr/local/lib/libgnuintl.so /usr/local/lib/preloadable_libintl.so; \ 
  /bin/sh ../libtool --mode=uninstall \ 
    rm -f /usr/local/lib/libgnuintl.a; \ 
else \ 
  : ; \ 
fi 
if test 'no' = yes; then \ 
  test yes != no || /bin/sh ../config/mkinstalldirs /usr/local/lib; \ 
  temp=/usr/local/lib/t-charset.alias; \ 
  dest=/usr/local/lib/charset.alias; \ 
  if test -f /usr/local/lib/charset.alias; then \ 
    orig=/usr/local/lib/charset.alias; \ 
    sed -f ref-add.sed $orig > $temp; \ 
    /usr/bin/install -c -m 644 $temp $dest; \ 
    rm -f $temp; \ 
  else \ 
    if test yes = no; then \ 
      orig=charset.alias; \ 
      sed -f ref-add.sed $orig > $temp; \ 
      /usr/bin/install -c -m 644 $temp $dest; \ 
      rm -f $temp; \ 
    fi; \ 
  fi; \ 
  /bin/sh ../config/mkinstalldirs /usr/local/share/locale; \ 
  test -f /usr/local/share/locale/locale.alias \ 
    && orig=/usr/local/share/locale/locale.alias \ 
    || orig=./locale.alias; \ 
  temp=/usr/local/share/locale/t-locale.alias; \ 
  dest=/usr/local/share/locale/locale.alias; \ 
  sed -f ref-add.sed $orig > $temp; \ 
  /usr/bin/install -c -m 644 $temp $dest; \ 
  rm -f $temp; \ 
else \ 
  : ; \ 
fi 
if test "giac" = "gettext-tools"; then \ 
  /bin/sh ../config/mkinstalldirs /usr/local/share/gettext/intl; \ 
  /usr/bin/install -c -m 644 VERSION /usr/local/share/gettext/intl/VERSION; \ 
  /usr/bin/install -c -m 644 ChangeLog.inst /usr/local/share/gettext/intl/ChangeLog; \ 
  dists="COPYING.LIB-2.0 COPYING.LIB-2.1 Makefile.in config.charset locale.alias ref-add.sin ref-del.sin gmo.h gettextP.h hash-string.h loadinfo.h plural-exp.h eval-plural.h localcharset.h relocatable.h xsize.h printf-args.h printf-args.c printf-parse.h wprintf-parse.h printf-parse.c vasnprintf.h vasnwprintf.h vasnprintf.c os2compat.h libgnuintl.h.in bindtextdom.c dcgettext.c dgettext.c gettext.c finddomain.c loadmsgcat.c localealias.c textdomain.c l10nflist.c explodename.c dcigettext.c dcngettext.c dngettext.c ngettext.c plural.y plural-exp.c localcharset.c relocatable.c langprefs.c localename.c log.c printf.c osdep.c os2compat.c intl-compat.c"; \ 
  for file in $dists; do \ 
    /usr/bin/install -c -m 644 ./$file \ 
                    /usr/local/share/gettext/intl/$file; \ 
  done; \ 
  chmod a+x /usr/local/share/gettext/intl/config.charset; \ 
  dists="plural.c"; \ 
  for file in $dists; do \ 
    if test -f $file; then dir=.; else dir=.; fi; \ 
    /usr/bin/install -c -m 644 $dir/$file \ 
                    /usr/local/share/gettext/intl/$file; \ 
  done; \ 
  dists="xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h"; \ 
  for file in $dists; do \ 
    rm -f /usr/local/share/gettext/intl/$file; \ 
  done; \ 
else \ 
  : ; \ 
fi 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/intl' 
Making install in po 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/po' 
/bin/sh ../mkinstalldirs /usr/local/share 
mkdir /usr/local/share/locale 
mkdir /usr/local/share/locale/es 
mkdir /usr/local/share/locale/es/LC_MESSAGES 
installing es.gmo as /usr/local/share/locale/es/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/fr 
mkdir /usr/local/share/locale/fr/LC_MESSAGES 
installing fr.gmo as /usr/local/share/locale/fr/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/el 
mkdir /usr/local/share/locale/el/LC_MESSAGES 
installing el.gmo as /usr/local/share/locale/el/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/pt 
mkdir /usr/local/share/locale/pt/LC_MESSAGES 
installing pt.gmo as /usr/local/share/locale/pt/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/it 
mkdir /usr/local/share/locale/it/LC_MESSAGES 
installing it.gmo as /usr/local/share/locale/it/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/en 
mkdir /usr/local/share/locale/en/LC_MESSAGES 
installing en.gmo as /usr/local/share/locale/en/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/zh 
mkdir /usr/local/share/locale/zh/LC_MESSAGES 
installing zh.gmo as /usr/local/share/locale/zh/LC_MESSAGES/giac.mo 
mkdir /usr/local/share/locale/de 
mkdir /usr/local/share/locale/de/LC_MESSAGES 
installing de.gmo as /usr/local/share/locale/de/LC_MESSAGES/giac.mo 
if test "giac" = "gettext-tools"; then \ 
  /bin/sh ../mkinstalldirs /usr/local/share/gettext/po; \ 
  for file in Makefile.in.in remove-potcdate.sin quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot   Makevars.template; do \ 
    /usr/bin/install -c -m 644 ./$file \ 
                    /usr/local/share/gettext/po/$file; \ 
  done; \ 
  for file in Makevars; do \ 
    rm -f /usr/local/share/gettext/po/$file; \ 
  done; \ 
else \ 
  : ; \ 
fi 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/po' 
Making install in debianold 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/debianold' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/debianold' 
make[2]: Nothing to be done for 'install-exec-am'. 
make[2]: Nothing to be done for 'install-data-am'. 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/debianold' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/debianold' 
Making install in debian 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/debian' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/debian' 
make[2]: Nothing to be done for 'install-exec-am'. 
make[2]: Nothing to be done for 'install-data-am'. 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/debian' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/debian' 
Making install in doc 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
Making install in en 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/en' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/en' 
make[3]: Nothing to be done for 'install-exec-am'. 
/bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/en 
/usr/bin/install -c -m 644 troussesurvie_en.pdf /usr/local/share/giac/doc/en 
for dd in casinter cascmd_en tutoriel; do \ 
        /bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/en/$dd ; \ 
done 
for dd in casinter cascmd_en tutoriel; do \ 
        /usr/bin/install -c -m 644 ./$dd/* /usr/local/share/giac/doc/en/$dd ; \ 
done 
/usr/bin/install -c -m 644 html_mall html_mtt html_vall xcasmenu xcasex keywords  /usr/local/share/giac/doc/en 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/en' 
 /usr/bin/install -c -m 644 html_mall html_mtt html_vall xcasmenu xcasex keywords '/usr/local/share/doc/giac/en' 
 /usr/bin/mkdir -p '/usr/local/share/info' 
 /usr/bin/install -c -m 644 ./giac_us.info '/usr/local/share/info' 
 install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/giac_us.info' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/en' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/en' 
Making install in es 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/es' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/es' 
make[3]: Nothing to be done for 'install-exec-am'. 
/bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/es 
/usr/bin/install -c -m 644 xcasmenu xcasex keywords  /usr/local/share/giac/doc/es 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/es' 
 /usr/bin/install -c -m 644 xcasmenu xcasex keywords '/usr/local/share/doc/giac/es' 
 /usr/bin/mkdir -p '/usr/local/share/info' 
 /usr/bin/install -c -m 644 ./giac_es.info '/usr/local/share/info' 
 install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/giac_es.info' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/es' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/es' 
Making install in fr 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/fr' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/fr' 
make  install-exec-hook 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/fr' 
mkdir -p /usr/local/share/giac/doc/fr/ 
/bin/cp -f aide_cas /usr/local/share/giac/doc/fr 
ln -sf ../giac.js /usr/local/share/giac/doc/fr/giac.js 
ln -sf ../giacwasm.js /usr/local/share/giac/doc/fr/ 
ln -sf ../giacwasm.wasm /usr/local/share/giac/doc/fr/ 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/fr' 
/bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/fr 
/usr/bin/install -c -m 644 tutoriel.pdf algo.pdf troussesurvie_fr.pdf  /usr/local/share/giac/doc/fr 
/usr/bin/install -c -m 644 algo.html algo*png tutoriel.html tutoriel*png /usr/local/share/giac/doc/fr 
for dd in casrouge castor cascmd_fr casgeo cassim casinter casexo cascas; do \ 
        /bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/fr/$dd ; \ 
done 
for dd in casrouge castor cascmd_fr casgeo cassim casinter casexo cascas; do \ 
        /usr/bin/install -c -m 644 ./$dd/* /usr/local/share/giac/doc/fr/$dd ; \ 
done 
/usr/bin/install -c -m 644 html_mall html_mtt html_vall xcasmenu xcasex keywords /usr/local/share/giac/doc/fr 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/fr' 
 /usr/bin/install -c -m 644 html_mall html_mtt html_vall xcasmenu xcasex keywords '/usr/local/share/doc/giac/fr' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/fr' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/fr' 
Making install in el 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el' 
Making install in tutoriel 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/tutoriel' 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/tutoriel' 
make  install-exec-hook 
make[5]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/tutoriel' 
../../../mkinstalldirs /usr/local/share/giac/doc/el/ 
mkdir /usr/local/share/giac/doc/el 
../../../mkinstalldirs /usr/local/share/giac/doc/el/tutoriel 
mkdir /usr/local/share/giac/doc/el/tutoriel 
cp -f * /usr/local/share/giac/doc/el/tutoriel 
make[5]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/tutoriel' 
make[4]: Nothing to be done for 'install-data-am'. 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/tutoriel' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/tutoriel' 
Making install in casinter 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/casinter' 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/casinter' 
make  install-exec-hook 
make[5]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/casinter' 
../../../mkinstalldirs /usr/local/share/giac/doc/el/ 
../../../mkinstalldirs /usr/local/share/giac/doc/el/casinter 
mkdir /usr/local/share/giac/doc/el/casinter 
cp -f * /usr/local/share/giac/doc/el/casinter 
make[5]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/casinter' 
make[4]: Nothing to be done for 'install-data-am'. 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/casinter' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el/casinter' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el' 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el' 
make[4]: Nothing to be done for 'install-exec-am'. 
/bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/el 
for dd in cascmd_el; do \ 
        /bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/el/$dd ; \ 
done 
for dd in cascmd_el; do \ 
        /usr/bin/install -c -m 644 ./$dd/* /usr/local/share/giac/doc/el/$dd ; \ 
done 
/usr/bin/install -c -m 644 html_mall html_mtt html_vall xcasmenu xcasex keywords  /usr/local/share/giac/doc/el 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/el' 
 /usr/bin/install -c -m 644 html_mall html_mtt html_vall xcasmenu xcasex keywords '/usr/local/share/doc/giac/el' 
 /usr/bin/mkdir -p '/usr/local/share/info' 
 install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/giac_es.info' 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/el' 
Making install in local 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/local' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/local' 
make[3]: Nothing to be done for 'install-exec-am'. 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/local' 
 /usr/bin/install -c -m 644 xcasmenu xcasex keywords html_mall html_mtt html_vall '/usr/local/share/doc/giac/local' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/local' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/local' 
Making install in pt 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/pt' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/pt' 
make  install-exec-hook 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/pt' 
../../mkinstalldirs /usr/local/share/giac/doc/pt 
mkdir /usr/local/share/giac/doc/pt 
/bin/cp -f xcasmenu xcasex keywords  /usr/local/share/giac/doc/pt 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/pt' 
make[3]: Nothing to be done for 'install-data-am'. 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/pt' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/pt' 
Making install in zh 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/zh' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/zh' 
make  install-exec-hook 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/zh' 
../../mkinstalldirs /usr/local/share/giac/doc/zh 
mkdir /usr/local/share/giac/doc/zh 
/bin/cp -f aide_cas xcasmenu xcasex keywords  /usr/local/share/giac/doc/zh 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/zh' 
make[3]: Nothing to be done for 'install-data-am'. 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/zh' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/zh' 
Making install in de 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/de' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/de' 
make  install-exec-hook 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc/de' 
../../mkinstalldirs /usr/local/share/giac/doc/de 
mkdir /usr/local/share/giac/doc/de 
/bin/cp -f aide_cas xcasmenu xcasex keywords  /usr/local/share/giac/doc/de 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/de' 
make[3]: Nothing to be done for 'install-data-am'. 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/de' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc/de' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
make  install-exec-hook 
make[4]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
/bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/dxcas 
/bin/sh /home/me/TMP/GIAC/giac-1.9.0/config/install-sh -d /usr/local/share/giac/doc/pari 
for dd in xcasfr.html xcasen.html *.css *.js giacwasm.wasm logo.png giac.tex giacfr.tex test.tex testfr.tex test.html testfr.html algolycee.html graphtheory-user_manual.pdf *.sty simple.html *tableau* magnets html2canvas.js logo.png w3.css jspdf.umd.min.js khicasnw.html epsilon.dfu apps.tar recovery nws*.html nws.js numworks.js shakeys khi*.bin bootloader.bin; do \ 
  /usr/bin/install -c -m 644 ../doc/$dd /usr/local/share/giac/doc/ ; \ 
done 
/usr/bin/install: omitting directory '../doc/magnets' 
/usr/bin/install -c -m 644 ../doc/dxcas/* /usr/local/share/giac/doc/dxcas 
/usr/bin/install -c -m 644 ../doc/pari/* /usr/local/share/giac/doc/pari 
/usr/bin/install -c -m 644 ../doc/index.html /usr/local/share/giac/doc/ 
/usr/bin/install -c -m 644 ../doc/README /usr/local/share/giac/doc/ 
ln -sf ../aide_cas /usr/local/share/giac/doc/aide_cas 
cp -f 50-numworks-calculator.rules /usr/local/share/giac/doc/ 
make[4]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac' 
 /usr/bin/install -c -m 644 README index.html '/usr/local/share/doc/giac' 
 /usr/bin/mkdir -p '/usr/local/share/giac' 
 /usr/bin/install -c -m 644 aide_cas '/usr/local/share/giac' 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/doc' 
Making install in examples 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
make  install-exec-hook 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
../mkinstalldirs /usr/local/share/giac/ 
../mkinstalldirs /usr/local/share/giac/examples 
mkdir /usr/local/share/giac/examples 
cp -Rf * /usr/local/share/giac/examples 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/geo' 
 /usr/bin/install -c -m 644  geo/geo1 geo/geo2 geo/geo3 geo/geo4 geo/geo5 geo/geo6 geo/geo7 geo/geo8 geo/geo9 geo/napoleon geo/pointmorph geo/minimum.cxx geo/morleypuzzel geo/enveloppe3 geo/geo10 geo/geo11 geo/geo12 geo/geo13 geo/lieu1 geo/lieu2 geo/lieu3 geo/lieu4 geo/lieu5 geo/morleypara geo/morleytri6 geo/puissance.cas geo/pantalon geo/napoleon.cxx geo/demomorley2 geo/bezier geo/puissance2.cas geo/mediatrice.cxx geo/morley18 geo/morphing geo/pantalon2 geo/Ngone.cas geo/morley1.fig geo/morley2.fig geo/morley108 geo/mediane.cxx '/usr/local/share/doc/giac/geo' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/groebner' 
 /usr/bin/install -c -m 644  groebner/alea6 groebner/bayes148 groebner/cyclic3 groebner/cyclic4 groebner/cyclic5 groebner/cyclic6 groebner/cyclic7 groebner/cyclic72 groebner/cyclic7mod groebner/cyclic8 groebner/cyclic82 groebner/cyclic8mod groebner/cyclic9 groebner/cyclic92 groebner/cyclic9mod groebner/eco10r groebner/eco11r groebner/eco12 groebner/eco122 groebner/eco12r groebner/game2 groebner/Heco12 groebner/henrion5r groebner/henrion6r groebner/Hkat10 groebner/Hkat9 groebner/jason210 groebner/k10r groebner/k11r groebner/k9r groebner/kat10 groebner/katsura10 groebner/katsura11 groebner/katsura11mod groebner/katsura12 groebner/katsura12mod groebner/katsura7rur groebner/katsura8 groebner/katsura9 groebner/katsura9rur '/usr/local/share/doc/giac/groebner' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/crypto' 
 /usr/bin/install -c -m 644  Exemples/crypto/rsa.xws Exemples/crypto/codage.xws Exemples/crypto/reed_s.xws Exemples/crypto/cesar.xws Exemples/crypto/codelin.xws '/usr/local/share/doc/giac/Exemples/crypto' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/climat' 
 /usr/bin/install -c -m 644  Exemples/climat/soleil.xws Exemples/climat/edc.xws Exemples/climat/vostok.xws Exemples/climat/global_temp.xws Exemples/climat/banquise.xws Exemples/climat/terre.jpg Exemples/climat/terre.xws Exemples/climat/energie.xws Exemples/climat/glace.xws Exemples/climat/neige.xws Exemples/climat/co2t150.xws Exemples/climat/insol.xws Exemples/climat/co2.xws Exemples/climat/geneve_juillet.xws Exemples/climat/geneve_novembre.xws '/usr/local/share/doc/giac/Exemples/climat' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/arit' 
 /usr/bin/install -c -m 644  arit/numeration arit/rsa.cxx arit/horner arit/estpremier arit/codage.cas arit/nbrediviseur arit/puissancerapide arit/inpg.cas '/usr/local/share/doc/giac/arit' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/geometrie' 
 /usr/bin/install -c -m 644  Exemples/geometrie/caustique.xws Exemples/geometrie/astroide.xws Exemples/geometrie/rouepoly.xws Exemples/geometrie/hexagone.xws Exemples/geometrie/capes.xws Exemples/geometrie/morley_puzzle.xws Exemples/geometrie/morley_demo.xws Exemples/geometrie/napoleon.xws Exemples/geometrie/simson.xws Exemples/geometrie/atelier.xws Exemples/geometrie/lieu_s05.xws Exemples/geometrie/animpav.xws Exemples/geometrie/intercourbe.xws '/usr/local/share/doc/giac/Exemples/geometrie' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/arit' 
 /usr/bin/install -c -m 644  Exemples/arit/estprem.xws Exemples/arit/bezout.xws Exemples/arit/powmod.xws Exemples/arit/diviseur.xws Exemples/arit/potence.xws Exemples/arit/crible.xws Exemples/arit/premier.xws Exemples/arit/multpoly.xws Exemples/arit/multfft.xws Exemples/arit/makegf.xws Exemples/arit/prime.xws Exemples/arit/pollard.xws '/usr/local/share/doc/giac/Exemples/arit' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/polyfact' 
 /usr/bin/install -c -m 644  polyfact/zimmer1 polyfact/zimmer2 polyfact/zimmer3 polyfact/zimmer4 polyfact/zimmer5 polyfact/zimmer6 polyfact/zimmer7 '/usr/local/share/doc/giac/polyfact' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/opengl' 
 /usr/bin/install -c -m 644  Exemples/opengl/surface.xws Exemples/opengl/sphere.xws '/usr/local/share/doc/giac/Exemples/opengl' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/lewisw' 
 /usr/bin/install -c -m 644  lewisw/lw4 lewisw/lwA lewisw/lwB lewisw/lwC lewisw/lwD lewisw/lwE lewisw/lwF lewisw/lwG lewisw/lwM lewisw/lwN lewisw/lwO lewisw/lwX lewisw/lwHL lewisw/lwM2 lewisw/lwN1 lewisw/lwPQ lewisw/fermat_gcd_mod_1var lewisw/fermat_gcd_mod_4var lewisw/fermat_gcd_1var lewisw/fermat_gcd_4var '/usr/local/share/doc/giac/lewisw' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/analyse' 
 /usr/bin/install -c -m 644  Exemples/analyse/newton.xws Exemples/analyse/toile.xws Exemples/analyse/series_alt.xws Exemples/analyse/ode.xws Exemples/analyse/euler_ode.xws Exemples/analyse/pui.xws Exemples/analyse/gradconj.xws Exemples/analyse/grad_const.xws Exemples/analyse/mult_lagr.xws Exemples/analyse/lagrange_err.xws Exemples/analyse/signal.xws '/usr/local/share/doc/giac/Exemples/analyse' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/groebner' 
 /usr/bin/install -c -m 644  groebner/mayr42 groebner/noon7r groebner/noon9 groebner/Reco12 groebner/session.tex groebner/yang1 '/usr/local/share/doc/giac/groebner' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/prog' 
 /usr/bin/install -c -m 644  Exemples/prog/gauss_jordan.xws Exemples/prog/conformal.xws Exemples/prog/arbre.xws Exemples/prog/exemple.xws '/usr/local/share/doc/giac/Exemples/prog' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/poly' 
 /usr/bin/install -c -m 644  Exemples/poly/pgcd.xws Exemples/poly/racine.xws Exemples/poly/horner.xws Exemples/poly/reed_sol.xws Exemples/poly/yun.xws Exemples/poly/berle.xws Exemples/poly/cardan.xws Exemples/poly/hensel.xws Exemples/poly/afactor.xws Exemples/poly/aspolyof.xws '/usr/local/share/doc/giac/Exemples/poly' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/demo' 
 /usr/bin/install -c -m 644  Exemples/demo/calcform.xws Exemples/demo/dft.xws Exemples/demo/graphe_proba.xws Exemples/demo/image.xws Exemples/demo/terre.jpg Exemples/demo/essai.png Exemples/demo/napoleon.xws Exemples/demo/polylogo.xws Exemples/demo/apmep.xws Exemples/demo/arit.xws Exemples/demo/milieu.xws Exemples/demo/milieux.xws Exemples/demo/oct06.xws Exemples/demo/anniversaire.xws Exemples/demo/dijkstra.xws Exemples/demo/Mandelbrot.xws Exemples/demo/giac_Mandelbrot.cpp '/usr/local/share/doc/giac/Exemples/demo' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/capes2006' 
 /usr/bin/install -c -m 644  Exemples/capes2006/2107.xws Exemples/capes2006/0307.xws Exemples/capes2006/2906.xws Exemples/capes2006/1707.xws Exemples/capes2006/3006.xws Exemples/capes2006/0707.xws Exemples/capes2006/0107.xws Exemples/capes2006/0807.xws Exemples/capes2006/1407.xws Exemples/capes2006/2007.xws Exemples/capes2006/0207.xws '/usr/local/share/doc/giac/Exemples/capes2006' 
 /usr/bin/install -c -m 644  Makefile.am '/usr/local/share/doc/giac/.' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/codage' 
 /usr/bin/install -c -m 644  codage/rsa codage/group2lettres codage/julescesar codage/chiffrementaffine '/usr/local/share/doc/giac/codage' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/geo3d' 
 /usr/bin/install -c -m 644  Exemples/geo3d/cone.xws Exemples/geo3d/circon3d.xws Exemples/geo3d/animcube.xws '/usr/local/share/doc/giac/Exemples/geo3d' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/logo' 
 /usr/bin/install -c -m 644  Exemples/logo/fleur.xws Exemples/logo/sapin.xws Exemples/logo/tulipe.xws Exemples/logo/neige.xws Exemples/logo/poule.xws Exemples/logo/jeu.xws '/usr/local/share/doc/giac/Exemples/logo' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/demo' 
 /usr/bin/install -c -m 644  demo/pgcd.cpp demo/random.tab demo/algos_integrale.cxx demo/bezout.cxx demo/napoleon.cxx demo/e05.tex demo/mediane.cxx demo/bissectrice.cxx demo/pgcd.cc demo/simpson.cas demo/inpg.cas demo/orthocentre.cxx '/usr/local/share/doc/giac/demo' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/tortue' 
 /usr/bin/install -c -m 644  tortue/koch.cxx tortue/arbre.cxx tortue/sapin.cxx tortue/hilbert.cxx tortue/gosper.cxx tortue/dragon.cxx tortue/peano.cxx '/usr/local/share/doc/giac/tortue' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/morley' 
 /usr/bin/install -c -m 644  morley/equimore morley/morleypara morley/trisectfig morley/figure1 morley/figure2 morley/demomorley1 morley/fiqure1 morley/calcul18 morley/morley18 morley/morley108 morley/morleynum morley/morley morley/puzzel morley/dessinlem morley/demonfig2 '/usr/local/share/doc/giac/morley' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/proba' 
 /usr/bin/install -c -m 644  Exemples/proba/moivre_laplace.xws Exemples/proba/montecarlo.xws Exemples/proba/moivre2.xws Exemples/proba/fluctuations.xws Exemples/proba/fluctuation2.xws Exemples/proba/confiance.xws Exemples/proba/gaussienne.xws Exemples/proba/vectgauss.xws Exemples/proba/ehrenfest.xws Exemples/proba/kolmogorov.xws Exemples/proba/poisson.xws Exemples/proba/galton.xws Exemples/proba/rejet.xws Exemples/proba/attente.xws '/usr/local/share/doc/giac/Exemples/proba' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/recur' 
 /usr/bin/install -c -m 644  recur/sphinx.cxx recur/plantes.cxx recur/sphynx.cxx recur/trisierpinski.cas recur/polygone.cxx recur/triangle.cxx recur/carre.cxx recur/flocon.cxx recur/session.cxx recur/peanoarc.cas recur/autres.cxx recur/permutation.cxx recur/dragon.cxx recur/peano.cxx '/usr/local/share/doc/giac/recur' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/linalg' 
 /usr/bin/install -c -m 644  linalg/gaussjordan_noyau.cas linalg/gaussjordan_noyau1.cas '/usr/local/share/doc/giac/linalg' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/simulation' 
 /usr/bin/install -c -m 644  simulation/pains simulation/deplacement '/usr/local/share/doc/giac/simulation' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/Exemples/spects' 
 /usr/bin/install -c -m 644  Exemples/spects/pagerank.xws Exemples/spects/spec_proie.xws Exemples/spects/tpi.xws '/usr/local/share/doc/giac/Exemples/spects' 
 /usr/bin/mkdir -p '/usr/local/share/doc/giac/geo' 
 /usr/bin/install -c -m 644  geo/morleylem geo/orbite.cas geo/envelopl geo/envelopp geo/envelopt geo/carres.cxx geo/terre.cas geo/demomorley.cxx geo/bissectrice.cxx geo/simpson.cxx geo/conj_harmonic1.cas geo/conj_harmonic2.cas geo/conj_harmonic3.cas geo/envelop3t geo/enveloppe geo/morleydess18 geo/equimorley geo/orthocentre.cxx geo/feuerbach.cxx '/usr/local/share/doc/giac/geo' 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0/examples' 
make[1]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0' 
make[2]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0' 
make  install-exec-hook 
make[3]: Entering directory '/home/me/TMP/GIAC/giac-1.9.0' 
cp config.h /usr/local/include/giac 
./mkinstalldirs /usr/local/share/ 
./mkinstalldirs /usr/local/share/pixmaps 
cp xcas.xpm /usr/local/share/pixmaps/xcas.xpm 
./mkinstalldirs /usr/local/share/applications 
cp xcas.desktop /usr/local/share/applications/xcas.desktop 
./mkinstalldirs /usr/local/share/metainfo 
cp xcas.metainfo.xml /usr/local/share/metainfo/ 
./mkinstalldirs /usr/local/share/application-registry 
mkdir /usr/local/share/application-registry 
cp xcas.applications /usr/local/share/application-registry/xcas.applications 
./mkinstalldirs /usr/local/share/icons/ 
mkdir /usr/local/share/icons 
./mkinstalldirs /usr/local/share/icons/hicolor 
mkdir /usr/local/share/icons/hicolor 
for SIZE in 256 128 64 32 16; do ./mkinstalldirs /usr/local/share/icons/hicolor/${SIZE}x${SIZE} && ./mkinstalldirs /usr/local/share/icons/hicolor/${SIZE}x${SIZE}/apps && cp icons/xcas_${SIZE}.png /usr/local/share/icons/hicolor/${SIZE}x${SIZE}/apps/xcas.png; done 
mkdir /usr/local/share/icons/hicolor/256x256 
mkdir /usr/local/share/icons/hicolor/256x256/apps 
mkdir /usr/local/share/icons/hicolor/128x128 
mkdir /usr/local/share/icons/hicolor/128x128/apps 
mkdir /usr/local/share/icons/hicolor/64x64 
mkdir /usr/local/share/icons/hicolor/64x64/apps 
mkdir /usr/local/share/icons/hicolor/32x32 
mkdir /usr/local/share/icons/hicolor/32x32/apps 
mkdir /usr/local/share/icons/hicolor/16x16 
mkdir /usr/local/share/icons/hicolor/16x16/apps 
for SIZE in 256 128 64 32 16; do ./mkinstalldirs /usr/local/share/icons/hicolor/${SIZE}x${SIZE}/mimetypes && cp icons/x-xcas_${SIZE}.png /usr/local/share/icons/hicolor/${SIZE}x${SIZE}/mimetypes/application-x-xcas.png;  done 
mkdir /usr/local/share/icons/hicolor/256x256/mimetypes 
mkdir /usr/local/share/icons/hicolor/128x128/mimetypes 
mkdir /usr/local/share/icons/hicolor/64x64/mimetypes 
mkdir /usr/local/share/icons/hicolor/32x32/mimetypes 
mkdir /usr/local/share/icons/hicolor/16x16/mimetypes 
make[3]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0' 
make[2]: Nothing to be done for 'install-data-am'. 
make[2]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0' 
make[1]: Leaving directory '/home/me/TMP/GIAC/giac-1.9.0' 
>
 

2.6 post installation

  1. final step

    sudo ldconfig
     
    
  2. changes to .bashrc. To use sagemath with the current installed giac, I had to edit my .bashrc file and add this line

    export GIAC=/usr/local/bin/giac
     
    

    This tells sagemath where giac is installed, else it will not find it. This ia because I wanted to use this version of giac from sagemath and not have sagemath build giac itself as that will be an older version.

    >which giac 
    /usr/local/bin/giac 
    >giac --version 
    // Using locale /usr/share/locale/ 
    // en_US.utf8 
    // /usr/share/locale/ 
    // giac 
    // UTF-8 
    // Maximum number of parallel threads 8 
    // (c) 2001, 2021 B. Parisse & others 
    1.9.0 
    >
     
    

    Note the above version just says 1.9 and not 1.9-35. This is unfortunate as it is not possible to obtain the full version number. see this post about complaining about this.

3 Verify installation

Type giac

>giac 
// Using locale /usr/local/share/locale/ 
// en_US.utf8 
// /usr/local/share/locale/ 
// giac 
// UTF-8 
// Maximum number of parallel threads 8 
Added 26 synonyms 
// Read 1205 entries from cache /usr/share/giac/doc/en/html_mtt 
// Read 1481 entries from cache /usr/share/giac/doc/en/html_mall 
// Read 1043 entries from cache /usr/share/giac/doc/en/html_vall 
Welcome to giac readline interface, version 1.9.0 
(c) 2002,2022 B. Parisse & others 
Homepage http://www-fourier.ujf-grenoble.fr/~parisse/giac.html 
Released under the GPL license 3.0 or above 
See http://www.gnu.org for license details 
May contain BSD licensed software parts (lapack, atlas, tinymt) 
------------------------------------------------- 
Press CTRL and D simultaneously to finish session 
Type ?commandname for help 
*** Type xcas to launch a light version of Xcas *** 
 
0>> int(sin(x),x) 
-cos(x) 
// Time 0 
1>>
 

4 Writing a C++ program to call giac

Now we are going to write a number of C++ programs, which calls Giac directly to do different math operations. All these programs are compiled using this makefile

4.1 Makefile

all:: main 
 
main: main.cc Makefile 
         -rm -f *.o 
         g++ -g main.cc -lgiac -lgmp -Wall -Wextra -Winit-self -Wold-style-cast\ 
         -Wuninitialized -Wmissing-declarations -pedantic\ 
         -fno-elide-constructors -pedantic-errors -Woverloaded-virtual\ 
         -Wstrict-aliasing  -std=c++17 -o main 
         
.PHONY: clean 
clean :: 
        -rm -f main.o
 

4.2 example 1. C++ program to do integration

This program calls giac to do \(\int {\sin (x),x}\). Create this C++ file

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
 
#include <giac/config.h> 
#include <giac/giac.h> 
 
using namespace std; 
 
int main() 
{ 
    giac::context ct; 
    std::string command="sin(x),x"; 
    giac::gen e(command,&ct); 
    e = giac::eval(e,1,&ct); 
    try 
    { 
        cout<<"inside try BEFORE calling "<< command <<endl; 
        giac::gen anti = _integrate(e,&ct); 
        cout<<"result of integrate: "<< anti <<endl; 
    } 
    catch (const std::exception &exc) 
    { 
        std::cout<<">>>>>>>>>>>>>> EXCEPTION HAPPENED "<< exc.what()<<std::endl; 
    } 
 
    return 0; 
}
 

Now compile and run the above file

>make -I$HOME all 
>./main 
inside try BEFORE calling sin(x),x 
result of integrate: -cos(x)
 

An alternative to the above, is to put the giac command directly in the string and this way no need to call _integrate as separate call. Like this

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
 
 
#include <giac/config.h> 
#include <giac/giac.h> 
 
using namespace std; 
 
int main() 
{ 
 
    giac::context ct; 
    std::string command="integrate(sin(x),x)"; 
    giac::gen e(command,&ct); 
    e = giac::eval(e,1,&ct); 
    cout<<"inside try BEFORE calling "<< command <<endl; 
    cout<<"result of integrate: "<< e <<endl; 
 
    return 0; 
}

Compile and run, it will give the same exact result. In the above  giac::eval did all the work. The above might be simpler way to do things.

4.3 example 2. C++ program to solve for roots of equation

This program calls giac to solve \(x^4-1=3\) for \(x\). Create this main.cc C++ file

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
 
 
#include <giac/config.h> 
#include <giac/giac.h> 
 
using namespace std; 
 
int main() 
{ 
 
    giac::context ct; 
 
    giac::eval( giac::gen("eq:=x^4-1=3",&ct) , 1, &ct); 
    giac::gen e = giac::eval( giac::gen("solve(eq,x)",&ct) , 1, &ct); 
 
    cout<<"The solution is " << e <<endl; 
 
    return 0; 
}

Compile and run

>make -I$HOME all 
>./main 
The solution is list[-4^(1/4),4^(1/4)]
 

In the above program , the equation eq was saved inside giac memory and remains there so when solve is called next, it can refer to it by name. Just like when using Giac interactively.

To obtain all 4 roots, need to use cSolve like this

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
 
 
#include <giac/config.h> 
#include <giac/giac.h> 
 
using namespace std; 
 
int main() 
{ 
 
    giac::context ct; 
 
    giac::eval( giac::gen("eq:=x^4-1=3",&ct) , 1, &ct); 
    giac::gen e = giac::eval( giac::gen("cSolve(eq,x)",&ct) , 1, &ct); 
 
    cout<<"The solution is " << e <<endl; 
 
    return 0; 
}

Compile and run

>make -I$HOME all 
>./main 
The solution is list[-sqrt(2),sqrt(2),-sqrt(2)*i,-sqrt(2)*(-i)]
 

4.4 example 3. C++ program to solve an ode

This program calls giac to solve \(y''+2 y'+y=0\) with ic \(y(0)=1,y'(0)=0\). Create this main.cc C++ file

#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
 
 
#include <giac/config.h> 
#include <giac/giac.h> 
 
using namespace std; 
 
int main() 
{ 
 
    giac::context ct; 
    giac::gen e("desolve([diff(y(t),t$2)+2*diff(y(t),t)+y(t)=0,y(0)=1,y'(0)=0],y(t))",&ct); 
    e = giac::eval( e , 1, &ct); 
 
    cout<<"The solution to y''+2 y'+y=0 with ic  y(0)=1,y'(0)=0 is " << e <<endl; 
 
    return 0; 
}

Compile and run

>make -I$HOME all 
>./main 
The solution to y''+2 y'+y=0 with ic  y(0)=1,y'(0)=0 is exp(-t)*(t+1)