Code Monkey home page Code Monkey logo

jungerl's Introduction

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!

jungerl's People

Contributors

tomas-abrahamsson avatar gebi avatar halzy avatar pusewicz avatar

Watchers

James Cloos avatar STYLIANOS IORDANIS avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.