]> git.draconx.ca Git - gob-dx.git/blob - README
Release 1.0.12
[gob-dx.git] / README
1 GTK+ Object Builder (GOB)
2 (George's Obfuscated Bits)
3
4 Very simple preprocessor for making GTK+ objects with inline C code so that
5 generated files are not editted.  Syntax is inspired by java and yacc or lex.
6 The implementation is intentionaly kept simple, and no C code parsing is done.
7
8 Reasons:
9         - C is a perfect (well mostly) language, no need for another language
10         - Writing a fully featured GTK+ object is a hassle
11         - Need for a generator that doesn't require changes to generated code
12         - I like how Java writes method code directly into the class
13           definition.
14
15 To build:
16         (the usual drill :)
17         run "./configure;make"
18
19 To install:
20         run "make install" as root, or just take the gob binary and place
21         it anywhere you want.
22
23 To use:
24         run gob with the .gob file on the command line
25
26 What's generated:
27         two (.c and .h) files named by the object name with words
28         separated by a hyphen (not neccessairly the .gob file prefix)
29
30 How to write .gob files?
31         1) read "man gob" for some documenation on how to use GOB
32         2) if you can't find what you need, read src/test.gob for an
33            example of GOB code
34         3) If you still can't find what you need, read src/lexer.l
35            and src/parse.y (in other words: RTFS)
36
37 How to include gob inside your project:
38
39         Put the gob distribution into a subdirectory in your main
40         project directory.  Use the AC_CONFIG_SUBDIRS to include that
41         directory in your configure run.  And finally add a file called
42         NOINST_GOB into your toplevel project directory (this can be done
43         inside your configure script in fact) so that gob doesn't install
44         itself.  Then just use the made gob binary as you would other
45         preprocessors.
46
47 TODO:
48         - clean up code
49         - make it behave nice
50         - add warnings all over the place
51         - get a life
52
53 George <jirka@5z.com>