Giter Club home page Giter Club 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

halzy avatar pusewicz 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.