[Q-e-developers] makedeps.sh

Riccardo Di Meo dimeo at democritos.it
Wed Apr 20 10:01:11 CEST 2011


On 04/19/2011 08:30 PM, Paolo Giannozzi wrote:
>
> On Apr 19, 2011, at 12:49 , Riccardo Di Meo wrote:
>
>> In particular, the file makedeps.sh came to my attention and I was
>> asking myself if it is supposed to be used by some configure related
>> script dynamically
>
> no, it used to be that way, but no longer. From the developer manual:
>
>   When you modify the program sources, run the
> \texttt{install/makedeps.sh}
>   script  or type \texttt{make depend}  to update files
> \texttt{make.depend} in
>   the various subdirectories.

thank you for the explanation (and my apologies for not having looked it 
up myself: I didn't noticed/forgot there was a developer manual...)

>
>> I have also noticed that such script seems to work fine if the espresso
>> source tree is at least partially compiled (at least up to the iotk) but
>> it seems not to work if I start from a fresh directory/distclean
>> configuration.
>
> it requires iotk to be properly unpackaged, since one of the modules
> used by QE is there

this explains the various @iotk around the make.depend when executed 
without unpacking  :)

>
>> Last thing: using the aforementioned trick (configure/make and then
>> makedeps.sh)
>
> configure/make and then nothing more

the configure/make/makedeps (which will become "tar iotk/makedeps" with 
the knowledge now acquired) is necessary for the MS2, since it inserts 
some modules in the the QE distribution (the alternative being that of 
patching the make.depend programmatically (a less robust solution if the 
first is available IMO).

>
>> the script seems to work fine, however, at least in my case, looks
>> like it's fooled by an #include "something.f90" which I have in my
>> code (I know it isn't good practice, however it avoids a circular
>> dependency)
>
> if there is a circular dependency, it must be removed. If there isn't
> any, no

not that there is any alternative anyway (at least in Fortran)... :)

> need to use nonstandard tricks.

the use of the include is there actually to keep the source code tidy 
and clean, rather than for practical purposes: I could have just cut'n 
copied the functions in the module that includes them, however it would 
have mixed sources that do different things (and more importantly, that 
need to be tweaked by different people).

Thank you for your time and patience,
Riccardo Di Meo

>
> P.
> ---
> Paolo Giannozzi, Dept of Chemistry&Physics&Environment,
> Univ. Udine, via delle Scienze 208, 33100 Udine, Italy
> Phone +39-0432-558216, fax +39-0432-558222
>
>
>




More information about the developers mailing list