mirror of https://github.com/omar-polo/gmid.git
build docs + install and static targets
This commit is contained in:
parent
0170ba023f
commit
771d8f281b
43
INSTALL.gmi
43
INSTALL.gmi
|
@ -1,43 +0,0 @@
|
||||||
# Installing gmid
|
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
gmid depends on libtls and a C compiler. It's reported to compile with gcc 4.2, so it should work pretty everywhere now.
|
|
||||||
|
|
||||||
The compilation is as easy as
|
|
||||||
|
|
||||||
```
|
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that there isn't an install target yet.
|
|
||||||
|
|
||||||
If you're a packager, don't forget to install also the manpage gmid.1
|
|
||||||
|
|
||||||
### etags
|
|
||||||
|
|
||||||
during the build process, etags(1) is invoked to generate a TAGS file. This is done to aid the development. Anyway, etags(1) is NOT NEEDED as dependency. So, if you get something like
|
|
||||||
|
|
||||||
```
|
|
||||||
$ make
|
|
||||||
...
|
|
||||||
etags gmid.c
|
|
||||||
make: exec(etags) failed (No such file or directory)
|
|
||||||
*** Error code 1 (ignored)
|
|
||||||
```
|
|
||||||
|
|
||||||
you don't need to worry, it is OK.
|
|
||||||
|
|
||||||
## Notes for specific OSes
|
|
||||||
|
|
||||||
### OpenBSD
|
|
||||||
|
|
||||||
Everything you need is in base, just run make.
|
|
||||||
|
|
||||||
### FreeBSD
|
|
||||||
|
|
||||||
You need to install security/libressl and then
|
|
||||||
|
|
||||||
```
|
|
||||||
make CFLAGS=-I/usr/local/include LDFLAGS='-L/usr/local/lib -ltls'
|
|
||||||
```
|
|
17
Makefile
17
Makefile
|
@ -4,7 +4,12 @@ LDFLAGS = -ltls
|
||||||
LEX = lex
|
LEX = lex
|
||||||
YACC = yacc
|
YACC = yacc
|
||||||
|
|
||||||
.PHONY: all clean test
|
PREFIX = /usr/local
|
||||||
|
|
||||||
|
# /usr/local/lib on FreeBSD
|
||||||
|
LIBDIR = /usr/lib/
|
||||||
|
|
||||||
|
.PHONY: all static clean test install
|
||||||
|
|
||||||
all: gmid TAGS README.md
|
all: gmid TAGS README.md
|
||||||
|
|
||||||
|
@ -18,6 +23,12 @@ OBJS = gmid.o iri.o utf8.o lex.yy.o y.tab.o ex.o cgi.o sandbox.o
|
||||||
gmid: ${OBJS}
|
gmid: ${OBJS}
|
||||||
${CC} ${OBJS} -o gmid ${LDFLAGS}
|
${CC} ${OBJS} -o gmid ${LDFLAGS}
|
||||||
|
|
||||||
|
static: ${OBJS}
|
||||||
|
${CC} -static ${OBJS} \
|
||||||
|
${LIBDIR}/libcrypto.a ${LIBDIR}/libtls.a ${LIBDIR}/libssl.a \
|
||||||
|
-o gmid
|
||||||
|
strip gmid
|
||||||
|
|
||||||
TAGS: gmid.c iri.c utf8.c ex.c cgi.c sandbox.c
|
TAGS: gmid.c iri.c utf8.c ex.c cgi.c sandbox.c
|
||||||
-etags gmid.c iri.c utf8.c ex.c cgi.c sandbox.c || true
|
-etags gmid.c iri.c utf8.c ex.c cgi.c sandbox.c || true
|
||||||
|
|
||||||
|
@ -35,3 +46,7 @@ test: gmid iri_test
|
||||||
@echo "server tests"
|
@echo "server tests"
|
||||||
@echo "=============================="
|
@echo "=============================="
|
||||||
cd test && ./test.sh
|
cd test && ./test.sh
|
||||||
|
|
||||||
|
install: gmid
|
||||||
|
install -o root -g wheel -m 0755 gmid ${PREFIX}/bin/
|
||||||
|
install -o root -g wheel -m 0644 gmid.1 ${PREFIX}/man/man1
|
||||||
|
|
19
README.md
19
README.md
|
@ -32,23 +32,24 @@ mind: on Linux, FreeBSD and OpenBSD is sandboxed via `seccomp(2)`,
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
gmid depends a POSIX libc and libtls. It can probably be linked
|
gmid depends on a POSIX libc and libtls (part of LibreSSL). It can
|
||||||
against libretls, but I've never tried.
|
probably be linked against libretls, but I've never tried. At build
|
||||||
|
time, flex and yacc (or GNU bison) are also needed.
|
||||||
|
|
||||||
See [INSTALL.gmi](INSTALL.gmi) for more info, but the build is as
|
The build is as simple as
|
||||||
simple as
|
|
||||||
|
|
||||||
make
|
make
|
||||||
|
|
||||||
The Makefile isn't able to produce a statically linked executable
|
or
|
||||||
(yet), so for that you have to execute by hand
|
|
||||||
|
|
||||||
make
|
make static
|
||||||
cc -static *.o /usr/lib/lib{crypto,tls,ssl}.a -o gmid
|
|
||||||
strip gmid
|
|
||||||
|
|
||||||
to enjoy your ~2.3M statically-linked gmid.
|
to enjoy your ~2.3M statically-linked gmid.
|
||||||
|
|
||||||
|
To install execute:
|
||||||
|
|
||||||
|
make install
|
||||||
|
|
||||||
|
|
||||||
## Architecture/Security considerations
|
## Architecture/Security considerations
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue