summaryrefslogtreecommitdiffstats
path: root/system/tilda/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'system/tilda/configure.ac')
-rw-r--r--system/tilda/configure.ac212
1 files changed, 212 insertions, 0 deletions
diff --git a/system/tilda/configure.ac b/system/tilda/configure.ac
new file mode 100644
index 0000000000..133336b7fd
--- /dev/null
+++ b/system/tilda/configure.ac
@@ -0,0 +1,212 @@
+dnl ****************************************************************************
+dnl Tilda autoconf configuration file.
+dnl Use autogen.sh to bootstrap the build system.
+dnl ****************************************************************************
+
+m4_define ([tilda_issues],
+ [https://github.com/lanoxx/tilda/issues])
+
+m4_define ([tilda_repository],
+ [https://github.com/lanoxx/tilda])
+
+AC_PREREQ([2.69])
+
+AC_INIT([Tilda],
+ [2.0.0],
+ [tilda_issues],
+ [tilda],
+ [tilda_repository])
+
+AC_CONFIG_AUX_DIR([build-aux])
+AC_CONFIG_SRCDIR([src/tilda.c])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([foreign subdir-objects])
+
+# We are going to use silent builds which have a much
+# nicer output. More information can be found here:
+# https://wiki.gnome.org/Initiatives/GnomeGoals/NicerBuilds
+AM_SILENT_RULES([yes])
+
+# See http://www.gnu.org/savannah-checkouts/gnu/automake/manual/html_node/maintainer_002dmode.html
+# for an explanation of using this macro. The short explanation is:
+# AM_MAINTAINER_MODE is bad but
+# AM_MAINTAINER_MODE([enable]) is good
+AM_MAINTAINER_MODE([enable])
+
+# This registers the option '--enable-maintainer-flags' to the ./configure script
+# If this option is set then it activates both the '--enable-debug' and '--enable-debug-functions'
+# options that are defined below. It also activates several flags to the compile such that it
+# will show more warnings and errors to indicate problems in the source code.
+AC_ARG_ENABLE([maintainer-flags],
+ [AS_HELP_STRING([--enable-maintainer-flags],[\
+ Enables extra debugging; use this option if you want to develop for tilda,
+ but to not use it as an end user if you just want to compile and use tilda. \
+ This option includes the --enable-debug and --enable-debug-functions \
+ options. And sets several CFLAGS to enable more gcc warnings and errors.])])
+
+if test "x$enable_maintainer_flags" = "xyes"; then
+ enable_debug="yes"
+ enable_debug_functions="yes"
+ CFLAGS="$CFLAGS \
+ -Wall \
+ -Wextra \
+ -fno-common \
+ -Wstrict-aliasing=2 \
+ -Wshadow \
+ -Wmissing-prototypes \
+ -Wmissing-declarations \
+ -Wcast-align \
+ -Wuninitialized \
+ -Wno-strict-aliasing \
+ -Werror=pointer-arith \
+ -Werror=missing-declarations \
+ -Werror=redundant-decls \
+ -Werror=empty-body \
+ -Werror=format \
+ -Werror=format-security \
+ -Werror=format-nonliteral \
+ -Werror=init-self \
+ -Werror=vla \
+ -Wno-unused-parameter \
+ "
+fi
+
+# This registers the option '--enable-debug' in the ./configure script
+# If this option is set, then the the options -g and -ggdb will be
+# passed to the compiler.
+AC_ARG_ENABLE([debug],
+ [AS_HELP_STRING([--enable-debug],[Enables extra debugging output and \
+ sets debug flags for gdb])])
+
+if test "x$enable_debug" = "xyes"; then
+ AC_DEFINE([DEBUG], [1], [Enable extra debugging output])
+ CFLAGS="$CFLAGS -g -ggdb"
+fi
+
+# This registers the option '--debug-functions' in the ./configure script
+# If this option is set, then the name of each entered function will be
+# printed on the shell.
+AC_ARG_ENABLE([debug-functions],
+ [AS_HELP_STRING([--enable-debug-functions],[Enables function call tracing. \
+ When this option is enabled tilda will print \
+ the name of each function that is called to the \
+ console.])])
+
+if test "x$enable_debug_functions" = "xyes"; then
+ AC_DEFINE([DEBUG_FUNCTIONS], [1], [Enable function call tracing])
+fi
+
+AC_ARG_ENABLE([clang],
+ [AS_HELP_STRING([--enable-clang],[use clang instead of gcc as C compiler.])])
+
+#Use C99 compilation mode
+if test "x$enable_clang" = "xyes"; then
+ # clang uses c99 mode by default, so we just set CC to clang and we are done
+ CC="clang";
+else
+ # We do not need to set CC as the default is gcc, but we need to set it to
+ # use C99 compilation mode
+ CFLAGS="$CFLAGS -std=c99";
+fi
+
+AC_ARG_ENABLE([lto],
+ [AS_HELP_STRING([--enable-lto],[Optimize at link time. This enables the compiler \
+ to do a better job at optimization and (hopefully) \
+ produce smaller binaries.])])
+
+if test "x$enable_lto" = "xyes"; then
+ CFLAGS="$CFLAGS -flto"
+ if test "$CC" != "clang"; then
+ # If the user has enabled lto explicitly, we assume he has made sure
+ # that his toolchain can indeed handle lto objects.
+ CFLAGS="$CFLAGS -fno-fat-lto-objects"
+ fi
+ # In the case of lto optimizations, we need to pass the optimization options
+ # to the linker as well as telling it to use the linker plugin.
+ LDFLAGS="$LDFLAGS $CFLAGS -fuse-linker-plugin"
+fi
+
+
+
+AC_PATH_PROG(GLIB_MKENUMS, glib-mkenums, no)
+if test x$GLIB_MKENUMS = xno; then
+ AC_MSG_ERROR(Could not find a glib-mkenums in your PATH)
+fi
+
+AC_PATH_PROG(GLIB_COMPILE_RESOURCES, glib-compile-resources, no)
+if test x$GLIB_COMPILE_RESOURCES = xno; then
+ AC_MSG_ERROR(Could not find a glib-compile-resources in your PATH)
+fi
+
+AC_PATH_PROG(GDBUS_CODEGEN, gdbus-codegen, no)
+if test x$GDBUS_CODEGEN = xno; then
+ AC_MSG_ERROR(Could not find a glib-codegen binary in your PATH)
+fi
+
+# Checks for programs.
+AC_PROG_CC
+AM_PROG_CC_C_O
+
+# This will initialize the internationalization
+# capabilities of glib (glib/gi18n.h) and gettext
+AM_GNU_GETTEXT_VERSION([0.18.1])
+AM_GNU_GETTEXT([external])
+# Checks for libraries.
+PKG_PROG_PKG_CONFIG
+PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.10.0])
+PKG_CHECK_MODULES([VTE], [vte-2.91 >= 0.40])
+PKG_CHECK_MODULES([LIBCONFUSE], [libconfuse])
+PKG_CHECK_MODULES([X11], [x11])
+
+# Checks for header files.
+AC_CHECK_HEADERS([fcntl.h malloc.h stdlib.h string.h strings.h sys/ioctl.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_STRTOD
+AC_CHECK_FUNCS([mkdir strcasecmp strchr strncasecmp strstr strtol])
+
+AC_CONFIG_FILES([Makefile
+ po/Makefile.in])
+AC_OUTPUT
+
+dnl ---------------------------------------------------------------------------
+dnl - Show summary
+dnl ---------------------------------------------------------------------------
+
+dnl The following 'for' block splits the CFLAGS variable into multiple lines of 4 options per line
+cflaglines=""
+cflagcount=0
+for flag in ${CFLAGS}; do
+ cflaglines=$cflaglines$flag" "
+ cflagcount=$(($cflagcount+1))
+ if (( $cflagcount % 4 == 0)); then
+ dnl Here we concatenate the current cflaglines variable with a newline and enough spaces
+ dnl such that the lines are correctly indented. Do not try to indent or reformat the
+ dnl position of the double quotes (\").
+ cflaglines=$cflaglines"
+ "
+ fi
+done;
+
+echo "
+ ${PACKAGE} $VERSION
+ `echo ${PACKAGE} $VERSION | sed "s/./=/g"`
+
+ prefix: ${prefix}
+ datarootdir: ${datarootdir}
+ datadir: ${datadir}
+ pkgdatadir: `if test x${pkgdatadir} != "x"; then echo ${pkgdatadir}; else echo ${datadir}/${PACKAGE}; fi`
+ source code location: ${srcdir}
+ compiler: ${CC}
+ cflags: ${cflaglines}
+ Maintainer mode: ${USE_MAINTAINER_MODE}
+ VTE: ${vte_package}
+ Use *_DISABLE_DEPRECATED: ${enable_deprecation_flags}
+"