chandrusf (author)
Wed May 21 08:28:11 -0700 2008
commit  9dddc77f05b8d91f8196e31500983f6b1e766251
tree    a1cecfdae6276db514ddfca9abf31431c622bb06
parent  c784ab8ded409bcf6f4a310597e7dabc04fbcbcd
jungerl / README
100644 79 lines (51 sloc) 2.859 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
How to use the Jungerl
======================================================================
 
Simple! You just do 'make' to build all the erlang programs.
 
If you want, you can add the bin/ directory to your $PATH, and use the
useful programs in there. One is 'jerl', a simple wrapper around 'erl'
that adds all the Jungerl applications to the code path.
 
If a program is giving you trouble, just put an empty file called SKIP
in its top-level directory. For example, if you want to skip the
'tuntap' program, you can do: touch lib/tuntap/SKIP
 
If you want to compile only one program or library, you can just do 'make conf'
and then type make in the lib/PROGRAMNAME directory of your choice.
 
How to add an application to the Jungerl
======================================================================
 
Each application has its own directory called lib/<appname>.
 
The absolute minimum requirement for an application is to have a
Makefile in the lib/<appname> directory with two targets:
 
  'all' should build the program.
 
  'clean' should delete any object files.
 
Realistically, your lib/<appname>/ dir should also have any of these
subdirectories that are appropriate:
 
  src/ containing erlang sources
 
  ebin/ for putting compiled beam files
 
  c_src/ containing C sources
 
  priv/ containing files you want at runtime (e.g. built from c_src)
 
  doc/ (not sure what this is for..)
 
Once you have created your application, you should edit the 'lib/'
directory Makefile like this:
 
  Add your <appname> to the "LIBS" variable.
 
  If you depend on other applications, add a line that says so. (These
  are down near the bottom.)
 
Note that Applications in the Jungerl should be compatible with the
latest released version of Erlang/OTP!
 
 
Makefile Helpers
----------------------------------------------------------------------
 
The support/ directory contains a couple of useful include files for
your Makefiles:
 
  subdirs.mk: Intended for your lib/<appname>/ directory, this defines
    targets for 'all' and 'clean' that just cd into $(SUBDIRS) (by
    default c_src and src) and does the same "make" in each of them.
 
  include.mk: This defines a bunch of useful things for building C and
    Erlang programs. For C it has 'configure'-detected CC and CFLAGS
    variables, and ERL_C_INCLUDE_DIR for
    <prefix>/lib/erlang/usr/include/ (e.g. for writing drivers)
 
    For Erlang it has a 'configure'-detected ERLC, an
    automatically-detected list of beam files to build (../ebin/*.beam
    for all *.erl files) called ERL_OBJECTS, and
    automatically-detected list of headers they depend on (*.hrl and
    ../include/*.hrl) called ERL_HEADERS, and an implicit rule for
    building ../ebin/*.beam from *.erl.
 
That probably wasn't very clear, but if you look at how the 'tuntap'
program's Makefiles are done then it should be obvious!