embox

Форк
0
93 строки · 2.5 Кб
1

2
PKG_NAME := App-Staticperl
3
PKG_VER  := 1.46
4

5
PKG_SOURCES := https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/$(PKG_NAME)-$(PKG_VER).tar.gz
6
PKG_MD5     := 127aee4c5ecb2935b3ee631c48827d69
7

8
PKG_PATCHES := staticperl.patch
9

10
include $(EXTBLD_LIB)
11

12
PERL_VERSION := https://www.cpan.org/src/5.0/perl-5.8.9.tar.bz2
13

14
PERL_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

23
STATICPERL     = $(PKG_SOURCE_DIR)/.staticperl
24
STATICPERL_TMP = $(PKG_SOURCE_DIR)/.staticperl.tmp
25
PERL_SRC       = $(STATICPERL)/src/perl
26

27
$(CONFIGURE) :
28
	export STATICPERL=$(STATICPERL_TMP); \
29
	export PERL_VERSION=$(PERL_VERSION); \
30
	cd $(PKG_SOURCE_DIR) && ( \
31
		./bin/staticperl configure \
32
	)
33
	cp -fr $(STATICPERL_TMP) $(STATICPERL)
34
	cd $(PERL_SRC) && ( \
35
		curl -L -O https://github.com/arsv/perl-cross/releases/download/1.4/perl-cross-1.4.tar.gz && \
36
		tar --strip-components=1 -zxf perl-cross-1.4.tar.gz \
37
	)
38
	patch -d $(PERL_SRC) -p0 < perl5_8_9.patch
39
	patch -d $(PERL_SRC) -p0 < perl_cross.patch
40
	export EMBOX_GCC_LINK=full; \
41
	cd $(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
	)
68
	cd $(PERL_SRC) && ( \
69
		sh ./Configure -S \
70
	)
71
	touch $@
72

73
$(BUILD) :
74
	export STATICPERL=$(STATICPERL_TMP); \
75
	cd $(PKG_SOURCE_DIR) && ( \
76
		./bin/staticperl install \
77
	)
78
	mkdir $(PKG_SOURCE_DIR)/perl_bins
79
	cp -f $(STATICPERL_TMP)/src/perl/perl $(PKG_SOURCE_DIR)/perl_bins
80
	cp -f $(STATICPERL_TMP)/src/perl/miniperl $(PKG_SOURCE_DIR)/perl_bins
81
	cd $(PERL_SRC) && ( \
82
		$(MAKE) all install \
83
	)
84
	rm -fr $(STATICPERL)/perl/bin
85
	cp -frnT $(STATICPERL_TMP) $(STATICPERL)
86
	touch $@
87

88
$(INSTALL) :
89
	echo '#!/bin/sh' > $(PKG_INSTALL_DIR)/staticperl.sh
90
	echo '' >> $(PKG_INSTALL_DIR)/staticperl.sh
91
	echo 'export STATICPERL=$(STATICPERL) ' >> $(PKG_INSTALL_DIR)/staticperl.sh
92
	echo '$(PKG_SOURCE_DIR)/bin/staticperl "$$@"' >> $(PKG_INSTALL_DIR)/staticperl.sh
93
	chmod +x $(PKG_INSTALL_DIR)/staticperl.sh
94
	touch $@
95

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.