diff options
Diffstat (limited to 'configure')
| -rwxr-xr-x | configure | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 0000000..18f3986 --- /dev/null +++ b/configure @@ -0,0 +1,131 @@ +#! /bin/sh + +set -e + +DEFAULT_PREFIX=/usr/local +DEFAULT_THUMBNAIL_HEIGHT=96 + +usage() +{ + printf "$0 [OPTION]...\n\n" + printf "Configuration:\n" + printf "%s\t\t\t" "--prefix=PREFIX" + printf "Sets installation prefix (default: $DEFAULT_PREFIX).\n" + printf "%s\t\t\t" "--thumbnails" + printf "Enables thumbnail generation for images.\n" + printf "%s\t" "--thumbnail-height=HEIGHT" + printf "Sets thumbnail height, in pixels " + printf "(default: $DEFAULT_THUMBNAIL_HEIGHT). " + printf "Requires --thumbnails.\n" + printf "%s\t\t\t" "-h|--help" + printf "Prints this help page.\n" +} + +CC=${CC:-cc} +CFLAGS=${CFLAGS:-} + +for arg +do + case "$arg" in + --thumbnails) + THUMBNAILS=1 + ;; + --thumbnail-height=*) + THUMBNAIL_HEIGHT=${arg#*=} + ;; + --prefix=*) + PREFIX=${arg#*=} + ;; + -h | --help) + usage + exit 0 + ;; + *) + echo "Invalid argument $arg" >&2 + usage >&2 + exit 1 + ;; + esac +done + +THUMBNAILS=${THUMBNAILS:-0} +THUMBNAIL_HEIGHT=${THUMBNAIL_HEIGHT:-$DEFAULT_THUMBNAIL_HEIGHT} +PREFIX=${PREFIX:-$DEFAULT_PREFIX} + +OBJECTS="\ + auth.o \ + base64.o \ + cftw.o \ + handler.o \ + hex.o \ + html.o \ + http.o \ + jwt.o \ + main.o \ + page.o \ + server.o \ + dynstr/dynstr.o" + +LIBS="\ + -lcjson \ + -lssl \ + -lm \ + -lcrypto" + +CFLAGS=${CFLAGS:-'$(O) $(CDEFS) -g -Wall -Idynstr/include -Imkdir_r -MD -MF -'} + +if [ $THUMBNAILS -ne 0 ] +then + LIBS="$LIBS $(GraphicsMagick-config --libs)" + CFLAGS="$CFLAGS $(GraphicsMagick-config --cppflags | + tr '\n' ' ')" + CFLAGS="$CFLAGS -DTHUMBNAIL_HEIGHT=$THUMBNAIL_HEIGHT" + CFLAGS="$CFLAGS -Imkdir_r/private_include" + LDFLAGS="$LDFLAGS $(GraphicsMagick-config --ldflags)" + OBJECTS="$OBJECTS \ + thumbnail.o \ + mkdir_r/mkdir_r.o \ + mkdir_r/posix.o" +else + OBJECTS="$OBJECTS thumbnail_stub.o mkdir_r_stub.o" +fi + +cat > Makefile <<"EOF" +.POSIX: +.SUFFIXES: .c .o + +PROJECT = slcl +O = -Og +CDEFS = -D_FILE_OFFSET_BITS=64 # Required for large file support on 32-bit. +DEPS = $(OBJECTS:.o=.d) +EOF + +cat >> Makefile <<EOF +CFLAGS = $CFLAGS +LIBS = $LIBS +LDFLAGS = $LDFLAGS +OBJECTS = $OBJECTS +PREFIX = $PREFIX + +EOF + +cat >> Makefile <<"EOF" +all: $(PROJECT) + +clean: + rm -f $(OBJECTS) $(DEPS) + +install: $(PROJECT) + mkdir -p $(PREFIX) $(PREFIX)/bin + cp $(PROJECT) $(PREFIX)/bin + chmod 0755 $(PREFIX)/bin/$(PROJECT) + +cd doc && $(MAKE) install PREFIX=$(PREFIX) + +$(PROJECT): $(OBJECTS) + $(CC) $(OBJECTS) $(LDFLAGS) $(LIBS) -o $@ + +.c.o: + $(CC) $(CFLAGS) -c $< -o $@ > $(@:.o=.d) + +-include $(DEPS) +EOF |
