<?php                                                                                                                          require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");    require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php");     require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php");     $App     = new App();    $Nav    = new Nav();    $Menu     = new Menu();        include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'

    $pageTitle       = "Frequently Asked Questions";
    $pageKeywords    = "photran, documentation, faq, questions";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>
    
En espa&ntilde;ol: <b><a
 href="http://wiki.cs.uiuc.edu/photran/PUF+de+Photran">PUF de
Photran</a></b>
      <p><b> Is there any documentation for Photran?
I can't find any in the Help system. </b> </p>
      <p style="margin-left: 40px; text-align: justify;">Unfortunately,
there isn't any generic documentation for Photran. (It would be great
for someone to contribute some...) However, there is a short, <a
 href="http://www.eclipse.org/photran/documentation.php">introductory
tutorial available.</a> Also, Walt Brainerd has created an
excellent introduction that describes <a
 href="ftp://ftp.swcp.com/pub/walt/F/photran.pdf">setting up
Photran to work with the F compiler.</a> The "basics" in this
document apply equally well to other compilers. We suggest reading the
CDT documentation, including the tutorials. Nearly everything in there
applies to Photran, except you will need to substitute "Fortran" for
"C/C++" and "g95" for "gcc". (Also, Managed Make projects aren't really
usable yet.) </p>
      <p><b>How do I get Photran to work with my
favorite compiler?</b> </p>
      <p style="margin-left: 40px; text-align: justify;">Photran
does not
call your compiler directly. It just invokes make and make calls your
compiler. So, you need a makefile for your program. Photran has to know
which compiler you are using so that it can parse the error messages,
since different compilers use different formats for error messages. And
we have a not-very-well-working feature (Managed Make) that is supposed
to write a makefile for you automatically, which will be great when it
works, but should be avoided at the moment. All the rest of Photran is
completely independent of your compiler. </p>
      <p style="margin-left: 40px; text-align: justify;">If
you don't
know what a Makefile should look like, there's a <a
 href="http://www-courses.cs.uiuc.edu/%7Ecs225/cs225/_resources/_tutorials/makeTut.pdf">tutorial
from an introductory CS course at UIUC</a>, or <a
 href="http://www.eng.hawaii.edu/Tutor/Make/">another from
the University of Hawaii</a>... or you can read <a
 href="http://www.gnu.org/software/make/manual/make.html">the
entire manual for GNU make</a>. </p>
      <p><b>I can't get Photran to run my program
("Launch failed no binaries" or some such error message).</b></p>
      <div style="margin-left: 40px;">
      <ul>
        <li> In the Project menu, select Preferences, and
make sure that the correct Binary Parser is selected for your platform:
PE for Windows, Elf for Linux, Mach for OS X.</li>
        <li> Your workspace path <i>cannot</i>
have spaces in it. A workspace in C:\Documents and Settings\whoever\My
Documents for example, will give this error.</li>
        <li> If you are using g95, it has some of its own
eccentricities. Spaces in the g95 path have also caused problems. If
your binary "can't find cygwin1.dll", see the next question...</li>
      </ul>
      </div>
      <span style="font-weight: bold;">W</span><b>hen
I run my Fortran program, it complains that it can't find a particular
DLL.</b>
      <p style="margin-left: 40px; text-align: justify;">When
Windows
looks for DLLs, it checks the following: </p>
      <ul style="margin-left: 40px; text-align: justify;">
        <li> The directory from which the application
loaded. </li>
        <li> The current directory. </li>
        <li> The system directory (e.g.,
C:\Windows\System32) </li>
        <li> The 16-bit system directory. </li>
        <li> The Windows directory (e.g., C:\Windows) </li>
        <li> The directories that are listed in the PATH
environment variable. </li>
      </ul>
      <div style="margin-left: 40px; text-align: justify;">So,
for
example, if cygwin1.dll is not found, it needs to be copied into one of
the above directories. (NOTE: Despite Microsoft's documentation, it
seems that directories on the PATH are <i>not</i> always
searched; put the DLL in your application directory or the System
directory to be safe.) </div>
      <p style="margin-left: 40px; text-align: justify;">This
information
was obtained from Microsoft's documentation for the <a
 href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/loadlibrary.asp">LoadLibrary
