# Copyright 1999 Daniel Elphick and others
# Licensed under Eiffel Forum Freeware License, version 1;
# (see forum.txt)

# Makefile for eglade Eiffel glade translator
#
COMPILE =	compile
COMPILE_TO_C =	compile_to_c
COMPILE_OPTS =  -case-insensitive
# DEBUG_OPT =	-debug_check

YACC =		geyacc
LEX  =		gelex

SUPPORT =	C/eglade_support.o

WRITERS =	writers/gtk_accel_label_writer.e \
		writers/gtk_alignment_writer.e \
		writers/gtk_arrow_writer.e \
		writers/gtk_aspect_frame_writer.e \
		writers/gtk_box_writer.e \
		writers/gtk_button_box_writer.e \
		writers/gtk_button_writer.e \
		writers/gtk_calendar_writer.e \
		writers/gtk_check_button_writer.e \
		writers/gtk_check_menu_item_writer.e \
		writers/gtk_clist_writer.e \
		writers/gtk_color_selection_dialog_writer.e \
		writers/gtk_colorsel_writer.e \
		writers/gtk_combo_writer.e \
		writers/gtk_ctree_writer.e \
		writers/gtk_curve_writer.e \
		writers/gtk_dialog_writer.e \
		writers/gtk_drawing_area_writer.e \
		writers/gtk_entry_writer.e \
		writers/gtk_event_box_writer.e \
		writers/gtk_file_selection_writer.e \
		writers/gtk_fixed_writer.e \
		writers/gtk_font_selection_dialog_writer.e \
		writers/gtk_fontsel_writer.e \
		writers/gtk_frame_writer.e \
		writers/gtk_gamma_curve_writer.e \
		writers/gtk_handle_box_writer.e \
		writers/gtk_hbox_writer.e \
		writers/gtk_hbutton_box_writer.e \
		writers/gtk_hpaned_writer.e \
		writers/gtk_hruler_writer.e \
		writers/gtk_hscale_writer.e \
		writers/gtk_hscrollbar_writer.e \
		writers/gtk_hseparator_writer.e \
		writers/gtk_input_dialog_writer.e \
		writers/gtk_label_writer.e \
		writers/gtk_layout_writer.e \
		writers/gtk_list_writer.e \
		writers/gtk_menu_bar_writer.e \
		writers/gtk_menu_item_writer.e \
		writers/gtk_menu_writer.e \
		writers/gtk_notebook_writer.e \
		writers/gtk_option_menu_writer.e \
		writers/gtk_packer_writer.e \
		writers/gtk_paned_writer.e \
		writers/gtk_pixmap_writer.e \
		writers/gtk_popup_menu_writer.e \
		writers/gtk_preview_writer.e \
		writers/gtk_progress_bar_writer.e \
		writers/gtk_radio_button_writer.e \
		writers/gtk_radio_menu_item_writer.e \
		writers/gtk_ruler_writer.e \
		writers/gtk_scale_writer.e \
		writers/gtk_scrollbar_writer.e \
		writers/gtk_scrolled_window_writer.e \
		writers/gtk_separator_writer.e \
		writers/gtk_spin_button_writer.e \
		writers/gtk_status_bar_writer.e \
		writers/gtk_table_writer.e \
		writers/gtk_text_writer.e \
		writers/gtk_toggle_button_writer.e \
		writers/gtk_toolbar_writer.e \
		writers/gtk_tree_writer.e \
		writers/gtk_vbox_writer.e \
		writers/gtk_vbutton_box_writer.e \
		writers/gtk_viewport_writer.e \
		writers/gtk_vpaned_writer.e \
		writers/gtk_vruler_writer.e \
		writers/gtk_vscale_writer.e \
		writers/gtk_vscrollbar_writer.e \
		writers/gtk_vseparator_writer.e \
		writers/gtk_window_writer.e \
		writers/gtk_window_writer_common.e

BASE =		base.e \
		can_be_created.e \
		child.e \
		class_index.e \
		class_info.e \
		class_writer.e \
		code_generator.e \
		container.e \
		custom_class_writer.e \
		date.e \
		globals.e \
		gtk_attribute_writer.e \
		gtk_bin_writer.e \
		gtk_class_writer.e \
		gtk_composed_bin_writer.e \
		inherit_list.e \
		klass.e \
		misc.e \
		root_class_writer.e \
		signal_writer.e \
		tag_tree.e \
		top_level_class_writer.e \
		version.e \
		writer.e \
		xml_tokens.e \
		xml_parser.e

eglade:	$(WRITERS) $(BASE) $(SUPPORT) eglade.se.ace
	$(COMPILE_TO_C) eglade.se.ace
	@echo -n "Files to recompile : "
	@echo `grep 'gcc -pipe -c base' base.make | wc -l`
	@sh -v base.make

eglade_trad:	$(WRITERS) $(BASE) $(SUPPORT)
	$(COMPILE_TO_C) $(COMPILE_OPTS) $(DEBUG_OPT) base -o eglade $(SUPPORT) 
	@echo -n "Files to recompile : "
	@echo `grep 'gcc -pipe -c base' base.make | wc -l`
	@sh -v base.make

final: $(WRITERS) $(BASE) $(SUPPORT) eglade.boost.ace
	$(COMPILE_TO_C) eglade.boost.ace
	@echo -n "Files to recompile : "
	@echo `grep 'gcc -pipe -O3 -c base' base.make | wc -l`
	@sh -v base.make

final_trad: $(WRITERS) $(BASE) $(SUPPORT)
	$(COMPILE_TO_C) $(COMPILE_OPTS) -boost  base -o eglade -O3 -boost $(SUPPORT)
	@echo -n "Files to recompile : "
	@echo `grep 'gcc -pipe -O3 -c base' base.make | wc -l`
	@sh -v base.make

xml_parser.e xml_tokens.e: xml_parser.y
	$(YACC) -o $@ -t xml_tokens $<

$(SUPPORT):
	cd C && make

clean:
	-clean base
	-rm xml_parser.e xml_tokens.e
	-rm eglade
	-rm *~ writers/*~
	cd C && make clean
