| 1 |
|
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
#all: build |
|---|
| 9 |
|
|---|
| 10 |
all: build-all-ipkgs |
|---|
| 11 |
|
|---|
| 12 |
TCFLAGS:= ${TARGET_CFLAGS} |
|---|
| 13 |
TCXXFLAGS:= ${TARGET_CFLAGS} |
|---|
| 14 |
TCPPFLAGS:= ${TARGET_CPPFLAGS} -DNDEBUG |
|---|
| 15 |
TLDFLAGS:= ${TARGET_LDFLAGS} -Wl,-rpath -Wl,/usr/lib \ |
|---|
| 16 |
-Wl,-rpath-link -Wl,${STAGING_DIR}/usr/lib \ |
|---|
| 17 |
-L${STAGING_DIR}/lib -L${STAGING_DIR}/usr/lib |
|---|
| 18 |
ifeq ($(FWRT_IPV6),y) |
|---|
| 19 |
CONFIGURE_ARGS+= --enable-ipv6 |
|---|
| 20 |
else |
|---|
| 21 |
CONFIGURE_ARGS+= --disable-ipv6 |
|---|
| 22 |
endif |
|---|
| 23 |
CONFIGURE_ENV+= ${TARGET_CONFIGURE_OPTS} \ |
|---|
| 24 |
${HOST_CONFIGURE_OPTS} \ |
|---|
| 25 |
CC='${TARGET_CC}' CXX='${TARGET_CXX}' \ |
|---|
| 26 |
CFLAGS='$(strip ${TCFLAGS})' \ |
|---|
| 27 |
CXXFLAGS='$(strip ${TCXXFLAGS})' \ |
|---|
| 28 |
CPPFLAGS='$(strip ${TCPPFLAGS})' \ |
|---|
| 29 |
LDFLAGS='$(strip ${TLDFLAGS})' \ |
|---|
| 30 |
PKG_CONFIG_PATH='${STAGING_DIR}/usr/lib/pkgconfig' \ |
|---|
| 31 |
ac_cv_func_realloc_0_nonnull=yes \ |
|---|
| 32 |
ac_cv_func_malloc_0_nonnull=yes |
|---|
| 33 |
MAKE_FILE?= Makefile |
|---|
| 34 |
|
|---|
| 35 |
MAKE_ENV?= |
|---|
| 36 |
|
|---|
| 37 |
XAKE_FLAGS?= |
|---|
| 38 |
|
|---|
| 39 |
MAKE_FLAGS?= |
|---|
| 40 |
|
|---|
| 41 |
FAKE_FLAGS?= |
|---|
| 42 |
ALL_TARGET?= all |
|---|
| 43 |
INSTALL_TARGET?= install |
|---|
| 44 |
MAKE_ENV+= PATH='${TARGET_PATH}' \ |
|---|
| 45 |
${HOST_CONFIGURE_OPTS} \ |
|---|
| 46 |
WRKDIR='${WRKDIR}' WRKDIST='${WRKDIST}' \ |
|---|
| 47 |
WRKSRC='${WRKSRC}' WRKBUILD='${WRKBUILD}' \ |
|---|
| 48 |
CC='${TARGET_CC}' CXX='${TARGET_CXX}' \ |
|---|
| 49 |
AR='${TARGET_CROSS}ar' RANLIB='${TARGET_CROSS}ranlib' \ |
|---|
| 50 |
NM='${TARGET_CROSS}nm' \ |
|---|
| 51 |
CFLAGS='$(strip ${TCFLAGS})' \ |
|---|
| 52 |
CXXFLAGS='$(strip ${TCXXFLAGS})' \ |
|---|
| 53 |
CPPFLAGS='$(strip ${TCPPFLAGS})' \ |
|---|
| 54 |
LDFLAGS='$(strip ${TLDFLAGS})' |
|---|
| 55 |
MAKE_FLAGS+= ${XAKE_FLAGS} |
|---|
| 56 |
FAKE_FLAGS+= ${XAKE_FLAGS} |
|---|
| 57 |
|
|---|
| 58 |
ifeq ($(strip ${WRKDIR_BSD}),) |
|---|
| 59 |
WRKDIR_BASE:= ${BUILD_DIR} |
|---|
| 60 |
else |
|---|
| 61 |
WRKDIR_BASE:= $(shell pwd) |
|---|
| 62 |
endif |
|---|
| 63 |
|
|---|
| 64 |
_EXTRACT_COOKIE= ${WRKDIST}/.extract_done |
|---|
| 65 |
_PATCH_COOKIE= ${WRKDIST}/.prepared |
|---|
| 66 |
_CONFIGURE_COOKIE= ${WRKBUILD}/.configure_done |
|---|
| 67 |
_BUILD_COOKIE= ${WRKBUILD}/.build_done |
|---|
| 68 |
_FAKE_COOKIE= ${WRKINST}/.fake_done |
|---|
| 69 |
_IPKGS_COOKIE= ${PACKAGE_DIR}/.stamps/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE} |
|---|
| 70 |
|
|---|
| 71 |
_IN_PACKAGE:= 1 |
|---|
| 72 |
include ${TOPDIR}/mk/buildhlp.mk |
|---|
| 73 |
-include info.mk |
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
extract: ${_EXTRACT_COOKIE} |
|---|
| 77 |
patch: ${_PATCH_COOKIE} |
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 |
configure: ${_CONFIGURE_COOKIE} |
|---|
| 81 |
build: ${_BUILD_COOKIE} |
|---|
| 82 |
fake: ${_FAKE_COOKIE} |
|---|
| 83 |
|
|---|
| 84 |
|
|---|
| 85 |
build-all-ipkgs: ${_IPKGS_COOKIE} |
|---|
| 86 |
|
|---|
| 87 |
define PKG_template |
|---|
| 88 |
IPKG_$(1)= $(PACKAGE_DIR)/$(2)_$(3)_$(4).ipk |
|---|
| 89 |
IDIR_$(1)= $(WRKDIR)/fake-${ARCH}/ipkg-$(2) |
|---|
| 90 |
FWWIF_IDIR?= $${IDIR_$(1)} |
|---|
| 91 |
ifneq (${FWRT_PACKAGE_$(1)}${DEVELOPER},) |
|---|
| 92 |
ALL_IPKGS+= $$(IPKG_$(1)) |
|---|
| 93 |
ALL_IDIRS+= $${IDIR_$(1)} |
|---|
| 94 |
endif |
|---|
| 95 |
INFO_$(1)= $(IPKG_STATE_DIR)/info/$(2).list |
|---|
| 96 |
|
|---|
| 97 |
ifeq ($(FWRT_PACKAGE_$(1)),y) |
|---|
| 98 |
install-targets: $$(INFO_$(1)) |
|---|
| 99 |
endif |
|---|
| 100 |
|
|---|
| 101 |
IDEPEND_$(1):= $$(strip $(5)) |
|---|
| 102 |
|
|---|
| 103 |
_ALL_CONTROLS+= $$(IDIR_$(1))/CONTROL/control |
|---|
| 104 |
ICONTROL_$(1)?= ipkg/$(2).control |
|---|
| 105 |
$$(IDIR_$(1))/CONTROL/control: ${_PATCH_COOKIE} |
|---|
| 106 |
${MBSH} ${SCRIPT_DIR}/make-ipkg-dir.sh $${IDIR_$(1)} $${ICONTROL_$(1)} $(3) $(4) |
|---|
| 107 |
adeps='$$(strip $${IDEPEND_$(1)})'; if [[ -n $$$$adeps ]]; then \ |
|---|
| 108 |
comma=; \ |
|---|
| 109 |
deps=; \ |
|---|
| 110 |
last=; \ |
|---|
| 111 |
for dep in $$$$adeps; do \ |
|---|
| 112 |
if [[ $$$$last = kernel && $$$$dep = \(* ]]; then \ |
|---|
| 113 |
deps="$$$$deps $$$$dep"; \ |
|---|
| 114 |
else \ |
|---|
| 115 |
deps="$$$$deps$$$$comma$$$$dep"; \ |
|---|
| 116 |
fi; \ |
|---|
| 117 |
comma=", "; \ |
|---|
| 118 |
last=$$$$dep; \ |
|---|
| 119 |
done; \ |
|---|
| 120 |
echo "Depends: $$$$deps" >>$${IDIR_$(1)}/CONTROL/control; \ |
|---|
| 121 |
fi |
|---|
| 122 |
for file in conffiles preinst postinst prerm postrm; do \ |
|---|
| 123 |
[ ! -f ./ipkg/$(2).$$$$file ] || cp ./ipkg/$(2).$$$$file $$(IDIR_$(1))/CONTROL/$$$$file; \ |
|---|
| 124 |
done |
|---|
| 125 |
ifneq ($(strip $${ICONTROL_ADDON_$(1)}),) |
|---|
| 126 |
echo $${ICONTROL_ADDON_$(1)} >> $${IDIR_$(1)}/CONTROL/control |
|---|
| 127 |
endif |
|---|
| 128 |
|
|---|
| 129 |
$$(IPKG_$(1)): $$(IDIR_$(1))/CONTROL/control $${_FAKE_COOKIE} |
|---|
| 130 |
$${RSTRIP} $${IDIR_$(1)} |
|---|
| 131 |
cd $${IDIR_$(1)}; for script in etc/init.d/*; do \ |
|---|
| 132 |
[[ -e $$$$script ]] || continue; \ |
|---|
| 133 |
chmod 0755 "$$$$script"; \ |
|---|
| 134 |
done |
|---|
| 135 |
@mkdir -p $${PACKAGE_DIR} '$${STAGING_PARENT}/pkg' \ |
|---|
| 136 |
'$${STAGING_DIR}/scripts' |
|---|
| 137 |
@if test -s '$${STAGING_PARENT}/pkg/$(1)'; then \ |
|---|
| 138 |
cd '$${STAGING_DIR}'; \ |
|---|
| 139 |
while read fn; do \ |
|---|
| 140 |
rm -f "$$$$fn"; \ |
|---|
| 141 |
done <'$${STAGING_PARENT}/pkg/$(1)'; \ |
|---|
| 142 |
fi |
|---|
| 143 |
@rm -f '$${STAGING_PARENT}/pkg/$(1)' |
|---|
| 144 |
@cd $${IDIR_$(1)}; \ |
|---|
| 145 |
x=$$$$(find tmp var 2>/dev/null); if [[ -n $$$$x ]]; then \ |
|---|
| 146 |
echo 'WARNING: $${IPKG_$(1)} installs files into a' \ |
|---|
| 147 |
'ramdisk location:' >&2; \ |
|---|
| 148 |
echo "$$$$x" | sed 's/^/- /' >&2; \ |
|---|
| 149 |
fi; \ |
|---|
| 150 |
find lib \( -name lib\*.so\* -o -name lib\*.a \) \ |
|---|
| 151 |
-exec echo 'WARNING: $${IPKG_$(1)} installs files in /lib -' \ |
|---|
| 152 |
' fix this!' >&2 \; -quit 2>/dev/null; \ |
|---|
| 153 |
find usr ! -type d 2>/dev/null | \ |
|---|
| 154 |
grep -v -e '^usr/share' -e '^usr/man' -e '^usr/info' | \ |
|---|
| 155 |
tee '$${STAGING_PARENT}/pkg/$(1)' | \ |
|---|
| 156 |
mircpio -apdlmu '$${STAGING_DIR}' |
|---|
| 157 |
@cd '$${STAGING_DIR}'; grep 'usr/lib/.*\.la$$$$' \ |
|---|
| 158 |
'$${STAGING_PARENT}/pkg/$(1)' | while read fn; do \ |
|---|
| 159 |
chmod u+w $$$$fn; \ |
|---|
| 160 |
printf '%s\nwq\n' '/^libdir='\''*/s |
|---|
| 161 |
ed -s $$$$fn; \ |
|---|
| 162 |
done; grep 'usr/s*bin/' '$${STAGING_PARENT}/pkg/$(1)' | \ |
|---|
| 163 |
while read fn; do \ |
|---|
| 164 |
b="$$$$(dd if="$$$$fn" bs=2 count=1 2>/dev/null)"; \ |
|---|
| 165 |
[[ $$$$b = ' |
|---|
| 166 |
cp "$$$$fn" scripts/; \ |
|---|
| 167 |
echo "scripts/$$$$(basename "$$$$fn")" \ |
|---|
| 168 |
>>'$${STAGING_PARENT}/pkg/$(1)'; \ |
|---|
| 169 |
done |
|---|
| 170 |
$${IPKG_BUILD} $${IDIR_$(1)} $${PACKAGE_DIR} |
|---|
| 171 |
|
|---|
| 172 |
clean-targets: clean-dev-$(1) |
|---|
| 173 |
|
|---|
| 174 |
clean-dev-$(1): |
|---|
| 175 |
@if test -s '$${STAGING_PARENT}/pkg/$(1)'; then \ |
|---|
| 176 |
cd '$${STAGING_DIR}'; \ |
|---|
| 177 |
while read fn; do \ |
|---|
| 178 |
rm -f "$$$$fn"; \ |
|---|
| 179 |
done <'$${STAGING_PARENT}/pkg/$(1)'; \ |
|---|
| 180 |
fi |
|---|
| 181 |
@rm -f '$${STAGING_PARENT}/pkg/$(1)' |
|---|
| 182 |
|
|---|
| 183 |
$$(INFO_$(1)): $$(IPKG_$(1)) |
|---|
| 184 |
$(IPKG) install $$(IPKG_$(1)) |
|---|
| 185 |
endef |
|---|
| 186 |
|
|---|
| 187 |
install-targets: |
|---|
| 188 |
install: |
|---|
| 189 |
@$(CMD_TRACE) "installing... " |
|---|
| 190 |
@$(MAKE) install-targets $(MAKE_TRACE) |
|---|
| 191 |
|
|---|
| 192 |
clean-targets: |
|---|
| 193 |
clean: |
|---|
| 194 |
@$(CMD_TRACE) "cleaning... " |
|---|
| 195 |
@$(MAKE) clean-targets $(MAKE_TRACE) |
|---|
| 196 |
rm -rf ${WRKDIR} ${ALL_IPKGS} ${PACKAGE_DIR}/.stamps/${PKG_NAME}* |
|---|
| 197 |
|
|---|
| 198 |
distclean: clean |
|---|
| 199 |
rm -f ${FULLDISTFILES} |
|---|
| 200 |
|
|---|
| 201 |
.PHONY: all refetch extract patch configure \ |
|---|
| 202 |
build fake package install clean build-all-ipkgs |
|---|