summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-09-22 22:36:15 +0200
committerChristian Pointner <equinox@spreadspace.org>2015-09-22 22:36:15 +0200
commitd256e96a21a3400512dc60fbd70517c4e59d56d6 (patch)
treed78943038ca5c2beb4ca4f62c9511de8cbb6b18f
inital copy as a copy of the original display command of imagemagick
-rw-r--r--.gitignore4
-rw-r--r--README3
-rw-r--r--src/Makefile97
-rwxr-xr-xsrc/configure139
-rw-r--r--src/klokdisplay.c43
5 files changed, 286 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8da7dd2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+src/*.d
+src/*.o
+src/include.mk
+src/klokdisplay
diff --git a/README b/README
new file mode 100644
index 0000000..37289c0
--- /dev/null
+++ b/README
@@ -0,0 +1,3 @@
+DEPS:
+
+libmagickwand-dev
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 0000000..18afbc7
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,97 @@
+##
+## klokdisplay
+##
+## Copyright (C) 2009-2015 Christian Pointner <equinox@spreadspace.org>
+##
+## This file is part of klokdisplay.
+##
+## klokdisplay is free software: you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation, either version 3 of the License, or
+## any later version.
+##
+## klokdisplay is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with klokdisplay. If not, see <http://www.gnu.org/licenses/>.
+##
+
+ifneq ($(MAKECMDGOALS),distclean)
+include include.mk
+endif
+
+EXECUTABLE := klokdisplay
+
+OBJ := klokdisplay.o
+
+SRC := $(OBJ:%.o=%.c)
+
+.PHONY: clean distclean
+
+all: $(EXECUTABLE)
+
+%.d: %.c
+ @set -e; rm -f $@; \
+ $(CC) -MM $(CFLAGS) $< > $@.$$$$; \
+ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
+ rm -f $@.$$$$; echo '(re)building $@'
+
+ifneq ($(MAKECMDGOALS),distclean)
+-include $(SRC:%.c=%.d)
+endif
+
+$(EXECUTABLE): $(OBJ)
+ $(CC) $(OBJ) -o $@ $(LDFLAGS)
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c $<
+
+
+distclean: cleanall
+ find . -name *.o -exec rm -f {} \;
+ find . -name "*.\~*" -exec rm -rf {} \;
+ rm -f include.mk
+
+clean:
+ rm -f *.o
+ rm -f *.d
+ rm -f *.d.*
+ rm -f $(EXECUTABLE)
+
+cleanall: clean
+# $(MAKE) --directory="../doc/" clean
+
+manpage:
+# $(MAKE) --directory="../doc/" manpage
+
+
+INSTALL_TARGETS := install-bin
+REMOVE_TARGETS := remove-bin
+
+ifdef MANDIR
+INSTALL_TARGETS += install-man
+REMOVE_TARGETS += remove-man
+endif
+
+install: all $(INSTALL_TARGETS)
+
+install-bin: $(EXECUTABLE)
+ $(INSTALL) -d $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 755 $(EXECUTABLE) $(DESTDIR)$(BINDIR)
+
+install-man: manpage
+ $(INSTALL) -d $(DESTDIR)$(MANDIR)/man8/
+ $(INSTALL) -m 644 ../doc/klokdisplay.8 $(DESTDIR)$(MANDIR)/man8/$(EXECUTABLE).8
+
+uninstall: remove
+
+remove: $(REMOVE_TARGETS)
+
+remove-bin:
+ rm -f $(DESTDIR)$(BINDIR)/$(EXECUTABLE)
+
+remove-man:
+ rm -f $(DESTDIR)$(MANDIR)/man8/$(EXECUTABLE).8
diff --git a/src/configure b/src/configure
new file mode 100755
index 0000000..c4fd0d5
--- /dev/null
+++ b/src/configure
@@ -0,0 +1,139 @@
+#!/bin/sh
+#
+#
+# klokdisplay
+#
+# Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
+#
+# This file is part of klokdisplay.
+#
+# klokdisplay is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+#
+# klokdisplay is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with klokdisplay. If not, see <http://www.gnu.org/licenses/>.
+#
+
+TARGET=`uname -s`
+EBUILD_COMPAT=0
+
+USE_CLANG=0
+
+PREFIX='/usr/local'
+BINDIR=''
+MANDIR=''
+INSTALLMANPAGE=1
+
+print_usage() {
+ echo "configure --help print this"
+ echo " --target=<TARGET> build target i.e. Linux (default: autodetect)"
+ echo " --prefix=<PREFIX> the installation prefix (default: /usr/local)"
+ echo " --bindir=<DIR> the path to the bin directory (default: $PREFIX/bin)"
+ echo " --mandir=<DIR> the path to the system man pages (default: $PREFIX/share/man)"
+ echo " --no-manpage dont't install manpage"
+ echo " --use-clang use clang/llvm as compiler/linker"
+}
+
+for arg
+do
+ case $arg in
+ --target=*)
+ TARGET=${arg#--target=}
+ ;;
+ --use-clang)
+ USE_CLANG=1
+ ;;
+ --prefix=*)
+ PREFIX=${arg#--prefix=}
+ ;;
+ --bindir=*)
+ BINDIR=${arg#--bindir=}
+ ;;
+ --mandir=*)
+ MANDIR=${arg#--mandir=}
+ ;;
+ --no-manpage)
+ INSTALLMANPAGE=0
+ ;;
+ --ebuild-compat)
+ EBUILD_COMPAT=1
+ ;;
+ --help)
+ print_usage
+ exit 0
+ ;;
+ *)
+ ERRORS="$ERRORS $arg"
+ ;;
+ esac
+done
+
+if [ -n "$ERRORS" ] && [ $EBUILD_COMPAT -ne 1 ]; then
+ for error in $ERRORS; do
+ echo "Unknown argument: $error"
+ done
+
+ print_usage
+ exit 1
+fi
+
+if [ $USE_CLANG -eq 0 ]; then
+ CFLAGS='-g -Wall -O2'
+ LDFLAGS='-g -Wall -O2'
+ COMPILER='gcc'
+else
+ CFLAGS='-g -O2'
+ LDFLAGS='-g -O2'
+ COMPILER='clang'
+fi
+
+CFLAGS="$CFLAGS $(pkg-config --cflags MagickWand)"
+LDFLAGS="$LDFLAGS $(pkg-config --libs MagickWand)"
+
+rm -f include.mk
+case $TARGET in
+ Linux)
+ echo "Linux specific build options"
+ ;;
+ OpenBSD|FreeBSD|NetBSD)
+ echo "BSD specific build options"
+ CFLAGS=$CFLAGS' -I/usr/local/include'
+ LDFLAGS=$LDFLAGS' -L/usr/local/lib'
+ ;;
+ *)
+ echo "platform not supported"
+ exit 1;
+ ;;
+esac
+
+if [ -z "$BINDIR" ]; then
+ BINDIR=$PREFIX/bin
+fi
+
+if [ -z "$MANDIR" ]; then
+ MANDIR=$PREFIX/share/man
+fi
+
+cat > include.mk <<EOF
+# this file was created automatically
+# do not edit this file directly
+# use ./configure instead
+
+TARGET := $TARGET
+CC := $COMPILER
+CFLAGS := $CFLAGS
+LDFLAGS := $LDFLAGS
+INSTALL := install
+
+prefix := $PREFIX
+BINDIR := $BINDIR
+EOF
+
+exit 0
diff --git a/src/klokdisplay.c b/src/klokdisplay.c
new file mode 100644
index 0000000..ed0b757
--- /dev/null
+++ b/src/klokdisplay.c
@@ -0,0 +1,43 @@
+/*
+ * klokdisplay
+ *
+ * Copyright (C) 2009-2015 Christian Pointner <equinox@spreadspace.org>
+ *
+ * This file is part of klokdisplay.
+ *
+ * klokdisplay is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * any later version.
+ *
+ * klokdisplay is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with klokdisplay. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdio.h>
+
+#include <wand/MagickWand.h>
+
+int main(int argc, char **argv)
+{
+ ExceptionInfo *exception;
+ ImageInfo *image_info;
+ MagickBooleanType status;
+
+ MagickCoreGenesis(*argv, MagickTrue);
+
+ exception = AcquireExceptionInfo();
+ image_info = AcquireImageInfo();
+ status = MagickCommandGenesis(image_info, DisplayImageCommand, argc, argv, (char **)NULL, exception);
+
+ image_info = DestroyImageInfo(image_info);
+ exception = DestroyExceptionInfo(exception);
+ MagickCoreTerminus();
+
+ return(status != MagickFalse ? 0 : 1);
+}