## ----- Install options -----
CC = CC
LINK = CC
CC_FLAGS =
LINK_FLAGS =
CPP_EXTENSION = .cpp
LIB_EXTENSION = .sl
INCLUDE_DIRS =
LIB_DIRS = -L/usr/lib/Motif1.2 -L/usr/lib/X11R5
GUI_LIBS = -lXm -lXt -lX11
LIBS = -lm
LIBRARIAN = ar
AR_FLAGS = r
RANLIB =
SHARED_LINK = CC
SHARED_LINK_FLAGS = -b
SHARED_LIB_EXTENSION = .sl

## ----- General options -----
ZAF_INC_DIR = ../include
ZAF_LIB_DIR = ../lib
ZAF_MTF_LIB = ZafMtf
ZAF_MTF_PLIB = ZafMtfP
MTF_LIB_NAME = lib$(ZAF_MTF_LIB)$(LIB_EXTENSION)
MTF_PLIB_NAME = lib$(ZAF_MTF_PLIB)$(LIB_EXTENSION)
Z_INCLUDE_DIRS = -I$(ZAF_INC_DIR) $(INCLUDE_DIRS)
Z_LIB_DIRS = -L$(ZAF_LIB_DIR) $(LIB_DIRS)
Z_LIBS = -l$(ZAF_MTF_LIB) $(GUI_LIBS) $(LIBS)

.SUFFIXES:
.SUFFIXES: .o $(CPP_EXTENSION)

$(CPP_EXTENSION).o:
	$(CC) $(CC_FLAGS) $(Z_INCLUDE_DIRS) -c $<

## ----- Object files -----
ZAF_Z_OBJS = z_app.o \
	z_bmap.o \
	z_bmap1.o \
	z_bnum.o \
	z_bnum1.o \
	z_bnum2.o \
	z_border.o \
	z_button.o \
	z_chart.o \
	z_combo.o \
	z_cset.o \
	z_cset1.o \
	z_data.o \
	z_data1.o \
	z_data2.o \
	z_date.o \
	z_date1.o \
	z_device.o \
	z_dlgwin.o \
	z_dskfil.o \
	z_dsp.o \
	z_error.o \
	z_error1.o \
	z_event.o \
	z_evtmgr.o \
	z_fdata.o \
	z_fdata1.o \
	z_fdata2.o \
	z_fildlg.o \
	z_file.o \
	z_file1.o \
	z_fmtstr.o \
	z_gmgr.o \
	z_gmgr1.o \
	z_gmgr2.o \
	z_gmgr3.o \
	z_gmgr4.o \
	z_group.o \
	z_help.o \
	z_help1.o \
	z_hlist.o \
	z_htips.o \
	z_icon.o \
	z_icon1.o \
	z_idata.o \
	z_image.o \
	z_int.o \
	z_int1.o \
	z_i18n.o \
	z_lang.o \
	z_lang1.o \
	z_loc.o \
	z_list.o \
	z_list1.o \
	z_max.o \
	z_mdiwin.o \
	z_min.o \
	z_mouse.o \
	z_msgwin.o \
	z_notebk.o \
	z_notify.o \
	z_pal.o \
	z_plldn.o \
	z_plldn1.o \
	z_popup.o \
	z_popup1.o \
	z_print.o \
	z_prompt.o \
	z_prgrss.o \
	z_prntf1.o \
	z_prst.o \
	z_prst1.o \
	z_region.o \
	z_real.o \
	z_real1.o \
	z_sclwin.o \
	z_scrll.o \
	z_scrll1.o \
	z_spin.o \
	z_split.o \
	z_status.o \
	z_store.o \
	z_store1.o \
	z_str.o \
	z_str1.o \
	z_str2.o \
	z_sys.o \
	z_table.o \
	z_table1.o \
	z_table2.o \
	z_tbar.o \
	z_text.o \
	z_time.o \
	z_timer.o \
	z_time1.o \
	z_tree.o \
	z_tree1.o \
	z_title.o \
	z_vlist.o \
	z_utime.o \
	z_utime1.o \
	z_utils.o \
	z_utils1.o \
	z_utils2.o \
	z_winmgr.o \
	z_window.o \
	z_winobj.o \
	z_ctype.o \
	z_printf.o \
	z_scanf.o \
	z_stdarg.o \
	z_stdio.o \
	z_stdlib.o \
	z_string.o \
	z_repstr.o \
	z_stredt.o \
	z_unistd.o

