summaryrefslogtreecommitdiffstats
path: root/gnu/usr.bin/perl/Makefile.inc
blob: 91628f40c9fde5b82199f76c83ab957226bf4ff0 (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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# $FreeBSD$

PERL5SRC?= ${.CURDIR}/../../../../contrib/perl5
PERL5LIBSRC?= ${.CURDIR}/../libperl

.if exists(${.OBJDIR}/../miniperl/miniperl)
MINIPERL?=	${.OBJDIR}/../miniperl/miniperl
.else
MINIPERL?=	${.OBJDIR}/../../miniperl/miniperl
.endif

BINDIR?=	/usr/bin

SHLIB_MAJOR?=	4

VERSION=	5.6.0

DYNALOADER= lib/auto/DynaLoader/DynaLoader.a

HEADERS=EXTERN.h INTERN.h XSUB.h av.h cc_runtime.h cop.h cv.h dosish.h \
	embed.h embedvar.h fakethr.h form.h gv.h handy.h hv.h intrpvar.h \
	iperlsys.h keywords.h mg.h nostdio.h objXSUB.h op.h opcode.h \
	opnames.h patchlevel.h perl.h perlapi.h perlio.h perlsdio.h \
	perlsfio.h perlvars.h perly.h pp.h pp_proto.h proto.h regcomp.h \
	regexp.h regnodes.h scope.h sv.h thrdvar.h thread.h unixish.h \
	utf8.h util.h warnings.h

DEPEND_H=

.for I in ${HEADERS}
${.OBJDIR}/${I}: ${I}
	@ln -sf ${.OODATE} ${.TARGET}

CLEANFILES+= ${.OBJDIR}/${I}
DEPEND_H+= ${.OBJDIR}/${I}
.endfor

LDFLAGS+=	-L${.OBJDIR}/../libperl

links: ${DEPEND_H}
	@for d in ${FARMDIRS} ; do \
		rm -rf $${d} ;\
		for i in `cd ${PERL5SRC}; find $${d} -type d -a \! -name CVS` ;\
		do \
			mkdir -p $${i} ;\
		done ;\
		for i in `cd ${PERL5SRC}; find $${d} -type f | grep -v CVS` ;\
		do \
			ln -s ${PERL5SRC}/$${i} $${i} ;\
		done ;\
	done
	@ln -sf ${PERL5SRC}/ext/File/Glob/Glob.pm lib/File/Glob.pm
	@-mkdir lib/auto
	@-mkdir build
	@ln -sf ${PERL5SRC}/config_h.SH config_h.sh
	@ln -sf ${PERL5SRC}/cflags.SH cflags.sh
	@ln -sf ${PERL5SRC}/ext/re/re.pm lib/re.pm
	@ln -sf ${PERL5SRC}/myconfig.SH myconfig.SH
	@ln -sf ${PERL5SRC}/miniperlmain.c miniperlmain.c
	@ln -sf ${PERL5SRC}/writemain.SH writemain.sh
	@ln -sf ${PERL5SRC}/regcomp.c regcomp.c
	@ln -sf ${PERL5SRC}/regexec.c regexec.c
	@ln -sf ${PERL5LIBSRC}/config.SH-${OBJFORMAT}.${MACHINE_ARCH} \
		config.sh
	@touch ${.TARGET}

scripts: links
	@sh config_h.sh
	@sh cflags.sh
	@sh writemain.sh
	@sh myconfig.SH
	@${MINIPERL} ${PERL5SRC}/configpm \
		Config.pm Porting/Glossary myconfig
	@ln -sf ../Config.pm lib/Config.pm
	@touch ${.TARGET}

.if !defined(NO_PERL_SCRIPT_MAKE)
config.h:	scripts
.endif

CLEANFILES+=	links scripts
CLEANFILES+=	config.h config.sh config_h.sh Config.pm
CLEANFILES+=	myconfig myconfig.SH
CLEANFILES+=	regcomp.c regexec.c miniperlmain.c
CLEANFILES+=	writemain writemain.sh cflags cflags.sh
CLEANDIRS+=	lib ext Porting hints build

FARMDIRS=	lib ext Porting hints

MAKEMAKER_ARGS?=	INSTALLDIRS=perl PERL_SRC=${.OBJDIR} \
		INSTALLMAN3DIR=${DESTDIR}/usr/share/perl/man3 \
		PERL=${MINIPERL} FULLPERL=perl DEFINE=-I${DESTDIR}/usr/include \
		DEFINE=-DPERL_CORE

CFLAGS+=	'-DAPPLLIB_EXP="/usr/libdata/perl/BSDPAN"'

.if defined(PERL_DEBUGGING) && ${PERL_DEBUGGING} == "true"
CFLAGS+=        -DDEBUGGING
.endif

autosplit: scripts lib/*.pm lib/*/*.pm
	${MINIPERL} -I${.OBJDIR}/lib \
		-e 'use AutoSplit; autosplit_lib_modules(@ARGV)' \
		lib/*.pm lib/*/*.pm
	@touch ${.TARGET}

${DYNALOADER}:	scripts \
		ext/DynaLoader/DynaLoader.pm ext/DynaLoader/XSLoader.pm \
		ext/DynaLoader/Makefile
	@cd ext/DynaLoader; \
	make -B all PERL_SRC=${.OBJDIR}

ext/DynaLoader/DynaLoader.pm: scripts ext/DynaLoader/DynaLoader_pm.PL
	@cd ext/DynaLoader; \
	${MINIPERL} -I${.OBJDIR} -I${.OBJDIR}/lib DynaLoader_pm.PL DynaLoader.pm

ext/DynaLoader/XSLoader.pm: scripts ext/DynaLoader/XSLoader_pm.PL
	@cd ext/DynaLoader; \
	${MINIPERL} -I${.OBJDIR} -I${.OBJDIR}/lib XSLoader_pm.PL XSLoader.pm

ext/DynaLoader/Makefile: scripts ext/DynaLoader/Makefile.PL
	@cd ext/DynaLoader; \
	${MINIPERL} -I${.OBJDIR} -I${.OBJDIR}/lib Makefile.PL ${MAKEMAKER_ARGS} \
		LINKTYPE=static LIBS="-lperl -lm"; \
	make -B config PERL_SRC=${.OBJDIR}
OpenPOWER on IntegriCloud