diff --git a/configure.ac b/configure.ac index c78d49f..ee81ce9 100644 --- a/configure.ac +++ b/configure.ac @@ -1,40 +1,44 @@ -rm -f config.cache -AC_INIT([express], [0.0.1], [devilhorns@comcast.net]) +m4_define([v_maj], [0]) +m4_define([v_min], [0]) +m4_define([v_mic], [1]) +m4_define([v_ver], [v_maj.v_min.v_mic]) + +m4_define([lt_cur], [m4_eval(v_maj + v_min)]) +m4_define([lt_rev], [v_mic]) +m4_define([lt_age], [v_min]) + +AC_INIT([express], [v_ver], [devilhorns@comcast.net]) AC_PREREQ([2.60]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([express_config.h]) -AC_CANONICAL_HOST - -AM_INIT_AUTOMAKE([1.6 dist-bzip2]) +AM_INIT_AUTOMAKE([1.6 dist-xz subdir-objects]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_USE_SYSTEM_EXTENSIONS -AC_PROG_CC -AM_PROG_CC_C_O -AC_FUNC_ALLOCA -AC_C___ATTRIBUTE__ -AC_HEADER_TIME +LT_INIT([win32-dll disable-static]) -define([AC_LIBTOOL_LANG_CXX_CONFIG], [:]) -define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:]) -define([AC_LIBTOOL_LANG_F77_CONFIG], [:]) -AC_DISABLE_STATIC -AC_PROG_LIBTOOL +version_info="lt_cur:lt_rev:lt_age" +release_info="v_rel" +AC_SUBST([version_info]) +AC_SUBST([release_info]) -EFL_CHECK_COMPILER_FLAGS([EXP], [-O2 -pipe -g -Wall -Wextra -fdata-sections -ffunction-sections]) -EFL_CHECK_LINKER_FLAGS([EXP], [-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries]) -EFL_ATTRIBUTE_VECTOR -EFL_ATTRIBUTE_ALWAYS_INLINE +VMAJ=v_maj +AC_SUBST([VMAJ]) -EFL_ENABLE_EO_API_SUPPORT -EFL_ENABLE_BETA_API_SUPPORT -EFL_CHECK_PATH_MAX -EFL_WITH_BIN([edje], [edje-cc], [edje_cc]) +### Additional options to configure + + +### Default options with respect to host + +AC_CANONICAL_HOST + + +### Checks for programs AM_GNU_GETTEXT_VERSION([0.17]) @@ -63,20 +67,26 @@ fi AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"]) -EFL_CHECK_THREADS +AC_PROG_CC PKG_PROG_PKG_CONFIG if test "x${PKG_CONFIG}" = "x" ; then - AC_MSG_ERROR([pkg-config tool not found. Install it or set PKG_CONFIG environment variable to that path tool. Exiting...]) + AC_MSG_ERROR([pkg-config tool not found. Install it or set PKG_CONFIG environment variable to that path tool. Exiting...]) fi -PKG_CHECK_MODULES(LIBEXPRESS, - [eina] - [ecore] - [ecore-con] -) +EFL_WITH_BIN([edje], [edje-cc], [edje_cc]) -PKG_CHECK_MODULES(EXPRESS, + +### Checks for libraries + +efl_version="1.7.0" + +requirements_libexpress_pc="ecore-con >= ${efl_version} ecore >= ${efl_version} eina >= ${efl_version}" +AC_SUBST([requirements_libexpress_pc]) + +PKG_CHECK_MODULES([LIBEXPRESS], [${requirements_libexpress_pc}]) + +PKG_CHECK_MODULES([EXPRESS], [eina] [eet] [evas] @@ -86,6 +96,52 @@ PKG_CHECK_MODULES(EXPRESS, [elementary] ) +requirements_libexpress_libs="" +AC_SUBST([requirements_libexpress_libs]) + + +### Checks for header files + +AC_HEADER_TIME + + +### Checks for types + + +### Checks for structures + + +### Checks for compiler characteristics + +AM_PROG_CC_C_O + +EFL_ATTRIBUTE_VECTOR +EFL_ATTRIBUTE_ALWAYS_INLINE +EFL_CHECK_PATH_MAX +EFL_CHECK_THREADS + +EFL_ENABLE_EO_API_SUPPORT +EFL_ENABLE_BETA_API_SUPPORT + +EFL_CHECK_COMPILER_FLAGS([EXP], [-Wall -Wextra -Wshadow -Wpointer-arith -fdata-sections -ffunction-sections]) + +LIBEXPRESS_CFLAGS="${LIBEXPRESS_CFLAGS} ${EXP_CFLAGS}" +EXPRESS_CFLAGS="${EXPRESS_CFLAGS} ${EXP_CFLAGS}" + + +### Checks for linker characteristics + +EFL_CHECK_LINKER_FLAGS([EXP], [-fvisibility=hidden -fdata-sections -ffunction-sections -Wl,--gc-sections -fno-strict-aliasing -Wl,--as-needed -Wl,--no-copy-dt-needed-entries]) + +LIBEXPRESS_LIBS="${LIBEXPRESS_LIBS} ${EXP_LIBS}" +EXPRESS_LIBS="${EXPRESS_LIBS} ${EXP_LIBS}" + + +### Checks for library functions + +AC_FUNC_ALLOCA + + AC_CONFIG_FILES([ Makefile express.pc @@ -114,13 +170,14 @@ echo "$PACKAGE $VERSION" echo "------------------------------------------------------------------------" echo echo -echo "Configuration...: os=${host_os}" -echo " Threads.......: ${efl_have_threads} (${features_thread})" +echo "Configuration..............: os=${host_os}" +echo " Threads..................: ${efl_have_threads} (${features_thread})" echo echo "Compilation................: make (or gmake)" -echo " CPPFLAGS.................: $EXP_CPPFLAGS" -echo " CFLAGS...................: $EXP_CFLAGS" -echo " LDFLAGS..................: $EXP_LDFLAGS" +echo " CPPFLAGS.................: $CPPFLAGS" +echo " CFLAGS...................: $CFLAGS" +echo " LIBS.....................: $LIBS" +echo " LDFLAGS..................: $LDFLAGS" echo echo "Installation...............: make install (as root if needed, with 'su' or 'sudo')" echo " prefix...................: $prefix" diff --git a/express.pc.in b/express.pc.in index 61470fd..00ea12b 100644 --- a/express.pc.in +++ b/express.pc.in @@ -2,11 +2,12 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ +pkgincludedir=@pkgincludedir@-@VMAJ@ Name: libexpress Description: EFL IRC communication library -@pkgconfig_requires_private@: @requirements_libexpress@ Version: @VERSION@ +Requires.private: @requirements_libexpress_pc@ Libs: -L${libdir} -lexpress -Libs.private: -Cflags: -I${includedir}/express +Libs.private: @requirements_libexpress_libs@ +Cflags: -I${pkgincludedir} diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 544b7b2..7d6bb77 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -1,70 +1,64 @@ -AUTOMAKE_OPTIONS = subdir-objects -MAINTAINERCLEANFILES = \ - Makefile.in aclocal.m4 config.guess \ - config.h.in config.sub configure install-sh \ - ltconfig ltmain.sh missing mkinstalldirs \ - stamp-h.in acconfig.h depcomp INSTALL *~ +MAINTAINERCLEANFILES = Makefile.in -bin_PROGRAMS = \ - express +bin_PROGRAMS = express express_CPPFLAGS = \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/bin \ - -DPACKAGE_BIN_DIR=\"$(bindir)\" \ - -DPACKAGE_LIB_DIR=\"$(libdir)\" \ - -DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ - -DPACKAGE_LOCALE_DIR=\"$(datadir)/locale\" \ - -DUSE_EXPRESS_CONFIG_H \ - @EXPRESS_CFLAGS@ \ - @EXP_CFLAGS@ +-I$(top_srcdir) \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/bin \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ +-DPACKAGE_LOCALE_DIR=\"$(datadir)/locale\" \ +@EXPRESS_CFLAGS@ EXPRESSHEADERS = \ - private.h \ - config.h \ - theme.h \ - utils.h \ - window.h \ - channel.h \ - lz4/lz4.h \ - grid.h \ - grid_save.h \ - selector.h \ - callbacks.h \ - options.h \ - options_general.h \ - options_font.h \ - options_video.h \ - options_networks.h \ - options_network.h \ - options_servers.h \ - options_channels.h \ - options_tools.h +private.h \ +config.h \ +theme.h \ +utils.h \ +window.h \ +channel.h \ +lz4/lz4.h \ +grid.h \ +grid_save.h \ +selector.h \ +callbacks.h \ +options.h \ +options_general.h \ +options_font.h \ +options_video.h \ +options_networks.h \ +options_network.h \ +options_servers.h \ +options_channels.h \ +options_tools.h express_SOURCES = \ - $(EXPRESSHEADERS) \ - config.c \ - main.c \ - theme.c \ - utils.c \ - window.c \ - channel.c \ - lz4/lz4.c \ - grid.c \ - grid_save.c \ - selector.c \ - callbacks.c \ - options.c \ - options_general.c \ - options_font.c \ - options_video.c \ - options_networks.c \ - options_network.c \ - options_servers.c \ - options_channels.c \ - options_tools.c +$(EXPRESSHEADERS) \ +config.c \ +main.c \ +theme.c \ +utils.c \ +window.c \ +channel.c \ +lz4/lz4.c \ +grid.c \ +grid_save.c \ +selector.c \ +callbacks.c \ +options.c \ +options_general.c \ +options_font.c \ +options_video.c \ +options_networks.c \ +options_network.c \ +options_servers.c \ +options_channels.c \ +options_tools.c -express_LDADD = @EXPRESS_LIBS@ @LTLIBINTL@ $(top_srcdir)/src/lib/libexpress.la -express_LDFLAGS = -export-dynamic @EXP_LDFLAGS@ +express_LDADD = \ +$(top_builddir)/src/lib/libexpress.la \ +@EXPRESS_LIBS@ \ +@LTLIBINTL@ diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am index ac2d06f..70db432 100644 --- a/src/lib/Makefile.am +++ b/src/lib/Makefile.am @@ -1,25 +1,23 @@ -MAINTAINERCLEANFILES = Makefile.in config.h.in -AM_CPPFLAGS = \ - -I$(top_srcdir) \ - -I$(top_srcdir)/src/lib \ - -I$(top_builddir)/src/lib \ - -DPACKAGE_LOCALE_DIR=\"$(datadir)/locale\" \ - -DPACKAGE_LIB_DIR=\"$(libdir)\" \ - -DUSE_EXPRESS_CONFIG_H \ - @LIBEXPRESS_CFLAGS@ \ - @EXP_CFLAGS@ +MAINTAINERCLEANFILES = Makefile.in -pkgdir = $(libdir) -pkg_LTLIBRARIES = libexpress.la +includes_HEADERS = $(pkgincludedir)-@VMAJ@ +includesdir = Express.h + +lib_LTLIBRARIES = libexpress.la libexpress_la_SOURCES = \ - private.h \ - network.c \ - main.c +private.h \ +network.c \ +main.c + +libexpress_la_CPPFLAGS = \ +-I$(top_srcdir) \ +-I$(top_srcdir)/src/lib \ +-DPACKAGE_LOCALE_DIR=\"$(datadir)/locale\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +@LIBEXPRESS_CFLAGS@ -libexpress_la_LDFLAGS = -version-info 0:1:0 @EXP_LDFLAGS@ libexpress_la_LIBADD = @LIBEXPRESS_LIBS@ -installed_mainheaderdir = $(includedir)/express -dist_installed_mainheader_DATA = Express.h +libexpress_la_LDFLAGS = -no-undefined -version-info @version_info@ @release_info@