include ../config.make

HELPFILES  = alias ask character do echo erract functions \
             goto help if intrinsics label macro parameter path print \
             quit set subroutine type var variable \
             append_expected_peaks append_log assignment_statistics \
             assignments calculate_frequencies check_inconsistencies \
             close_log coherences compare_frequencies compare_peak_assignments \
             copyto_possible_assignments criteria_coherence_degenerated \
             criteria_coherence_interdegen criteria_coherence_intradegen \
             criteria_coherence_mapping criteria_coherence_overlap \
             criteria_coherence_template criteria_comment_off \
             criteria_comment_on criteria_fragment_SScorrect \
             criteria_fragment_correct criteria_fragment_intrainter \
             criteria_fragment_mapping criteria_fragment_overlap \
             criteria_fragment_template criteria_threshold \
             define_frequency_tolerance define_peak_importance \
             define_pseudoatom_correction determine_equivalent_peaks \
             define_secondary_shifts evolutionary_optimization \
             filter filter_define filter_add \
             floating_assignments fragment_library \
             initialize_optimization_possibilities \
             list_atoms list_expected_peaks list_missing_peaks list_peaks \
             load_assignments load_atom_name_library \
             load_comparison_assignments \
             load_comparison_sequence load_comparison_coordinates \
             load_coordinates load_fragment_library \
             load_frequencies load_peaks load_reference_peaks load_sequence \
             load_spin_system_library \
             local_optimization \
             make_coherences make_couplings make_distance_noe make_noe \
             make_peaks make_possible_assignments mark_possible_peaks \
             match overwrite_optimization_possibility \
             report_calculate report_coherences report_fragments report_global \
             reset_assigned_frequencies reset_assignments \
             reset_possible_assignments reset_user_assignments \
             seed_random_numbers spectra_types spectra_variables spectrum \
             syntax undocumented unfold_peaks write_assigned_peaks \
             write_coherences write_expected_peaks write_log \
             write_peaks write_reference_peaks write_possible_assignments

HELPLINKS  = break exit return error eval show command
HELPMACROS = ../macro/C13H1.gar             ../macro/N15NOESY.gar \
             ../macro/C13NOED2O.gar \
             ../macro/C13NOESY.gar          ../macro/N15TOCSY.gar \
             ../macro/CBCACONH.gar          ../macro/NOESY.gar \
             ../macro/CBCANH.gar            ../macro/TOCSY.gar \
             ../macro/CCH.gar               ../macro/ExampleResAss1.gar \
             ../macro/ExampleResAss2.gar    ../macro/ExampleResAss3.gar \
             ../macro/ExampleMatch.gar      ../macro/ExampleFilter.gar \
             ../macro/COSY.gar              ../macro/appNoes.gar \
             ../macro/D2OCOSY.gar           ../macro/appPeaks.gar \
             ../macro/D2ONOESY.gar          ../macro/asno.gar \
             ../macro/D2OTOCSY.gar          ../macro/defaultreport.gar \
             ../macro/HBHACONH.gar          ../macro/compare.gar \
             ../macro/HCACO.gar             ../macro/genNoes.gar \
             ../macro/HCA_CO_N.gar          ../macro/genPeaks.gar \
             ../macro/HCCH24.gar            ../macro/init.gar \
             ../macro/HCCH7.gar             ../macro/opt.gar \
             ../macro/HNCA.gar              ../macro/peaklist.gar \
             ../macro/HNCO.gar              ../macro/pseudocorrection.gar \
             ../macro/HN_CO_CA.gar          ../macro/writebest.gar \
             ../macro/N15H1.gar             ../macro/HNHB.gar

all: topics $(HELPLINKS)

topics: $(HELPFILES) $(HELPMACROS)
	for i in $(HELPFILES) $(HELPMACROS); do \
	  sed -n -e 's/\#\# //' -e '/ - /p' -e 1q $$i; \
	done | sort -u > topics

break:      quit; ln -s quit $@
exit:       quit; ln -s quit $@
return:     quit; ln -s quit $@
error:      print; ln -s print $@
eval:       set; ln -s set $@
show:       set; ln -s set $@
command:    subroutine; ln -s subroutine $@

purge:
	rm -f *% *.o core *.trace 

clean: purge
	rm -f topics $(HELPLINKS)
