aboutsummaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure131
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