2 # Copyright (C) 2006 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
9 include $(TOPDIR
)/rules.mk
14 PKG_MD5SUM
:=d2c39b002ebfd2c3c5dba589365c5a71
16 PKG_SOURCE_URL
:=ftp
://ftp.cpan.org
/pub
/CPAN
/src
/5.0 \
17 ftp
://ftp.mpi-sb.mpg.de
/pub
/perl
/CPAN
/src
/5.0 \
18 ftp
://ftp.gmd.de
/mirrors
/CPAN
/src
/5.0 \
19 ftp
://ftp.funet.fi
/pub
/languages
/perl
/CPAN
/src
/5.0
20 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
23 PKG_BUILD_DIR
:=$(BUILD_DIR
)/perl
/$(PKG_NAME
)-$(PKG_VERSION
)
24 PKG_INSTALL_DIR
:=$(PKG_BUILD_DIR
)/ipkg-install
26 include $(INCLUDE_DIR
)/package.mk
28 define Package
/perl
/Default
32 TITLE
:=The Perl intepreter
33 URL
:=http
://www.perl.com
/
36 define Package
/microperl
37 $(call Package
/perl
/Default
)
38 TITLE
+=(minimal version
)
41 define Package
/microperl
/description
42 $(call Package
/perl
/Default
/description
)
43 A perl package without operating-specific functions such
as readdir.
48 $(STAMP_CONFIGURED
)-$(1): $(STAMP_PREPARED
)
49 -$(MAKE
) -C
$(PKG_BUILD_DIR
) clean
50 $(call Build
/$(1)/Configure
)
53 $(STAMP_BUILT
)-$(1): $(STAMP_CONFIGURED
)-$(1)
54 $(call Build
/$(1)/Compile
)
57 $(STAMP_BUILT
): $(STAMP_BUILT
)-$(1)
61 define Build
/microperl
/Configure
64 define Build
/microperl
/Compile
65 $(MAKE
) -C
$(PKG_BUILD_DIR
) -f Makefile.micro \
66 CC
="$(TARGET_CC)" OPTIMIZE
="$(TARGET_CFLAGS)"
67 mkdir
-p
$(PKG_INSTALL_DIR
)/usr
/bin
/
68 $(CP
) $(PKG_BUILD_DIR
)/microperl
$(PKG_INSTALL_DIR
)/usr
/bin
/
71 define Package
/microperl
/install
72 $(INSTALL_DIR
) $(1)/usr
/bin
73 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/microperl
$(1)/usr
/bin
/
79 $(call Package
/perl
/Default
)
80 MAINTAINER
:=Peter Colberg
<peter@petercolberg.org
>
83 define Package
/perl
/description
84 Perl is a stable
, cross platform programming language.
85 It is used for mission critical projects in the public and private sectors
86 and is widely used to program web applications of
all needs.
89 define Build
/perl
/Configure
91 @echo
"===> Stage 1: Configure host perl"
93 mkdir
-p
$(PKG_BUILD_DIR
)/host-perl
94 (cd
$(PKG_BUILD_DIR
)/host-perl
&& sh ..
/Configure
-der
-Dmksymlinks
-Uusedl
)
97 @echo
"===> Stage 2: Build host perl binary with static extensions"
99 $(MAKE
) -C
$(PKG_BUILD_DIR
)/host-perl
102 @echo
"===> Stage 3: Configure target perl"
104 -$(MAKE
) -C
$(PKG_BUILD_DIR
) clean
106 -e
's!%%CC%%!$(TARGET_CC)!g' \
107 -e
's!%%CFLAGS%%!$(TARGET_CFLAGS) -DUSE_CROSS_COMPILE -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/include!g' \
108 -e
's!%%CPP%%!$(TARGET_CROSS)gcc -E!g' \
109 -e
's!%%AR%%!$(TARGET_CROSS)ar!g' \
110 -e
's!%%LD%%!$(TARGET_CROSS)gcc!g' \
111 -e
's!%%LDFLAGS%%!-rdynamic -L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib!g' \
112 -e
's!%%LIBDIRS%%!$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib!g' \
113 -e
's!%%INCDIRS%%!$(STAGING_DIR)/include $(STAGING_DIR)/usr/include!g' \
114 files
/config.sh-
$(REAL_GNU_TARGET_NAME
).in \
115 > $(PKG_BUILD_DIR
)/config.sh
116 (cd
$(PKG_BUILD_DIR
) && .
/Configure
-S
)
119 define Build
/perl
/Compile
121 @echo
"===> Stage 4: Build target miniperl binary"
123 install -m
0644 $(PKG_BUILD_DIR
)/config.h
$(PKG_BUILD_DIR
)/xconfig.h
124 -rm -f
$(PKG_BUILD_DIR
)/miniperl
125 $(MAKE
) -C
$(PKG_BUILD_DIR
) miniperl
126 mkdir
-p
$(PKG_BUILD_DIR
)/target-bin
127 install -m
0755 $(PKG_BUILD_DIR
)/miniperl
$(PKG_BUILD_DIR
)/target-bin
/
130 @echo
"===> Stage 5: Build target perl binary"
132 -rm -f
$(PKG_BUILD_DIR
)/miniperl
$(PKG_BUILD_DIR
)/perl
133 install -m
0755 $(PKG_BUILD_DIR
)/host-perl
/miniperl
$(PKG_BUILD_DIR
)/
134 touch
$(PKG_BUILD_DIR
)/miniperl
135 $(MAKE
) -C
$(PKG_BUILD_DIR
) perl
136 install -m
0755 $(PKG_BUILD_DIR
)/perl
$(PKG_BUILD_DIR
)/target-bin
/
139 @echo
"===> Stage 6: Build target extensions and utils"
141 -rm -f
$(PKG_BUILD_DIR
)/miniperl
$(PKG_BUILD_DIR
)/perl
142 install -m
0755 $(PKG_BUILD_DIR
)/host-perl
/miniperl
$(PKG_BUILD_DIR
)/
143 ln
-sf miniperl
$(PKG_BUILD_DIR
)/perl
144 touch
$(PKG_BUILD_DIR
)/miniperl
$(PKG_BUILD_DIR
)/perl
145 $(MAKE
) -C
$(PKG_BUILD_DIR
)
148 @echo
"===> Stage 7: Install Perl into staging dir"
150 -rm -f
$(PKG_BUILD_DIR
)/perl
151 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/host-perl
/perl
$(PKG_BUILD_DIR
)/
152 (cd
$(PKG_BUILD_DIR
) && .
/perl installperl
--destdir
=$(STAGING_DIR
))
155 @echo
"===> Stage 8: Install Perl into a temporary root"
157 -rm -f
$(PKG_BUILD_DIR
)/perl
158 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/target-bin
/perl
$(PKG_BUILD_DIR
)
159 -rm -rf
$(PKG_INSTALL_DIR
)
160 mkdir
-p
$(PKG_INSTALL_DIR
)
161 (cd
$(PKG_BUILD_DIR
) && host-perl
/miniperl installperl
--destdir
=$(PKG_INSTALL_DIR
))
164 define Package
/perl
/install
165 $(INSTALL_DIR
) $(1)/usr
/bin
166 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/bin
/perl
$(PKG_VERSION
) $(1)/usr
/bin
167 ln
-f
$(1)/usr
/bin
/perl
$(PKG_VERSION
) $(1)/usr
/bin
/perl
170 ifneq ($(CONFIG_PACKAGE_microperl
),)
171 define Build
/microperl
172 $(call Build
/Template
,microperl
)
175 $(eval
$(Build
/microperl
))
177 ifneq ($(CONFIG_PACKAGE_perl
),)
179 $(call Build
/Template
,perl
)
182 $(eval
$(Build
/perl
))
184 $(eval
$(call BuildPackage
,microperl
))
185 $(eval
$(call BuildPackage
,perl
))