summaryrefslogtreecommitdiff
path: root/mk/configure/libtool-override.mk
blob: a2680ef9c9ddb44ad2f6b3c5aebc0765f80bf443 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# $NetBSD: libtool-override.mk,v 1.13 2017/03/06 16:14:08 jperkin Exp $

######################################################################
### {libtool,shlibtool,depcomp}-override (PRIVATE)
######################################################################
### {libtool,shlibtool,depcomp}-override replace any existing libtool under
### ${WRKSRC} with the version installed by pkgsrc.
### depcomp-override replaces the depcomp tool with the canonical version.
###
do-configure-post-hook: libtool-override depcomp-override
.if defined(SHLIBTOOL_OVERRIDE)
do-configure-post-hook: shlibtool-override
.endif

OVERRIDE_DIRDEPTH.libtool?=	${OVERRIDE_DIRDEPTH}
OVERRIDE_DIRDEPTH.shlibtool?=	${OVERRIDE_DIRDEPTH}
OVERRIDE_DIRDEPTH.depcomp?=	${OVERRIDE_DIRDEPTH}

_OVERRIDE_PATH.libtool=		${LIBTOOL}
_OVERRIDE_PATH.shlibtool=	${SHLIBTOOL}
.if exists(${LOCALBASE}/share/libtool/config/depcomp)
_OVERRIDE_PATH.depcomp=		${LOCALBASE}/share/libtool/config/depcomp
.else
_OVERRIDE_PATH.depcomp=		${LOCALBASE}/share/libtool/build-aux/depcomp
.endif

.for _script_ in libtool shlibtool depcomp
_SCRIPT.${_script_}-override=						\
	${RM} -f $$file;						\
	${ECHO} "\#!"${TOOLS_SH:Q} > $$file;				\
	${ECHO} "exec" ${_OVERRIDE_PATH.${_script_}:Q} '"$$@"' >> $$file; \
	${CHMOD} +x $$file
.endfor

.PHONY: libtool-override
libtool-override:
	@${STEP_MSG} "Modifying libtool scripts to use pkgsrc libtool"
.if defined(LIBTOOL_OVERRIDE)
	${RUN} \
	cd ${WRKSRC};							\
	set -- dummy ${LIBTOOL_OVERRIDE}; shift;			\
	while [ $$# -gt 0 ]; do						\
		file="$$1"; shift;					\
		[ -f "$$file" ] || [ -h "$$file" ] || continue;		\
		${_SCRIPT.${.TARGET}};					\
	done
.else
	${RUN} \
	cd ${WRKSRC};							\
	depth=0; pattern=libtool;					\
	while [ $$depth -le ${OVERRIDE_DIRDEPTH.libtool} ]; do		\
		for file in $$pattern; do				\
			[ -f "$$file" ] || [ -h "$$file" ] || continue; \
			${_SCRIPT.${.TARGET}};				\
		done;							\
		depth=`${EXPR} $$depth + 1`; pattern="*/$$pattern";	\
	done
.endif

.PHONY: shlibtool-override
shlibtool-override:
	@${STEP_MSG} "Modifying libtool scripts to use pkgsrc shlibtool"
.if defined(SHLIBTOOL_OVERRIDE) && !empty(SHLIBTOOL_OVERRIDE)
	${RUN} \
	cd ${WRKSRC};							\
	set -- dummy ${SHLIBTOOL_OVERRIDE}; shift;			\
	while [ $$# -gt 0 ]; do						\
		file="$$1"; shift;					\
		[ -f "$$file" ] || [ -h "$$file" ] || continue;		\
		${_SCRIPT.${.TARGET}};					\
	done
.else
	${RUN} \
	cd ${WRKSRC};							\
	depth=0; pattern=libtool;					\
	while [ $$depth -le ${OVERRIDE_DIRDEPTH.shlibtool} ]; do	\
		for file in $$pattern; do				\
			[ -f "$$file" ] || [ -h "$$file" ] || continue; \
			${_SCRIPT.${.TARGET}};				\
		done;							\
		depth=`${EXPR} $$depth + 1`; pattern="*/$$pattern";	\
	done
.endif

.PHONY: depcomp-override
depcomp-override:
	@${STEP_MSG} "Modifying libtool scripts to use pkgsrc depcomp"
.if !empty(DEPCOMP_OVERRIDE:U)
	${RUN} \
	cd ${WRKSRC};							\
	set -- dummy ${DEPCOMP_OVERRIDE}; shift;			\
	while [ $$# -gt 0 ]; do						\
		file="$$1"; shift;					\
		[ -f "$$file" ] || [ -h "$$file" ] || continue;		\
		${_SCRIPT.${.TARGET}};					\
	done
.else
	${RUN} \
	cd ${WRKSRC};							\
	depth=0; pattern=depcomp;					\
	while [ $$depth -le ${OVERRIDE_DIRDEPTH.depcomp} ]; do	\
		for file in $$pattern; do				\
			[ -f "$$file" ] || [ -h "$$file" ] || continue; \
			${_SCRIPT.${.TARGET}};				\
		done;							\
		depth=`${EXPR} $$depth + 1`; pattern="*/$$pattern";	\
	done
.endif