
# Do not execute this Makefile directly!!!!
# No testing code is created.

# ---------------------------------------------------------------------------- #
#                     DON'T CHANGE ANYTHING BELOW THIS LINE                    #
# ---------------------------------------------------------------------------- #

SAE=$(STARLINK)/sae
CNF=$(STARLINK)/cnf
EMS=$(STARLINK)/ems
HDS=$(STARLINK)/hds

LIB=$(STARLINK)/lib
SHARE=$(STARLINK)/share

HDS_C=dat1_alloc_lcp.c datmap.c hds_tune.c rec1_update_free.c dat1_annul_lcp.c \
	datmove.c hds_wild.c rec1_write_file.c dat1_check_mode.c datnew.c \
	rec1_alloc_frame.c rec_adopt_record.c dat1_check_type.c dat_paren.c \
	rec1_clear_cbm.c rec_alloc_mem.c dat1_cvt_format.c rec1_close_file.c \
	rec_attach_file.c dat1_cvt_order.c rec1_close_slot.c rec_close_file.c \
	dat1_decoy.c dat_prmry.c rec1_create_file.c rec_create_record.c \
	dat1_getenv.c datput.c rec1_deall_frame.c rec_deall_mem.c \
	dat1_get_ncomp.c dat_refct.c rec1_extend_file.c rec_delete_record.c \
	dat1_get_odl.c dattemp.c rec1_extend_frame.c rec_end_wild.c \
	dat1_import_loc.c dat_where.c rec1_find_file.c rec_extend_record.c \
	dat1_init.c daucheck.c rec1_flush_block.c rec_get_handle.c \
	dat1_init_ndr.c daucnv.c rec1_fmsg.c rec_get_rcl.c dat1_intune.c \
	daucopy.c rec1_getcwd.c rec_get_rid.c dat1_locate_name.c dauflush.c \
	rec1_get_fid.c rec_list_files.c dat1_pack_crv.c dauloc.c \
	rec1_get_path.c rec_locate_block.c dat1_pack_odl.c daumove.c \
	rec1_locate_hcb.c rec_locate_data.c dat1_pack_srv.c dauscatgath.c \
	rec1_lock_slot.c rec_locate_fns.c dat1_put_ncomp.c daushape.c \
	rec1_map_frame.c rec_lock.c dat1_put_odl.c dautypes.c rec1_open_file.c \
	rec_mark_delete.c dat1_show_ndr.c hds1_exit.c rec1_pack_chain.c \
	rec_reall_mem.c dat1_unpack_crv.c hds_copy.c rec1_pack_hcb.c \
	rec_refcnt.c dat1_unpack_odl.c hdserase.c rec1_pack_ncomp.c \
	rec_release_block.c dat1_unpack_srv.c hds_ewild.c rec1_pack_rcl.c \
	rec_release_data.c dat1_unpack_type.c hds_globals.c rec1_read_file.c \
	rec_reset_record.c datalter.c hdsgroup.c rec1_save_addr.c \
	rec_same_file.c datannul.c hds_gtune.c rec1_scan_cbm.c \
	rec_shrink_record.c dat_clen.c hdslock.c rec1_set_cbm.c rec_start.c \
	dat_copy.c hdsnew.c rec1_shell.c rec_stop.c dat_drep.c hdsnull.c \
	rec1_test_cbm.c rec_unlock.c daterase.c hdsopclos.c rec1_unlock_slot.c \
	rec_where.c dat_ermsg.c hds_run.c rec1_unmap_frame.c rec_wild_file.c \
	datfinind.c hds_start.c rec1_unpack_chain.c rtl_fixups.c datget.c \
	hds_state.c rec1_unpack_hcb.c datinq.c hds_stop.c rec1_unpack_ncomp.c \
	datlocops.c hdstools.c rec1_unpack_rcl.c

HDS_F=cmp_activ.f cmp_mapv.f cmp_struc.f dat_getnx.f dat_new1x.f dat_tune.f \
	cmp_blk.f cmp_modc.f cmp_type.f dat_getvx.f dat_newc.f cmp_deact.f \
	cmp_mod.f cmp_unmap.f dat_mapn.f dat_prec.f cmp_erdsn.f cmp_prim.f \
	dat_ccopy.f dat_mapv.f dat_put0x.f cmp_get0x.f cmp_put0x.f dat_cctyp.f \
	dat_msg.f dat_put1x.f cmp_get1x.f cmp_put1x.f dat_erdsc.f dat_new0c.f \
	dat_putnx.f cmp_getnx.f cmp_putnx.f dat_erdsn.f dat_new0.f \
	dat_putvx.f cmp_getvx.f cmp_putvx.f dat_ertxt.f dat_new0x.f \
	dat_rcera.f cmp_len.f cmp_shape.f dat_get0x.f dat_new1c.f dat_rcopy.f \
	cmp_mapn.f cmp_size.f dat_get1x.f dat_new1.f dat_ref.f

