View previous topic :: View next topic |
Author |
Message |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7925 Location: Salford, UK
|
Posted: Tue Sep 08, 2020 8:14 am Post subject: |
|
|
mecej4
Thanks. I will add this to the list. |
|
Back to top |
|
|
LitusSaxonicum
Joined: 23 Aug 2005 Posts: 2388 Location: Yateley, Hants, UK
|
Posted: Tue Sep 08, 2020 1:27 pm Post subject: |
|
|
Dan,
Regarding your point 3, perhaps Polyhedron should include the categories:
Does the compiler have graphics inbuilt?
Does the compiler have easy to use facilities to build a Windows GUI?
Eddie |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7925 Location: Salford, UK
|
Posted: Thu Sep 17, 2020 11:50 am Post subject: |
|
|
/LIST can optionally take the name of the file for the output. So this is an instruction to output the list to a.f90 and no source file is supplied.
The same issue applies to other options where a file name can be added such as /LINK.
I can't think of a simple and satisfactory solution to this. |
|
Back to top |
|
|
mecej4
Joined: 31 Oct 2006 Posts: 1886
|
Posted: Thu Sep 17, 2020 2:28 pm Post subject: |
|
|
Paul, a similar problem occurs when the preprocessor is used with FTN95 or SCC and a symbol is to be defined. SCC/FTN95 do not allow a symbol to be defined without specifying a value. In a traditional C preprocessor, quite often a macro may be defined implicitly as 'TRUE' or '1'. Thus, I cannot simply write
/define SCC
but I have to write
/define SCC=1
even if the value, '1', is not needed and no other value will ever be used.
In Gfortran, for example we have
Quote: |
-Dname
Predefine name as a macro, with definition 1.
-Dname=definition
|
Other Windows compilers use '/' to signify that the next characters up to a blank represent a compiler option, and a separator such as ':', '=' or ',' between the option string and an optional value. Otherwise, any compiler/preprocessor option that itself takes an optional user-specified value cannot be followed by any other option in the command line. |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7925 Location: Salford, UK
|
Posted: Thu Sep 17, 2020 3:02 pm Post subject: |
|
|
mecej4
I think that I understand what you can do with FTN95 and how it differs from other compilers.
What I don't know is how to change FTN95 in a way that it still works as before but also becomes compatible with gFortran.
Maybe I am missing the point that you are making.
We could add a new command line option that marks the change to the compatible approach but that seems excessive.
Paul |
|
Back to top |
|
|
wahorger
Joined: 13 Oct 2014 Posts: 1217 Location: Morrison, CO, USA
|
Posted: Thu Sep 17, 2020 4:12 pm Post subject: |
|
|
In SCC, you can simply /DEFINE a symbol. I use this:
Quote: | SCC.EXE ".\KML_COORDINATES\kml_convert.c" /List /DEFINE CMASTER /NO_BANNER /DELETE_OBJ_ON_ERROR /ERROR_NUMBERS /UNLIMITED_ERRORS /SILENT /BINARY "$(DESTINATION)\KML_CONVERT.obj"
|
in my MAKEFILE. I also use a /DEFINE with a specific assignment to the DEFINE'd variable in other SCC compile steps.
I also use the following for FTN95 in the make file with this statement setting the MAKEFILE variable:
Quote: | RESTRICTED_COMPILE:= /VPARAM RESTRICTED 1
|
and the compile step uses "/VPARAM RESTRICTED 1" as the compile options. In the code, using #ifdef or #ifndef on the symbol RESTRICTED allows conditional compilation, not assignment of a value (unfortunately).
I don't know if this helps or not. I do know that in the MAKEFILE, one can do a number of extraordinary things to allow the MAKEFILE to accommodate various compiler requirements. It is all done through run-time string manipulation. |
|
Back to top |
|
|
mecej4
Joined: 31 Oct 2006 Posts: 1886
|
Posted: Thu Sep 17, 2020 4:51 pm Post subject: |
|
|
Paul and Bill,
Thanks to both of you. I'll try to follow Bill's advice regarding /define, see if I can use SCC to do what I want, and come back if I fail. |
|
Back to top |
|
|
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 7925 Location: Salford, UK
|
Posted: Mon Sep 21, 2020 11:13 am Post subject: |
|
|
The FTN95 command line options have been extended for the next release. The aim is to allow all of the forms listed by mecej4 above, namely
Quote: | ftn95 a.f b.obj
ftn95 a.f b.obj c.lib -o my.exe
ftn95 /c a.f
ftn95 /lis a.f90 |
Minor limitations will remain for .NET compilations.
The aim is to provide an interim release shortly so that these changes can be fully beta tested before the next major release. |
|
Back to top |
|
|
|