# top-level Azara makefile

# type 'make' or 'make all' to create help files and compile all programs
# type 'make help' to create help files
# (help files need to be created before code compiled)
# type 'make nongui' to compile non-graphical programs
# type 'make gui' to compile non-GL graphical programs
# type 'make gl' to compile GL programs
# type 'make clean' to remove all *.o
# type 'make realclean' to remove all *.o and all programs

all: help nongui gui gl

help: \
	help_program

nongui: \
	process_program \
	peak_program \
	extract_program \
	project_program \
	unblock_program \
	contours_program \
	combine_program \
	deflate_program \
	reflate_program \
	utility_program \
	connect_program \
	slides_program \
	components_program \
	azara_program

gui: \
	plot2_program \
	plot1_program

gl: \
	viewer_program

process_program:
	cd process; $(MAKE)

plot2_program:
	cd plot2; $(MAKE)

plot1_program:
	cd plot1; $(MAKE)

peak_program:
	cd peak; $(MAKE)

extract_program:
	cd extract; $(MAKE)

project_program:
	cd project; $(MAKE)

unblock_program:
	cd unblock; $(MAKE)

contours_program:
	cd contours; $(MAKE)

combine_program:
	cd combine; $(MAKE)

deflate_program:
	cd deflate; $(MAKE)

reflate_program:
	cd reflate; $(MAKE)

slides_program:
	cd slides; $(MAKE)

components_program:
	cd components; $(MAKE)

utility_program:
	cd utility; $(MAKE)

connect_program:
	cd connect; $(MAKE)

viewer_program:
	cd viewer; $(MAKE)

help_program:
	cd help; $(MAKE)

azara_program:
	cd azara; $(MAKE)

clean: \
	global_clean \
	process_clean \
	peak_clean \
	extract_clean \
	project_clean \
	unblock_clean \
	contours_clean \
	combine_clean \
	deflate_clean \
	reflate_clean \
	slides_clean \
	components_clean \
	utility_clean \
	connect_clean \
	help_clean \
	azara_clean \
	plot2_clean \
	plot1_clean \
	viewer_clean

global_clean:
	cd global; $(MAKE) clean

process_clean:
	cd process; $(MAKE) clean

plot2_clean:
	cd plot2; $(MAKE) clean

plot1_clean:
	cd plot1; $(MAKE) clean

peak_clean:
	cd peak; $(MAKE) clean

extract_clean:
	cd extract; $(MAKE) clean

project_clean:
	cd project; $(MAKE) clean

unblock_clean:
	cd unblock; $(MAKE) clean

contours_clean:
	cd contours; $(MAKE) clean

combine_clean:
	cd combine; $(MAKE) clean

deflate_clean:
	cd deflate; $(MAKE) clean

reflate_clean:
	cd reflate; $(MAKE) clean

slides_clean:
	cd slides; $(MAKE) clean

components_clean:
	cd components; $(MAKE) clean

utility_clean:
	cd utility; $(MAKE) clean

connect_clean:
	cd connect; $(MAKE) clean

help_clean:
	cd help; $(MAKE) clean

viewer_clean:
	cd viewer; $(MAKE) clean

azara_clean:
	cd azara; $(MAKE) clean

realclean: \
	global_realclean \
	process_realclean \
	peak_realclean \
	extract_realclean \
	project_realclean \
	unblock_realclean \
	contours_realclean \
	combine_realclean \
	deflate_realclean \
	reflate_realclean \
	slides_realclean \
	components_realclean \
	utility_realclean \
	connect_realclean \
	help_realclean \
	azara_realclean \
	plot2_realclean \
	plot1_realclean \
	viewer_realclean

global_realclean:
	cd global; $(MAKE) realclean

process_realclean:
	cd process; $(MAKE) realclean

plot2_realclean:
	cd plot2; $(MAKE) realclean

plot1_realclean:
	cd plot1; $(MAKE) realclean

peak_realclean:
	cd peak; $(MAKE) realclean

extract_realclean:
	cd extract; $(MAKE) realclean

project_realclean:
	cd project; $(MAKE) realclean

unblock_realclean:
	cd unblock; $(MAKE) realclean

contours_realclean:
	cd contours; $(MAKE) realclean

combine_realclean:
	cd combine; $(MAKE) realclean

deflate_realclean:
	cd deflate; $(MAKE) realclean

reflate_realclean:
	cd reflate; $(MAKE) realclean

slides_realclean:
	cd slides; $(MAKE) realclean

components_realclean:
	cd components; $(MAKE) realclean

utility_realclean:
	cd utility; $(MAKE) realclean

connect_realclean:
	cd connect; $(MAKE) realclean

help_realclean:
	cd help; $(MAKE) realclean

viewer_realclean:
	cd viewer; $(MAKE) realclean

azara_realclean:
	cd azara; $(MAKE) realclean
