--- /dev/null
+# ULVPN, Ultra Lite VPN
+
+This program is a very simple VPN with can be connected to the software crypto
+module or to the hardware crypto module.
+
+## Requirements
+
+Those programs need to be build:
+- a C compiler,
+- and the MOREP libray.
+
+## Install
+
+- Build binaries and libraries assuming that MOREP is installed in /usr/local
+ INCLUDES=-I/usr/local LDOPTS=-L/usr/local make
+- Install binaries in $DESTDIR/bin
+ sudo DESTDIR=/usr/local/ make install_exe
+
+## Tests
+
+- Do static code analysis
+ make analyze
+- Execute tests
+ sudo make tests
+- Execute tests and evaluate converage
+ sudo make gcovs
+- Execute tests and check memory management
+ sudo make valgrinds
+
+## Cleaning
+
+- Remove residual files froms compilation and testings
+ make clean
+- Also remove binary and library produced
+ make purge
+- Also remove coverage file repors
+ make wipe
+
+## Cross compilation
+
+- Build dynamically linked binaries
+ INCLUDES=-I/usr/local/arm/include LDOPTS=-L/usr/local/arm/lib \
+ CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar make
+- Build statically linked binaries
+ INCLUDES=-I/usr/local/arm/include LDOPTS="-L/usr/local/arm/lib -static" \
+ CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar make
+
+## Limitations
+
+As gethostbyname function are needed by MAPEC, statically linked binaries need
+libgcc.so to run.
+
+Raw Ethernet sockets need root privilege. That's why all testing rule calls
+have to be preceede by 'sudo'.
+
+## Changelogs
+
+ULVPN v1.0 (Fri, 04 Jul 2025)
+- initial version
lib%.a: %.o %.d
$(call TITLE, "Building $@")
- $(AR) qc $@ $< $(shell $(call GETCOMMENTS,$(AROPT), ${<:.o=.c}))
+ $(AR) rc $@ $< $(shell $(call GETCOMMENTS,$(AROPT), ${<:.o=.c}))
$(RANLIB) $@
$(call PASS, SUCCESS)