embox
93 строки · 2.5 Кб
1
2PKG_NAME := App-Staticperl
3PKG_VER := 1.46
4
5PKG_SOURCES := https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/$(PKG_NAME)-$(PKG_VER).tar.gz
6PKG_MD5 := 127aee4c5ecb2935b3ee631c48827d69
7
8PKG_PATCHES := staticperl.patch
9
10include $(EXTBLD_LIB)
11
12PERL_VERSION := https://www.cpan.org/src/5.0/perl-5.8.9.tar.bz2
13
14PERL_CPPFLAGS := \
15-DPERL_DISABLE_PMC \
16-DPERL_ARENA_SIZE=1008 \
17-DNO_PERL_MALLOC_ENV \
18-DMSG_PROXY=MSG_PROBE \
19-DNO_LOCALE \
20-Dfork=vfork \
21-Dexecvp=execv
22
23STATICPERL = $(PKG_SOURCE_DIR)/.staticperl
24STATICPERL_TMP = $(PKG_SOURCE_DIR)/.staticperl.tmp
25PERL_SRC = $(STATICPERL)/src/perl
26
27$(CONFIGURE) :
28export STATICPERL=$(STATICPERL_TMP); \
29export PERL_VERSION=$(PERL_VERSION); \
30cd $(PKG_SOURCE_DIR) && ( \
31./bin/staticperl configure \
32)
33cp -fr $(STATICPERL_TMP) $(STATICPERL)
34cd $(PERL_SRC) && ( \
35curl -L -O https://github.com/arsv/perl-cross/releases/download/1.4/perl-cross-1.4.tar.gz && \
36tar --strip-components=1 -zxf perl-cross-1.4.tar.gz \
37)
38patch -d $(PERL_SRC) -p0 < perl5_8_9.patch
39patch -d $(PERL_SRC) -p0 < perl_cross.patch
40export EMBOX_GCC_LINK=full; \
41cd $(PERL_SRC) && ( \
42./cnf/configure \
43-Darchname=$(AUTOCONF_ARCH) \
44-Dosname=none \
45-Dosvers='' \
46-Ddrand01='rand()' \
47-Drandfunc=rand \
48-Dseedfunc=srand \
49-Dcc=$(EMBOX_GCC) \
50-Dar=$(EMBOX_CROSS_COMPILE)ar \
51-Dranlib=$(EMBOX_CROSS_COMPILE)ranlib \
52-Dreadelf=$(EMBOX_CROSS_COMPILE)readelf \
53-Dobjdump=$(EMBOX_CROSS_COMPILE)objdump \
54-Dccflags='$(PERL_CPPFLAGS)' \
55-Dusemymalloc=n \
56-Duseperlio \
57-Uuselargefiles \
58-Uuse64bitint \
59-Uusedl \
60-Uusethreads \
61-Uuseithreads \
62-Uusemultiplicity \
63-Uusesfio \
64-Uuseshrplib \
65-Ud_procselfexe \
66-Ui_termios \
67)
68cd $(PERL_SRC) && ( \
69sh ./Configure -S \
70)
71touch $@
72
73$(BUILD) :
74export STATICPERL=$(STATICPERL_TMP); \
75cd $(PKG_SOURCE_DIR) && ( \
76./bin/staticperl install \
77)
78mkdir $(PKG_SOURCE_DIR)/perl_bins
79cp -f $(STATICPERL_TMP)/src/perl/perl $(PKG_SOURCE_DIR)/perl_bins
80cp -f $(STATICPERL_TMP)/src/perl/miniperl $(PKG_SOURCE_DIR)/perl_bins
81cd $(PERL_SRC) && ( \
82$(MAKE) all install \
83)
84rm -fr $(STATICPERL)/perl/bin
85cp -frnT $(STATICPERL_TMP) $(STATICPERL)
86touch $@
87
88$(INSTALL) :
89echo '#!/bin/sh' > $(PKG_INSTALL_DIR)/staticperl.sh
90echo '' >> $(PKG_INSTALL_DIR)/staticperl.sh
91echo 'export STATICPERL=$(STATICPERL) ' >> $(PKG_INSTALL_DIR)/staticperl.sh
92echo '$(PKG_SOURCE_DIR)/bin/staticperl "$$@"' >> $(PKG_INSTALL_DIR)/staticperl.sh
93chmod +x $(PKG_INSTALL_DIR)/staticperl.sh
94touch $@
95