# Run Simulated Tempering tests for orac

# ----------------------------------------------------------------------
#  user serviceable
# ----------------------------------------------------------------------

# ORAC root
O_ROOT =$(realpath ../..)

# Number of processors in parallel run:
NP = 4

# Directory to store the ouput (make store_all , make store_serial_tests , make store_parallel_tests)
OUT_DIR = OUT

# Set directories for differences (make diff)
REF_DIR = REF_OUT
TARGET_DIR = OUT

# Define here the executable for serial
O_BIN = INTEL-FFTW-OMP/orac

# Define here the executable for parallel
O_BIN_P = INTEL-FFTW-OMP-MPI/orac

# sources dir
O_SRC = $(O_ROOT)/src
ORAC = $(O_SRC)/$(O_BIN)
ORAC_P = $(O_SRC)/$(O_BIN_P)

# change line below according to your MPI package 
# (a) MPICH2, conforms to MPI-2 recommendation
MPIRUN = mpiexec -n

# (b) OpenMPI
#MPIRUN = mpirun -nd

# ------------------------------------------------------------------------


TEMP_FILES = *~ OUT

# output test directories
T1_S = test1_s
T1.1_S = test1.1_s
T2_S = test2_s
T2.1_S = test2.1_s
T3_S = test3_s
T3.1_S = test3.1_s
T4_S = test4_s
T4.1_S = test4.1_s
T1_P = test1_p
T1.1_P = test1.1_p
T2_P = test2_p
T2.1_P = test2.1_p
T3_P = test3_p
T3.1_P = test3.1_p
T4_P = test4_p
T4.1_P = test4.1_p
T4.2_P = test4.2_p
T5_P = test5_p
T6_P = test6_p
T7_P = test7_p
T8_P = test8_p

OUT_S = test1_s.out test2_s.out test3_s.out test4_s.out test1.1_s.out test2.1_s.out test3.1_s.out test4.1_s.out
OUT_P = test1_p.out test2_p.out test3_p.out test4_p.out test5_p.out test6_p.out test1.1_p.out test2.1_p.out test3.1_p.out test4.1_p.out test4.2_p.out test7_p.out test8_p.out

all: serial_tests1 parallel_tests1
	echo ; \
        echo "Type 'make diff' to see the differences between your tests and the reference tests stored into" $(REF_DIR)

# store output of all (serial+parallel) tests into output directory
store_all: store_serial_tests store_parallel_tests

# store output of serial tests into output directory
store_serial_tests:
	mkdir $(OUT_DIR) ; \
        cp $(OUT_S) $(OUT_DIR) ; \
        echo "Serial tests have been stored in the directory" $(OUT_DIR)

# store output of parallel tests into output directory
store_parallel_tests:
	mkdir $(OUT_DIR) ; \
        cp $(OUT_P) $(OUT_DIR) ; \
        echo "Parallel tests have been stored in the directory" $(OUT_DIR)

serial_tests: $(OUT_S) store_serial_tests
	echo ; \
        echo "Type 'make diff' to see the differences between your tests and the reference tests stored into" $(REF_DIR)

parallel_tests: $(OUT_P) store_parallel_tests
	echo ; \
        echo "Type 'make diff' to see the differences between your tests and the reference tests stored into" $(REF_DIR)

serial_tests1: $(OUT_S) store_serial_tests

parallel_tests1: $(OUT_P) store_parallel_tests

# SERIAL tests

test1_s.out: $(ORAC)
	echo "Running test1_s.out ..." ; \
        mkdir $(T1_S) ; \
        cd $(T1_S) ; \
        $(ORAC) < ../test1_s.in > ../test1_s.output ; \
        cd .. ; \
        head -n200 test1_s/SGE_ENERGY > test1_s.out ; \
        tail -n200 test1_s/SGE_ENERGY >> test1_s.out ; \
        head -n200 test1_s/SGE_WHAM >> test1_s.out ; \
        tail -n200 test1_s/SGE_WHAM >> test1_s.out ; \
        cat test1_s/SGE_DF >> test1_s.out ; \
        cat test1_s/SGE_HISTOG >> test1_s.out ; \

