1 # This makefile simplifies perl module builds.
5 HOST_PERL_PREFIX
:=$(STAGING_DIR_HOST
)/usr
6 ifneq ($(CONFIG_USE_GLIBC
),)
8 EXTRA_LIBDIRS
:=$(STAGING_DIR
)/lib
10 PERL_CMD
:=$(STAGING_DIR_HOST
)/usr
/bin
/perl5.20
.0
12 MOD_CFLAGS_PERL
:=$(TARGET_CFLAGS
) $(TARGET_CPPFLAGS
)
13 ifdef CONFIG_PERL_THREADS
14 MOD_CFLAGS_PERL
+= -D_REENTRANT
-D_GNU_SOURCE
17 # Module install prefix
18 PERL_SITELIB
:=/usr
/lib
/perl5
/5.20
19 PERL_TESTSDIR
:=/usr
/share
/perl
/perl-tests
20 PERLBASE_TESTSDIR
:=/usr
/share
/perl
/perlbase-tests
21 PERLMOD_TESTSDIR
:=/usr
/share
/perl
/perlmod-tests
23 define perlmod
/host
/relink
24 rm -f
$(1)/Makefile.aperl
26 $(CP
) $(1)/perl
$(PERL_CMD
)
27 $(CP
) $(1)/perl
$(STAGING_DIR_HOST
)/usr
/bin
/perl
30 define perlmod
/host
/Configure
31 (cd
$(HOST_BUILD_DIR
); \
32 PERL_MM_USE_DEFAULT
=1 \
34 $(PERL_CMD
) Makefile.PL \
39 define perlmod
/host
/Compile
41 $(MAKE
) -C
$(HOST_BUILD_DIR
) \
46 define perlmod
/host
/Install
48 $(MAKE
) -C
$(HOST_BUILD_DIR
) \
51 $(call perlmod
/host
/relink
,$(HOST_BUILD_DIR
))
54 define perlmod
/Configure
55 (cd
$(PKG_BUILD_DIR
); \
56 PERL_MM_USE_DEFAULT
=1 \
58 $(PERL_CMD
) Makefile.PL \
61 CC
=$(GNU_TARGET_NAME
)-gcc \
62 CCFLAGS
="$(MOD_CFLAGS_PERL)" \
68 FULL_AR
=$(GNU_TARGET_NAME
)-ar \
69 LD
=$(GNU_TARGET_NAME
)-gcc \
70 LDDLFLAGS
="-shared $(TARGET_LDFLAGS)" \
71 LDFLAGS
="$(EXTRA_LIBDIRS:%=-L%) $(EXTRA_LIBS:%=-l%) " \
84 INSTALLPRIVLIB
=$(PERL_SITELIB
) \
85 INSTALLSITELIB
=$(PERL_SITELIB
) \
86 INSTALLVENDORLIB
=" " \
87 INSTALLARCHLIB
=$(PERL_SITELIB
) \
88 INSTALLSITEARCH
=$(PERL_SITELIB
) \
89 INSTALLVENDORARCH
=" " \
91 INSTALLSITEBIN
=/usr
/bin \
92 INSTALLVENDORBIN
=" " \
93 INSTALLSCRIPT
=/usr
/bin \
94 INSTALLSITESCRIPT
=/usr
/bin \
95 INSTALLVENDORSCRIPT
=" " \
96 INSTALLMAN1DIR
=/usr
/man
/man1 \
97 INSTALLSITEMAN1DIR
=/usr
/man
/man1 \
98 INSTALLVENDORMAN1DIR
=" " \
99 INSTALLMAN3DIR
=/usr
/man
/man3 \
100 INSTALLSITEMAN3DIR
=/usr
/man
/man3 \
101 INSTALLVENDORMAN3DIR
=" " \
103 DESTDIR
=$(PKG_INSTALL_DIR
) \
105 sed
's!^PERL_INC = .*!PERL_INC = $(STAGING_DIR)/usr/lib/perl5/5.20/CORE/!' -i
$(PKG_BUILD_DIR
)/Makefile
108 define perlmod
/Compile
109 PERL5LIB
=$(PERL_LIB
) \
111 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
116 define perlmod
/Install
/NoStrip
117 $(INSTALL_DIR
) $(strip $(1))$(PERL_SITELIB
)
118 (cd
$(PKG_INSTALL_DIR
)$(PERL_SITELIB
) && \
119 rsync
--relative
-rlHp
--itemize-changes \
121 --exclude
=.packlist \
122 $(addprefix --exclude
=/,$(strip $(3))) \
124 $(strip $(2)) $(strip $(1))$(PERL_SITELIB
))
126 chmod
-R u
+w
$(strip $(1))$(PERL_SITELIB
)
130 define perlmod
/Install
131 $(call perlmod
/Install
/NoStrip
,$(1),$(2),$(3))
133 @echo
"---> Stripping modules in: $(strip $(1))$(PERL_SITELIB)"
134 find
$(strip $(1))$(PERL_SITELIB
) -name \
*.pm
-or
-name \
*.pl | \
136 -e
'/^=\(head\|pod\|item\|over\|back\|encoding\|begin\|end\|for\)/,/^=cut/d' \
137 -e
'/^=\(head\|pod\|item\|over\|back\|encoding\|begin\|end\|for\)/,$$$$d' \
142 # You probably don't want to use this directly. Look at perlmod/InstallTests
143 define perlmod
/_InstallTests
144 $(INSTALL_DIR
) $(strip $(1))
145 (cd
$(PKG_BUILD_DIR
)/$(2) && \
146 rsync
--relative
-rlHp
--itemize-changes \
147 --exclude
=.packlist \
149 $(strip $(3)) $(strip $(1)))
151 chmod
-R u
+w
$(strip $(1))
154 define perlmod
/InstallBaseTests
155 $(if
$(CONFIG_PERL_TESTS
),$(call perlmod
/_InstallTests
,$(1)$(PERL_TESTSDIR
),,$(2)))
158 define perlmod
/InstallTests
159 $(if
$(CONFIG_PERL_TESTS
),$(call perlmod
/_InstallTests
,$(1)$(PERL_TESTSDIR
),$(2),$(3)))