Karim BELABAS on Thu, 18 Apr 2002 14:55:36 +0200 (MEST)


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: GP Makefile compiling twice


On Wed, 17 Apr 2002, Michael Somos wrote:
> I am using the latest CVS and following the recommended instructions
> for making the gp software. However, I notice that it seems to be
> compiling the source twice. In summary, I do './Configure' ,'make gp',
> and 'make install'.
>
> Here is an edited version of the script :
>
> danube:/tmp/local/pari> ./Configure --prefix=/u/home/somos/u/pari
> Configuring pari-2.2.3 (DEVELOPMENT VERSION)
>
> [...]
>
> ==========================================================================
> Extracting examples/Makefile.solaris-sparcv9
> Extracting Osolaris-sparcv9/Makefile
> Extracting Makefile
> Extracting Osolaris-sparcv9/paricfg.h
> Extracting Osolaris-sparcv9/../Odos/paricfg.h
> Extracting scripts and macros
> ...in doc
> ...in emacs
> ...in misc
> ==========================================================================
> Shall we try to build pari 2.2.3 (development) now (y/n)? [n]
> Ok. Type "make install" when you are ready
> Bye !
> danube:/tmp/local/pari> make gp
> cd Osolaris-sparcv9; make gp
> make[1]: Entering directory `/tmp/local/pari/Osolaris-sparcv9'
> cat ../src/kernel/sparcv8/level0.h ../src/kernel/none/level1.h > pariinl.h
>
> [...]
>
> /usr/local/bin/gcc -c -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-frame-pointer
>    -I. -I../src/
> headers -I../src/graph -o plotport.o ../src/graph/plotport.c
> /usr/ccs/bin/as -P -I. -D__GNUC__ -T -o kernel.o ../src/kernel/sparcv8/level0_sp
> arcv8_micro.S
> /usr/local/bin/gcc -c -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-frame-pointer
>    -I. -I../src/
> headers -o mp.o ../src/kernel/none/mp.c
>
> [...]
>
> rm -f ../gp
> ln -s Osolaris-sparcv9/gp-dyn ../gp
> make[1]: Leaving directory `/tmp/local/pari/Osolaris-sparcv9'
> danube:/tmp/local/pari> make install
> cd Osolaris-sparcv9; make install
> make[1]: Entering directory `/tmp/local/pari/Osolaris-sparcv9'
> /usr/local/bin/gcc -c -O3 -DGCC_INLINE -Wall -Wno-implicit -fomit-frame-pointer
>    -I. -I../src/
> headers -o mp.o ../src/kernel/none/mp.c
>
> [...]
>
> Notice that all modules from 'mp.c' on seem to be compiled twice.
> Any idea if this is a feature? Shalom, Michael

It is not a feature, and I believe the Makefile is correct. Apparently, your
OS attaches incorrect timestamps to the some object files, and 'make'
believes that a header file has been modified since GP was last compiled.

I've seen this happen on specific machines, often in conjunction with
messages of the form:

gmake: *** Warning: File `../src/basemath/alglin1.c' has modification time in the future

but could not solve it. I don't know whether to blame 'make' or the system
clock.  In practice, on my afflicted Linux box (i686, 2.4.7-10, RH 7.2,
gmake-3.79.1), it happens rarely, and only once if at all [ i.e further
'make' behave as expected ].  I once had access to an ancient alpha (under
OSF), where this annoying behaviour was systematic: invoking make at any
time resulted in full recompilation (in this case, I believe the culprit was
'make').

    Karim.
-- 
Karim Belabas                    Tel: (+33) (0)1 69 15 57 48
Dép. de Mathematiques, Bat. 425  Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud             Email: Karim.Belabas@math.u-psud.fr
F-91405 Orsay (France)           http://www.math.u-psud.fr/~belabas
--
PARI/GP Home Page: http://www.parigp-home.de/