error: Compilers/make_macros.mk:1: *** missing separator.

Report or discuss software problems and other woes

Moderators: arango, robertson

Post Reply
Message
Author
kfennel
Posts: 37
Joined: Thu Jun 12, 2003 6:55 pm
Location: Dalhousie University
Contact:

error: Compilers/make_macros.mk:1: *** missing separator.

#1 Unread post by kfennel »

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

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

#2 Unread post by kate »

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 »

I'm compiling with ifort on Linux. I typed "make clean" between compilation attempts. I'm using svn revision 126 from this morning.

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

#4 Unread post by kate »

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 »

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 :=

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

#6 Unread post by kate »

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 »

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 APPLICATION ...)

Thx again!

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

#8 Unread post by kate »

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

Re: error: Compilers/make_macros.mk:1: *** missing separator.

#9 Unread post by mariafattorini »

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

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: error: Compilers/make_macros.mk:1: *** missing separator.

#10 Unread post by kate »

As above, show us what is in Compilers/make_macros.mk for starters.

User avatar
arango
Site Admin
Posts: 1350
Joined: Wed Feb 26, 2003 4:41 pm
Location: DMCS, Rutgers University
Contact:

Re: error: Compilers/make_macros.mk:1: *** missing separator.

#11 Unread post by arango »

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 :arrow: wikiROMS.

mariafattorini
Posts: 52
Joined: Tue Mar 03, 2009 2:39 pm
Location: C.N.R. - LaMMA

Re: error: Compilers/make_macros.mk:1: *** missing separator.

#12 Unread post by mariafattorini »

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

User avatar
kate
Posts: 4088
Joined: Wed Jul 02, 2003 5:29 pm
Location: CFOS/UAF, USA

Re: error: Compilers/make_macros.mk:1: *** missing separator.

#13 Unread post by kate »

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

Re: error: Compilers/make_macros.mk:1: *** missing separator.

#14 Unread post by mariafattorini »

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

Post Reply