forums.silverfrost.com Forum Index forums.silverfrost.com
Welcome to the Silverfrost forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Using Makefile
Goto page Previous  1, 2
 
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> Support
View previous topic :: View next topic  
Author Message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7916
Location: Salford, UK

PostPosted: Tue Sep 08, 2020 8:14 am    Post subject: Reply with quote

mecej4

Thanks. I will add this to the list.
Back to top
View user's profile Send private message AIM Address
LitusSaxonicum



Joined: 23 Aug 2005
Posts: 2388
Location: Yateley, Hants, UK

PostPosted: Tue Sep 08, 2020 1:27 pm    Post subject: Reply with quote

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
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7916
Location: Salford, UK

PostPosted: Thu Sep 17, 2020 11:50 am    Post subject: Reply with quote

Code:
ftn95 /lis a.f90


/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
View user's profile Send private message AIM Address
mecej4



Joined: 31 Oct 2006
Posts: 1885

PostPosted: Thu Sep 17, 2020 2:28 pm    Post subject: Reply with quote

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
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7916
Location: Salford, UK

PostPosted: Thu Sep 17, 2020 3:02 pm    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
wahorger



Joined: 13 Oct 2014
Posts: 1217
Location: Morrison, CO, USA

PostPosted: Thu Sep 17, 2020 4:12 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
mecej4



Joined: 31 Oct 2006
Posts: 1885

PostPosted: Thu Sep 17, 2020 4:51 pm    Post subject: Reply with quote

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
View user's profile Send private message
PaulLaidler
Site Admin


Joined: 21 Feb 2005
Posts: 7916
Location: Salford, UK

PostPosted: Mon Sep 21, 2020 11:13 am    Post subject: Reply with quote

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
View user's profile Send private message AIM Address
Display posts from previous:   
Post new topic   Reply to topic    forums.silverfrost.com Forum Index -> Support All times are GMT + 1 Hour
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group