test2_s.out: test1_s.out $(ORAC)
	echo "Running test2_s.out ..." ; \
	mkdir $(T2_S) ; \
        cd $(T2_S) ; \
        ln -s ../$(T1_S)/run_1.rst . ; \
        ln -s ../$(T1_S)/di-alanine.tpgprm . ; \
        ln -s ../$(T1_S)/SGE.set . ; \
        $(ORAC) < ../test2_s.in > ../test2_s.output ; \
        cd .. ; \
        head -n200 test2_s/SGE_ENERGY > test2_s.out ; \
        tail -n200 test2_s/SGE_ENERGY >> test2_s.out ; \
        head -n200 test2_s/SGE_WHAM >> test2_s.out ; \
        tail -n200 test2_s/SGE_WHAM >> test2_s.out ; \
        cat test2_s/SGE_DF >> test2_s.out ; \
        cat test2_s/SGE_HISTOG >> test2_s.out ; \

test3_s.out: $(ORAC)
	echo "Running test3_s.out ..." ; \
	mkdir $(T3_S) ; \
        cd $(T3_S) ; \
        $(ORAC) < ../test3_s.in > ../test3_s.output ; \
        cd .. ; \
        head -n200 test3_s/SGE_ENERGY > test3_s.out ; \
        tail -n200 test3_s/SGE_ENERGY >> test3_s.out ; \
        head -n200 test3_s/SGE_WHAM >> test3_s.out ; \
        tail -n200 test3_s/SGE_WHAM >> test3_s.out ; \
        cat test3_s/SGE_DF >> test3_s.out ; \
        cat test3_s/SGE_HISTOG >> test3_s.out ; \

test4_s.out: test3_s.out $(ORAC)
	echo "Running test4_s.out ..." ; \
	mkdir $(T4_S) ; \
        cd $(T4_S) ; \
        ln -s ../$(T3_S)/deca-alanine_1.rst . ; \
        ln -s ../$(T3_S)/deca-alanine.prmtpg . ; \
        ln -s ../$(T3_S)/SGE.set . ; \
        $(ORAC) < ../test4_s.in > ../test4_s.output ; \
        cd .. ; \
        head -n200 test4_s/SGE_ENERGY > test4_s.out ; \
        tail -n200 test4_s/SGE_ENERGY >> test4_s.out ; \
        head -n200 test4_s/SGE_WHAM >> test4_s.out ; \
        tail -n200 test4_s/SGE_WHAM >> test4_s.out ; \
        cat test4_s/SGE_DF >> test4_s.out ; \
        cat test4_s/SGE_HISTOG >> test4_s.out ; \

test1.1_s.out: $(ORAC)
	echo "Running test1.1_s.out ..." ; \
	mkdir $(T1.1_S) ; \
        cd $(T1.1_S) ; \
        echo 2 > SGE_DF_FLY.set ; \
        $(ORAC) < ../test1_s.in > ../test1.1_s.output ; \
        cd .. ; \
        head -n200 test1.1_s/SGE_ENERGY > test1.1_s.out ; \
        tail -n200 test1.1_s/SGE_ENERGY >> test1.1_s.out ; \
        head -n200 test1.1_s/SGE_WHAM >> test1.1_s.out ; \
        tail -n200 test1.1_s/SGE_WHAM >> test1.1_s.out ; \
        cat test1.1_s/SGE_DF >> test1.1_s.out ; \
        cat test1.1_s/SGE_HISTOG >> test1.1_s.out ; \

test2.1_s.out: test1.1_s.out $(ORAC)
	echo "Running test2.1_s.out ..." ; \
	mkdir $(T2.1_S) ; \
        cd $(T2.1_S) ; \
        ln -s ../$(T1.1_S)/run_1.rst . ; \
        ln -s ../$(T1.1_S)/di-alanine.tpgprm . ; \
        ln -s ../$(T1.1_S)/SGE.set . ; \
        ln -s ../$(T1.1_S)/SGE_DF_FLY.set . ; \
        cp    ../$(T1.1_S)/SGE_DF_FLY.dat . ; \
        $(ORAC) < ../test2_s.in > ../test2.1_s.output ; \
        cd .. ; \
        head -n200 test2.1_s/SGE_ENERGY > test2.1_s.out ; \
        tail -n200 test2.1_s/SGE_ENERGY >> test2.1_s.out ; \
        head -n200 test2.1_s/SGE_WHAM >> test2.1_s.out ; \
        tail -n200 test2.1_s/SGE_WHAM >> test2.1_s.out ; \
        cat test2.1_s/SGE_DF >> test2.1_s.out ; \
        cat test2.1_s/SGE_HISTOG >> test2.1_s.out ; \

