[erlang-questions] Yaws, ErlyWeb and Windows.

Ahmed Ali <>
Sun Sep 16 12:39:30 CEST 2007


Hi All,

I had the same experience at first until I found the following page for
building YAWS under CYGWIN on a windows machine. It works for me. I think
the Makefile for windows should be fixed to prevent such headaches.

http://bloggablea.wordpress.com/2007/04/21/building-yaws-for-windows/

Best regards

Ahmed Al-Issaei

On 9/14/07, Bob Cowdery <> wrote:
>
> Ghalib
>
> Thanks for that. I hope you can resolve it. I don't think I know enough at
> the moment but I'm learning.
>
> Bob
>
> -----Original Message-----
> From: 
> [mailto:]On Behalf Of Ghalib Suleiman
> Sent: 14 September 2007 12:16
> To: 
> Subject: Re: [erlang-questions] Yaws, ErlyWeb and Windows.
>
>
> Hi Bob, Erlyweb does indeed have a bug on Windows where it doesn't
> seem to be registering components properly (I ran into this last week
> myself), thus making it unusable. There's a slight discussion about
> it on the Erlyweb Google Group - I plan to hunt down the bug when I'm
> back at work tomorrow, as I don't have access to a Windows machine at
> home.
>
> -Ghalib
>
> On Sep 13, 2007, at 11:00 AM, Bob Cowdery wrote:
>
> > Robert
> >
> > Thanks very much for that. I will have a go when I'm out the woods.
> > At the moment the pre-built version is working ok.
> >
> > However, I wonder, do you use ErlyWeb because I'm having trouble
> > with it. I posted a message on the forum yesterday but no replies
> > yet. Essentially I can't get it to generate code for a MySQL table
> > and it can't seem to find the controller that it generated anyway.
> > In fact it dosn't seem think they are controllers and views.
> >
> > Any help appreciated.
> >
> > Bob
> >
> > -----Original Message-----
> > From: 
> > [mailto:]On Behalf Of Robert
> > Raschke
> > Sent: 11 September 2007 10:36
> > To: 
> > Subject: Re: [erlang-questions] Yaws, ErlyWeb and Windows.
> >
> >
> >> Bob Cowdery wrote:
> >>> Hi All
> >>>
> >>> Can someone give me the picture on Yaws and ErlyWeb under Windows
> >>> please
> >>
> >> I'm sorry about that - to my knowledge there is quite a lot
> >> of people running yaws under windows. I don't run windows at
> >> all any longer - and I'll just have to leave it up to the
> >> yaws/windows community to write e.g. a proper wiki entry on how to do
> >> it. I know for sure that it atleast used to work - I made sure it
> >> worked once, but it might have gone bad.
> >
> > Here's how I build yaws on Windows:
> >
> > My source root is $ROOT.
> > Unpack yaws-1.68 into $ROOT/lib/yaws.
> > Have a folder called $ROOT/extra with the files yaws_generated.erl and
> > yaws.app (although I forget why I need yaws.app):
> >
> > yaws_generated.erl:
> > %%
> > %---------------------------------------------------------------------
> > -
> > %%% File    : yaws_generated.template
> > %%% Author  : Klacke <>
> > %%% Purpose :
> > %%% Created : 10 Jun 2002 by Klacke <>
> > %%
> > %---------------------------------------------------------------------
> > -
> >
> > %% generated code from some environment variables
> > %% especially VARDIR is important since it controls
> > %% where the --hup and friends
> >
> > -module(yaws_generated).
> > -author('').
> >
> > -compile(export_all).
> >
> > version() -> "1.68".
> >
> > vardir() ->  "C:/yaws/var".
> >
> > ctldir() -> "C:/yaws/var/run/yaws".
> >
> > etcdir() -> "C:/yaws/etc".
> >
> > % (Or whatever you want your defaults to be.)
> >
> > yaws.app:
> > {application, yaws, [
> >       {description, "yaws WWW server"},
> >       {vsn, "1.68"},
> >       {modules, [
> >               yaws,
> >               yaws_app,
> >               yaws_ticker,
> >               yaws_config,
> >               yaws_server,
> >               yaws_sup,
> >               yaws_api,
> >               yaws_log,
> >               yaws_ls,
> >               yaws_debug,
> >               yaws_compile,
> >               yaws_ctl,
> >               yaws_cgi,
> >               yaws_zlib,
> >               yaws_generated,
> >               mime_type_c,
> >               mime_types,
> >               yaws_session_server,
> >               yaws_404,
> >               yaws_revproxy,
> >               yaws_html,
> >               yaws_log_file_h,
> >               yaws_rss,
> >               yaws_dav,
> >               yaws_pam,
> >               json,
> >               jsonrpc,
> >               yaws_jsonrpc,
> >               yaws_xmlrpc,
> >               haxe,
> >               yaws_rpc,
> >               yaws_soap_srv,
> >               yaws_soap_lib
> >       ]},
> >       {registered, []},
> >       {mod, {yaws_app, []}},
> >       {env, []},
> >       {applications, [
> >               kernel,
> >               stdlib
> >       ]}
> > ]}.
> >
> > And then I run this batch script:
> >
> > build_yaws.bat:
> > @echo off
> > setlocal
> >
> > copy /Y extra\yaws_generated.erl lib\yaws\src
> > cd lib\yaws\src
> >
> > set ERLC="C:\Program Files\erl5.5.4\bin\erlc"
> > set ERL="C:\Program Files\erl5.5.4\bin\erl"
> >
> > set ERLCOPTS=-W -pa .. -I../include -o ../ebin
> > set ERLOPTS=-noshell  -pa ../ebin
> >
> >
> > %ERLC% %ERLCOPTS% yaws.erl
> > %ERLC% %ERLCOPTS% yaws_app.erl
> > %ERLC% %ERLCOPTS% yaws_ticker.erl
> > %ERLC% %ERLCOPTS% yaws_config.erl
> > %ERLC% %ERLCOPTS% yaws_server.erl
> > %ERLC% %ERLCOPTS% yaws_sup.erl
> > %ERLC% %ERLCOPTS% yaws_api.erl
> > %ERLC% %ERLCOPTS% yaws_log.erl
> > %ERLC% %ERLCOPTS% yaws_ls.erl
> > %ERLC% %ERLCOPTS% yaws_debug.erl
> > %ERLC% %ERLCOPTS% yaws_compile.erl
> > %ERLC% %ERLCOPTS% yaws_ctl.erl
> > %ERLC% %ERLCOPTS% yaws_cgi.erl
> > %ERLC% %ERLCOPTS% yaws_zlib.erl
> > %ERLC% %ERLCOPTS% yaws_generated.erl
> > %ERLC% %ERLCOPTS% yaws_session_server.erl
> > %ERLC% %ERLCOPTS% yaws_404.erl
> > %ERLC% %ERLCOPTS% yaws_revproxy.erl
> > %ERLC% %ERLCOPTS% yaws_html.erl
> > %ERLC% %ERLCOPTS% yaws_log_file_h.erl
> > %ERLC% %ERLCOPTS% yaws_rss.erl
> > %ERLC% %ERLCOPTS% yaws_dav.erl
> > %ERLC% %ERLCOPTS% yaws_pam.erl
> > %ERLC% %ERLCOPTS% json.erl
> > %ERLC% %ERLCOPTS% jsonrpc.erl
> > %ERLC% %ERLCOPTS% yaws_jsonrpc.erl
> > %ERLC% %ERLCOPTS% yaws_xmlrpc.erl
> > %ERLC% %ERLCOPTS% haxe.erl
> > %ERLC% %ERLCOPTS% yaws_rpc.erl
> > %ERLC% %ERLCOPTS% yaws_soap_srv.erl
> > %ERLC% %ERLCOPTS% yaws_soap_lib.erl
> >
> > del /F charset.def
> > echo. > charset.def
> >
> > %ERLC% %ERLCOPTS% mime_type_c.erl
> > %ERL% %ERLOPTS% -s mime_type_c compile
> > %ERLC% %ERLCOPTS% mime_types.erl
> >
> > pause
> > endlocal
> >
> >
> > I have also made a small attempt at writing a yaws.bat file, but I
> > haven't used this in a few years:
> >
> > @echo off
> > setlocal
> >
> > set HOME=C:/yaws
> > set yawsdir=C:/yaws/erlang/yaws-1.68
> >
> > set erl=C:\Program Files\erl5.5.4\bin\erl.exe
> > set werl=C:\Program Files\erl5.5.4\bin\werl.exe
> >
> > set debug=
> > set daemon=
> > set interactive=
> > set trace=
> > set conf=
> > set runmod=
> > set sname=
> > set heart=
> > set xpath=
> > set mnesia=
> > set id=default
> > set pdist=
> > set erlarg=
> >
> > :NEXTARG
> > set arg=%1
> > shift
> > if "%arg%"=="" goto ENDARGS
> >
> > if "%arg%"=="-i" goto INTERACT
> > if "%arg%"=="--interactive" goto INTERACT
> >
> > if "%arg%"=="-w" goto WINTERACT
> > if "%arg%"=="--winteractive" goto WINTERACT
> >
> > if "%arg%"=="-D" goto DAEMON
> > if "%arg%"=="--daemon" goto DAEMON
> >
> > if "%arg%"=="-d" goto DEBUG
> > if "%arg%"=="--debug" goto DEBUG
> >
> > if "%arg%"=="-t" goto TRACETR
> > if "%arg%"=="--tracetraf" goto TRACETR
> >
> > if "%arg%"=="-T" goto TRACEHT
> > if "%arg%"=="--tracehttp" goto TRACEHT
> >
> > if "%arg%"=="-I" goto ID
> > if "%arg%"=="--id" goto ID
> >
> > if "%arg%"=="-x" goto TRACEOUT
> > if "%arg%"=="--traceout" goto TRACEOUT
> >
> > if "%arg%"=="--trace" goto TRACE
> >
> > if "%arg%"=="-M" goto MNESIADIR
> > if "%arg%"=="--mnesiadir" goto MNESIADIR
> >
> > if "%arg%"=="-c" goto CONF
> > if "%arg%"=="--conf" goto CONF
> >
> > if "%arg%"=="-pa" goto PA
> > if "%arg%"=="--pa" goto PA
> >
> > if "%arg%"=="-r" goto RUNMOD
> > if "%arg%"=="--runmod" goto RUNMOD
> >
> > if "%arg%"=="-h" goto HUP
> > if "%arg%"=="--hup" goto HUP
> >
> > if "%arg%"=="-s" goto STOP
> > if "%arg%"=="--stop" goto STOP
> >
> > if "%arg%"=="-ls" goto LS
> > if "%arg%"=="--ls" goto LS
> >
> > if "%arg%"=="-S" goto STATUS
> > if "%arg%"=="--status" goto STATUS
> >
> > if "%arg%"=="-load" goto LOAD
> > if "%arg%"=="--load" goto LOAD
> >
> > if "%arg%"=="-j" goto CTLTRACE
> > if "%arg%"=="--ctltrace" goto CTLTRACE
> >
> > if "%arg%"=="-v" goto VERSION
> > if "%arg%"=="--version" goto VERSION
> >
> > if "%arg%"=="-sname" goto SNAME
> > if "%arg%"=="--sname" goto SNAME
> >
> > if "%arg%"=="-name" goto NAME
> > if "%arg%"=="--name" goto NAME
> >
> > if "%arg%"=="-heart" goto HEART
> > if "%arg%"=="--heart" goto HEART
> >
> > if "%arg%"=="-proto_dist" goto PROTO
> > if "%arg%"=="--proto_dist" goto PROTO
> >
> > if "%arg%"=="-erlarg" goto ERLARG
> > if "%arg%"=="--erlarg" goto ERLARG
> >
> > if "%arg%"=="-check" goto CHECK
> > if "%arg%"=="--check" goto CHECK
> >
> > goto HELP
> >
> > :INTERACT
> > set interactive=true
> > set debug= -yaws debug
> > set daemon=
> > goto NEXTARG
> >
> > :WINTERACT
> > set interactive=true
> > set debug= -yaws debug
> > set daemon=
> > set erl=%werl%
> > goto NEXTARG
> >
> > :DAEMON
> > set daemon= -detached
> > goto NEXTARG
> >
> > :DEBUG
> > set debug= -boot start_sasl -yaws debug
> > goto NEXTARG
> >
> > :TRACETR
> > set trace= -yaws trace traffic
> > goto NEXTARG
> >
> > :TRACEHT
> > set trace= -yaws trace http
> > goto NEXTARG
> >
> > :ID
> > set id=%1
> > shift
> > goto NEXTARG
> >
> > :TRACEOUT
> > set traceoutput= -yaws traceoutput
> > goto NEXTARG
> >
> > :TRACE
> > set traceoutput= -yaws traceoutput
> > set trace= -yaws trace traffic
> > goto NEXTARG
> >
> > :MNESIADIR
> > set mnesia= -mnesia dir %1 -run mnesia start
> > shift
> > goto NEXTARG
> >
> > :CONF
> > set conf= -conf %1
> > shift
> > goto NEXTARG
> >
> > :PA
> > set xpath= %xpath% -pa %1
> > shift
> > goto NEXTARG
> >
> > :RUNMOD
> > set runmod= -runmod %1
> > shift
> > goto NEXTARG
> >
> > :HUP
> > set ex="%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws_ctl hup
> > goto NEXTARG
> >
> > :STOP
> > set ex="%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws_ctl stop
> > goto NEXTARG
> >
> > :LS
> > set ex="%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws_ctl ls
> > goto NEXTARG
> >
> > :STATUS
> > set ex="%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws_ctl status
> > goto NEXTARG
> >
> > :LOAD
> > "%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws_ctl load %id% %1 %2 %
> > 3 %4 %5 %6 %7 %8 %9
> > goto END
> >
> > :CTLTRACE
> > set ex="%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws_ctl trace %1
> > shift
> > goto NEXTARG
> >
> > :VERSION
> > "%erl%" -noshell -pa "%yawsdir%/ebin" -s yaws printversion
> > goto END
> >
> > :SNAME
> > set sname= -sname %1
> > shift
> > goto NEXTARG
> >
> > :NAME
> > set sname= -name %1
> > shift
> > goto NEXTARG
> >
> > :HEART
> > set heart= -heart
> > goto NEXTARG
> >
> > :PROTO
> > set pdist= -proto_dist %1
> > shift
> > goto NEXTARG
> >
> > :ERLARG
> > set erlarg=%erlarg% %1
> > shift
> > goto NEXTARG
> >
> > :CHECK
> > mkdir "%HOME%/.yaws/"
> > mkdir "%HOME%/.yaws/%id%"
> > "%erl%" -noshell -pa "%yawsdir%/ebin" %xpath% -s yaws_ctl check %id
> > % %1 %2 %3 %4 %5 %6 %7 %8 %9
> > goto END
> >
> > :ENDARGS
> >
> > if NOT DEFINED ex goto NOEX
> > %ex% %id%
> > goto END
> > :NOEX
> >
> > if "%id%"=="" goto NOID
> > set id=-yaws id %id%
> > :NOID
> >
> > set trace=%trace% %traceoutput%
> >
> > if "%daemon%%interactive%"=="" goto HELP
> >
> > set XEC=%daemon% %heart% -pa "%yawsdir%/ebin" %xpath% %sname% %pdist
> > % %erlarg% %debug% -s yaws %trace% %conf% %runmod% %mnesia% %id%
> >
> > set HEART_COMMAND=
> > if "%heart%%daemon%"=="" goto NOHEART
> > echo set HEART_COMMAND="%erl%" %XEC%
> > set HEART_COMMAND="%erl%" %XEC%
> >
> > :NOHEART
> > echo "%erl%" %XEC%
> > "%erl%" %XEC%
> > goto END
> >
> > :HELP
> > echo "usage:  "
> > echo ""
> >
> > echo "       yaws -i | --interactive         -- interactive (no
> > daemon) mode"
> > echo "       yaws -w | --winteractive        -- interactive (werl) "
> > echo "       yaws --daemon                   -- daemon mode"
> >
> > echo ""
> >
> > echo ""
> > echo "       Auxilliary flags for the daemon: "
> > echo "            --id Id          --  Set system id"
> > echo "            --debug          --  debug mode "
> > echo "            --conf File      --  set config file"
> > echo "            --tracetraf      --  trace traffic"
> > echo "            --tracehttp      --  trace http traffic"
> > echo "            --traceout       --  trace output to stdout"
> > echo "            --version        --  print version"
> > echo "            --pa path        --  add load path"
> > echo "            --mnesiadir dir  --  start Mnesia in dir"
> > echo "            --proto_dist Mod     --  use Mod for distrib"
> > echo "            --sname xxx      --  start with sname xxx"
> > echo "            --name xxx       --  start with name xxx"
> > echo "            --runmod mod     --  call mod:start/0 at startup"
> > echo "            --heart          --  auto restart yaws if it
> > crashes"
> > echo "            --erlarg X       --  pass argument X to $erl"
> >
> > echo ""
> >
> > echo "ctl functions ... "
> > echo "        yaws --hup [--id ID]       -- hup the daemon, reload
> > conf"
> > echo "        yaws --stop [--id ID]     -- stop the daemon"
> > echo "        yaws --status [--id ID]    -- query the daemon status"
> > echo "        yaws --load Modules        -- load modules"
> > echo "        yaws --ls                  -- list Yaws nodes and
> > their status"
> > echo "        yaws --ctltrace traffic|http    -- toggle trace of
> > running daemon"
> > echo "        yaws --check YawsFile [IncDirs] -- test compile File"
> >
> > :END
> > endlocal
> >
> >
> >
> > Robby
> >
> > --
> > r fullstop raschke around tombob fullstop com
> >
> >
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://www.erlang.org/mailman/listinfo/erlang-questions
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://www.erlang.org/mailman/listinfo/erlang-questions
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20070916/28340112/attachment.html>


More information about the erlang-questions mailing list