CFLAGS = -I/usr/include/postgresql -I/usr/lib/ghc/include -c -O3 -Wall

default: entry_aggravation_remedy_map.cgi search_aggravation.cgi new_aggravation_entry.cgi \
	 write_aggravation_remedy_map.cgi ask.cgi \
	 modify_remedy.cgi modify_re.cgi \
	 modify_aggravation.cgi modify_aggravation_do.cgi \
	 entry_amelioration_remedy_map.cgi search_amelioration.cgi \
	 new_amelioration_entry.cgi \
	 write_amelioration_remedy_map.cgi \
	 modify_amelioration.cgi modify_amelioration_do.cgi \
         enter_new_symptom.cgi \
	 register_new_patient.cgi chikitsha.cgi search_remedy_and_symptom.cgi \
	 enter_re_sy_map.cgi admin_ask.cgi chikitsha_list.cgi \
	 chikitsha_new.cgi chikitsha_iterate.cgi chikitsha_generals.cgi \
	 chikitsha_suggest.cgi chikitsha_suggest_doctor.cgi \
	 chikitsha_enter_new.cgi chikitsha_kanna_mocho.cgi \
	 chikitsha_submit_feedback.cgi chikitsha_logout.cgi \
         symptom_simple_search.cgi symptom_multi_search.cgi symptomSearchVector.cgi\
 	 aggravation_simple_search.cgi amelioration_simple_search.cgi \
	 modify_symptom_remedy_map.cgi modify_sy_re.cgi \
	 modify_aggravation_remedy_map.cgi modify_ag_re.cgi \
	 modify_amelioration_remedy_map.cgi modify_am_re.cgi materia_medica.cgi mat_med.cgi \
	 modify_symptom.cgi modify_sy.cgi enter_new_remedy.cgi \
	 repertory_insert.cgi repertory_sajao kent2rep.cgi \
	 ready_remedies.cgi symptomSearchNew.cgi getSymptomForId.cgi


entry_aggravation_remedy_map.cgi: entry_aggravation_remedy_map.o
	clang++ entry_aggravation_remedy_map.o -o entry_aggravation_remedy_map.cgi -lpq
	strip entry_aggravation_remedy_map.cgi

entry_aggravation_remedy_map.o: entry_aggravation_remedy_map.C
	clang++ $(CFLAGS) entry_aggravation_remedy_map.C

search_aggravation.cgi: search_aggravation.o
	clang++ search_aggravation.o -o search_aggravation.cgi -lpq
	strip search_aggravation.cgi

search_aggravation.o: search_aggravation.C
	clang++ $(CFLAGS) search_aggravation.C

new_aggravation_entry.cgi: new_aggravation_entry.o
	clang++ new_aggravation_entry.o -o new_aggravation_entry.cgi -lpq
	strip new_aggravation_entry.cgi

new_aggravation_entry.o: new_aggravation_entry.C
	clang++ $(CFLAGS) new_aggravation_entry.C

write_aggravation_remedy_map.cgi: write_aggravation_remedy_map.o
	clang++ write_aggravation_remedy_map.o -o write_aggravation_remedy_map.cgi -lpq
	strip write_aggravation_remedy_map.cgi

write_aggravation_remedy_map.o: write_aggravation_remedy_map.C
	clang++ $(CFLAGS) write_aggravation_remedy_map.C

ask.cgi: ask.hs
	ghc -O2 --make ask.hs -o ask.cgi
	strip ask.cgi

materia_medica.cgi: materia_medica.hs
	ghc -O2 --make materia_medica.hs -o materia_medica.cgi
	strip materia_medica.cgi

mat_med.cgi: mat_med.hs
	ghc -O2 --make mat_med.hs -o mat_med.cgi
	strip mat_med.cgi

search_remedy_and_symptom.cgi: search_remedy_and_symptom.hs
	ghc -O2 --make search_remedy_and_symptom.hs -o search_remedy_and_symptom.cgi
	strip search_remedy_and_symptom.cgi

symptomSearchNew.cgi: symptomSearchNew.hs
	ghc -O2 --make symptomSearchNew.hs -o symptomSearchNew.cgi
	strip symptomSearchNew.cgi

symptomSearchVector.cgi: symptomSearchVector.hs
	ghc -O2 --make symptomSearchVector.hs -o symptomSearchVector.cgi
	strip symptomSearchVector.cgi

getSymptomForId.cgi: getSymptomForId.hs
	ghc -O2 --make getSymptomForId.hs -o getSymptomForId.cgi
	strip getSymptomForId.cgi

