Report or discuss software problems and other woes
Moderators: arango , robertson
kfennel
Posts: 37 Joined: Thu Jun 12, 2003 6:55 pm
Location: Dalhousie University
Contact:
#1
Unread post
by kfennel » Fri Nov 16, 2007 7:15 pm
Hi,
I can compile the UPWELLING case fine, but when I try to compile BIO_TOY I get the following error message:
Code: Select all
[fennelk@blue ]$ make
Compilers/make_macros.mk:1: *** missing separator. Stop.
Does anybody have an idea what I'm missing?
Thx, Katja
kate
Posts: 4090 Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA
#2
Unread post
by kate » Fri Nov 16, 2007 7:36 pm
Have you tried a "make clean"? Beyond that, what system, what compiler? I just did "svn update" to get the latest ROMS trunk code, changed the makefile to BIO_TOY, then tried "make" - it compiles with Linux-pgi.
kfennel
Posts: 37 Joined: Thu Jun 12, 2003 6:55 pm
Location: Dalhousie University
Contact:
#3
Unread post
by kfennel » Fri Nov 16, 2007 8:01 pm
I'm compiling with ifort on Linux. I typed "make clean" between compilation attempts. I'm using svn revision 126 from this morning.
kate
Posts: 4090 Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA
#4
Unread post
by kate » Fri Nov 16, 2007 8:08 pm
What is in Compilers/make-macros.mk? I've got:
Code: Select all
USE_ADJOINT :=
USE_TANGENT :=
USE_REPRESENTER :=
USE_WRF :=
USE_SWAN :=
USE_REFDIF :=
USE_ARPACK :=
USE_MCT :=
USE_ESMF :=
with no tabs in it.
kfennel
Posts: 37 Joined: Thu Jun 12, 2003 6:55 pm
Location: Dalhousie University
Contact:
#5
Unread post
by kfennel » Fri Nov 16, 2007 8:17 pm
I have:
Code: Select all
[fennelk@blue]$ more Compilers/make_macros.mk
CPPDEFS - Choose an appropriate ROMS application.
USE_ADJOINT :=
USE_TANGENT :=
USE_REPRESENTER :=
USE_WRF :=
USE_SWAN :=
USE_REFDIF :=
USE_ARPACK :=
USE_MCT :=
USE_ESMF :=
kate
Posts: 4090 Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA
#6
Unread post
by kate » Fri Nov 16, 2007 8:48 pm
This file is generated by:
Code: Select all
MACROS := $(shell cpp -P $(ROMS_CPPFLAGS) Compilers/make_macros.h > \
$(MAKE_MACROS); $(CLEAN) $(MAKE_MACROS))
Unfortunately, make doesn't echo this command in its output. We need to know what your ROMS_HEADER is in your ROMS_CPPFLAGS. The next command is:
Code: Select all
./ROMS/Bin/sfmakedepend --cpp --fext=f90 --file=- --objdir=Build -DROMS_HEADER="bio_toy.h" -I ROMS/Include -I ROMS/Nonlinear -I ROMS/SeaIce -I ROMS/Utility -I ROMS/Drivers -I ROMS/Functionals -I Master -I Compilers --silent --moddir Build ROMS/Nonlinear/bbl.F ROMS/Nonlinear/bc_2d.F ROMS/Nonlinear/bc_3d.F ...
in which there is -DROMS_HEADER="bio_toy.h". Do you have that? The relevant code in cppdefs.h is:
Code: Select all
#if defined ROMS_HEADER
# include ROMS_HEADER
#else
CPPDEFS - Choose an appropriate ROMS application.
#endif
kfennel
Posts: 37 Joined: Thu Jun 12, 2003 6:55 pm
Location: Dalhousie University
Contact:
#7
Unread post
by kfennel » Sun Nov 18, 2007 12:56 am
You got me on the right track. Many thanks!
I inserted
Code: Select all
$(if ,, $(warning ROMS_CPPFLAGS: $(ROMS_CPPFLAGS)))
in line 212 of the makefile. Turns out that my ROMS_CPPFLAGS was empty:
Code: Select all
[fennelk@dell-rack]$ make
makefile:212: ROMS_CPPFLAGS:
Compilers/make_macros.mk:1: *** missing separator. Stop.
Inspection of
Code: Select all
#ROMS_APPLICATION ?= UPWELLING
ROMS_APPLICAION ?= BIO_TOY
revealed a typo (should be APPLICA
T ION ...)
Thx again!
kate
Posts: 4090 Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA
#8
Unread post
by kate » Mon Nov 19, 2007 6:03 pm
Ooof! Compilers are printing more and more useful error messages, but not make.
mariafattorini
Posts: 52 Joined: Tue Mar 03, 2009 2:39 pm
Location: C.N.R. - LaMMA
#9
Unread post
by mariafattorini » Wed Jul 08, 2009 2:16 pm
Hello all,
I have a similar messagge error:
maria@PC-Satellite ~/roms/Projects/prova1
$ ./build.bash
rm -f -r core *.ipo /home/maria/roms/Projects/prova1/Build Compilers/make_macros
.mk
Compilers/make_macros.mk:2: *** missing separator. Stop.
I am working on the Windows Vista PC by CYGWIN with gfortran-4 compiler.
I have used "build.bash" instead "makefile".
I need some suggestion to solve this problem;
thanks in advance,
Maria
kate
Posts: 4090 Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA
#10
Unread post
by kate » Wed Jul 08, 2009 4:30 pm
As above, show us what is in Compilers/make_macros.mk for starters.
arango
Site Admin
Posts: 1356 Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:
#11
Unread post
by arango » Thu Jul 09, 2009 2:17 am
I keep suggesting to everybody again and again to never modify the distributed
makefile . Use either
build.sh or
build.bash from the
ROMS/Bin directory. ROMS
makefile is complex and it is easy to introduce errors. Notice that you can have a
build script in each application directory. This is the best way to customize all the paths in the
makefile and the configuration (
*.mk ) files.
There is a lot of information about this in
wikiROMS .
mariafattorini
Posts: 52 Joined: Tue Mar 03, 2009 2:39 pm
Location: C.N.R. - LaMMA
#12
Unread post
by mariafattorini » Thu Jul 09, 2009 8:10 am
Hello Kate and Arango,
in my make_macro.mk (in the directory roms/trunk/Compilers)there are these lines:
*/TS_MDATA:
*/
USE_ADJOINT :=
USE_TANGENT :=
USE_REPRESENTER :=
USE_SEAICE :=
USE_WRF :=
USE_SWAN :=
USE_REFDIF :=
USE_ARPACK :=
USE_MCT :=
USE_ESMF :=
This content is as created from the instructions in make_macro.h, is it right?
I have used build.bash copied from Upwelling test case directory (/roms/Projects/Upwelling) in my new application directory (/roms/Projects/prova1) and appropriately changed in some fields.
Thank you much,
Maria
kate
Posts: 4090 Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA
#13
Unread post
by kate » Thu Jul 09, 2009 8:32 pm
Make is complaining about the TS_MPDATA lines. A C-language comment looks like /* blah */, so try switching your first */ to /* there. Where, you ask? It's in your upwelling.h, most likely.
mariafattorini
Posts: 52 Joined: Tue Mar 03, 2009 2:39 pm
Location: C.N.R. - LaMMA
#14
Unread post
by mariafattorini » Fri Jul 10, 2009 9:33 am
Hello Kate and thank you very much for your reply.
I found the lines
*/TS_MDATA:
*/
in my header file and I removed them.
Now, I know that if I write something in header file, this something will be writen in the make_macro.mk
Thank you again,
maria