# BUG: need append all .o in dependent .a archives (ex.: llao append lbase .o's)

base_dir=$(DIR)src/base/
base_obj=$(base_dir)list.o\
	$(base_dir)string.o\
	$(base_dir)mapstr.o\
	$(base_dir)mapdw.o\
	$(base_dir)history.o\
	$(base_dir)chctab.o\
	$(base_dir)char.o

sbase_dir=$(DIR)src/sbase/
sbase_obj=$(sbase_dir)comp.o\
	$(sbase_dir)strans.o\
	$(sbase_dir)mparser.o\
	$(sbase_dir)env.o\
	$(sbase_dir)shistory.o\
	$(sbase_dir)sexec.o

lao_dir=$(DIR)src/lao/
lao_obj=$(lao_dir)pchar.o\
	$(lao_dir)pstring.o\
	$(lao_dir)plist.o\
	$(lao_dir)cochar.o\
	$(lao_dir)costring.o\
	$(lao_dir)colist.o\
	$(lao_dir)colist_d.o\
	$(lao_dir)colist_i.o\
	$(lao_dir)colist_e.o\
	$(lao_dir)colist_l.o

stdcomp_dir=$(DIR)src/stdcomp/
stdcomp_obj=$(stdcomp_dir)exit.o

all:	$(DIR)lib/libbase.a $(DIR)lib/liblao.a $(DIR)lib/libscomp.a

$(DIR)lib/libbase.a:	$(base_obj)
	ar -rs $(DIR)lib/libbase.a $(base_dir)*.o

$(DIR)lib/libsbase.a:	$(sbase_obj) $(base_obj)
	ar -rs $(DIR)lib/libsbase.a $(sbase_dir)*.o $(base_dir)*.o

$(DIR)lib/liblao.a:	$(lao_obj) $(sbase_obj) $(base_obj)
	ar -rs $(DIR)lib/liblao.a $(lao_dir)*.o \
				  $(sbase_dir)*.o \
				  $(base_dir)*.o

$(DIR)lib/libscomp.a:	$(stdcomp_obj) $(lao_obj) $(sbase_obj) $(base_obj)
	ar -rs $(DIR)lib/libscomp.a $(stdcomp_dir)*.o \
	                            $(lao_dir)*.o \
				    $(sbase_dir)*.o \
				    $(base_dir)*.o

include $(base_dir)dep.mak 
include $(sbase_dir)dep.mak 
include $(lao_dir)dep.mak 
include $(stdcomp_dir)dep.mak 
