Merge from vendor branch TNF:
[pkgsrcv2.git] / mk / dlopen.buildlink3.mk
1 # $NetBSD: dlopen.buildlink3.mk,v 1.16 2007/10/17 10:43:38 rillig Exp $
2 #
3 # This Makefile fragment is included by package Makefiles and
4 # buildlink3.mk files for the packages that use dlopen().
5 #
6 # It defines the variables DL_CFLAGS, DL_LDFLAGS and DL_LIBS, which
7 # are also exported into the CONFIGURE_ENV and MAKE_ENV environments.
8 #
9 # Package-settable variables:
10 #
11 # DL_AUTO_VARS
12 #       When set to "yes", the necessary flags are added automatically
13 #       to CFLAGS and friends.
14 #
15 #       Default: no
16 #
17 # Keywords: dl dlopen
18 #
19
20 DLOPEN_BUILDLINK3_MK:=  ${DLOPEN_BUILDLINK3_MK}+
21
22 .include "bsd.fast.prefs.mk"
23
24 .if !empty(DLOPEN_BUILDLINK3_MK:M+)
25 CHECK_BUILTIN.dl:=      yes
26 .include "dlopen.builtin.mk"
27 CHECK_BUILTIN.dl:=      no
28 .endif  # DLOPEN_BUILDLINK3_MK
29
30 DL_AUTO_VARS?=  no
31
32 .if !empty(USE_BUILTIN.dl:M[yY][eE][sS])
33 BUILDLINK_TREE+=                dl -dl
34 BUILDLINK_BUILTIN_MK.dl=        ../../mk/dlopen.builtin.mk
35 BUILDLINK_AUTO_VARS.dl=         ${DL_AUTO_VARS}
36 .elif !empty(MACHINE_PLATFORM:MDarwin-[56].*)
37 .  include "../../devel/dlcompat/buildlink3.mk"
38 BUILDLINK_AUTO_VARS.dlcompat=   ${DL_AUTO_VARS}
39 BUILDLINK_LDFLAGS.dl:=          ${BUILDLINK_LDFLAGS.dlcompat}
40 .else
41 PKG_FAIL_REASON=        "${PKGNAME} requires a working dlopen()."
42 .endif
43
44 .if !empty(DLOPEN_BUILDLINK3_MK:M+)
45 #
46 # Define user-visible DL_{CFLAGS,LDFLAGS,LIBS} as compiler options used
47 # to compile/link code that uses dl*() functions.
48 #
49 DL_CFLAGS=      ${BUILDLINK_CFLAGS.dl}
50 DL_LDFLAGS=     ${BUILDLINK_LDFLAGS.dl}
51 DL_LIBS=        ${BUILDLINK_LIBS.dl}
52 CONFIGURE_ENV+= DL_CFLAGS=${DL_CFLAGS:Q}
53 CONFIGURE_ENV+= DL_LDFLAGS=${DL_LDFLAGS:Q}
54 CONFIGURE_ENV+= DL_LIBS=${DL_LIBS:Q}
55 MAKE_ENV+=      DL_CFLAGS=${DL_CFLAGS:Q}
56 MAKE_ENV+=      DL_LDFLAGS=${DL_LDFLAGS:Q}
57 MAKE_ENV+=      DL_LIBS=${DL_LIBS:Q}
58 .endif  # DLOPEN_BUILDLINK3_MK