ZAF_M_OBJS = m_app.o \
	m_border.o \
	m_button.o \
	m_combo.o \
	m_cursor.o \
	m_dlgwin.o \
	m_dskfil.o \
	m_dsp.o \
	m_error.o \
	m_error1.o \
	m_evtmgr.o \
	m_fildlg.o \
	m_fmtstr.o \
	m_group.o \
	m_hlist.o \
	m_htips.o \
	m_icon.o \
	m_image.o \
	m_i18n.o \
	m_keybrd.o \
	m_loc.o \
	m_max.o \
	m_mdiwin.o \
	m_min.o \
	m_mouse.o \
	m_notebk.o \
	m_plldn.o \
	m_plldn1.o \
	m_print.o \
	m_prompt.o \
	m_popup.o \
	m_popup1.o \
	m_sclwin.o \
	m_scrdsp.o \
	m_scrll.o \
	m_spin.o \
	m_status.o \
	m_str.o \
	m_sys.o \
	m_table.o \
	m_table1.o \
	m_tbar.o \
	m_text.o \
	m_timer.o \
	m_title.o \
	m_tree.o \
	m_tree1.o \
	m_vlist.o \
	m_winmgr.o \
	m_window.o \
	m_winobj.o \
	m_client.o \
	m_frame.o \
	m_shell.o \
	m_utils.o

ZAF_P_OBJS = z_prst2.o \
	z_prst3.o

## ----- Program -----

mtest: test.o $(MTF_LIB_NAME) $(MTF_PLIB_NAME)
	$(LINK) $(LINK_FLAGS) -o $@ test.o $(Z_LIB_DIRS) $(Z_LIBS)

clean:
	-rm -f *.o mtest core $(MTF_LIB_NAME) $(MTF_PLIB_NAME)

## ----- Libraries -----

lib$(ZAF_MTF_LIB).a: \
	$(ZAF_Z_OBJS) \
	$(ZAF_M_OBJS)
	$(LIBRARIAN) $(AR_FLAGS) $@ $?
	$(RANLIB)
	cp lib$(ZAF_MTF_LIB).a $(ZAF_LIB_DIR)

lib$(ZAF_MTF_LIB)$(SHARED_LIB_EXTENSION): \
	$(ZAF_Z_OBJS) \
	$(ZAF_M_OBJS)
	$(SHARED_LINK) $(SHARED_LINK_FLAGS) -o $@ $(ZAF_Z_OBJS) $(ZAF_M_OBJS)
	cp lib$(ZAF_MTF_LIB)$(SHARED_LIB_EXTENSION) $(ZAF_LIB_DIR)

lib$(ZAF_MTF_PLIB).a: \
	$(ZAF_P_OBJS)
	$(LIBRARIAN) $(AR_FLAGS) $@ $?
	$(RANLIB)
	cp lib$(ZAF_MTF_PLIB).a $(ZAF_LIB_DIR)

lib$(ZAF_MTF_PLIB)$(SHARED_LIB_EXTENSION): \
	$(ZAF_P_OBJS)
	$(SHARED_LINK) $(SHARED_LINK_FLAGS) -o $@ $(ZAF_P_OBJS)
	cp lib$(ZAF_MTF_PLIB)$(SHARED_LIB_EXTENSION) $(ZAF_LIB_DIR)

