OpenWrt – Blame information for rev 3
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | ifdef CONFIG_USE_MKLIBS |
2 | define mklibs |
||
3 | rm -rf $(TMP_DIR)/mklibs-progs $(TMP_DIR)/mklibs-out |
||
4 | # first find all programs and add them to the mklibs list |
||
5 | find $(STAGING_DIR_ROOT) -type f -perm /100 -exec \ |
||
6 | file -r -N -F '' {} + | \ |
||
7 | awk ' /executable.*dynamically/ { print $$1 }' > $(TMP_DIR)/mklibs-progs |
||
8 | # find all loadable objects that are not regular libraries and add them to the list as well |
||
9 | find $(STAGING_DIR_ROOT) -type f -name \*.so\* -exec \ |
||
10 | file -r -N -F '' {} + | \ |
||
11 | awk ' /shared object/ { print $$1 }' > $(TMP_DIR)/mklibs-libs |
||
12 | mkdir -p $(TMP_DIR)/mklibs-out |
||
13 | $(STAGING_DIR_HOST)/bin/mklibs -D \ |
||
14 | -d $(TMP_DIR)/mklibs-out \ |
||
15 | --sysroot $(STAGING_DIR_ROOT) \ |
||
16 | `cat $(TMP_DIR)/mklibs-libs | sed 's:/*[^/]\+/*$$::' | uniq | sed 's:^$(STAGING_DIR_ROOT):-L :'` \ |
||
17 | --ldlib $(patsubst $(STAGING_DIR_ROOT)/%,/%,$(firstword $(wildcard \ |
||
18 | $(foreach name,ld-uClibc.so.* ld-linux.so.* ld-*.so ld-musl-*.so.*, \ |
||
19 | $(STAGING_DIR_ROOT)/lib/$(name) \ |
||
20 | )))) \ |
||
21 | --target $(REAL_GNU_TARGET_NAME) \ |
||
22 | `cat $(TMP_DIR)/mklibs-progs $(TMP_DIR)/mklibs-libs` 2>&1 |
||
23 | $(RSTRIP) $(TMP_DIR)/mklibs-out |
||
24 | for lib in `ls $(TMP_DIR)/mklibs-out/*.so.* 2>/dev/null`; do \ |
||
25 | LIB="$${lib##*/}"; \ |
||
26 | DEST="`ls "$(1)/lib/$$LIB" "$(1)/usr/lib/$$LIB" 2>/dev/null`"; \ |
||
27 | [ -n "$$DEST" ] || continue; \ |
||
28 | echo "Copying stripped library $$lib to $$DEST"; \ |
||
29 | cp "$$lib" "$$DEST" || exit 1; \ |
||
30 | done |
||
31 | endef |
||
32 | endif |
||
33 | |||
34 | # where to build (and put) .ipk packages |
||
35 | opkg = \ |
||
36 | IPKG_NO_SCRIPT=1 \ |
||
37 | IPKG_INSTROOT=$(1) \ |
||
38 | TMPDIR=$(1)/tmp \ |
||
39 | $(STAGING_DIR_HOST)/bin/opkg \ |
||
40 | --offline-root $(1) \ |
||
41 | --force-postinstall \ |
||
42 | --add-dest root:/ \ |
||
43 | --add-arch all:100 \ |
||
44 | --add-arch $(if $(ARCH_PACKAGES),$(ARCH_PACKAGES),$(BOARD)):200 |
||
45 | |||
46 | TARGET_DIR_ORIG := $(TARGET_ROOTFS_DIR)/root.orig-$(BOARD) |
||
47 | |||
48 | ifdef CONFIG_CLEAN_IPKG |
||
49 | define clean_ipkg |
||
50 | -find $(1)/usr/lib/opkg/info -type f -and -not -name '*.control' | $(XARGS) rm -rf |
||
51 | -sed -i -ne '/^Require-User: /p' $(1)/usr/lib/opkg/info/*.control |
||
52 | awk ' \ |
||
53 | BEGIN { conffiles = 0; print "Conffiles:" } \ |
||
54 | /^Conffiles:/ { conffiles = 1; next } \ |
||
55 | !/^ / { conffiles = 0; next } \ |
||
56 | conffiles == 1 { print } \ |
||
57 | ' $(1)/usr/lib/opkg/status >$(1)/usr/lib/opkg/status.new |
||
58 | mv $(1)/usr/lib/opkg/status.new $(1)/usr/lib/opkg/status |
||
59 | -find $(1)/usr/lib/opkg -empty | $(XARGS) rm -rf |
||
60 | endef |
||
61 | endif |
||
62 | |||
63 | define prepare_rootfs |
||
64 | $(if $(2),@if [ -d '$(2)' ]; then \ |
||
65 | $(call file_copy,$(2)/.,$(1)); \ |
||
66 | fi) |
||
67 | @mkdir -p $(1)/etc/rc.d |
||
68 | @mkdir -p $(1)/var/lock |
||
69 | @( \ |
||
70 | cd $(1); \ |
||
71 | for script in ./usr/lib/opkg/info/*.postinst; do \ |
||
72 | IPKG_INSTROOT=$(1) $$(which bash) $$script; \ |
||
73 | ret=$$?; \ |
||
74 | if [ $$ret -ne 0 ]; then \ |
||
75 | echo "postinst script $$script has failed with exit code $$ret" >&2; \ |
||
76 | exit 1; \ |
||
77 | fi; \ |
||
78 | done; \ |
||
79 | for script in ./etc/init.d/*; do \ |
||
80 | grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ |
||
81 | IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script enable; \ |
||
82 | done || true \ |
||
83 | ) |
||
84 | $(if $(SOURCE_DATE_EPOCH),sed -i "s/Installed-Time: .*/Installed-Time: $(SOURCE_DATE_EPOCH)/" $(1)/usr/lib/opkg/status) |
||
85 | @-find $(1) -name CVS | $(XARGS) rm -rf |
||
86 | @-find $(1) -name .svn | $(XARGS) rm -rf |
||
87 | @-find $(1) -name .git | $(XARGS) rm -rf |
||
88 | @-find $(1) -name '.#*' | $(XARGS) rm -f |
||
89 | rm -rf $(1)/tmp/* |
||
90 | rm -f $(1)/usr/lib/opkg/lists/* |
||
91 | rm -f $(1)/usr/lib/opkg/info/*.postinst* |
||
92 | rm -f $(1)/var/lock/*.lock |
||
93 | $(call clean_ipkg,$(1)) |
||
94 | $(call mklibs,$(1)) |
||
95 | endef |