1$!
2$!
3$ olddir = f$environment("default")
4$ on control_y then goto YExit
5$!
6$ gosub Init
7$ if .not. init_status then goto YExit
8$!
9$ if what .eqs. "ALL"
10$ then
11$	call MakeAll
12$ else
13$	call Make
14$endif
15$!
16$YExit:
17$ set noon
18$! deassign exadir
19$! deassign objdir
20$ delete 'link_opts';*
21$ set default 'olddir'
22$exit
23
24$MakeAll: subroutine
25$!
26$ set noon
27$Loop:
28$ this = f$search("exadir:*.c;0")
29$ if this .eqs. "" then goto EndLoop
30$!
31$ what = f$parse( this,,,"name")
32$ if what .eqs. "x11" then goto loop ! not portable yet
33$ call Make
34$!
35$ goto Loop
36$EndLoop:
37$!
38$exit
39$endsubroutine
40
41
42$Make: subroutine
43$!
44$ set noon
45$!
46$ cc 'cc_include' 'cc_flags'/object=objdir:'what' exadir:'what'
47$ sev = $severity
48$ if sev .and. 2
49$ then
50$	say "Error compiling ''what', not linked."
51$ else
52$ 	if .not. (sev .and. 1)
53$ 	then
54$		say "Compile warnings in  ''what'"
55$ 	endif
56$  link/exe='what'.exe objdir:'what'.obj, 'link_opts'/opt
57$ endif
58$!
59$!
60$End:
61$ delete objdir:'what'.obj;*
62$exit
63$endsubroutine
64
65
66$Init:
67$!
68$!
69$ init_status = 1
70$ thisid = f$integer( %x'f$getjpi(0,"pid")') + "''f$cvtime(,,"second")'"
71$ mdir   = f$environment("procedure")
72$ mdir   = mdir - f$parse(mdir,,,"name") - f$parse(mdir,,,"type") - f$parse(mdir,,,"version")
73$ set default 'mdir'
74$!
75$ objdir = "[.example_objects]"
76$ exadir = "[-.example]"
77$!
78$ objdirfile = objdir - "[." - "]" + ".dir"
79$ if f$search( objdirfile ) .eqs. ""
80$ then
81$	create/directory 'objdir'
82$ endif
83$!
84$ define objdir 'objdir'
85$ define exadir 'exadir'
86$!
87$ cc_include = "/include=([],[-.include])"
88$ cc_flags   = "/name=shortened/show=all/define=(_USE_STD_STAT=1)"
89$ link_opts  = "objdir:libssh2_''thisid'.opt"
90$!
91$!
92$ what = "''p1'"
93$ if what .eqs. "" .or. f$edit(p1,"trim,collapse,upcase") .eqs. "ALL"
94$ then
95$	what = "ALL"
96$ else
97$	what = f$parse(what,,,"name")
98$	if f$search("exadir:''what'.c") .eqs. ""
99$	then
100$		write sys$output "Can't make ''what'"
101$		init_status = 0
102$	endif
103$ endif
104$!
105$ currentlib = f$search("libssh2*.exe")
106$!
107$ define libssh2 'currentlib'
108$!
109$ how  = "''p2'"
110$ if how .eqs. "" .or. f$edit(p2,"trim,collapse,upcase") .eqs. "STATIC"
111$ then
112$ 	open/write lout 'link_opts'
113$ 	write lout "libssh2.olb/lib"
114$ 	write lout "sys$share:ssl$libcrypto_shr32.exe/share"
115$ 	write lout "sys$share:ssl$libssl_shr32.exe/share"
116$ 	write lout "gnv$libzshr/share"
117$ 	close lout
118$ else
119$	how = "SHARED"
120$ 	open/write lout 'link_opts'
121$ 	write lout "libssh2/share"
122$ 	close lout
123$ endif
124$!
125$return
126