You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

200 lines
6.6 KiB

#
# targets to finish TARGET_DIR and create rootfs
#
# -----------------------------------------------------------------------------
target-finish: .version update.urls symbolic-links
sed -i 's|%(YEAR)|$(shell date +%Y)|' $(TARGET_DIR)/etc/init.d/rcS
ifeq ($(BOXTYPE), armbox)
make e2-multiboot
endif
# -----------------------------------------------------------------------------
.version: $(TARGET_DIR)/.version
$(TARGET_DIR)/.version: | $(TARGET_DIR)
echo "distro=NI" > $(@)
echo "imagename=NI \o/ Neutrino-Image" >> $(@)
echo "imagedescription=$(IMAGE_DESC)" >> $(@)
echo "imageversion=$(IMAGE_VERSION)" >> $(@)
echo "version=$(IMAGE_TYPE)$(IMAGE_VER)$(IMAGE_DATE)" >> $(@)
echo "describe=$$(git describe --always --long --tags | sed 's/-/./2')" >> $(@)
echo "builddate=$$(date)" >> $(@)
echo "box_model=$(BOXMODEL)" >> $(@)
echo "creator=$(MAINTAINER)" >> $(@)
echo "homepage=www.neutrino-images.de" >> $(@)
ifeq ($(BOXTYPE), $(filter $(BOXTYPE), armbox mipsbox))
echo "imagedir=$(IMAGE_SUBDIR)" >> $(@)
endif
# -----------------------------------------------------------------------------
update.urls: $(TARGET_DIR)/var/etc/update.urls
$(TARGET_DIR)/var/etc/update.urls: | $(TARGET_DIR)
echo "$(NI-SERVER)/update.php" > $(@)
echo "$(CHANNELLISTS_URL)/$(CHANNELLISTS_MD5FILE)" >> $(@)
# -----------------------------------------------------------------------------
# create symbolic links in TARGET_DIR
symbolic-links: | $(TARGET_DIR)
$(CD) $(TARGET_DIR); \
ln -sf /var/root root; \
ln -sf /var/root home
$(CD) $(TARGET_DIR)/usr; \
ln -sf /share share
$(CD) $(TARGET_DIR)/var; \
rm -rf run; ln -sf /tmp run; \
rm -rf tmp; ln -sf /tmp tmp
$(CD) $(TARGET_DIR)/etc; \
ln -sf /proc/mounts mtab
ifeq ($(PERSISTENT_VAR_PARTITION), yes)
$(CD) $(TARGET_DIR)/etc; \
ln -sf /var/etc/exports exports; \
ln -sf /var/etc/hostname hostname; \
ln -sf /var/etc/localtime localtime; \
ln -sf /var/etc/passwd passwd; \
ln -sf /var/etc/resolv.conf resolv.conf; \
ln -sf /var/etc/wpa_supplicant.conf wpa_supplicant.conf
$(CD) $(TARGET_DIR)/etc/network; \
ln -sf /var/etc/network/interfaces interfaces
endif
mkdir -p $(TARGET_DIR)/var/tuxbox/config
$(CD) $(TARGET_DIR)/var/tuxbox/config; \
ln -sf /var/keys/SoftCam.Key SoftCam.Key
# -----------------------------------------------------------------------------
e2-multiboot: | $(TARGET_DIR)
mkdir -p $(TARGET_DIR)/usr/bin
echo -e "#!/bin/sh\necho Nope!" > $(TARGET_DIR)/usr/bin/enigma2
chmod 0755 $(TARGET_DIR)/usr/bin/enigma2
#
echo -e "NI $(IMAGE_VERSION) \\\n \\\l\n" > $(TARGET_DIR)/etc/issue
#
mkdir -p $(TARGET_SHARE_DIR)
touch $(TARGET_SHARE_DIR)/bootlogo.mvi
#
mkdir -p $(TARGET_DIR)/var/lib/opkg
touch $(TARGET_DIR)/var/lib/opkg/status
#
$(INSTALL_DATA) $(TARGET_DIR)/.version $(TARGET_DIR)/etc/image-version
# -----------------------------------------------------------------------------
personalize: | $(TARGET_DIR)
$(call local-script,$(@F),start)
@LOCAL_ROOT=$(LOCAL_DIR)/root; \
if [ -n "$$(ls -A $$LOCAL_ROOT)" ]; then \
$(INSTALL_COPY) -v $$LOCAL_ROOT/* $(TARGET_DIR)/; \
fi
$(call local-script,$(@F),stop)
# -----------------------------------------------------------------------------
rootfs: target-finish $(ROOTFS) rootfs-cleanup rootfs-strip
# -----------------------------------------------------------------------------
# create filesystem for our images
$(ROOTFS): | $(TARGET_DIR)
rm -rf $(ROOTFS)
mkdir -p $(dir $(ROOTFS))
$(INSTALL_COPY) $(TARGET_DIR) $(ROOTFS)
# -----------------------------------------------------------------------------
# cleanup root filesystem from useless stuff
rootfs-cleanup: $(ROOTFS)
rm -rf $(ROOTFS)$(remove-dir)
rm -rf $(ROOTFS)/include
rm -rf $(ROOTFS)/lib/pkgconfig
rm -rf $(ROOTFS)/lib/sigc++*
rm -rf $(ROOTFS)/lib/glib-2.0
rm -f $(ROOTFS)/lib/libvorbisenc*
find $(ROOTFS) \( -name .gitignore -o -name .gitkeep \) -type f -print0 | xargs --no-run-if-empty -0 rm -f
find $(ROOTFS) \( -name Makefile.am \) -type f -print0 | xargs --no-run-if-empty -0 rm -f
find $(ROOTFS)/lib \( -name '*.a' -o -name '*.la' \) -print0 | xargs --no-run-if-empty -0 rm -f
@echo -e "$(TERM_YELLOW)"
@du -sh $(ROOTFS)
@echo -e "$(TERM_NORMAL)"
# -----------------------------------------------------------------------------
ROOTFS-STRIP_DIRS = /bin
ROOTFS-STRIP_DIRS += /sbin
ROOTFS-STRIP_DIRS += /share/tuxbox/neutrino/plugins
# strip bins and libs in root filesystem
rootfs-strip: $(ROOTFS)
ifneq ($(DEBUG), yes)
$(call draw_line);
@echo "The following warnings from strip are harmless!"
$(call draw_line);
for dir in $(ROOTFS-STRIP_DIRS); do \
find $(ROOTFS)$${dir} -type f -print0 | xargs -0 $(TARGET_STRIP) || true; \
done
find $(ROOTFS)/lib \( \
-path $(ROOTFS)/lib/libnexus.so -o \
-path $(ROOTFS)/lib/libnxpl.so -o \
-path $(ROOTFS)/lib/libv3ddriver.so -o \
\
-path $(ROOTFS)/lib/modules \) -prune -o \
-type f -print0 | xargs -0 $(TARGET_STRIP) || true
ifeq ($(BOXSERIES), hd2)
find $(ROOTFS)/lib/modules/$(KERNEL_VER)/kernel -type f -name '*.ko' | xargs -n 1 $(TARGET_OBJCOPY) --strip-unneeded
endif
@echo -e "$(TERM_YELLOW)"
@du -sh $(ROOTFS)
@echo -e "$(TERM_NORMAL)"
endif
# -----------------------------------------------------------------------------
ifeq ($(BOXTYPE), $(filter $(BOXTYPE), coolstream))
get-update-info: get-update-info-$(BOXSERIES)
get-update-info-hd2:
$(call draw_line);
@echo "Get update info for boxmodel $(BOXMODEL)"
@echo
@$(CD) $(SOURCE_DIR)/$(NI-DRIVERS-BIN)/$(DRIVERS-BIN_DIR); \
if [ -e vmlinux.ub.gz ]; then \
dd status=none if=vmlinux.ub.gz bs=1 skip=$$(LC_ALL=C grep -a -b -o $$'\x1f\x8b\x08\x00\x00\x00\x00\x00' vmlinux.ub.gz \
| cut -d ':' -f 1) | zcat -q | grep -a "Linux version"; \
fi; \
if [ -e u-boot.bin ]; then \
strings u-boot.bin | grep -m1 "U-Boot "; \
fi; \
if [ -e uldr.bin ]; then \
strings uldr.bin | grep -m1 "Microloader "; \
fi
$(call draw_line);
get-update-info-hd1:
$(call draw_line);
@echo "Get update info for boxmodel $(BOXMODEL)"
@echo
@$(CD) $(SOURCE_DIR)/$(NI-DRIVERS-BIN)/$(DRIVERS-BIN_DIR); \
if [ -e zImage ]; then \
dd if=zImage bs=1 skip=$$(LC_ALL=C grep -a -b -o $$'\x1f\x8b\x08\x00\x00\x00\x00\x00' zImage \
| cut -d ':' -f 1) | zcat -q | grep -a "Linux version"; \
fi
$(call draw_line);
endif
# -----------------------------------------------------------------------------
PHONY += target-finish
PHONY += .version $(TARGET_DIR)/.version
PHONY += update.urls $(TARGET_DIR)/var/etc/update.urls
PHONY += symbolic-links
PHONY += e2-multiboot
PHONY += personalize
PHONY += rootfs
PHONY += $(ROOTFS)
PHONY += rootfs-cleanup
PHONY += rootfs-strip