summaryrefslogtreecommitdiffstats
path: root/make/perl.mk
blob: de04df702524f073b3a46fe257c850873f9e31d2 (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
#############################################################
#
# perl
#
#############################################################
PERL_SOURCE:=perl-5.8.0.tar.gz
PERL_SOURCE_2:=$(SOURCE_DIR)/perl-cross-0.1.tar.gz
PERL_PATCH:=$(SOURCE_DIR)/perl.patch
PERL_SITE:=http://www.cpan.org/src/
PERL_DIR:=$(BUILD_DIR)/perl-5.8.0
PERL_CAT:=zcat
PERL_BINARY:=perl
PERL_TARGET_BINARY:=usr/bin/perl


$(DL_DIR)/$(PERL_SOURCE):
	 $(WGET) -P $(DL_DIR) $(PERL_SITE)/$(PERL_SOURCE)

perl-source: $(DL_DIR)/$(PERL_SOURCE)

$(PERL_DIR)/.unpacked: $(DL_DIR)/$(PERL_SOURCE)
	$(PERL_CAT) $(DL_DIR)/$(PERL_SOURCE) | tar -C $(BUILD_DIR) -xvf -
	$(PERL_CAT) $(PERL_SOURCE_2) | tar -C $(PERL_DIR) -xvf -
	cat $(PERL_PATCH) | patch -p1 -d $(PERL_DIR)
	$(SED) "s,^ARCH.*,ARCH=$(ARCH)," $(PERL_DIR)/cross/config
	$(SED) "s,^CONFIG_TARGET_.*,\#," $(PERL_DIR)/cross/config
	$(SED) "s,^export CROSS=.*,export CROSS=$(TARGET_CROSS)," $(PERL_DIR)/cross/Makefile
	$(SED) "s,TARGET_ARCH,$(ARCH)," $(PERL_DIR)/cross/config.sh.uclibc
	$(SED) "s,TARGET_CROSS,$(TARGET_CROSS)," $(PERL_DIR)/cross/config.sh.uclibc
	touch $(PERL_DIR)/.unpacked

$(PERL_DIR)/.configured: $(PERL_DIR)/.unpacked
	$(MAKE) CC=$(TARGET_CC) -C $(PERL_DIR)/cross patch
	touch  $(PERL_DIR)/.configured

$(PERL_DIR)/$(PERL_BINARY): $(PERL_DIR)/.configured
	$(MAKE) CC=$(TARGET_CC) -C $(PERL_DIR)/cross perl

$(TARGET_DIR)/$(PERL_TARGET_BINARY): $(PERL_DIR)/$(PERL_BINARY)
	rm -f $(PERL_DIR)/install_me_here/usr/lib/perl/5.8.0/*-linux/.packlist
	rm -f $(PERL_DIR)/install_me_here/usr/lib/perl/5.8.0/ExtUtils/MANIFEST.SKIP
	rm -f $(PERL_DIR)/install_me_here/usr/lib/perl/5.8.0/unicore/Makefile
	rm -rf $(TARGET_DIR)/usr/lib/perl
	-$(STRIP) $(PERL_DIR)/install_me_here/usr/bin/a2p
	-$(STRIP) $(PERL_DIR)/install_me_here/usr/bin/perl
	rm -f $(PERL_DIR)/install_me_here/usr/bin/perl5.8.0
	(cd $(PERL_DIR)/install_me_here/usr/bin; ln -sf perl perl5.8.0)
	cp -fa $(PERL_DIR)/install_me_here/* $(TARGET_DIR)/
	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc

perl: uclibc $(TARGET_DIR)/$(PERL_TARGET_BINARY)

perl-clean:
	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(PERL_DIR) uninstall
	-$(MAKE) -C $(PERL_DIR) clean

perl-dirclean:
	rm -rf $(PERL_DIR)