aggravation_simple_search.cgi: aggravation_simple_search.hs
	ghc -O2 --make aggravation_simple_search.hs -o aggravation_simple_search.cgi
	strip aggravation_simple_search.cgi

amelioration_simple_search.cgi: amelioration_simple_search.hs
	ghc -O2 --make amelioration_simple_search.hs -o amelioration_simple_search.cgi
	strip amelioration_simple_search.cgi

admin_ask.cgi: admin_ask.o
	clang++ admin_ask.o -o admin_ask.cgi -lpq
	strip admin_ask.cgi

admin_ask.o: admin_ask.C
	clang++ $(CFLAGS) admin_ask.C

modify_aggravation.cgi: modify_aggravation.o
	clang++ modify_aggravation.o -o modify_aggravation.cgi -lpq
	strip modify_aggravation.cgi

modify_aggravation.o: modify_aggravation.C
	clang++ $(CFLAGS) modify_aggravation.C

modify_aggravation_do.cgi: modify_aggravation_do.o
	clang++ modify_aggravation_do.o -o modify_aggravation_do.cgi -lpq
	strip modify_aggravation_do.cgi

modify_aggravation_do.o: modify_aggravation_do.C
	clang++ $(CFLAGS) modify_aggravation_do.C

entry_amelioration_remedy_map.cgi: entry_amelioration_remedy_map.o
	clang++ entry_amelioration_remedy_map.o -o entry_amelioration_remedy_map.cgi -lpq
	strip entry_amelioration_remedy_map.cgi

entry_amelioration_remedy_map.o: entry_amelioration_remedy_map.C
	clang++ $(CFLAGS) entry_amelioration_remedy_map.C

search_amelioration.cgi: search_amelioration.o
	clang++ search_amelioration.o -o search_amelioration.cgi -lpq
	strip search_amelioration.cgi

search_amelioration.o: search_amelioration.C
	clang++ $(CFLAGS) search_amelioration.C

new_amelioration_entry.cgi: new_amelioration_entry.o
	clang++ new_amelioration_entry.o -o new_amelioration_entry.cgi -lpq
	strip new_amelioration_entry.cgi

new_amelioration_entry.o: new_amelioration_entry.C
	clang++ $(CFLAGS) new_amelioration_entry.C

write_amelioration_remedy_map.cgi: write_amelioration_remedy_map.o
	clang++ write_amelioration_remedy_map.o -o write_amelioration_remedy_map.cgi -lpq
	strip write_amelioration_remedy_map.cgi

write_amelioration_remedy_map.o: write_amelioration_remedy_map.C
	clang++ $(CFLAGS) write_amelioration_remedy_map.C

modify_amelioration.cgi: modify_amelioration.o
	clang++ modify_amelioration.o -o modify_amelioration.cgi -lpq
	strip modify_amelioration.cgi

modify_amelioration.o: modify_amelioration.C
	clang++ $(CFLAGS) modify_amelioration.C

modify_amelioration_do.cgi: modify_amelioration_do.o
	clang++ modify_amelioration_do.o -o modify_amelioration_do.cgi -lpq
	strip modify_amelioration_do.cgi

modify_amelioration_do.o: modify_amelioration_do.C
	clang++ $(CFLAGS) modify_amelioration_do.C

register_new_patient.cgi: register_new_patient.o
	clang++ register_new_patient.o -o register_new_patient.cgi -lpq
	strip register_new_patient.cgi

enter_new_symptom.cgi: enter_new_symptom.o
	clang++ enter_new_symptom.o -o enter_new_symptom.cgi -lpq
	strip enter_new_symptom.cgi

enter_new_symptom.o: enter_new_symptom.C
	clang++ $(CFLAGS) enter_new_symptom.C

enter_new_remedy.cgi: enter_new_remedy.o
	clang++ enter_new_remedy.o -o enter_new_remedy.cgi -lpq
	strip enter_new_remedy.cgi

enter_new_remedy.o: enter_new_remedy.C
	clang++ $(CFLAGS) enter_new_remedy.C

enter_re_sy_map.cgi: enter_re_sy_map.o
	clang++ enter_re_sy_map.o -o enter_re_sy_map.cgi -lpq
	strip enter_re_sy_map.cgi

enter_re_sy_map.o: enter_re_sy_map.C
	clang++ $(CFLAGS) enter_re_sy_map.C

register_new_patient.o: register_new_patient.C
	clang++ $(CFLAGS) register_new_patient.C

chikitsha.cgi: chikitsha.o
	clang++ chikitsha.o -o chikitsha.cgi -lpq
	strip chikitsha.cgi

chikitsha.o: chikitsha.C
	clang++ $(CFLAGS) chikitsha.C

