132 lines
2.4 KiB
Plaintext
132 lines
2.4 KiB
Plaintext
|
#! /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
|