$! $! $ olddir = f$environment("default") $ on control_y then goto YExit $! $ gosub Init $ if .not. init_status then goto YExit $! $ if what .eqs. "ALL" $ then $ call MakeAll $ else $ call Make $endif $! $YExit: $ set noon $! deassign exadir $! deassign objdir $ delete 'link_opts';* $ set default 'olddir' $exit $MakeAll: subroutine $! $ set noon $Loop: $ this = f$search("exadir:*.c;0") $ if this .eqs. "" then goto EndLoop $! $ what = f$parse( this,,,"name") $ if what .eqs. "x11" then goto loop ! not portable yet $ call Make $! $ goto Loop $EndLoop: $! $exit $endsubroutine $Make: subroutine $! $ set noon $! $ cc 'cc_include' 'cc_flags'/object=objdir:'what' exadir:'what' $ sev = $severity $ if sev .and. 2 $ then $ say "Error compiling ''what', not linked." $ else $ if .not. (sev .and. 1) $ then $ say "Compile warnings in ''what'" $ endif $ link/exe='what'.exe objdir:'what'.obj, 'link_opts'/opt $ endif $! $! $End: $ delete objdir:'what'.obj;* $exit $endsubroutine $Init: $! $! $ init_status = 1 $ thisid = f$integer( %x'f$getjpi(0,"pid")') + "''f$cvtime(,,"second")'" $ mdir = f$environment("procedure") $ mdir = mdir - f$parse(mdir,,,"name") - f$parse(mdir,,,"type") - f$parse(mdir,,,"version") $ set default 'mdir' $! $ objdir = "[.example_objects]" $ exadir = "[-.example]" $! $ objdirfile = objdir - "[." - "]" + ".dir" $ if f$search( objdirfile ) .eqs. "" $ then $ create/directory 'objdir' $ endif $! $ define objdir 'objdir' $ define exadir 'exadir' $! $ cc_include = "/include=([],[-.include])" $ cc_flags = "/name=shortened/show=all/define=(_USE_STD_STAT=1)" $ link_opts = "objdir:libssh2_''thisid'.opt" $! $! $ what = "''p1'" $ if what .eqs. "" .or. f$edit(p1,"trim,collapse,upcase") .eqs. "ALL" $ then $ what = "ALL" $ else $ what = f$parse(what,,,"name") $ if f$search("exadir:''what'.c") .eqs. "" $ then $ write sys$output "Can't make ''what'" $ init_status = 0 $ endif $ endif $! $ currentlib = f$search("libssh2*.exe") $! $ define libssh2 'currentlib' $! $ how = "''p2'" $ if how .eqs. "" .or. f$edit(p2,"trim,collapse,upcase") .eqs. "STATIC" $ then $ open/write lout 'link_opts' $ write lout "libssh2.olb/lib" $ write lout "sys$share:ssl$libcrypto_shr32.exe/share" $ write lout "sys$share:ssl$libssl_shr32.exe/share" $ write lout "gnv$libzshr/share" $ close lout $ else $ how = "SHARED" $ open/write lout 'link_opts' $ write lout "libssh2/share" $ close lout $ endif $! $return