1 AC_INIT(gwm, 0.0, gtw@gnu.org)
3 AC_CONFIG_SRCDIR(gwm.c)
5 AC_CONFIG_FILES(Makefile gwm.ld)
6 AC_CONFIG_HEADERS(config.h)
8 if test -f config.options; then
14 # GWM_MANDATORY_PACKAGE(PKG-NAME)
15 AC_DEFUN([GWM_MANDATORY_PACKAGE],[
16 AC_MSG_CHECKING([for $1])
17 PKG_CHECK_EXISTS([$1],
19 gwm_packages="$gwm_packages $1"],
23 # GWM_OPTIONAL_PACKAGE(PKG-NAME, [LABEL], [DEPENDENCIES])
24 AC_DEFUN([GWM_OPTIONAL_PACKAGE],[
25 gwm_label=m4_ifval([$2], [$2], [$1])
26 gwm_name=`echo $ECHO_N $gwm_label | tr 'a-z' 'A-Z' | tr -c 'a-zA-Z0-9' _`
29 if eval test "x\$gwm_found_$gwm_i" != "xyes"; then gwm_have_deps=no; fi
31 if test $gwm_have_deps = yes; then
32 AC_MSG_CHECKING([for $gwm_label])
33 if eval test "x\$with_$gwm_label" = xno; then
34 AC_MSG_RESULT(disabled)
36 PKG_CHECK_EXISTS([$1],
38 gwm_packages="$gwm_packages $1"
39 eval "gwm_found_$gwm_label=yes"
40 AC_DEFINE_UNQUOTED(USE_$gwm_name, 1)],
46 AH_BOTTOM([/* If we haven't been told that we're debugging, assume we aren't. */
51 # Checks for programs:
53 AC_USE_SYSTEM_EXTENSIONS
56 # Checks for libraries:
57 AC_ARG_WITH(composite,[ --with-composite use the X Composite extension.])
58 AC_ARG_WITH(cursor, [ --with-cursor use the XCB cursor library.])
59 AC_ARG_WITH(damage, [ --with-damage use the X DAMAGE extension.])
60 AC_ARG_WITH(randr, [ --with-randr use the X RANDR extension.])
61 AC_ARG_WITH(render, [ --with-render use the X RENDER extension.])
62 AC_ARG_WITH(shape, [ --with-shape use the X SHAPE extension.])
63 AC_ARG_WITH(xfixes, [ --with-xfixes use the XFIXES extension.])
65 AH_TEMPLATE(USE_COMPOSITE,[Use the X Composite extension.])
66 AH_TEMPLATE(USE_CURSOR,[Use the XCB cursor library.])
67 AH_TEMPLATE(USE_DAMAGE,[Use the X DAMAGE extension.])
68 AH_TEMPLATE(USE_RANDR,[Use the X RANDR extension.])
69 AH_TEMPLATE(USE_RENDER,[Use the X RENDER extension.])
70 AH_TEMPLATE(USE_SHAPE,[Use the X SHAPE extension.])
71 AH_TEMPLATE(USE_XFIXES,[Use the XFIXES extension.])
73 GWM_MANDATORY_PACKAGE(xcb)
74 GWM_OPTIONAL_PACKAGE(fontconfig)
75 GWM_OPTIONAL_PACKAGE(freetype2)
76 GWM_OPTIONAL_PACKAGE(xcb-composite, composite)
77 GWM_OPTIONAL_PACKAGE(xcb-cursor, cursor)
78 GWM_OPTIONAL_PACKAGE(xcb-damage, damage)
79 GWM_OPTIONAL_PACKAGE(xcb-randr, randr)
80 GWM_OPTIONAL_PACKAGE(xcb-render, render, fontconfig freetype2)
81 GWM_OPTIONAL_PACKAGE(xcb-shape, shape)
82 GWM_OPTIONAL_PACKAGE(xcb-xfixes, xfixes)
84 AM_CONDITIONAL(RENDER, [test x$gwm_found_render = xyes])
86 AC_SEARCH_LIBS(iconv, iconv)
88 # Checks for header files:
89 AC_CHECK_HEADERS(iconv.h mcheck.h sys/mman.h poll.h sys/param.h)
94 # Checks for functions:
95 AC_CHECK_FUNCS(iconv mtrace ppoll)
97 # Check for a reasonable section alignment to pass to the linker. First,
98 # try looking for typical compile-time constants in system header files...
99 AC_MSG_CHECKING([linker section alignment])
102 while test $gwm_align -le 65536; do
103 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
105 #include <sys/param.h>
111 #if EXEC_PAGESIZE == ]] $gwm_align [[ || PAGE_SIZE == ]] $gwm_align [[ || PAGESIZE == ]] $gwm_align [[
112 int main() { return 0; }
116 ]])], [gwm_found_align=yes; break], [])
117 gwm_align=$(expr $gwm_align \* 2)
119 if test $gwm_found_align = no; then
121 if test $cross_compiling != yes; then
122 for gwm_prog in pagesize "getconf PAGE_SIZE"; do
123 if $gwm_prog > /dev/null 2>&1; then
126 while test $gwm_align -le 65536; do
127 if test $($gwm_prog 2> /dev/null) = $gwm_align; then
131 gwm_align=$(expr $gwm_align \* 2)
133 if test $gwm_found_align = yes; then break; fi
138 if test $gwm_found_align = no; then
139 gwm_align=4096 # complete guess
141 AC_MSG_RESULT([$gwm_align])
142 SECTION_ALIGN=$gwm_align
143 AC_SUBST(SECTION_ALIGN)
145 AC_MSG_CHECKING([for linker script support])
146 gwm_ldflags="$LDFLAGS"
147 LDFLAGS="$LDFLAGS -Wl,-Tconftest.ld"
148 cat > conftest.ld <<EOF
152 .gwminit.text : { init*(.text ) }
153 .gwminit.rodata : { init*(.rodata ) }
158 AC_LINK_IFELSE([AC_LANG_SOURCE([[
159 extern char init_start, init_end;
160 int main() { (void) ( &init_end - &init_start ); return 0; }
161 ]])], [gwm_linker_scripts=yes
162 AC_DEFINE(HAVE_INIT_SECTION, 1)
163 AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])
164 LDFLAGS="$gwm_ldflags"
165 AM_CONDITIONAL(LINKER_SCRIPTS, [test x$gwm_linker_scripts = xyes])
166 AH_TEMPLATE(HAVE_INIT_SECTION,[Define if the linker supports scripts (used to locate the init section).])
168 PKG_CFLAGS=$($PKG_CONFIG --cflags $gwm_packages)
169 PKG_LIBS=$($PKG_CONFIG --libs $gwm_packages)