test3.1_s.out: $(ORAC)
	echo "Running test3.1_s.out ..." ; \
	mkdir $(T3.1_S) ; \
        cd $(T3.1_S) ; \
        echo 4 > SGE_DF_FLY.set ; \
        $(ORAC) < ../test3_s.in > ../test3.1_s.output ; \
        cd .. ; \
        head -n200 test3.1_s/SGE_ENERGY > test3.1_s.out ; \
        tail -n200 test3.1_s/SGE_ENERGY >> test3.1_s.out ; \
        head -n200 test3.1_s/SGE_WHAM >> test3.1_s.out ; \
        tail -n200 test3.1_s/SGE_WHAM >> test3.1_s.out ; \
        cat test3.1_s/SGE_DF >> test3.1_s.out ; \
        cat test3.1_s/SGE_HISTOG >> test3.1_s.out ; \

test4.1_s.out: test3.1_s.out $(ORAC)
	echo "Running test4.1_s.out ..." ; \
	mkdir $(T4.1_S) ; \
        cd $(T4.1_S) ; \
        ln -s ../$(T3.1_S)/deca-alanine_1.rst . ; \
        ln -s ../$(T3.1_S)/deca-alanine.prmtpg . ; \
        ln -s ../$(T3.1_S)/SGE.set . ; \
        ln -s ../$(T3.1_S)/SGE_DF_FLY.set . ; \
        cp    ../$(T3.1_S)/SGE_DF_FLY.dat . ; \
        $(ORAC) < ../test4_s.in > ../test4.1_s.output ; \
        cd .. ; \
        head -n200 test4.1_s/SGE_ENERGY > test4.1_s.out ; \
        tail -n200 test4.1_s/SGE_ENERGY >> test4.1_s.out ; \
        head -n200 test4.1_s/SGE_WHAM >> test4.1_s.out ; \
        tail -n200 test4.1_s/SGE_WHAM >> test4.1_s.out ; \
        cat test4.1_s/SGE_DF >> test4.1_s.out ; \
        cat test4.1_s/SGE_HISTOG >> test4.1_s.out ; \

# PARALLEL tests

test1_p.out: $(ORAC_P)
	echo "Running test1_p.out ..." ; \
	mkdir $(T1_P) ; \
        cd $(T1_P) ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test1_p.in > ../test1_p.output ; \
        cd .. ; \
        head -n150 test1_p/PAR*/SGE_ENERGY > test1_p.out ; \
        tail -n150 test1_p/PAR*/SGE_ENERGY >> test1_p.out ; \
        head -n150 test1_p/PAR*/SGE_WHAM >> test1_p.out ; \
        tail -n150 test1_p/PAR*/SGE_WHAM >> test1_p.out ; \
        cat test1_p/PAR0001/SGE_DF >> test1_p.out ; \
        cat test1_p/PAR0001/SGE_HISTOG >> test1_p.out ; \

test2_p.out: test1_p.out $(ORAC_P)
	echo "Running test2_p.out ..." ; \
	mkdir $(T2_P) ; \
        cd $(T2_P) ; \
        cp -r ../$(T1_P)/PAR* . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test2_p.in > ../test2_p.output ; \
        cd .. ; \
        head -n150 test2_p/PAR*/SGE_ENERGY > test2_p.out ; \
        tail -n150 test2_p/PAR*/SGE_ENERGY >> test2_p.out ; \
        head -n150 test2_p/PAR*/SGE_WHAM >> test2_p.out ; \
        tail -n150 test2_p/PAR*/SGE_WHAM >> test2_p.out ; \
        cat test2_p/PAR0001/SGE_DF >> test2_p.out ; \
        cat test2_p/PAR0001/SGE_HISTOG >> test2_p.out ; \

test3_p.out: $(ORAC_P)
	echo "Running test3_p.out ..." ; \
	mkdir $(T3_P) ; \
        cd $(T3_P) ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test3_p.in > ../test3_p.output ; \
        cd .. ; \
        head -n150 test3_p/PAR*/SGE_ENERGY > test3_p.out ; \
        tail -n150 test3_p/PAR*/SGE_ENERGY >> test3_p.out ; \
        head -n150 test3_p/PAR*/SGE_WHAM >> test3_p.out ; \
        tail -n150 test3_p/PAR*/SGE_WHAM >> test3_p.out ; \
        cat test3_p/PAR0001/SGE_DF >> test3_p.out ; \
        cat test3_p/PAR0001/SGE_HISTOG >> test3_p.out ; \

