AESSRC = aesappl.c aesevnt.c aesforms.c aesfsel.c aesgraf.c aeshell.c \
	 aesmenu.c aesobj.c  aesrsrc.c  aeswin.c aesrc.c aescrap.c
VDISRC = vdiatrib.c vdictrl1.c vdictrl2.c vdigdp.c vdiinp.c vdiinq.c \
	 vdiout.c vdiras.c vdiesc.c vdiesc1.c vdiqgdos.c vdifsm.c
COMSRC = common.c ident.c
SRC    = $(AESSRC) $(VDISRC) $(COMSRC)

AESAPPL = appl_ini.o appl_rea.o appl_wri.o appl_fin.o appl_tpl.o \
	  appl_tre.o appl_sea.o appl_exi.o appl_get.o

AESCRAP = scrp_rea.o scrp_wri.o scrp_cle.o 

AESEVNT = evnt_key.o evnt_but.o evnt_mou.o evnt_mes.o evnt_tim.o \
	  evnt_mul.o evnt_dcl.o 

AESFORMS = form_do.o  form_dia.o form_ale.o form_err.o form_cen.o \
	   form_key.o form_but.o 

AESFSEL = fsel_inp.o fsel_exi.o 

AESGRAF = graf_rub.o graf_dra.o graf_mov.o graf_gro.o \
	  graf_shr.o graf_wat.o graf_sli.o graf_han.o \
	  graf_mou.o graf_mks.o 

AESHELL = shel_rea.o shel_wri.o shel_fin.o shel_env.o shel_get.o \
	  shel_put.o 

AESMENU = menu_bar.o menu_ich.o menu_ien.o menu_tno.o menu_tex.o \
	  menu_reg.o menu_pop.o menu_att.o menu_ist.o menu_set.o


AESOBJ = objc_add.o objc_del.o objc_dra.o objc_fin.o objc_off.o \
	 objc_ord.o objc_edi.o objc_cha.o objc_sys.o

AESRC  = rc_copy.o rc_equal.o rc_inter.o grect_to.o

AESRSRC = rsrc_loa.o rsrc_fre.o rsrc_gad.o rsrc_sad.o rsrc_obf.o \
    rsrc_rcf.o

AESWIN = wind_cre.o wind_ope.o wind_clo.o wind_del.o wind_get.o \
	 wind_set.o wind_fin.o wind_upd.o wind_cal.o wind_new.o

VDIATRIB = vswr_mod.o vs_color.o vsl_type.o vsl_udst.o vsl_widt.o \
	   vsl_colo.o vsl_ends.o vsm_type.o vsm_heig.o vsm_colo.o \
	   vst_heig.o vst_poin.o vst_rota.o vst_font.o vst_colo.o \
	   vst_effe.o vst_alig.o vsf_inte.o vsf_fill.o vsf_colo.o \
	   vsf_peri.o vsf_udpa.o 

VDICTRL1 = v_opnwk.o v_clswk.o v_opnvwk.o v_clsvwk.o 

VDICTRL2 = v_clrwk.o v_updwk.o vst_load.o vst_unlo.o vs_clip.o 

VDIESC = vq_chcel.o v_exit_c.o v_enter_.o v_curup.o  v_curdow.o \
	 v_currig.o v_curlef.o v_curhom.o v_eeos.o   v_eeol.o   \
	 vs_curad.o v_curtex.o v_rvoff.o  v_rvon.o   vq_curad.o

VDIESC1 = vq_tabst.o v_hardco.o v_dspcur.o v_rmcur.o  v_form_a.o \
	  v_output.o v_clear_.o v_bit_im.o vq_scan.o  v_alpha_.o \
	  vs_palet.o v_sound.o  vs_mute.o  vt_resol.o vt_axis.o  \
	  vt_origi.o vq_dimen.o vt_align.o vsp_film.o vqp_film.o \
	  vsc_expo.o v_meta_e.o v_write_.o vm_pages.o vm_coord.o \
	  vm_filen.o v_escape.o 

VDIFSM = vqt_fext.o v_ftext.o v_fteof.o v_getout.o vst_scra.o vst_erro.o \
	 v_shtext.o vst_arbp.o vst_ar32.o vqt_adva.o vqt_ad32.o vqt_devi.o \
	 v_saveca.o v_loadca.o v_flushc.o vst_sets.o vst_se32.o vst_skew.o \
	 vqt_get_.o vqt_cach.o vst_char.o vst_kern.o vqt_fnt.o vqt_trac.o \
	 vqt_pair.o v_getbit.o

VDIGDP = v_bar.o    v_arc.o  v_piesli.o v_circle.o v_ellarc.o \
	 v_ellpie.o v_ellips.o v_rbox.o v_rfbox.o  v_justif.o 

VDIINP = vsin_mod.o vsm_loca.o vrq_valu.o vsm_valu.o vrq_choi.o \
	 vsm_choi.o vsm_stri.o vsc_form.o vex_timv.o v_show_c.o \
	 v_hide_c.o vq_mouse.o vex_butv.o vex_motv.o vex_curv.o \
	 vq_key_s.o 

VDIINQ = vq_extnd.o vq_color.o vql_attr.o vqm_attr.o \
	 vqf_attr.o vqt_attr.o vqt_exte.o vqt_widt.o \
	 vqt_name.o vq_cella.o vqin_mod.o vqt_font.o 

