]>
git.zerfleddert.de Git - amt/blob - mk/Autoconf.mk
2 # simple autoconf system for GNU make
4 # (c) 2002-2006 Gerd Hoffmann <kraxel@suse.de>
6 # credits for creating this one go to the autotools people because
7 # they managed it to annoy lots of developers and users (including
8 # me) with version incompatibilities.
10 # This file is public domain. No warranty. If it breaks you keep
13 ########################################################################
18 # some stuff used by the tests
21 ac_init
= echo
"checking $(1) ... " >&2; rc
=no
22 ac_b_cmd
= echo
"run: $(1)" >&2; $(1) >/dev
/null
&& rc
=yes
23 ac_s_cmd
= echo
"run: $(1)" >&2; rc
=`$(1)`
24 ac_fini
= echo
"... result is $${rc}" >&2; echo
>&2; echo
"$${rc}"
27 ac_init
= echo
-n
"checking $(1) ... " >&2; rc
=no
28 ac_b_cmd
= $(1) >/dev
/null
2>&1 && rc
=yes
29 ac_s_cmd
= rc
=`$(1) 2>/dev/null`
30 ac_fini
= echo
"$${rc}" >&2; echo
"$${rc}"
33 # some helpers to build cflags and related variables
34 ac_def_cflags_1
= $(if
$(filter yes
,$($(1))),-D
$(1))
35 ac_lib_cflags
= $(foreach lib
,$(1),$(call ac_def_cflags_1
,HAVE_LIB
$(lib
)))
36 ac_inc_cflags
= $(foreach inc
,$(1),$(call ac_def_cflags_1
,HAVE_
$(inc
)))
37 ac_lib_mkvar_1
= $(if
$(filter yes
,$(HAVE_LIB
$(1))),$($(1)_
$(2)))
38 ac_lib_mkvar
= $(foreach lib
,$(1),$(call ac_lib_mkvar_1
,$(lib
),$(2)))
41 ########################################################################
46 $(call ac_init
,for system
);\
47 $(call ac_s_cmd
,uname
-s | tr
'A-Z' 'a-z');\
50 # check for some header file
53 $(call ac_init
,for
$(1));\
54 $(call ac_b_cmd
,echo
'\#include <$(1)>' |\
55 $(CC
) $(CFLAGS
) -E
-);\
58 # check for some function
59 # args: function [, additional libs ]
61 $(call ac_init
,for
$(1));\
62 echo
'void $(1)(void); int main(void) {$(1)();return 0;}' \
64 $(call ac_b_cmd
,$(CC
) $(CFLAGS
) $(LDFLAGS
) -o \
65 __actest __actest.c
$(2));\
66 rm -f __actest __actest.c
;\
69 # check for some library
70 # args: function, library [, additional libs ]
72 $(call ac_init
,for
$(1) in
$(2));\
73 echo
'void $(1)(void); int main(void) {$(1)();return 0;}' \
75 $(call ac_b_cmd
,$(CC
) $(CFLAGS
) $(LDFLAGS
) -o \
76 __actest __actest.c
-l
$(2) $(3));\
77 rm -f __actest __actest.c
;\
80 # check if some compiler flag works
83 $(call ac_init
,if
$(CC
) supports
$(1));\
84 echo
'int main() {return 0;}' > __actest.c
;\
85 $(call ac_b_cmd
,$(CC
) $(CFLAGS
) $(1) $(LDFLAGS
) -o \
86 __actest __actest.c
);\
87 rm -f __actest __actest.c
;\
90 # check for some binary
93 $(call ac_init
,for
$(1));\
94 $(call ac_s_cmd
,which
$(1));\
96 $(call ac_b_cmd
,test -x
"$$$$bin");\
99 # check if lib64 is used
101 $(call ac_init
,for
libdir name
);\
102 $(call ac_s_cmd
,$(CC
) -print-search-dirs | grep
-q lib64
&&\
103 echo
"lib64" || echo
"lib");\
106 # check for x11 ressource dir prefix
107 ac_resdir
= $(shell \
108 $(call ac_init
,for X11 app-defaults
prefix);\
109 $(call ac_s_cmd
, for
dir in \
110 /etc
/X11
/app-defaults \
111 /usr
/X11R6
/lib
/X11
/app-defaults \
112 /usr
/share
/X11
/app-defaults \
113 /usr
/lib
/X11
/app-defaults \
114 ; do
test -d
"$$dir" || continue
;\
115 dirname
"$$dir"; break
; done
);\
118 # check if package is installed, via pkg-config
120 ac_pkg_config
= $(shell \
121 $(call ac_init
,for
$(1) (using pkg-config
));\
122 $(call ac_b_cmd
, pkg-config
$(1));\
126 ########################################################################
133 make-config-q
= $(subst $(newline
),\n,$(make-config
))
135 ifeq ($(filter config
,$(MAKECMDGOALS
)),config
)
137 LIB
:= $(call ac_lib64
)
139 LIB ?
= $(call ac_lib64
)
146 Make.config
: $(srcdir)/GNUmakefile
147 @echo
-e
"$(make-config-q)" > $@
149 @echo
"Make.config written, edit if needed"