test4_p.out: test3_p.out $(ORAC_P)
	echo "Running test4_p.out ..." ; \
	mkdir $(T4_P) ; \
        cd $(T4_P) ; \
        cp -r ../$(T3_P)/PAR* . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test4_p.in > ../test4_p.output ; \
        cd .. ; \
        head -n150 test4_p/PAR*/SGE_ENERGY > test4_p.out ; \
        tail -n150 test4_p/PAR*/SGE_ENERGY >> test4_p.out ; \
        head -n150 test4_p/PAR*/SGE_WHAM >> test4_p.out ; \
        tail -n150 test4_p/PAR*/SGE_WHAM >> test4_p.out ; \
        cat test4_p/PAR0001/SGE_DF >> test4_p.out ; \
        cat test4_p/PAR0001/SGE_HISTOG >> test4_p.out ; \

test1.1_p.out: $(ORAC_P)
	echo "Running test1.1_p.out ..." ; \
	mkdir $(T1.1_P) ; \
        cd $(T1.1_P) ; \
        echo 2 > SGE_DF_FLY.set ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test1_p.in > ../test1.1_p.output ; \
        cd .. ; \
        head -n150 test1.1_p/PAR*/SGE_ENERGY > test1.1_p.out ; \
        tail -n150 test1.1_p/PAR*/SGE_ENERGY >> test1.1_p.out ; \
        head -n150 test1.1_p/PAR*/SGE_WHAM >> test1.1_p.out ; \
        tail -n150 test1.1_p/PAR*/SGE_WHAM >> test1.1_p.out ; \
        cat test1.1_p/PAR0001/SGE_DF >> test1.1_p.out ; \
        cat test1.1_p/PAR0001/SGE_HISTOG >> test1.1_p.out ; \

test2.1_p.out: test1.1_p.out $(ORAC_P)
	echo "Running test2.1_p.out ..." ; \
	mkdir $(T2.1_P) ; \
        cd $(T2.1_P) ; \
        cp -r ../$(T1.1_P)/PAR* . ; \
        ln -s ../$(T1.1_P)/SGE_DF_FLY.set . ; \
        cp    ../$(T1.1_P)/SGE_DF_FLY.dat . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test2_p.in > ../test2.1_p.output ; \
        cd .. ; \
        head -n150 test2.1_p/PAR*/SGE_ENERGY > test2.1_p.out ; \
        tail -n150 test2.1_p/PAR*/SGE_ENERGY >> test2.1_p.out ; \
        head -n150 test2.1_p/PAR*/SGE_WHAM >> test2.1_p.out ; \
        tail -n150 test2.1_p/PAR*/SGE_WHAM >> test2.1_p.out ; \
        cat test2.1_p/PAR0001/SGE_DF >> test2.1_p.out ; \
        cat test2.1_p/PAR0001/SGE_HISTOG >> test2.1_p.out ; \

test3.1_p.out: $(ORAC_P)
	echo "Running test3.1_p.out ..." ; \
	mkdir $(T3.1_P) ; \
        cd $(T3.1_P) ; \
        echo 4 > SGE_DF_FLY.set ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test3_p.in > ../test3.1_p.output ; \
        cd .. ; \
        head -n150 test3.1_p/PAR*/SGE_ENERGY > test3.1_p.out ; \
        tail -n150 test3.1_p/PAR*/SGE_ENERGY >> test3.1_p.out ; \
        head -n150 test3.1_p/PAR*/SGE_WHAM >> test3.1_p.out ; \
        tail -n150 test3.1_p/PAR*/SGE_WHAM >> test3.1_p.out ; \
        cat test3.1_p/PAR0001/SGE_DF >> test3.1_p.out ; \
        cat test3.1_p/PAR0001/SGE_HISTOG >> test3.1_p.out ; \

test4.1_p.out: test3.1_p.out $(ORAC_P)
	echo "Running test4.1_p.out ..." ; \
	mkdir $(T4.1_P) ; \
        cd $(T4.1_P) ; \
        cp -r ../$(T3.1_P)/PAR* . ; \
        ln -s ../$(T3.1_P)/SGE_DF_FLY.set . ; \
        cp    ../$(T3.1_P)/SGE_DF_FLY.dat . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test4_p.in > ../test4.1_p.output ; \
        cd .. ; \
        head -n150 test4.1_p/PAR*/SGE_ENERGY > test4.1_p.out ; \
        tail -n150 test4.1_p/PAR*/SGE_ENERGY >> test4.1_p.out ; \
        head -n150 test4.1_p/PAR*/SGE_WHAM >> test4.1_p.out ; \
        tail -n150 test4.1_p/PAR*/SGE_WHAM >> test4.1_p.out ; \
        cat test4.1_p/PAR0001/SGE_DF >> test4.1_p.out ; \
        cat test4.1_p/PAR0001/SGE_HISTOG >> test4.1_p.out ; \

