&begin_parameters SRCDIR option(-source_dir),pathname,='(current_dir)' BLDDIR option(-build_dir),pathname,='(current_dir)>build_dir' COPTS option(-compile_options),string,='-type_checking normal' BOPTS option(-bind_options),string,='' KNAME option(-kermit_name),name,length(29),='kermit' KOPTS option(-kermit_options),string, &+ ='STRATUS DYNAMIC DCMDBUF CLSOPN STRATUSX25 MYCURSES' TOOL switch(-tools),=1 DBG switch(-debug),secret,=0 &end_parameters & Command macro to produce C-Kermit for VOS. This has been successfully & tested on VOS 10.5 CISC, and 11.5.1, both RISC and CISC versions, with and & without X.25 and/or OS TCP/IP support. This command macro rebuilds the & world every time it is run, there is no "incremental" build of only & changed modules. This is left as an exercise for the reader. &if &DBG& &then &echo macro_lines input_lines command_lines &if &BLDDIR& = &SRCDIR& &then &goto same_dir_error &if (process_type) = batch &then &goto noterm &set PLINES (terminal_info pause_lines) !set_terminal_parameters -pause_lines 0 &label noterm &set_string mydir (current_dir) !change_current_dir &BLDDIR& !add_library_path include &SRCDIR& !c &COPTS& &SRCDIR&>ckldef !bind &BOPTS& ckldef &if (quote (current_dir)) ^= &$SRCDIR& &then !copy_file &SRCDIR&>ckcsym.h !ckldef ckcsym.h -read &KOPTS& !c &COPTS& &SRCDIR&>ckwart.c !bind &BOPTS& ckwart !ckwart &SRCDIR&>ckcpro.w ckcpro.c & ckcpro.c gets created in the build dir! !c &COPTS& ckcpro.c !delete_file ckcpro.c !c &COPTS& &SRCDIR&>ckcfn2.c !c &COPTS& &SRCDIR&>ckcfn3.c !c &COPTS& &SRCDIR&>ckcfns.c !c &COPTS& &SRCDIR&>ckcmai.c !c &COPTS& &SRCDIR&>cklcon.c !c &COPTS& &SRCDIR&>cklfio.c !c &COPTS& &SRCDIR&>cklnet.c !c &COPTS& &SRCDIR&>ckltio.c !c &COPTS& &SRCDIR&>ckucmd.c !c &COPTS& &SRCDIR&>ckudia.c !c &COPTS& &SRCDIR&>ckuscr.c !c &COPTS& &SRCDIR&>ckuus2.c !c &COPTS& &SRCDIR&>ckuus3.c !c &COPTS& &SRCDIR&>ckuus4.c !c &COPTS& &SRCDIR&>ckuus5.c !c &COPTS& &SRCDIR&>ckuus6.c !c &COPTS& &SRCDIR&>ckuus7.c !c &COPTS& &SRCDIR&>ckuusr.c !c &COPTS& &SRCDIR&>ckuusx.c !c &COPTS& &SRCDIR&>ckuusy.c !c &COPTS& &SRCDIR&>ckuxla.c &if (index &$KOPTS& MDEBUG) ^= 0 &then &set_string MDOBJ , ckcmdb &else &set_string MDOBJ &if &$MDOBJ& ^= '' &then !c &COPTS& &SRCDIR&>ckcmdb.c &if (index &$KOPTS& TCPSOCKET) ^= 0 &then &set_string TCPOBJ , tcp_runtime, tcp_gethost &else &set_string TCPOBJ &attach_input line_edit -no_backup -no_verbose i name: &KNAME&; size: large; modules: ckcmai, ckcfns, ckcfn2, ckcfn3, ckcpro, ckudia, ckuscr, ckltio, cklfio, cklcon, cklnet, ckuusr, ckuus2, ckuus3, ckuus4, ckuus5, ckuus6, ckuus7, ckuusx, ckuusy, ckucmd, ckuxla &TCPOBJ& &MDOBJ&; end; . w kermit.bind q &detach_input !bind -control kermit &BOPTS& &if &TOOL& = 0 &then &goto notools !c &COPTS& &SRCDIR&>ckbmkb.c !c &COPTS& &SRCDIR&>ckbunb.c !c &COPTS& &SRCDIR&>ckltxt.c !c &COPTS& &SRCDIR&>cklxtr.c !bind ckbunb &BOPTS& !bind ckbmkb &BOPTS& !bind ckltxt &BOPTS& !bind cklxtr &BOPTS& &goto build_done &label notools & delete the ones needed to build C-Kermit itself !delete_file ckldef.pm !delete_file ckwart.pm &label build_done !delete_file *.obj -no_ask -brief !delete_file kermit.bind &if &$SRCDIR& ^= (quote (current_dir)) &then !delete_file ckcsym.h &if (process_type) ^= batch &then !set_terminal_parameters -pause_lines &PLINES& !change_current_dir &mydir& &return &label same_dir_error display_line (message e$same_object) &return e$same_object