-
Notifications
You must be signed in to change notification settings - Fork 86
Compilation
LambdaNative is designed to be used without an IDE, following the automake convention.
The configure command follows the format:
./configure <app> [ android|ios|macosx|win32|linux|openbsd ] [ debug|release ] [verbose]
<app>
is the name of the application, and must match a directory name in the ./apps
framework subdirectory. The target platform specifier is optional, if omitted the build will target the local host. Specifying release
will cause the iOS build to use the Distribution certificate instead of the development certificate. Submissions to the Apple store must be build with the release
option. The debug
option instructs both the Gambit and C compilers to include debug and source file location information. This is useful for tracking down problems in the code. verbose
will make the build less quiet, and show the build commands as they execute.
Once configured, the application can be build by typing make
. This will produce a binary in ../lambdanative-cache/<platform>/<app>
and a packaged application in ../lambdanative-cache/packages/<app>-<version>-<platform>
.
make install
attempts to install the application. For an iOS build, fruitstrap
will be invoked to automatically install the application to a development device attached to the computer. fruitstrap
works only with jailed devices. For jail-broken devices the application directory must be copied by other means such as scp
, and the permissions on the directory recursively set to 777
. For an android build, the debug bridge will attempt to install and launch the application. This requires the Android devices to be configured for development, and for some exotic devices the USB Vendor ID may have to be entered in the .android/adb_usb.ini
file.
LambdaNative supports shadowing of code from separate "satellite" framework directories. This can be used to separate repositories of open-source code and proprietary code and/or to maintain separate organization profiles.
For example, a satellite framework could contain:
$ ls ~/satellite_fw/:
PROFILE
apps/SatelliteApp/*
modules/SatelliteModule/*
libraries/libsatellite/*
fonts/satfont.ttf
The SatelliteApp
can be built with the LambdaNative tool chain
by specifying the satellite directory at configure time:
$ SYS_PATH=~/satellite_fw ./configure SatelliteApp
==> configured to build SatelliteApp for macosx on macosx in normal mode
== using source in ~/satellite_fw/apps/SatelliteApp
$ make
...
This will shadow in the framework directories and files from the satellite directory and build the app as if it was present in the LambdaNative apps
directory.
-
- accelerometer
- alist
- audio
- audioaux
- base64
- btle-scan
- camera
- cdb
- cgi
- config
- csv
- curl
- digest
- dmtx
- download
- eventloop
- fcgi
- fft
- generalized-arrays
- gps
- graph
- gyro
- hidapi
- hpdf
- html
- httpsclient
- hybridapp
- json
- lmdb
- ln_core
- ln_glcore
- ln_glgui
- ln_store
- localization
- localization_gui
- localnotification
- magnetometer
- mdns
- mqtt
- mqtt-store
- multitouch
- oauth
- orientation
- p256ecdsa
- png
- portaudio
- pregexp
- pressure
- prime
- pushnotification
- redcap
- rsa
- rtaudio
- rupi
- rotation
- sanestring
- scheduler
- serial
- sets
- settings
- simplexnoise
- sqlite
- ssax
- syntax-case
- timestamp
- ttf
- uiform
- url
- uuid
- vibrate
- videoplayer
- watchdog
- website
- xml
- zip