test4.2_p.out: test3_p.out $(ORAC_P)
	echo "Running test4.2_p.out ..." ; \
	mkdir $(T4.2_P) ; \
        cd $(T4.2_P) ; \
        cp -r ../$(T3_P)/PAR* . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test4.2_p.in > ../test4.2_p.output ; \
        cd .. ; \
        head -n150 test4.2_p/PAR*/SGE_ENERGY > test4.2_p.out ; \
        tail -n150 test4.2_p/PAR*/SGE_ENERGY >> test4.2_p.out ; \
        head -n150 test4.2_p/PAR*/SGE_WHAM >> test4.2_p.out ; \
        tail -n150 test4.2_p/PAR*/SGE_WHAM >> test4.2_p.out ; \
        cat test4.2_p/PAR0001/SGE_DF >> test4.2_p.out ; \
        cat test4.2_p/PAR0001/SGE_HISTOG >> test4.2_p.out ; \

test5_p.out: $(ORAC_P)
	echo "Running test5_p.out ..." ; \
	mkdir $(T5_P) ; \
        cp SUPPLEMENTARY_FILES/fixed_df.set $(T5_P) ; \
        cd $(T5_P) ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test5_p.in > ../test5_p.output ; \
        cd .. ; \
        head -n150 test5_p/PAR*/SGE_ENERGY > test5_p.out ; \
        tail -n150 test5_p/PAR*/SGE_ENERGY >> test5_p.out ; \
        head -n150 test5_p/PAR*/SGE_WHAM >> test5_p.out ; \
        tail -n150 test5_p/PAR*/SGE_WHAM >> test5_p.out ; \
        cat test5_p/PAR0001/SGE_DF >> test5_p.out ; \
        cat test5_p/PAR0001/SGE_HISTOG >> test5_p.out ; \

test6_p.out: test5_p.out $(ORAC_P)
	echo "Running test6_p.out ..." ; \
	mkdir $(T6_P) ; \
        cp SUPPLEMENTARY_FILES/fixed_df.set $(T6_P) ; \
        cd $(T6_P) ; \
        cp -r ../$(T5_P)/PAR* . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test6_p.in > ../test6_p.output ; \
        cd .. ; \
        head -n150 test6_p/PAR*/SGE_ENERGY > test6_p.out ; \
        tail -n150 test6_p/PAR*/SGE_ENERGY >> test6_p.out ; \
        head -n150 test6_p/PAR*/SGE_WHAM >> test6_p.out ; \
        tail -n150 test6_p/PAR*/SGE_WHAM >> test6_p.out ; \
        cat test6_p/PAR0001/SGE_DF >> test6_p.out ; \
        cat test6_p/PAR0001/SGE_HISTOG >> test6_p.out ; \

test7_p.out: $(ORAC_P)
	echo "Running test7_p.out ..." ; \
	mkdir $(T7_P) ; \
        cd $(T7_P) ; \
        ln -s ../SUPPLEMENTARY_FILES/SGE.set . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test7_p.in > ../test7_p.output ; \
        cd .. ; \
        head -n150 test7_p/PAR*/SGE_ENERGY > test7_p.out ; \
        tail -n150 test7_p/PAR*/SGE_ENERGY >> test7_p.out ; \
        head -n150 test7_p/PAR*/SGE_WHAM >> test7_p.out ; \
        tail -n150 test7_p/PAR*/SGE_WHAM >> test7_p.out ; \
        cat test7_p/PAR0001/SGE_DF >> test7_p.out ; \
        cat test7_p/PAR0001/SGE_HISTOG >> test7_p.out ; \