HDS_O=dat1_alloc_lcp.o datmap.o hds_tune.o rec1_update_free.o dat1_annul_lcp.o \
	datmove.o hds_wild.o rec1_write_file.o dat1_check_mode.o datnew.o \
	rec1_alloc_frame.o rec_adopt_record.o dat1_check_type.o dat_paren.o \
	rec1_clear_cbm.o rec_alloc_mem.o dat1_cvt_format.o rec1_close_file.o \
	rec_attach_file.o dat1_cvt_order.o rec1_close_slot.o rec_close_file.o \
	dat1_decoy.o dat_prmry.o rec1_create_file.o rec_create_record.o \
	dat1_getenv.o datput.o rec1_deall_frame.o rec_deall_mem.o \
	dat1_get_ncomp.o dat_refct.o rec1_extend_file.o rec_delete_record.o \
	dat1_get_odl.o dattemp.o rec1_extend_frame.o rec_end_wild.o \
	dat1_import_loc.o dat_where.o rec1_find_file.o rec_extend_record.o \
	dat1_init.o daucheck.o rec1_flush_block.o rec_get_handle.o \
	dat1_init_ndr.o daucnv.o rec1_fmsg.o rec_get_rcl.o dat1_intune.o \
	daucopy.o rec1_getcwd.o rec_get_rid.o dat1_locate_name.o dauflush.o \
	rec1_get_fid.o rec_list_files.o dat1_pack_crv.o dauloc.o \
	rec1_get_path.o rec_locate_block.o dat1_pack_odl.o daumove.o \
	rec1_locate_hcb.o rec_locate_data.o dat1_pack_srv.o dauscatgath.o \
	rec1_lock_slot.o rec_locate_fns.o dat1_put_ncomp.o daushape.o \
	rec1_map_frame.o rec_lock.o dat1_put_odl.o dautypes.o rec1_open_file.o \
	rec_mark_delete.o dat1_show_ndr.o hds1_exit.o rec1_pack_chain.o \
	rec_reall_mem.o dat1_unpack_crv.o hds_copy.o rec1_pack_hcb.o \
	rec_refcnt.o dat1_unpack_odl.o hdserase.o rec1_pack_ncomp.o \
	rec_release_block.o dat1_unpack_srv.o hds_ewild.o rec1_pack_rcl.o \
	rec_release_data.o dat1_unpack_type.o hds_globals.o rec1_read_file.o \
	rec_reset_record.o datalter.o hdsgroup.o rec1_save_addr.o \
	rec_same_file.o datannul.o hds_gtune.o rec1_scan_cbm.o \
	rec_shrink_record.o dat_clen.o hdslock.o rec1_set_cbm.o rec_start.o \
	dat_copy.o hdsnew.o rec1_shell.o rec_stop.o dat_drep.o hdsnull.o \
	rec1_test_cbm.o rec_unlock.o daterase.o hdsopclos.o rec1_unlock_slot.o \
	rec_where.o dat_ermsg.o hds_run.o rec1_unmap_frame.o rec_wild_file.o \
	datfinind.o hds_start.o rec1_unpack_chain.o rtl_fixups.o datget.o \
	hds_state.o rec1_unpack_hcb.o datinq.o hds_stop.o rec1_unpack_ncomp.o \
	datlocops.o hdstools.o rec1_unpack_rcl.o cmp_activ.o cmp_mapv.o \
	cmp_struc.o dat_getnx.o dat_new1x.o dat_tune.o cmp_blk.o cmp_modc.o \
	cmp_type.o dat_getvx.o dat_newc.o cmp_deact.o cmp_mod.o cmp_unmap.o \
	dat_mapn.o dat_prec.o cmp_erdsn.o cmp_prim.o dat_ccopy.o dat_mapv.o \
	dat_put0x.o cmp_get0x.o cmp_put0x.o dat_cctyp.o dat_msg.o dat_put1x.o \
	cmp_get1x.o cmp_put1x.o dat_erdsc.o dat_new0c.o dat_putnx.o \
	cmp_getnx.o cmp_putnx.o dat_erdsn.o dat_new0.o dat_putvx.o cmp_getvx.o \
	cmp_putvx.o dat_ertxt.o dat_new0x.o dat_rcera.o cmp_len.o cmp_shape.o \
	dat_get0x.o dat_new1c.o dat_rcopy.o cmp_mapn.o cmp_size.o dat_get1x.o \
	dat_new1.o dat_ref.o

all: libhds.a libhds.so

libhds.a: $(HDS_O)
	cd $(HDS); \
	ar r libhds.a $(HDS_O); \
	cp libhds.a $(LIB); \
	cd $(STARLINK);

libhds.so: $(HDS_O)
	cd $(HDS); \
	$(CC) $(SO) -o libhds.so $(HDS_O); \
	cp libhds.so $(SHARE); \
	cd $(STARLINK);

$(HDS_O): $(HDS_C) $(HDS_F)
	cd $(HDS); \
	$(CC) -I$(SAE) -I$(CNF) -I$(EMS) -I$(HDS) $(CFLAG_HDS) -c $(HDS_C); \
	$(FC) -I$(SAE) -I$(CNF) -I$(EMS) -I$(HDS) $(FFLAG_HDS) -c $(HDS_F); \
	cd $(STARLINK);

clean:
	cd $(HDS); rm -fr *.o libhds.*; cd $(STARLINK);
