diff options
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 63 |
1 files changed, 19 insertions, 44 deletions
@@ -17,7 +17,7 @@ build basics One of the coolest things about rvs (imo) is how modular and - customizable it is. If you wish to create a fork of rvs, it would + customizable it is. If you wish to create a fork of rvs, it wls ould be a good idea to give it a different name. This can be done without even changing a single source file! Simply run configure with `--name=NAME' option (variables that have `rvs' in the name @@ -28,10 +28,11 @@ name='rvs' The name of the program. Note that unlike most variables, you should NOT call this in Makefiles - (`$(name)'), but use $(rvs) instead. + (`$(name)'), but use `$(rvs)' instead. RVS='$(bindir)/$(rvs)' Where the exectuable will be. `$(rvs)' is the same as - `$(name)' (see above) + `$(name)' (see above). In this document it is + sometimes reffered to as the `wrapper'. SHELL='/bin/sh' The shell that will be used by make, and the shell that scripts will run in. (Perhaps we should make @@ -104,54 +105,28 @@ and ONLY the final files to be used by that plugin. ========this is outdated but I don't really want to keep editing it == - - There are two main parts to rvs, the wrapper, and the core. The - wrapper is a small executable, located in the PATH, and is the one - called when you type `rvs'. The core is a set of many small - executables that do all the real work. build system - (be sure to read the `configuration' section of `README' first) The build system rvs uses is rather simple. `./configure' does two things: - * create a preprocessor (`tmp/var.sed') - * run `Makefile.orig' through the preprocessor to generate a - propper `Makefile' - Then, the Makefile runs each file in `source/' through the - preprocessor, and writes the resulting files to `out/'. - - preprocessor + * create a sed script (`var.sed') + * run every incance of `$(srcdir)/Makefile.in' through + `var.sed' to generate a propper `Makefile' - The preprocessor contains all configuration variables. When it - processes a file every instance of `$$VAR_NAME$$' is replaced by - that variable's value. Note that this replacement only happens for + `var.sed' contains all configuration variables. When it processes + a file every instance of `@VAR_NAME@' is replaced by that + variable's value. This makes `configure' act much like a GNU + package `congfigure'. Note that this replacement only happens for defined variables. - configuration Variables - - Again the configuration variables and their default values are: - VER '0.6.3' - SHELL '/usr/bin/env bash' - prefix "$HOME" - bindir 'bin' - libdir '/etc/rvs/' - - The wrapper is installed at `$$prefix$$/$$bindir$$/rvs' - The core is installed at `$$libdir$$/' - The source for the wrapper is in `source/rvs' - The source for the core is in `source/rvs-core/' - - $$SHELL$$ is the shell all shell scripts that are part of rvs are - run in. As of rvs 0.6.3 all executables are shell scripts. - - Most of these can easily be changed _after_ compilation also: - VER line 4 of the wrapper - SHELL line 1 of each shell script - prefix simply move the wrapper - bindir simply move the wrapper - libdir move the core, then update the line `RVSDIR=...' in - the wrapper + Most of these can easily be changed _after_ `compilation' also: + VER line 4 of the wrapper + SHELL line 1 of each shell script + prefix simply move the wrapper + bindir simply move the wrapper + libexecdir move the directory, then update the line + `RVSDIR=...' in the wrapper I have designed this system to be extremely modular. As you may have figured out, each bit on functionality is in it's own @@ -177,7 +152,7 @@ As you probably noticed (if you've looked at the blueprints or source files), only directories and regular files have been - implemented as of rvs 0.6.3. + implemented as of rvs 0.7.0. After `rvs commit' has done this, it creates a meta-file for that commit. The meta file contains author, copyright owner, licence |