chikitsha_generals.cgi: chikitsha_generals.o
	clang++ chikitsha_generals.o -o chikitsha_generals.cgi -lpq
	strip chikitsha_generals.cgi

chikitsha_generals.o: chikitsha_generals.C
	clang++ $(CFLAGS) chikitsha_generals.C

chikitsha_list.cgi: chikitsha_list.o
	clang++ chikitsha_list.o -o chikitsha_list.cgi -lpq
	strip chikitsha_list.cgi

chikitsha_list.o: chikitsha_list.C
	clang++ $(CFLAGS) chikitsha_list.C

chikitsha_kanna_mocho.cgi: chikitsha_kanna_mocho.o
	clang++ chikitsha_kanna_mocho.o -o chikitsha_kanna_mocho.cgi -lpq
	strip chikitsha_kanna_mocho.cgi

chikitsha_kanna_mocho.o: chikitsha_kanna_mocho.C
	clang++ $(CFLAGS) chikitsha_kanna_mocho.C

chikitsha_new.cgi: chikitsha_new.o
	clang++ chikitsha_new.o -o chikitsha_new.cgi
	strip chikitsha_new.cgi

chikitsha_new.o: chikitsha_new.C
	clang++ $(CFLAGS) chikitsha_new.C

fuzzyfy.o: fuzzyfy.hs
	ghc -c -O3 urandom_ffi.hs fuzzyfy.hs

fuzzySymptom.o: fuzzySymptom.hs
	ghc -c -O3 urandom_ffi.hs fuzzySymptom.hs

chikitsha_enter_new.cgi: chikitsha_enter_new.o fuzzyfy.o fuzzySymptom.o urandom.o urandom_ffi.hs
	ghc --make -no-hs-main urandom.o urandom_ffi.hs fuzzyfy.hs fuzzySymptom.hs chikitsha_enter_new.o -o chikitsha_enter_new.cgi -lpq -lstdc++ 
	strip chikitsha_enter_new.cgi

chikitsha_enter_new.o: chikitsha_enter_new.C fuzzyfy.o fuzzySymptom.o
	clang++ $(CFLAGS) chikitsha_enter_new.C

clips_try.o : clips_try.c
	clang -O3 -c -Wall clips_try.c

clips_ffi.o: clips_ffi.hs
	ghc -c -O3 clips_ffi.hs

urandom.o: urandom.c
	clang -O3 -c -Wall urandom.c

urandom_ffi.o: urandom_ffi.hs
	ghc -c -O3 urandom_ffi.hs

chikitsha_iterate.cgi: chikitsha_iterate.hs clips_try.o clips_ffi.o \
 urandom.o urandom_ffi.o metropolis.hs
	ghc -O3 --make chikitsha_iterate.hs clips_try.o clips_ffi.hs urandom.o urandom_ffi.hs metropolis.hs -o chikitsha_iterate.cgi -lclips
	strip chikitsha_iterate.cgi

chikitsha_suggest.cgi: chikitsha_suggest.o
	clang++ chikitsha_suggest.o -o chikitsha_suggest.cgi -lpq -lclips -lrt
	strip chikitsha_suggest.cgi

chikitsha_suggest.o: chikitsha_suggest.C
	clang++ $(CFLAGS) chikitsha_suggest.C

#chikitsha_suggest_doctor.cgi: chikitsha_suggest_doctor.o
	#clang++ chikitsha_suggest_doctor.o -o chikitsha_suggest_doctor.cgi -lpq -lclips -lrt
	#strip chikitsha_suggest_doctor.cgi

#chikitsha_suggest_doctor.o: chikitsha_suggest_doctor.C
	#clang++ $(CFLAGS) chikitsha_suggest_doctor.C

chikitsha_suggest_doctor.cgi: chikitsha_suggest_doctor_sqlite3.o
	clang++ chikitsha_suggest_doctor_sqlite3.o -o chikitsha_suggest_doctor.cgi -lpq -lsqlite3 -lclips -lrt
	strip chikitsha_suggest_doctor.cgi

chikitsha_suggest_doctor_sqlite3.o: chikitsha_suggest_doctor_sqlite3.C
	clang++ $(CFLAGS) chikitsha_suggest_doctor_sqlite3.C

chikitsha_submit_feedback.cgi: chikitsha_submit_feedback.o
	clang++ chikitsha_submit_feedback.o -o chikitsha_submit_feedback.cgi -lpq
	strip chikitsha_submit_feedback.cgi

chikitsha_submit_feedback.o: chikitsha_submit_feedback.C
	clang++ $(CFLAGS) chikitsha_submit_feedback.C

