$!
$
$	on control_y then goto Common_Exit!
$	orig = f$environment("DEFAULT")
$	loc  = f$environment("PROCEDURE")
$	def = f$parse("X.X;1",loc) - "X.X;1"
$
$	set def 'def'
$	cc_qual = "/define=HAVE_CONFIG_H=1/include=(""../include/"",""../"")"
$	if p1 .eqs. "LISTING" then cc_qual = cc_qual + "/LIST/MACHINE"
$	if p1 .eqs. "DEBUG" then cc_qual = cc_qual + "/LIST/MACHINE/DEBUG"
$	msg_qual = ""
$	call build "[.lib]" "*.c"
$	call build "[.src]" "*.c"
$	call build "[.src]" "*.msg"
$	link /exe=curl.exe [.src]curl/lib/include=main,[.lib]curl/lib
$
$
$	goto Common_Exit
$build:	subroutine
$	set noon
$	set default 'p1'
$	search = p2
$	reset = f$search("reset")
$	if f$search("CURL.OLB") .eqs. ""
$	then
$		LIB/CREATE/OBJECT CURL.OLB
$	endif
$	reset = f$search("reset",1)
$Loop:
$	file = f$search(search,1)
$	if file .eqs. "" then goto EndLoop
$		obj = f$search(f$parse(".OBJ;",file),2)
$		if (obj .nes. "")
$		then
$			if (f$cvtime(f$file(file,"rdt")) .gts. f$cvtime(f$file(obj,"rdt")))
$			then
$				call compile 'file'
$				lib/object curl.OLB 'f$parse(".obj;",file)'
$			else
$!				write sys$output "File: ''file' is up to date"
$			endif
$		else
$!			write sys$output "Object for file: ''file' does not exist"
$			call compile 'file'
$			lib/object curl.OLB 'f$parse(".obj;",file)'
$		endif
$	goto Loop
$EndLoop:
$	purge
$	set def 'def'
$	endsubroutine	! Build
$
$compile:	subroutine
$	set noon
$	file = p1
$	qual = p2+p3+p4+p5+p6+p7+p8
$	typ = f$parse(file,,,"TYPE") - "."
$	cmd_c = "CC "+cc_qual
$	cmd_msg = "MESSAGE "+msg_qual
$	x = cmd_'typ'
$	'x' 'file'
$	ENDSUBROUTINE	! Compile
$
$Common_Exit:
$	set default 'orig'
$	exit
