James E. King, III | b28160b | 2017-02-15 14:23:44 -0500 | [diff] [blame] | 1 | Thrift OCaml Development |
| 2 | ======================== |
| 3 | |
| 4 | Prerequisites |
| 5 | ------------- |
| 6 | |
| 7 | In order to build this library, you must have the following installed: |
| 8 | |
| 9 | * The OCaml compiler, preferably >4.00 |
| 10 | * The Oasis build tool |
| 11 | |
| 12 | In addition you may want to install OPAM, which will allow you to setup an |
| 13 | OCaml development environment that's isolated from your system installation, |
| 14 | much like virutalenv for Python or the myriad systems available for Ruby. If |
| 15 | you have OPAM installed, then installing Oasis is as simple as running: |
| 16 | |
| 17 | $ opam install oasis |
| 18 | |
| 19 | Building |
| 20 | -------- |
| 21 | |
| 22 | Once all the prerequisites have been installed, run the following commands: |
| 23 | |
| 24 | $ oasis setup |
| 25 | $ ./configure |
| 26 | $ make |
| 27 | |
| 28 | The `oasis setup` command will generate the configure script and Makefile, |
| 29 | along with other files that opam will use to create an installable library. |
| 30 | The cofigure script will ensure that all build dependencies are installed, and |
| 31 | make will actually build the library. |
| 32 | |
| 33 | To remove files that the compiler geneates, run: |
| 34 | |
| 35 | $ make clean |
| 36 | |
| 37 | To remove those files _as well as_ files that the setup and configure process |
| 38 | generates, run: |
| 39 | |
| 40 | $ rm `cat .gitignore` |
| 41 | |
| 42 | Installing |
| 43 | ---------- |
| 44 | |
| 45 | If you're using opam, simply run the following command: |
| 46 | |
| 47 | $ make install |
| 48 | |
| 49 | While development, you may want to install your latest build on the system to |
| 50 | test against other libraries or programs. To do this, use: |
| 51 | |
| 52 | $ make reinstall |
| 53 | |
| 54 | Distribution |
| 55 | ------------ |
| 56 | |
| 57 | The de facto preferred method for distributing OCaml libraries is through the |
| 58 | OPAM package repository. To publish the latest package, issue a pull request |
| 59 | against the following github repository: |
| 60 | |
| 61 | https://github.com/ocaml/opam-repository |
| 62 | |
| 63 | The pull requestion should add the following directory structure and files: |
| 64 | |
| 65 | package |
| 66 | |__thrift |
| 67 | |__thrift.<VERSION> |
| 68 | |__ descr |
| 69 | |__ opam |
| 70 | |__ url |
| 71 | |
| 72 | Templates for the following files can be found in the opam/ subdirectory of |
| 73 | this library's root, with XXX(...) indicating fields that need to be filled |
| 74 | out. You can find further documentation here: |
| 75 | |
| 76 | http://opam.ocaml.org/doc/Packaging.html |