#
#	This is Main Makefile for mrcImageSpatialFrequencyFilter.
#
#		Created by template v2.0.2p0050
#

#### Root Makefile ####
MAKE_ROOT=mrcImageSpatialFrequencyFilter
TOOLS_CLASS=mrcImage
TOOLS_COMMAND=$(MAKE_ROOT)
OBJECTS_GROUP=DataManip
OBJECTS_CLASS=mrcImage
OBJECTS_COMMAND=l$(MAKE_ROOT)

#### Input extention ####
INI=mrc
FIL=txt
OUT=mrcout

#### Suffixes rule ####
# Defined at Sub
.SUFFIXES: .$(OUT)

#### INCLUDE ####
# Help-include-file must always be put on top.
-include ${EOS_HOME}/tutorial/TIPS/Help/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/Debugger/Makefile/Makefile-lib
-include Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/Projection3DImage/Makefile/Makefile-lib
-include ${EOS_HOME}/tutorial/TIPS/FFTExpression/Makefile/Makefile-lib

#### Definition ####
# Path of Input File
# Basically, use a linked data from /SampleData.
INPUT_PATH=${EOS_HOME}/tutorial/SampleData/1VOM-N.mrc
FILTER_PATH=${EOS_HOME}/tutorial/SampleData/1VOM-N.FNC

### FileData
FILE_NAME=Input

### For FilterFile
# delta R
FIL_R_NUM=10
FIL_R_MIN=0
FIL_R_MAX=1
FIL_EX=11
FIL_SCALE=6

### For mrcImageSpatialFrequencyFilter
# -filterCol
FIL_COL_R=1
FIL_COL_W=17
# -H
FIL_H=
# -L
FIL_L=

#### Rules of the list created ####
# Defined at Sub

##### Commands #####
# Defined at Sub basically
# By make Initial, Create input data for this command.
Initial::
	make InitialData;
	make FilterData;

Initial2::
	make InitialData;
	make FilterData2;

Initial3::
	make InitialData;
	make FilterData3;
	
Initial4::
	make InitialData;
	make FilterData4;

# By make Exe, Execute the sample of this command.
Exe::
	$(RM) $(FILE_NAME).$(OUT);
	make $(FILE_NAME).$(OUT);

# By make Final, Make visualize Output for this command.
Final::
	export PRJ_FILE_NAME=$(FILE_NAME); \
	export IN_PRJ=$(OUT); \
	export OUT_PRJ=$(OUT).tiff; \
	make Projection3DImage; \
	export IN_PRJ=$(INI); \
	export OUT_PRJ=.tiff; \
	make Projection3DImage;
	export FFTEX_FILE_NAME=$(FILE_NAME); \
	export IN_FFTEX=$(OUT); \
	export FFTEX=$(OUT).fft; \
	export OUT_FFTEX=$(OUT)fft.tiff; \
	make FFTExpression; \
	export IN_FFTEX=$(INI); \
	export FFTEX=fft; \
	export OUT_FFTEX=fft.tiff; \
	make FFTExpression;

# By make all, Initial -> Exe -> Final.
all::
	make Initial;
	make Exe;
	make Final;

all2::
	make Initial2;
	make Exe;
	make Final;

all3::
	make Initial3;
	make Exe;
	make Final;

all4::
	make Initial4;
	make Exe;
	make Final;

SetOption::
	@Option= ; \
	if [ ! -z $(FIL_COL_R) -a ! -z $(FIL_COL_W) ] ; then \
		Option="$${Option} -filterCol $(FIL_COL_R) $(FIL_COL_W)"; \
	fi; \
	if [ ! -z $(FIL_H) ] ; then \
		Option="$${Option} -H $(FIL_H)"; \
	fi; \
	if [ ! -z $(FIL_L) ] ; then \
		Option="$${Option} -L $(FIL_L)"; \
	fi; \
	echo "$${Option}";

help_mrcImageSpatialFrequencyFilter::
	@echo
	@echo "Makefile for mrcImageSpatialFrequencyFilter"
	@echo "This is Main Makefile for mrcImageSpatialFrequencyFilter."
	@echo
	@echo "	(Command):"
	@echo "		Initial:		Create input data for this command."
	@echo "						 and filter file: from FILTER_PATH (-filterCol 1 17)"
	@echo
	@echo "		Initial2:		Create input data for this command."
	@echo "						 and filter file: W = (0 or 1) by R and Rows"
	@echo
	@echo "		Initial3:		Create input data for this command."
	@echo "						 and filter file: W = (1 - R)^Rows"
	@echo
	@echo "		Initial4:		Create input data for this command."
	@echo "						 and filter file: W = 1 - R^Rows"
	@echo
	@echo "		Exe:			Execute the sample of this command."
	@echo
	@echo "		Final:			Make visualize Output for this command."
	@echo
	@echo "		all:			Initial -> Exe -> Final."
	@echo "		all2:			Initial2 -> Exe -> Final."
	@echo "		all3:			Initial3 -> Exe -> Final."
	@echo "		all4:			Initial4 -> Exe -> Final."
	@echo
	@echo "	(Setting Data):"
	@echo "		FILE_NAME:		filename of input"
	@echo "		INI:			input extention for Initial"
	@echo "		INPUT_PATH:		file path to link to original input data."
	@echo "		FILTER_PATH:		file path to link to original filter data.(for Initial)"
	@echo
	@echo "		(For Initial2, Initial3, Initial4):"
	@echo "		FIL_R_NUM:		Division number of R for input file."
	@echo "		FIL_R_MIN:		Minimum number of R for input file."
	@echo "		FIL_R_MAX:		Maximum number of R for input file."
	@echo "		FIL_EX:			Number of Rows for weight in filter file."
	@echo
	@echo " (Note): 1st row in filter file is written as R by these Initial Commands."
	@echo "		And, other rows are written as Weight."
	@echo "		So, use like \"-filterCol 1 n\" on Exe."
	@echo

##### Commands(Input to Output) #####
# Defined at Sub
ifdef INI
ifdef OUT
.$(INI).$(OUT):
	Option=$$(make SetOption); \
	mrcImageSpatialFrequencyFilter -i $*.$(INI) -filter $*.$(FIL) -o $*.$(OUT) $$Option;
endif #INI
endif #OUT