test8_p.out: test7_p.out $(ORAC_P)
	echo "Running test8_p.out ..." ; \
	mkdir $(T8_P) ; \
        cd $(T8_P) ; \
        cp -r ../$(T7_P)/PAR* . ; \
        $(MPIRUN) $(NP) $(ORAC_P) < ../test8_p.in > ../test8_p.output ; \
        cd .. ; \
        head -n150 test8_p/PAR*/SGE_ENERGY > test8_p.out ; \
        tail -n150 test8_p/PAR*/SGE_ENERGY >> test8_p.out ; \
        head -n150 test8_p/PAR*/SGE_WHAM >> test8_p.out ; \
        tail -n150 test8_p/PAR*/SGE_WHAM >> test8_p.out ; \
        cat test8_p/PAR0001/SGE_DF >> test8_p.out ; \
        cat test8_p/PAR0001/SGE_HISTOG >> test8_p.out ; \

# view differences 
diff:
	diff -r -s $(REF_DIR) $(TARGET_DIR)


$(ORAC) $(ORAC_P): config.H
	@ echo "-------------------------------------------------------------------------"
	@ echo "WARNING: the ORAC executable ("$@") is missing or outdated"
	@ echo "Make sure you created it in the src directory, using config.H in this dir"
	@ echo "Hints:"
	@ echo "  (a) check the name and path of ORAC or ORAC_P at the top of ./Makefile"
	@ echo "  (b) compare the copy of 'config.H' in this directory "
	@ echo "      to the one in "$(O_SRC)", and if they differ do:"
	@ echo "         cp ./config.H "$(O_SRC)
	@ echo "         cd "$(O_SRC)"; make <TARGET>"
	@ echo "-------------------------------------------------------------------------"


# service 

# clean-up test directories and files
clean: clean_test_s clean_test_p
	-rm -rf *# $(TEMP_FILES)

clean_test_s: \
    clean_test1_s \
    clean_test2_s \
    clean_test3_s \
    clean_test4_s \
    clean_test1.1_s \
    clean_test2.1_s \
    clean_test3.1_s \
    clean_test4.1_s

clean_test_p: \
    clean_test1_p \
    clean_test2_p \
    clean_test3_p \
    clean_test4_p \
    clean_test1.1_p \
    clean_test2.1_p \
    clean_test3.1_p \
    clean_test4.1_p \
    clean_test4.2_p \
    clean_test5_p \
    clean_test6_p \
    clean_test7_p \
    clean_test8_p

clean_test1_s:
	rm -rf $(T1_S) $(T1_S).out $(T1_S).output

clean_test2_s:
	rm -rf $(T2_S) $(T2_S).out $(T2_S).output

clean_test3_s:
	rm -rf $(T3_S) $(T3_S).out $(T3_S).output

clean_test4_s:
	rm -rf $(T4_S) $(T4_S).out $(T4_S).output

clean_test1.1_s:
	rm -rf $(T1.1_S) $(T1.1_S).out $(T1.1_S).output

clean_test2.1_s:
	rm -rf $(T2.1_S) $(T2.1_S).out $(T2.1_S).output

clean_test3.1_s:
	rm -rf $(T3.1_S) $(T3.1_S).out $(T3.1_S).output

clean_test4.1_s:
	rm -rf $(T4.1_S) $(T4.1_S).out $(T4.1_S).output

clean_test1_p:
	rm -rf $(T1_P) $(T1_P).out $(T1_P).output

clean_test2_p:
	rm -rf $(T2_P) $(T2_P).out $(T2_P).output

clean_test3_p:
	rm -rf $(T3_P) $(T3_P).out $(T3_P).output

clean_test4_p:
	rm -rf $(T4_P) $(T4_P).out $(T4_P).output

clean_test1.1_p:
	rm -rf $(T1.1_P) $(T1.1_P).out $(T1.1_P).output

clean_test2.1_p:
	rm -rf $(T2.1_P) $(T2.1_P).out $(T2.1_P).output

clean_test3.1_p:
	rm -rf $(T3.1_P) $(T3.1_P).out $(T3.1_P).output

clean_test4.1_p:
	rm -rf $(T4.1_P) $(T4.1_P).out $(T4.1_P).output

clean_test4.2_p:
	rm -rf $(T4.2_P) $(T4.2_P).out $(T4.2_P).output

clean_test5_p:
	rm -rf $(T5_P) $(T5_P).out $(T5_P).output

clean_test6_p:
	rm -rf $(T6_P) $(T6_P).out $(T6_P).output

clean_test7_p:
	rm -rf $(T7_P) $(T7_P).out $(T7_P).output

clean_test8_p:
	rm -rf $(T8_P) $(T8_P).out $(T8_P).output

realclean: clean

distclean: clean
