https://github.com/massemanet/jungerl
a mirror of the Jungerl
https://github.com/massemanet/jungerl
erlang
Last synced: 12 months ago
JSON representation
a mirror of the Jungerl
- Host: GitHub
- URL: https://github.com/massemanet/jungerl
- Owner: massemanet
- Created: 2018-02-04T19:21:05.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-04T19:53:49.000Z (over 8 years ago)
- Last Synced: 2025-03-14T06:41:57.931Z (over 1 year ago)
- Topics: erlang
- Language: Erlang
- Homepage: https://sourceforge.net/projects/jungerl
- Size: 4.69 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- Support: support/.cvsignore
Awesome Lists containing this project
README
Jungerl was an experiment in code sharing, similar in spirit to
github. It was well ahead of its time, started at "Mon Feb 10
22:13:03 2003" by the inimitable Luke Gorrie. It was a CVS repo on
Sourceforge, where everyone had the commit bit. It was host of quite a
few early open-source Erlang programs. It was more or less abandoned
by 2010. By then, not only had github started, but CVS was hopelessly
inadequate compared to SVN.
Much of the code has found its way to github, but the Jungerl itself was
abandoned on a Sourceforge backup. Purely out of a sense of archivological
duty it was pulled off of that backup tape (kudos to Sourceforge for making
that easy) and pushed to github.
Everything is left untouched; I have no idea if any of it still builds.
Copyrights etc. of course belongs to the original authors; I've just moved
it from sourceforge to github.
- mats cronqvist, Feb 4th, 2018
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/.
The absolute minimum requirement for an application is to have a
Makefile in the lib/ directory with two targets:
'all' should build the program.
'clean' should delete any object files.
Realistically, your lib// 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 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// 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
/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!