# HG changeset patch # User Adam Chlipala # Date 1261941922 18000 # Node ID 324c9ffe8ff9ee0ee8c0a25c13dd157a5691162a # Parent bed675db3affd3d706aeceab7aa9db73eb3a8f75 Protocol-specific compiler options diff -r bed675db3aff -r 324c9ffe8ff9 src/cgi.sml --- a/src/cgi.sml Sun Dec 27 13:18:32 2009 -0500 +++ b/src/cgi.sml Sun Dec 27 14:25:22 2009 -0500 @@ -30,6 +30,7 @@ open Settings val () = addProtocol {name = "cgi", + compile = "", linkStatic = clibFile "cgi.o", linkDynamic = "-lurweb_cgi", persistent = false} diff -r bed675db3aff -r 324c9ffe8ff9 src/compiler.sml --- a/src/compiler.sml Sun Dec 27 13:18:32 2009 -0500 +++ b/src/compiler.sml Sun Dec 27 14:25:22 2009 -0500 @@ -529,7 +529,8 @@ timeout := SOME (valOf (Int.fromString arg))) | "ffi" => ffi := relify arg :: !ffi | "link" => let - val arg = if size arg >= 2 andalso String.substring (arg, 0, 2) = "-l" then + val arg = if size arg >= 1 + andalso String.sub (arg, 0) = #"-" then arg else relifyA arg @@ -1033,7 +1034,9 @@ "-L" ^ Config.libC ^ " -lurweb " ^ #linkDynamic proto val compile = "gcc " ^ Config.gccArgs ^ " -Wimplicit -Werror -O3 -fno-inline -I " ^ Config.includ + ^ " " ^ #compile proto ^ " -c " ^ cname ^ " -o " ^ oname + val link = "gcc -Werror -O3 -lm -lmhash -pthread " ^ Config.gccArgs ^ " " ^ libs ^ " " ^ lib ^ " " ^ oname ^ " -o " ^ ename diff -r bed675db3aff -r 324c9ffe8ff9 src/fastcgi.sml --- a/src/fastcgi.sml Sun Dec 27 13:18:32 2009 -0500 +++ b/src/fastcgi.sml Sun Dec 27 14:25:22 2009 -0500 @@ -30,6 +30,7 @@ open Settings val () = addProtocol {name = "fastcgi", + compile = "", linkStatic = clibFile "fastcgi.o", linkDynamic = "-lurweb_fastcgi", persistent = true} diff -r bed675db3aff -r 324c9ffe8ff9 src/http.sml --- a/src/http.sml Sun Dec 27 13:18:32 2009 -0500 +++ b/src/http.sml Sun Dec 27 14:25:22 2009 -0500 @@ -30,6 +30,7 @@ open Settings val () = addProtocol {name = "http", + compile = "", linkStatic = clibFile "http.o", linkDynamic = "-lurweb_http", persistent = true} diff -r bed675db3aff -r 324c9ffe8ff9 src/settings.sig --- a/src/settings.sig Sun Dec 27 13:18:32 2009 -0500 +++ b/src/settings.sig Sun Dec 27 14:25:22 2009 -0500 @@ -93,6 +93,7 @@ (* Web protocols that generated programs may speak *) type protocol = { name : string, (* Call it this on the command line *) + compile : string, (* Pass these `gcc -c' arguments *) linkStatic : string, (* Pass these static linker arguments *) linkDynamic : string,(* Pass these dynamic linker arguments *) persistent : bool (* Multiple requests per process? *) diff -r bed675db3aff -r 324c9ffe8ff9 src/settings.sml --- a/src/settings.sml Sun Dec 27 13:18:32 2009 -0500 +++ b/src/settings.sml Sun Dec 27 14:25:22 2009 -0500 @@ -270,6 +270,7 @@ type protocol = { name : string, + compile : string, linkStatic : string, linkDynamic : string, persistent : bool @@ -282,6 +283,7 @@ file = s} val curProto = ref {name = "", + compile = "", linkStatic = "", linkDynamic = "", persistent = false}