chikitsha_logout.cgi: chikitsha_logout.o
	clang++ chikitsha_logout.o -o chikitsha_logout.cgi -lpq
	strip chikitsha_logout.cgi

chikitsha_logout.o: chikitsha_logout.C
	clang++ $(CFLAGS) chikitsha_logout.C

symptom_simple_search.cgi: symptom_simple_search.o
	clang++ symptom_simple_search.o -o symptom_simple_search.cgi -lpq
	strip symptom_simple_search.cgi

symptom_simple_search.o: symptom_simple_search.C
	clang++ $(CFLAGS) symptom_simple_search.C

symptom_multi_search.cgi: symptom_multi_search.o
	clang++ symptom_multi_search.o -o symptom_multi_search.cgi -lpq
	strip symptom_multi_search.cgi

symptom_multi_search.o: symptom_multi_search.C
	clang++ $(CFLAGS) symptom_multi_search.C

modify_symptom_remedy_map.cgi: modify_symptom_remedy_map.o
	clang++ modify_symptom_remedy_map.o -o modify_symptom_remedy_map.cgi -lpq
	strip modify_symptom_remedy_map.cgi

modify_symptom_remedy_map.o: modify_symptom_remedy_map.C
	clang++ $(CFLAGS) modify_symptom_remedy_map.C

modify_sy_re.cgi: modify_sy_re.o
	clang++ modify_sy_re.o -o modify_sy_re.cgi -lpq
	strip modify_sy_re.cgi

modify_sy_re.o: modify_sy_re.C
	clang++ $(CFLAGS) modify_sy_re.C

modify_aggravation_remedy_map.cgi: modify_aggravation_remedy_map.o
	clang++ modify_aggravation_remedy_map.o -o modify_aggravation_remedy_map.cgi -lpq
	strip modify_aggravation_remedy_map.cgi

modify_aggravation_remedy_map.o: modify_aggravation_remedy_map.C
	clang++ $(CFLAGS) modify_aggravation_remedy_map.C

modify_ag_re.cgi: modify_ag_re.o
	clang++ modify_ag_re.o -o modify_ag_re.cgi -lpq
	strip modify_ag_re.cgi

modify_ag_re.o: modify_ag_re.C
	clang++ $(CFLAGS) modify_ag_re.C

modify_amelioration_remedy_map.cgi: modify_amelioration_remedy_map.o
	clang++ modify_amelioration_remedy_map.o -o modify_amelioration_remedy_map.cgi -lpq
	strip modify_amelioration_remedy_map.cgi

modify_amelioration_remedy_map.o: modify_amelioration_remedy_map.C
	clang++ $(CFLAGS) modify_amelioration_remedy_map.C

modify_am_re.cgi: modify_am_re.o
	clang++ modify_am_re.o -o modify_am_re.cgi -lpq
	strip modify_am_re.cgi

modify_am_re.o: modify_am_re.C
	clang++ $(CFLAGS) modify_am_re.C

modify_symptom.cgi: modify_symptom.o
	clang++ modify_symptom.o -o modify_symptom.cgi -lpq
	strip modify_symptom.cgi

modify_symptom.o: modify_symptom.C
	clang++ $(CFLAGS) modify_symptom.C

modify_sy.cgi: modify_sy.o
	clang++ modify_sy.o -o modify_sy.cgi -lpq
	strip modify_sy.cgi

modify_sy.o: modify_sy.C
	clang++ $(CFLAGS) modify_sy.C

modify_remedy.cgi: modify_remedy.o
	clang++ modify_remedy.o -o modify_remedy.cgi -lpq
	strip modify_remedy.cgi

modify_remedy.o: modify_remedy.C
	clang++ $(CFLAGS) modify_remedy.C

modify_re.cgi: modify_re.o
	clang++ modify_re.o -o modify_re.cgi -lpq
	strip modify_re.cgi

modify_re.o: modify_re.C
	clang++ $(CFLAGS) modify_re.C

repertory_insert.cgi: repertory_insert.hs
	ghc -O3 --make repertory_insert.hs -o repertory_insert.cgi

repertory_sajao: repertory_sajao.lex
	flex -o repertory_sajao.c repertory_sajao.lex
	clang -O3 repertory_sajao.c -o repertory_sajao -lfl
	strip repertory_sajao

kent2rep.cgi: kent2rep.o
	clang++ kent2rep.o -o kent2rep.cgi -lpq
	strip kent2rep.cgi

kent2rep.o: kent2rep.C
	clang++ $(CFLAGS) kent2rep.C

ready_remedies.cgi: ready_remedies.hs
	ghc -O --make ready_remedies.hs -o ready_remedies.cgi
