]> git.draconx.ca Git - gob-dx.git/blob - README
Replace gnulib patch with new common helper macro.
[gob-dx.git] / README
1 GObject Builder (GOB-2)
2 (George's Obfuscated Bits)
3
4 Very simple preprocessor for making GObject 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 GObject 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         - Perhaps there is less of a need for GOB now that Vala is around.
15           Still, GOB is simpler and more 'lightweight' if that matters.
16           IMO, Vala is a nicer long term solution.  But that doesn't mean
17           that GOB needs to (nor will) go away.
18
19 To build:
20         (the usual drill :)
21         run "./configure;make"
22
23 To install:
24         run "make install" as root, or just take the gob2 binary and place
25         it anywhere you want.
26
27 To use:
28         run gob2 with the .gob file on the command line
29
30 What's generated:
31         two (.c and .h) files named by the object name with words
32         separated by a hyphen (not neccessairly the .gob file prefix)
33
34 How to write .gob files?
35         1) read "man gob2" for some documenation on how to use GOB
36         2) if you can't find what you need, read src/test.gob for an
37            example of GOB code
38         3) If you still can't find what you need, read src/lexer.l
39            and src/parse.y (in other words: RTFS)
40
41 How to include gob2 inside your project:
42
43         Put the gob2 distribution into a subdirectory in your main
44         project directory.  Use the AC_CONFIG_SUBDIRS to include that
45         directory in your configure run.  And finally add a file called
46         NOINST_GOB into your toplevel project directory (this can be done
47         inside your configure script in fact) so that gob2 doesn't install
48         itself.  Then just use the made gob2 binary as you would other
49         preprocessors.
50
51 License:
52         - Gob itself is under GPL, the generated code is under public domain.
53           See COPYING and COPYING.generated-code
54
55 TODO:
56         - clean up code
57         - make it behave nice
58         - add warnings all over the place
59         - get a life (done, hence the lower rate of updates to gob!)
60
61 George <jirka@5z.com>
62
63 [
64   Note: if you are looking for the old GOB (for GTK+ objects), which is what
65   used to be here, look into the gob-1-0 branch in old gnome CVS!  It is
66   not maintained anymore.
67 ]
68