No rule to make reax_defs.h

Dear Developers:

I have recent need for the use of ReaxFF. Because I needed to install the reax package anyway, I decided to just download the most recent version of Lammps (sept 17 – 2011) and recompile.

I go into ~/lib/reax compile the appropriate makefile (make –f Makefile.gfortran).

I make sure the Makefile.lammps has –lgfortran for SYSLIB and has the pathway for the fortran compiler in the reax_SYSPATH variable (-L/usr/local/bin)

I change directories into …/…/src. I add the package (make yes-reax) and I compile as I have many times in the past (make mac_mpi)

I get this error:

make[1]: *** No rule to make target reax_defs.h', needed by fix_reax_bonds.o’. Stop.

I cannot find anything in the mailing list resembling this error.

IF, I start from scratch (redownload lammps), but don’t compile the reax library or use make yes-reax, I get an executable that works perfectly fine (on non-reaxff examples). Is there somewhere along the compiling process that I missed a step (or went out of order?).

Kevin Hadley

I don't have this problem with the current version, building for g++
on a Linux box.

Aidan - can you verify that you can build with the Fortran ReaxFF
on a Mac?


Something is slightly off with with how Makefile.package is updated. The
first time I run 'make yes-reax' or 'make yes-meam', Makefile.package is
created with no settings. If I issue the 'make yes-reax' again, the
correct settings are entered in Makefile.package. From there on,
everything works fine. It probably has to do with the fact that initially,
Makefile.package does not exist.


Now I see the problem - just fixed this - will be in the next patch.

Brian - just put these lines in src/Makefile:

yes-:   @if \[ \! \-e Makefile\.package \]; \\     then cp Makefile\.package\.empty Makefile\.package; fi   @if \[ \! \-e Makefile\.package\.settings \]; \\     then cp Makefile\.package\.settings\.empty Makefile\.package\.settings; fi   @if \[ \! \-e $\(YESDIR\) \]; then \\     echo "Package $\(@:yes\-=\) does not exist"; \\   else \\     echo "Installing package $\(@:yes\-=%)"; \
    cd \(YESDIR\); (SHELL) 1; cd ..; $(SHELL) 1; \