#define BASEDIR ../../..
#include "../../../include/cake/SEP.clop.defs"
#include <SEP.defs>

#define FIGLIST mo

$#define MOVEOUT Stretch
#define MOVEOUT Nmo

$ define objects to be added to the global library
#define LIBSOURCE fopmo fopmap 
$  fopstretch

$ programs to be built
#define PROGLIST Nmo Dottest Stretch

$ we extract only the mapping function out of another chapter
Apply&:  fopnmo.Apply fopmoweight.Apply fopmomapping.Apply

fopmomapping.Apply: 
        @C++Extract <fopmo.cc \"float fopmo::mapping\" >fopmomapping.Apply

fopmoweight.Apply: 
        @C++Extract <fopmo.cc \"float fopmo::weight\" >fopmoweight.Apply

fopnmo.Apply: ../../moveout/nmo/fopnmo.cc
        @C++Extract <../../moveout/nmo/fopnmo.cc \"float fopnmo::mapping\" >fopnmo.Apply

$ test to run in this directory
FIGDIR/mo.v : FIGDIR/mo.v3
	Wiggle <nmoin.H out=junk1.v title="oringinal">/dev/null
	Wiggle <nmoout.H out=junk2.v title="moved out">/dev/null
	vp_SideBySideAniso junk1.v junk2.v >FIGDIR/mo.v
	
FIGDIR/mo.v3 : nmoin.H nmoout.H
	Merge axis=3 space=no nmoin.H nmoout.H | Wiggle out=FIGDIR/mo.v3 title="before+after moveout" >/dev/null
	
nmoout.H: BINDIR/MOVEOUT nmoin.H
	BINDIR/MOVEOUT <nmoin.H vel=1.5 adj=0 >nmoout.H

nmoin.H: if not exist nmoin.H
	Spike n1=100 k1=20,80 n2=20 d2=.025 d3=1 nsp=2 label1=Time label2=Offset >nmoin.H

#define StretchOBJS OBJDIR/Stretch.o 
BINDIR/Stretch : StretchOBJS
	CPPLINK(StretchOBJS,a.out)
	CPPINST(BINDIR/Stretch)

#define NmoOBJS OBJDIR/Nmo.o 
BINDIR/Nmo : NmoOBJS
	CPPLINK(NmoOBJS,a.out)
	CPPINST(BINDIR/Nmo)

BINDIR/Dottest : OBJDIR/Dottest.o
	CPPLINK(OBJDIR/Dottest.o,a.out)
	CPPINST(MTYPE/Dottest)

clean&: texclean clopclean jclean

#include <SEP.idoc.rules>
#include <SEP.obj.rules>
#include "../../../include/cake/SEP.clop.rules"
