summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2015-10-08 07:32:47 +0200
committerChristian Pointner <equinox@spreadspace.org>2015-10-08 07:32:47 +0200
commitd2b38e6d5ba772dda3ccc717cfcfca787d9bb351 (patch)
tree17332608f94774a76eb6abf0705c32c4819db7a4
parentadded build info for firmware (diff)
added inital app code
updated copyright header
-rw-r--r--.gitignore6
-rw-r--r--LICENSE10
-rw-r--r--app/Makefile83
-rwxr-xr-xapp/configure151
-rw-r--r--app/dolmetschctl.c44
-rw-r--r--firmware/Makefile12
-rw-r--r--firmware/dolmetsch-ctl.c12
-rw-r--r--firmware/eventqueue.c12
-rw-r--r--firmware/eventqueue.h12
-rw-r--r--firmware/keypad.c12
-rw-r--r--firmware/keypad.h12
-rw-r--r--version1
12 files changed, 326 insertions, 41 deletions
diff --git a/.gitignore b/.gitignore
index f8f3c8f..a2fe464 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,11 @@
contrib/avr-utils
contrib/.spreadavr.prepared
+app/include.mk
+app/dolmetschctl
+app/*.o
+app/*.d
+app/*.d.*
+app/config.h
firmware/*.a
firmware/*.o
firmware/*.d
diff --git a/LICENSE b/LICENSE
index 89fdba2..28145ba 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,23 +1,23 @@
/*
- * spreadspace avr projects
+ * dolmetschctl
*
*
* Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
*
- * This file is part of spreadspace avr projects.
+ * This file is part of dolmetschctl.
*
- * spreadspace avr projects is free software: you can redistribute it and/or modify
+ * dolmetschctl 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.
*
- * spreadspace avr projects is distributed in the hope that it will be useful,
+ * dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+ * along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
*/
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
diff --git a/app/Makefile b/app/Makefile
new file mode 100644
index 0000000..13a61fa
--- /dev/null
+++ b/app/Makefile
@@ -0,0 +1,83 @@
+##
+## dolmetschctl
+##
+##
+## Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
+##
+## This file is part of dolmetschctl.
+##
+## dolmetschctl 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.
+##
+## dolmetschctl 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 dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
+##
+
+ifneq ($(MAKECMDGOALS),distclean)
+include include.mk
+endif
+
+EXECUTABLE := dolmetschctl
+
+C_OBJS := dolmetschctl.o
+
+C_SRCS := $(C_OBJS:%.o=%.c)
+
+.PHONY: clean distclean install install-bin uninstall remove
+
+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 $(C_SRCS:%.c=%.d)
+endif
+
+$(EXECUTABLE): $(C_OBJS)
+ $(CC) $(C_OBJS) -o $@ $(LDFLAGS)
+
+%.o: %.c
+ $(CC) $(CFLAGS) -c $<
+
+strip: $(EXECUTABLE)
+ $(STRIP) -s $(EXECUTABLE)
+
+
+distclean: clean
+ find . -name *.o -exec rm -f {} \;
+ find . -name "*.\~*" -exec rm -rf {} \;
+ rm -f include.mk
+ rm -f config.h
+
+clean:
+ rm -f *.o
+ rm -f *.d
+ rm -f *.d.*
+ rm -f $(EXECUTABLE)
+
+INSTALL_TARGETS := install-bin
+REMOVE_TARGETS := remove-bin
+
+install: all $(INSTALL_TARGETS)
+
+install-bin: $(EXECUTABLE)
+ $(INSTALL) -d $(DESTDIR)$(BINDIR)
+ $(INSTALL) -m 755 $(EXECUTABLE) $(DESTDIR)$(BINDIR)
+
+uninstall: remove
+
+remove: $(REMOVE_TARGETS)
+
+remove-bin:
+ rm -f $(DESTDIR)$(BINDIR)/$(EXECUTABLE)
diff --git a/app/configure b/app/configure
new file mode 100755
index 0000000..9648f0f
--- /dev/null
+++ b/app/configure
@@ -0,0 +1,151 @@
+#!/bin/sh
+#
+# dolmetschctl
+#
+#
+# Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
+#
+# This file is part of dolmetschctl.
+#
+# dolmetschctl 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.
+#
+# dolmetschctl 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 dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
+#
+
+TARGET=`uname -s`
+EBUILD_COMPAT=0
+
+USE_CLANG=0
+
+PREFIX='/usr/local'
+BINDIR=''
+
+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 " --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=}
+ ;;
+ --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
+
+rm -f config.h
+rm -f include.mk
+case $TARGET in
+ Linux)
+ ;;
+ *)
+ echo "platform not supported"
+ exit 1;
+ ;;
+esac
+
+if [ -z "$BINDIR" ]; then
+ BINDIR=$PREFIX/bin
+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
+STRIP := strip
+INSTALL := install
+
+prefix := '$PREFIX'
+BINDIR := '$BINDIR'
+EOF
+
+VERSION=`cat ../version`
+if which git >/dev/null; then
+ GIT_HASH=`git rev-parse HEAD 2> /dev/null`
+ if [ -n "$GIT_HASH" ]; then
+ VERSION="$VERSION (git $GIT_HASH)"
+ fi
+fi
+
+HOSTNAME=`hostname`
+DATE=`date +"%d.%m.%Y %H:%M:%S %Z"`
+
+cat > config.h <<EOF
+/*
+ * dolmetschctl config header
+ *
+ * this file was created automatically
+ * do not edit this file directly
+ * use ./configure instead
+ */
+
+#ifndef DOLMETSCHCTL_config_h_INCLUDED
+#define DOLMETSCHCTL_config_h_INCLUDED
+
+#define VERSION_STRING_0 "dolmetschctl version $VERSION"
+#define VERSION_STRING_1 "built on $HOSTNAME, $DATE"
+
+#define TARGET "$TARGET"
+#define PREFIX "$PREFIX"
+#define BINDIR "$BINDIR"
+
+#endif
+EOF
+
+exit 0
diff --git a/app/dolmetschctl.c b/app/dolmetschctl.c
new file mode 100644
index 0000000..3591628
--- /dev/null
+++ b/app/dolmetschctl.c
@@ -0,0 +1,44 @@
+/*
+ * dolmetschctl
+ *
+ *
+ * Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
+ *
+ * This file is part of dolmetschctl.
+ *
+ * dolmetschctl 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.
+ *
+ * dolmetschctl 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 dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdio.h>
+
+#include "config.h"
+
+void print_version()
+{
+ printf("%s\n", VERSION_STRING_0);
+#if defined(__clang__)
+ printf("%s, using CLANG %s\n", VERSION_STRING_1, __clang_version__);
+#elif defined(__GNUC__)
+ printf("%s, using GCC %d.%d.%d\n", VERSION_STRING_1, __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
+#else
+ printf("%s\n", VERSION_STRING_1);
+#endif
+}
+
+
+int main(int argc, char* argv[])
+{
+ print_version();
+ return 0;
+}
diff --git a/firmware/Makefile b/firmware/Makefile
index d662022..adb07c2 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -1,23 +1,23 @@
##
-## spreadspace avr projects
+## dolmetschctl
##
##
-## Copyright (C) 2013-2015 Christian Pointner <equinox@spreadspace.org>
+## Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
##
-## This file is part of spreadspace avr projects.
+## This file is part of dolmetschctl.
##
-## spreadspace avr projects is free software: you can redistribute it and/or modify
+## dolmetschctl 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.
##
-## spreadspace avr projects is distributed in the hope that it will be useful,
+## dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+## along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
##
NAME := dolmetsch-ctl
diff --git a/firmware/dolmetsch-ctl.c b/firmware/dolmetsch-ctl.c
index 1308a5b..15c1ebb 100644
--- a/firmware/dolmetsch-ctl.c
+++ b/firmware/dolmetsch-ctl.c
@@ -1,23 +1,23 @@
/*
- * spreadspace avr projects
+ * dolmetschctl
*
*
- * Copyright (C) 2013-2015 Christian Pointner <equinox@spreadspace.org>
+ * Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
*
- * This file is part of spreadspace avr projects.
+ * This file is part of dolmetschctl.
*
- * spreadspace avr projects is free software: you can redistribute it and/or modify
+ * dolmetschctl 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.
*
- * spreadspace avr projects is distributed in the hope that it will be useful,
+ * dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+ * along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
*/
#include <avr/io.h>
diff --git a/firmware/eventqueue.c b/firmware/eventqueue.c
index 40f1f21..782113c 100644
--- a/firmware/eventqueue.c
+++ b/firmware/eventqueue.c
@@ -1,23 +1,23 @@
/*
- * spreadspace avr projects
+ * dolmetschctl
*
*
- * Copyright (C) 2013-2015 Christian Pointner <equinox@spreadspace.org>
+ * Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
*
- * This file is part of spreadspace avr projects.
+ * This file is part of dolmetschctl.
*
- * spreadspace avr projects is free software: you can redistribute it and/or modify
+ * dolmetschctl 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.
*
- * spreadspace avr projects is distributed in the hope that it will be useful,
+ * dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+ * along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
*/
#include <LUFA/Drivers/Misc/RingBuffer.h>
diff --git a/firmware/eventqueue.h b/firmware/eventqueue.h
index a4ec40c..859dd61 100644
--- a/firmware/eventqueue.h
+++ b/firmware/eventqueue.h
@@ -1,23 +1,23 @@
/*
- * spreadspace avr projects
+ * dolmetschctl
*
*
- * Copyright (C) 2013-2015 Christian Pointner <equinox@spreadspace.org>
+ * Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
*
- * This file is part of spreadspace avr projects.
+ * This file is part of dolmetschctl.
*
- * spreadspace avr projects is free software: you can redistribute it and/or modify
+ * dolmetschctl 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.
*
- * spreadspace avr projects is distributed in the hope that it will be useful,
+ * dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+ * along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DOLMETSCHCTL_eventqueue_h_INCLUDED
diff --git a/firmware/keypad.c b/firmware/keypad.c
index 1291a6e..4565fd0 100644
--- a/firmware/keypad.c
+++ b/firmware/keypad.c
@@ -1,23 +1,23 @@
/*
- * spreadspace avr projects
+ * dolmetschctl
*
*
- * Copyright (C) 2013-2015 Christian Pointner <equinox@spreadspace.org>
+ * Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
*
- * This file is part of spreadspace avr projects.
+ * This file is part of dolmetschctl.
*
- * spreadspace avr projects is free software: you can redistribute it and/or modify
+ * dolmetschctl 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.
*
- * spreadspace avr projects is distributed in the hope that it will be useful,
+ * dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+ * along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
*/
#include <avr/io.h>
diff --git a/firmware/keypad.h b/firmware/keypad.h
index a1202bc..d64232c 100644
--- a/firmware/keypad.h
+++ b/firmware/keypad.h
@@ -1,23 +1,23 @@
/*
- * spreadspace avr projects
+ * dolmetschctl
*
*
- * Copyright (C) 2013-2015 Christian Pointner <equinox@spreadspace.org>
+ * Copyright (C) 2015 Christian Pointner <equinox@spreadspace.org>
*
- * This file is part of spreadspace avr projects.
+ * This file is part of dolmetschctl.
*
- * spreadspace avr projects is free software: you can redistribute it and/or modify
+ * dolmetschctl 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.
*
- * spreadspace avr projects is distributed in the hope that it will be useful,
+ * dolmetschctl 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 spreadspace avr projects. If not, see <http://www.gnu.org/licenses/>.
+ * along with dolmetschctl. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DOLMETSCHCTL_keypad_h_INCLUDED
diff --git a/version b/version
new file mode 100644
index 0000000..b5d9bfd
--- /dev/null
+++ b/version
@@ -0,0 +1 @@
+trunk