Tim, Thanks for your reply. 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 well. Now, I add two For90 programs and want to build following program together in cygwin: Fortran 77 program: runslhg.f , intrface.f Fortran 90 program: swan_init.f90 , swan_loopstep.f90 C Program: slosh2.c , cstart.c etc. Step 1: I replace g77 with gfortran in 'makefile', #!/bin/make SHELL = /bin/sh CC = gcc F77 = gfortran STRIP = strip STD_FLAGS = -O3 -Wall -pedantic -ansi FFLAGS = LD_FLAGS = -Wl,--stack,8000000 STD_DEF = -D_WINDOWS_ -D_GCC_ STD_INC = -I. STD_LIB = -lg2c -L/usr/lib -lm PRJ_NAME = sloshDos TARGETS = $(PRJ_NAME) CFLAGS = $(STD_FLAGS) $(STD_DEF) $(STD_INC) ############################ # FILES ############################ H_SOURCES = slosh2.h \ pack.h \ myassert.h \ myutil.h \ savellx.h \ complex.h \ clock.h \ tendian.h \ tio3.h C_OBJECTS = slosh2.o \ pack.o \ myassert.o \ myutil.o \ savellx.o \ complex.o \ clock.o \ tendian.o \ tio3.o F_OBJECTS = runslhg.o \ intrface.o \ swan_init.o \ swan_loopstep.o C_MAIN = 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} $< Step 2: in cygwin, I ran makefile, The error message is gcc –c runslhg.f gcc –c intrface.f make: *** No rule to make target ‘swan_init.o’, needed by ‘sloshDos’. Stop 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 error message is runslhg.o:runslhg.f:,.text+0x4f>: undefined reference to '__gfortran_st_read' runslhg.o:runslhg.f:,.text+0x6d>: undefined reference to '__gfortran_transfer_character' runslhg.o:runslhg.f:,.text+0x7b>: undefined reference to '__gfortran_st_read_done' My Questions are (1) Does gfortran work for fortran 90 program only? (2) g77 compiler works for fortran 77 programs. Does g77 work for fortran 90 programs? (3) How to build C, FOR77 and For 90 programs together in cygwin? How to set the makefile, use seperate command for for77 and for 99? I would appreciate any suggestion what should I look at. Thanks again, Bo enviy...@hotmail.com ---------------------------------------- > Date: Fri, 21 May 2010 05:44:43 -0700 > From: n...@aol.com > To: cygwin@cygwin.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 ‘Testfor90.f90’ >> -------------------------------------------------- >> > 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 > _________________________________________________________________ The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail. http://www.windowslive.com/campaign/thenewbusy?tile=multiaccount&ocid=PID28326::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