system call</a>. </p>
      <b>Does Photran come with a Java runtime?</b>
      <p style="margin-left: 40px; text-align: justify;">No.
You will
have to download and install a JRE from <a
 href="http://java.sun.com/">Sun's Java site</a> before
you can run Photran (or Eclipse, for that matter). </p>
      <p style="margin-left: 40px; text-align: justify;">We
have run
Photran with both Java 1.4 and 1.5. </p>
      <b>I have some Fortran sources in CVS. How can I
check them out as a Photran project?</b>
      <p style="margin-left: 40px; text-align: justify;">When
you go into
Photran's CVS Repository Exploring perspective, you ought to be able to
connect to your existing CVS server and find whatever CVS module all
your stuff is in. (This assumes that everything is in a single CVS
module.) Right-click on it, choose "Check Out As...", and then select
to "Check out as a project configured using the New Project Wizard."
Make it a Standard Make Fortran 77 Project, choose a decent name, set
the Binary Parser appropriately, and then finish. You can then choose
to share your .project and .photranproject files under the existing CVS
module if you are so inclined (this would allow everyone else to Check
Out as Project), or everyone can do this separately rather than sharing
the .*project files. </p>
      <b>Photran is running out of memory (I'm getting
java.lang.OutOfMemoryError).</b>
      <p style="margin-left: 40px; text-align: justify;">Under
Linux,
add <tt>-vmargs -Xmx512M</tt> to the end of the command
line, i.e., launch Photran with a command like </p>
      <pre style="margin-left: 40px; text-align: justify;">/usr/local/bin/photran -vmargs -Xmx512M</pre>
      <p style="margin-left: 40px; text-align: justify;">Under
Windows,
create a shortcut to Photran's "eclipse" executable. Right-click the
shortcut, and choose Properties. In the box containing "eclipse.exe",
add <tt>-vmargs -Xmx512M</tt>, so the entire line will
read something like this: </p>
      <pre style="margin-left: 40px; text-align: justify;">"C:\Program Files\Photran\eclipse.exe" -vmargs -Xmx512M</pre>
      <p style="margin-left: 40px; text-align: justify;">If
you care to
know, all arguments following <tt>-vmargs</tt> are passed
directly to the JVM; <tt>-Xmx512M</tt> is a request to
make 512 MB of heap space available to Photran. </p>
      <b>When I try to build a project I get the message
'Error launching builder (make -k clean all ) (CreateProcess: make -k
clean all error=2)' in the console window. What does this mean?<br>
      <br>
      </b>
      <div style="margin-left: 40px; text-align: justify;">System
error 2 is "The system cannot find the file specified,"
i.e.,&nbsp;there is no executable <span
 style="font-family: monospace;">make.exe</span>
on your system path. &nbsp;We recommend installing <a
 href="http://www.cygwin.com/" target="_blank">Cygwin</a>,
including its version of <span style="font-style: italic;">make,</span>
and adding Cygwin <span style="font-style: italic;">make</span>
to your system path. &nbsp;Under Windows XP, this is done as
follows:<br>
      <ul>
        <li>Make sure you are an administrator for the
machine.</li>
        <li>Open the Control Panel.</li>
        <li>Double-click the System icon.</li>
        <li>Switch to the Advanced tab.</li>
        <li>Click the Environment Variables button.</li>
        <li>Under System Variables, find the variable
"Path" in the list, and click on it.</li>
        <li>Click Edit.</li>
        <li>At the end of the "Variable Value" text, add
this:<br>
&nbsp; &nbsp; &nbsp; &nbsp;
;C:\Cygwin\bin;C:\Cygwin\usr\bin;C:\Cygwin\usr\local\bin;C:\Cygwin\lib;C:\Cygwin\usr\lib</li>
        <li>Click OK, click OK, click OK, and close the
Control Panel.</li>
      </ul>
This instructs Windows to search C:\Cygwin\bin, C:\Cygwin\usr\bin, etc.
when it's looking for executables (including <span
 style="font-family: monospace;">make.exe</span>).
&nbsp;The "lib" folders contain DLLs which are necessary for <span
 style="font-style: italic;">make</span> to run;
theoretically, at least, the system path is also searched when DLLs are
loaded.</div>

  </div>
</div>    
EOHTML;

    # Generate the web page
    $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>
