X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: Yes, hits=5.4 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,FREEMAIL_REPLY,RCVD_IN_DNSWL_NONE,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Message-ID: From: bo yu To: , Subject: RE: How to compile Fortran 90 subroutine under CYGWIN Date: Fri, 21 May 2010 15:21:40 +0000 In-Reply-To: <4BF6803B.2060103@aol.com> References: ,<4BF6803B DOT 2060103 AT aol DOT com> Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Tim, =20 Thanks for your reply. =20 I have the new version of cygwin installed in my computer, in which the g77= , g++, gcc, gfortran, C++ compiler are in C:\cygwin\bin. Firstly, I use cygwin build C programs and For77 programs. It works very we= ll. Now, I add two For90 programs and want to build following program toget= her in cygwin: =20 Fortran 77 program: runslhg.f , intrface.f=20 Fortran 90 program: swan_init.f90 , swan_loopstep.f90 C Program: slosh2.c , cstart.c etc. =20 Step 1: I replace g77 with gfortran in 'makefile',=20 =20 #!/bin/make SHELL =3D /bin/sh CC =3D gcc F77 =3D gfortran STRIP =3D strip STD_FLAGS =3D -O3 -Wall -pedantic -ansi FFLAGS =3D LD_FLAGS =3D -Wl,--stack,8000000 STD_DEF =3D -D_WINDOWS_ -D_GCC_ STD_INC =3D -I. STD_LIB =3D -lg2c -L/usr/lib -lm PRJ_NAME =3D sloshDos TARGETS =3D $(PRJ_NAME) CFLAGS =3D $(STD_FLAGS) $(STD_DEF) $(STD_INC) ############################ # FILES ############################ H_SOURCES =3D slosh2.h \ pack.h \ myassert.h \ myutil.h \ savellx.h \ complex.h \ clock.h \ tendian.h \ tio3.h C_OBJECTS =3D slosh2.o \ pack.o \ myassert.o \ myutil.o \ savellx.o \ complex.o \ clock.o \ tendian.o \ tio3.o F_OBJECTS =3D runslhg.o \ intrface.o \ swan_init.o \ swan_loopstep.o =20=20=20=20=20=20=20=20=20=20=20=20 C_MAIN =3D cstart.c ############################ # TARGETS ############################ all: $(TARGETS) @echo "" $(PRJ_NAME): $(C_OBJECTS) $(F_OBJECTS) $(C_MAIN) $(LIB_DEPENDS) $(H_SOURCES) $(CC) $(C_MAIN) $(CFLAGS) $(LD_FLAGS) $(C_OBJECTS) $(F_OBJECTS) $(STD_LIB)= -o $(PRJ_NAME) $(STRIP) -s $(PRJ_NAME).exe install: cp *.exe ../../bin clean: rm -f *.o *.bak *.BAK ############################ # SUFFIXES ############################ .c.o : $(H_SOURCES) $(CC) -c $(CFLAGS) $< .f.o: ${F77} -c ${FFLAGS} $< =20 Step 2: in cygwin, I ran makefile, The error message is =20 gcc =96c runslhg.f gcc =96c intrface.f make: *** No rule to make target =91swan_init.o=92, needed by =91sloshDos= =92. Stop =20 Step 3: To test if gfortran compiler wotk for For77 program, I try to build= C program and For70 programs only using gfortran, I ran makefile, The erro= r message is =20 runslhg.o:runslhg.f:,.text+0x4f>: undefined reference to '__gfortran_st_rea= d' runslhg.o:runslhg.f:,.text+0x6d>: undefined reference to '__gfortran_transf= er_character' runslhg.o:runslhg.f:,.text+0x7b>: undefined reference to '__gfortran_st_rea= d_done' =20 =20 My Questions are (1) Does gfortran work for fortran 90 program only?=20 (2) g77 compiler works for fortran 77 programs. Does g77 work for fortran 9= 0 programs? (3) How to build C, FOR77 and For 90 programs together in cygwin? How to se= t the makefile, use seperate command for for77 and for 99? =20 =20 I would appreciate any suggestion what should I look at. =20 Thanks again, Bo enviyub2 AT hotmail DOT com =20 =20 =20 ---------------------------------------- > Date: Fri, 21 May 2010 05:44:43 -0700 > From: n8tm AT aol DOT com > To: cygwin AT cygwin DOT com > Subject: Re: How to compile Fortran 90 subroutine under CYGWIN > > On 5/21/2010 5:37 AM, bo yu wrote: >> .c.o : $(H_SOURCES) >> $(CC) -c $(CFLAGS) $< >> .f.o: >> ${F77} -c ${FFLAGS} $< >> >> ------------------------------------------------------------------------= -------------------- >> Here is the code of =91Testfor90.f90=92 >> -------------------------------------------------- >> > make noticed that you didn't supply a rule for .f90.o > > Why wouldn't you use gfortran? If you are trying to use a cygwin > installation from several years ago, it's time to update. > > -- > Tim Prince > > > -- > Problem reports: http://cygwin.com/problems.html > FAQ: http://cygwin.com/faq/ > Documentation: http://cygwin.com/docs.html > Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple >=20=09=09=20=09=20=20=20=09=09=20=20 _________________________________________________________________ The New Busy is not the too busy. Combine all your e-mail accounts with Hot= mail. http://www.windowslive.com/campaign/thenewbusy?tile=3Dmultiaccount&ocid=3DP= ID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_4 -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple