need help with makefile
P. Aaron Lott
palott at ipst.umd.edu
Sat Mar 3 14:33:27 CST 2007
Hi Paul & Satish,
This order works. Thank you so much for your help. I really
appreciate it.
-Aaron
On Mar 3, 2007, at 2:43 PM, Paul T. Bauman wrote:
> Aaron,
>
> Don't want to be rude and interject, but I looked at the unsteady.F
> file - I've always had trouble compiling when 'use statements' come
> after variable declarations. Give a try putting things in this order:
>
> program
>
> use modules
>
> implicit none
>
> include statements
>
> variable declarations
>
> code
>
> end program
>
> This always works for me, not matter what compiler. Also, since
> you've named the file .F, you MUST have -qfree (or the correct
> statement, intel compilers it's -fpp) otherwise you will get errors
> since, by default, .F will use f77 fixed format and you are using
> free format, although, now that I think about, some compilers will
> override if you use mpif90 version, but I've had mixed luck with
> that. If you name the files .f90, they will be compiled in free
> format by default (similar for .F90, but now with pre processing).
>
> Again, just my two cents in trying to help.
>
> Paul
>
> P. Aaron Lott wrote:
>>
>> All of the source files are first compiled using
>>
>> mpif90 -C -g -qdpc -qautodbl=dbl4 -qinitauto -Wl,-framework -
>> Wl,vecLib -c file.f90
>>
>> On each file, this creates the appropriate .o and .mod files.
>> Also, these are compiled in order such that if a file B depends on
>> a module defined in another file A, then A would be compiled before B
>>
>> Then the executable is created by running
>>
>> mpif90 -C -g -qdpc -qautodbl=dbl4 -qinitauto -Wl,-framework -
>> Wl,vecLib -o executable all_object_files.o
>>
>>
>> I'm attaching the Makefile here
>>
>>
>>
>>
>> -Aaron
>>
>>
>>
>>
>> On Mar 3, 2007, at 12:36 PM, Satish Balay wrote:
>>
>>> What is the command that correctly compiles this file? [from your
>>> original makefile]
>>>
>>> Satish
>>>
>>> On Sat, 3 Mar 2007, P. Aaron Lott wrote:
>>>
>>>>
>>>> Hi Satish,
>>>>
>>>> I tried the order of the use statements and the include, but it
>>>> didn't seem to
>>>> matter. I really don't know much about make files or the linking
>>>> process with
>>>> compilers but it seems like the compiler statement
>>>>
>>>> /usr/local/mpich-1.2.5.2/bin/mpif90 -c -I. -g __unsteady_ex.F -o
>>>> unsteady_ex.o
>>>>
>>>> is trying to make an object file unsteady_ex.o
>>>>
>>>> However, unsteady_ex.F depends on many other object files before
>>>> this can be
>>>> compiled. During the make process the first file dealt with is
>>>> unsteady_ex.F,
>>>> which before using petsc, unsteady_ex.f90 was the last to be
>>>> compiled. It
>>>> seems like there should be some way to compile the rest of my
>>>> program first
>>>> and then perform this step at the end.
>>>>
>>>>
>>>> I'm not sure if there's some way to rearrange things in the
>>>> makefile command
>>>> in order to do this or not. Do you have any ideas?
>>>>
>>>> Thanks,
>>>>
>>>> -Aaron
>>>>
>>>>
>>>>
>>>> $(CMD) : $(SOBJS)
>>>> -${FLINKER} $(FLAGS) -o $(EXENAME) $(SOBJS)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Mar 3, 2007, at 12:07 PM, Satish Balay wrote:
>>>>
>>>>> I can't spot any obvious issues here.. Is it possible that the
>>>>> #include should go after the 'use statements'? [I don't know
>>>>> enough
>>>>> about f90 issues here]
>>>>>
>>>>> Satish
>>>>>
>>>>> On Sat, 3 Mar 2007, P. Aaron Lott wrote:
>>>>>
>>>>>>
>>>>>> Hi Satish,
>>>>>>
>>>>>> I'm attaching the file to this e-mail.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> -Aaron
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>> P. Aaron Lott
>>>> Ph.D. Candidate
>>>> 4239 Computer and Space Sciences Building
>>>> University of Maryland
>>>> College Park, MD 20742-4015
>>>>
>>>> palott at ipst.umd.edu
>>>> http://www.lcv.umd.edu/~palott
>>>> Office: 301.405.4894
>>>> Fax: 301.314.0827
>>>>
>>>>
>>>
>>
>> P. Aaron Lott
>> Ph.D. Candidate
>> 4239 Computer and Space Sciences Building
>> University of Maryland
>> College Park, MD 20742-4015
>>
>> palott at ipst.umd.edu
>> http://www.lcv.umd.edu/~palott
>> Office: 301.405.4894
>> Fax: 301.314.0827
>>
>>
>
P. Aaron Lott
Ph.D. Candidate
4239 Computer and Space Sciences Building
University of Maryland
College Park, MD 20742-4015
palott at ipst.umd.edu
http://www.lcv.umd.edu/~palott
Office: 301.405.4894
Fax: 301.314.0827
More information about the petsc-users
mailing list