VDIOUT = v_pline.o  v_pmarke.o v_gtext.o v_fillar.o v_cellar.o \
	 v_contou.o vr_recfl.o 

VDIQGDOS = vq_gdos.o vq_vgdos.o 

VDIRAS = vro_cpyf.o vrt_cpyf.o vr_trnfm.o v_get_pi.o 

# make both v_bez_on/off and v_bez_con for the lib,
# and the let the user select.
VDIBEZ = v_set_ap.o v_bez_co.o v_bez_on.o v_bez_of.o v_bez.o v_bez_fi.o v_bez_qu.o

AESALL = $(AESAPPL) $(AESCRAP) $(AESEVNT) $(AESFORMS) $(AESFSEL) $(AESGRAF) \
 $(AESHELL) $(AESMENU) $(AESOBJ) $(AESRC) $(AESRSRC) $(AESWIN) 

VDIALL = $(VDIATRIB) $(VDICTRL1) $(VDICTRL2) $(VDIESC) $(VDIESC1) $(VDIFSM) \
 $(VDIGDP) $(VDIINP) $(VDIINQ) $(VDIOUT) $(VDIQGDOS) $(VDIRAS) $(VDIBEZ)


COMOBJ = common.o ident.o
OBJ    = $(AESALL) $(VDIALL) $(COMOBJ)

all: $(ALL)

$(GEMLIB) : $(OBJ)
	rm -f $(GEMLIB)
	$(AR) rs $(GEMLIB) $(OBJ)

$(SRC) : common.h

install: $(ALL)
	cp $(ALL) $(LIB)

clean :
	rm -f $(OBJ)

realclean : clean
	rm -f $(ALL) report

#compilation rules

$(AESAPPL): %.o: aesappl.c
	$(CC) $(CFLAGS) -DL_$* -c aesappl.c -o $@

$(AESCRAP): %.o: aescrap.c
	$(CC) $(CFLAGS) -DL_$* -c aescrap.c -o $@

$(AESEVNT): %.o: aesevnt.c
	$(CC) $(CFLAGS) -DL_$* -c aesevnt.c -o $@

$(AESFORMS): %.o: aesforms.c
	$(CC) $(CFLAGS) -DL_$* -c aesforms.c -o $@

$(AESFSEL): %.o: aesfsel.c
	$(CC) $(CFLAGS) -DL_$* -c aesfsel.c -o $@

$(AESGRAF): %.o: aesgraf.c
	$(CC) $(CFLAGS) -DL_$* -c aesgraf.c -o $@

$(AESHELL): %.o: aeshell.c
	$(CC) $(CFLAGS) -DL_$* -c aeshell.c -o $@

$(AESMENU): %.o: aesmenu.c
	$(CC) $(CFLAGS) -DL_$* -c aesmenu.c -o $@

$(AESOBJ): %.o: aesobj.c
	$(CC) $(CFLAGS) -DL_$* -c aesobj.c -o $@

$(AESRC): %.o: aesrc.c
	$(CC) $(CFLAGS) -DL_$* -c aesrc.c -o $@

$(AESRSRC): %.o: aesrsrc.c
	$(CC) $(CFLAGS) -DL_$* -c aesrsrc.c -o $@

$(AESWIN): %.o: aeswin.c
	$(CC) $(CFLAGS) -DL_$* -c aeswin.c -o $@

$(VDIATRIB): %.o: vdiatrib.c
	$(CC) $(CFLAGS) -DL_$* -c vdiatrib.c -o $@

$(VDICTRL1): %.o: vdictrl1.c
	$(CC) $(CFLAGS) -DL_$* -c vdictrl1.c -o $@

$(VDICTRL2): %.o: vdictrl2.c
	$(CC) $(CFLAGS) -DL_$* -c vdictrl2.c -o $@

$(VDIESC): %.o: vdiesc.c
	$(CC) $(CFLAGS) -DL_$* -c vdiesc.c -o $@

$(VDIESC1): %.o: vdiesc1.c
	$(CC) $(CFLAGS) -DL_$* -c vdiesc1.c -o $@

$(VDIFSM): %.o: vdifsm.c
	$(CC) $(CFLAGS) -DL_$* -c vdifsm.c -o $@

$(VDIGDP): %.o: vdigdp.c
	$(CC) $(CFLAGS) -DL_$* -c vdigdp.c -o $@

$(VDIINP): %.o: vdiinp.c
	$(CC) $(CFLAGS) -DL_$* -c vdiinp.c -o $@

$(VDIINQ): %.o: vdiinq.c
	$(CC) $(CFLAGS) -DL_$* -c vdiinq.c -o $@

$(VDIOUT): %.o: vdiout.c
	$(CC) $(CFLAGS) -DL_$* -c vdiout.c -o $@

$(VDIQGDOS): %.o: vdiqgdos.c
	$(CC) $(CFLAGS) -DL_$* -c vdiqgdos.c -o $@

$(VDIRAS): %.o: vdiras.c
	$(CC) $(CFLAGS) -DL_$* -c vdiras.c -o $@

$(VDIBEZ): %.o: vdibez.c
	$(CC) $(CFLAGS) -DL_$* -c vdibez.c -o $@


.PHONY: install clean realclean
