forked from GitHub/gf-core
reorganize the directories under src, and rescue the JavaScript interpreter from deprecated
This commit is contained in:
@@ -1,59 +0,0 @@
|
||||
GFCFLAGS = +RTS -K100M -RTS --cpu
|
||||
|
||||
.PHONY: pgf.fcgi run gwt gf-gwt.jar
|
||||
|
||||
pgf.fcgi:
|
||||
cabal install
|
||||
cp dist/build/pgf.fcgi/pgf.fcgi .
|
||||
|
||||
gwt-translate:
|
||||
chmod a+x gwt/Translate-compile
|
||||
gwt/Translate-compile
|
||||
|
||||
gwt-fridge:
|
||||
chmod a+x gwt/Fridge-compile
|
||||
gwt/Fridge-compile
|
||||
|
||||
gwt-morpho:
|
||||
chmod a+x gwt/Morpho-compile
|
||||
gwt/Morpho-compile
|
||||
|
||||
gf-gwt.jar:
|
||||
mkdir -p gwt/bin/se/chalmers/cs/gf/gwt/client
|
||||
javac -classpath "$(GWT_CLASSPATH):gwt/lib/gwt-dnd-2.5.6.jar" -sourcepath gwt/src gwt/src/se/chalmers/cs/gf/gwt/client/*.java
|
||||
jar -cf $@ -C gwt/src se
|
||||
cp $@ ../../lib/java
|
||||
|
||||
food.pgf:
|
||||
gfc --make --name=food ../../examples/tutorial/resource-foods/Foods{Eng,Fin,Fre,Ger,Ita,Swe}.gf
|
||||
|
||||
Demo%-parse.pgf: ../../next-lib/src/demo/Demo%.gf
|
||||
gfc $(GFCFLAGS) --make --erasing=on --name=Demo$*-parse $^
|
||||
|
||||
Demo%-noparse.pgf: ../../next-lib/src/demo/Demo%.gf
|
||||
gfc $(GFCFLAGS) --make --parser=off --name=Demo$*-noparse $^
|
||||
|
||||
Lang%-parse.pgf: ../../next-lib/alltenses/Lang%.gfo
|
||||
gfc $(GFCFLAGS) --make --erasing=on --name=Lang$*-parse $^
|
||||
|
||||
Lang%-noparse.pgf: ../../next-lib/alltenses/Lang%.gfo
|
||||
gfc $(GFCFLAGS) --make --parser=off --name=Lang$*-noparse $^
|
||||
|
||||
demo.pgf: DemoBul-noparse.pgf DemoCat-noparse.pgf DemoDan-noparse.pgf DemoEng-parse.pgf DemoFin-noparse.pgf DemoFre-noparse.pgf DemoGer-noparse.pgf DemoIta-noparse.pgf DemoNor-noparse.pgf DemoRus-noparse.pgf DemoSpa-noparse.pgf DemoSwe-parse.pgf
|
||||
gfc $(GFCFLAGS) --name=demo $^
|
||||
|
||||
lang.pgf: LangBul-noparse.pgf LangCat-noparse.pgf LangDan-parse.pgf LangEng-parse.pgf LangFin-noparse.pgf LangFre-noparse.pgf LangGer-noparse.pgf LangIta-noparse.pgf LangNor-parse.pgf LangRus-noparse.pgf LangSpa-noparse.pgf LangSwe-parse.pgf
|
||||
gfc $(GFCFLAGS) --name=lang $^
|
||||
|
||||
test.pgf: LangEng-parse.pgf LangGer-parse.pgf
|
||||
gfc $(GFCFLAGS) --name=test $^
|
||||
|
||||
run: pgf.fcgi
|
||||
@echo '*********************************************'
|
||||
@echo 'See http://localhost:41296/'
|
||||
@echo '*********************************************'
|
||||
lighttpd -f lighttpd.conf -D
|
||||
|
||||
clean:
|
||||
cabal clean
|
||||
-rm -f pgf.fcgi
|
||||
@@ -1,132 +0,0 @@
|
||||
== Requirements ==
|
||||
|
||||
- cabal-install
|
||||
* See quick installation instructions at the bottom of
|
||||
http://hackage.haskell.org/trac/hackage/wiki/CabalInstall
|
||||
|
||||
- GF installed as a Cabal package
|
||||
$ (cd ../.. && cabal install)
|
||||
|
||||
- FastCGI development kit
|
||||
(MacPorts) $ sudo port install fcgi
|
||||
(Ubuntu) $ sudo apt-get install libfcgi-dev
|
||||
|
||||
- Google Web Toolkit
|
||||
- Download from http://code.google.com/webtoolkit/
|
||||
- Unpack somewhere.
|
||||
- Set $GWT_CLASSPATH to point to the GWT JAR files. For example:
|
||||
$ export GWT_DIR="/Users/bringert/src/gwt-mac-1.5.3"
|
||||
$ export GWT_CLASSPATH="$GWT_DIR/gwt-user.jar:$GWT_DIR/gwt-dev-mac.jar"
|
||||
|
||||
|
||||
== Building ==
|
||||
|
||||
- Build pgf.fcgi. This will use cabal to install the dependencies (cgi, fastcgi, json, utf8-string).
|
||||
$ make
|
||||
|
||||
- Build small example grammar:
|
||||
$ make food.pgf
|
||||
$ cp food.pgf grammar.pgf
|
||||
|
||||
|
||||
== Running (lighttpd) ==
|
||||
|
||||
- Install lighttpd
|
||||
(MacPorts) $ sudo port install lighttpd
|
||||
(Ubuntu) $ sudo apt-get install lighttpd
|
||||
|
||||
- Run pgf.fcgi with lighttpd:
|
||||
$ make run
|
||||
|
||||
|
||||
== Testing ==
|
||||
|
||||
- First test from the command-line, since debugging is harder from the AJAX UI:
|
||||
$ curl 'http://localhost:41296/pgf/grammar.pgf/translate?input=this+fish&cat=Item&from=FoodEng'
|
||||
|
||||
- Non-GWT AJAX UI:
|
||||
See http://localhost:41296/simple-client.html
|
||||
|
||||
- GWT translator:
|
||||
$ make gwt-translate
|
||||
Then see http://localhost:41296/translate/
|
||||
|
||||
- GWT fridge poetry:
|
||||
$ make gwt-fridge
|
||||
Then see http://localhost:41296/fridge/
|
||||
|
||||
- GWT morphology:
|
||||
$ make gwt-morpho
|
||||
Then see http://localhost:41296/morpho/
|
||||
|
||||
The MorphoService.hs module has build-in paths to the grammar that will be loaded.
|
||||
This have to be fixed by hand
|
||||
|
||||
== Running (Apache) ==
|
||||
|
||||
Note: This is more complicated, and the instructions may not be up to date.
|
||||
|
||||
- Make sure that your web server supports FastCGI. For Apache on OS X,
|
||||
do this:
|
||||
|
||||
$ curl -O http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
|
||||
$ tar -zxf mod_fastcgi-2.4.6.tar.gz
|
||||
$ cd mod_fastcgi-2.4.6/
|
||||
$ apxs -o mod_fastcgi.so -c *.c
|
||||
$ sudo apxs -i -a -n fastcgi mod_fastcgi.so
|
||||
|
||||
- Make sure that your web server knows that gf.fcgi is a FastCGI
|
||||
program.
|
||||
|
||||
- Make sure that you are allowed to run FastCGI programs in the
|
||||
directory that you use.
|
||||
|
||||
- With large grammars, gf.fcgi may take long enough to start that the web server
|
||||
thinks that the program has died. With Apache, you can fix this by adding
|
||||
"FastCgiConfig -startDelay 30" to your httpd.conf.
|
||||
|
||||
These sections from my Apache config fixes the above two
|
||||
(some of this may be fixed by the second apxs command above):
|
||||
|
||||
(On OS X, this is in /etc/httpd/httpd.conf)
|
||||
|
||||
LoadModule fastcgi_module libexec/httpd/mod_fastcgi.so
|
||||
AddModule mod_fastcgi.c
|
||||
|
||||
<IfModule mod_fastcgi.c>
|
||||
FastCgiIpcDir /tmp/fcgi_ipc/
|
||||
AddHandler fastcgi-script .fcgi
|
||||
FastCgiConfig -startDelay 30
|
||||
</IfModule>
|
||||
|
||||
|
||||
(On OS X, this is in /etc/httpd/users/bringert.conf)
|
||||
|
||||
<Directory "/Users/bringert/Sites/">
|
||||
Options Indexes MultiViews FollowSymlinks ExecCGI
|
||||
AddHandler cgi-script .cgi
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
- If you have changed the web server config, you need to restart the web server
|
||||
(this is also useful to get a clean slate if you end up with dead or resource-hogging
|
||||
FastCGI processes):
|
||||
|
||||
$ sudo apachectl restart
|
||||
|
||||
- If Apache complains about a syntax error on the FastCgiIpcDir line, try deleting
|
||||
any existing /tmp/fcgi_ipc/ directory:
|
||||
|
||||
$ sudo rm -rf /tmp/fcgi_ipc/
|
||||
|
||||
- Copy or symlink this directory to your web directory.
|
||||
|
||||
- First test from the command-line, since debugging is harder from the AJAX UI:
|
||||
|
||||
$ curl 'http://localhost/~bringert/gf-server/gf.fcgi/translate?input=this+fish&cat=Item&from=FoodEng'
|
||||
|
||||
- Check server logs (e.g. /var/log/httpd/error_log) if it doesn't work.
|
||||
|
||||
- Go to SERVER_URL/simple-client.html in your web browser.
|
||||
Reference in New Issue
Block a user