summaryrefslogtreecommitdiffstats
path: root/rules/klibc.make
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2009-11-04 13:52:56 +0100
committerMarc Kleine-Budde <mkl@pengutronix.de>2009-11-04 13:56:48 +0100
commit97e3475f6b0614a8285b4d78ae213dd51be75488 (patch)
tree5fb2b24540f424784aa9ed7ecd5ecf8a43134760 /rules/klibc.make
parent9b508b4bae8f0d1f05b00c579483a158c9f22e46 (diff)
downloadptxdist-97e3475f6b0614a8285b4d78ae213dd51be75488.tar.gz
ptxdist-97e3475f6b0614a8285b4d78ae213dd51be75488.tar.xz
[klibc] simplify klibc handling
Signed-off-by: Jon Ringle <jon@ringle.org> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'rules/klibc.make')
-rw-r--r--rules/klibc.make360
1 files changed, 100 insertions, 260 deletions
diff --git a/rules/klibc.make b/rules/klibc.make
index 9bb5e603e..87329e222 100644
--- a/rules/klibc.make
+++ b/rules/klibc.make
@@ -1,7 +1,8 @@
# -*-makefile-*-
-# $Id: template 3345 2005-11-14 17:14:19Z rsc $
#
# Copyright (C) 2005 by Sascha Hauer
+# 2009 by Jon Ringle <jon@ringle.org>
+# 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
#
# See CREDITS for details about who has contributed to this project.
#
@@ -20,14 +21,15 @@ PACKAGES-$(PTXCONF_KLIBC) += klibc
KLIBC_VERSION := 1.5.15
KLIBC := klibc-$(KLIBC_VERSION)
KLIBC_SUFFIX := tar.gz
-KLIBC_URL := \
- http://www.kernel.org/pub/linux/libs/klibc/Testing/$(KLIBC).$(KLIBC_SUFFIX) \
- http://eu.kernel.org/pub/linux/libs/klibc/Testing/$(KLIBC).$(KLIBC_SUFFIX)
KLIBC_SOURCE := $(SRCDIR)/$(KLIBC).$(KLIBC_SUFFIX)
KLIBC_DIR := $(BUILDDIR)/$(KLIBC)
+KLIBC_URL := \
+ http://www.kernel.org/pub/linux/libs/klibc/Testing/$(KLIBC).$(KLIBC_SUFFIX) \
+ http://eu.kernel.org/pub/linux/libs/klibc/Testing/$(KLIBC).$(KLIBC_SUFFIX)
+
ifdef PTXCONF_KLIBC
-$(STATEDIR)/kernel.compile: $(STATEDIR)/klibc.install
+$(STATEDIR)/kernel.compile: $(STATEDIR)/klibc.targetinstall.post
endif
# ----------------------------------------------------------------------------
@@ -42,9 +44,6 @@ $(KLIBC_SOURCE):
# Prepare
# ----------------------------------------------------------------------------
-KLIBC_PATH := PATH=$(CROSS_PATH)
-KLIBC_ENV := $(CROSS_ENV)
-
$(STATEDIR)/klibc.prepare: $(STATEDIR)/kernel.prepare
@$(call targetinfo)
@echo > $(KLIBC_DIR)/defconfig
@@ -60,295 +59,134 @@ ifdef PTXCONF_ARCH_X86
@echo "# i386 option" >> $(KLIBC_DIR)/defconfig
@echo "CONFIG_REGPARM=y" >> $(KLIBC_DIR)/defconfig
endif
+ @ln -sf $(KERNEL_DIR) $(KLIBC_DIR)/linux
@$(call touch)
# ----------------------------------------------------------------------------
# Compile
# ----------------------------------------------------------------------------
-# CROSS_COMPILE define the crosscompiler to use
-# KLIBCARCH define the target architecture
-# INSTALLROOT where to install the executables
KLIBC_MAKEVARS := \
$(PARALLELMFLAGS) \
KLIBCARCH=$(PTXCONF_ARCH_STRING) \
CROSS_COMPILE=$(COMPILER_PREFIX) \
- INSTALLROOT=$(SYSROOT)
+ INSTALLROOT=$(PTXDIST_SYSROOT_TARGET)
$(STATEDIR)/klibc.compile:
@$(call targetinfo)
- rm -f $(KLIBC_DIR)/.config
- ln -sf $(KERNEL_DIR) $(KLIBC_DIR)/linux
- cd $(KLIBC_DIR) && $(MAKE) $(KLIBC_MAKEVARS)
+ @rm -f $(KLIBC_DIR)/.config
+ @cd $(KLIBC_DIR) && $(MAKE) $(KLIBC_MAKEVARS) prefix=$(PTXDIST_SYSROOT_TARGET)/usr
@$(call touch)
# ----------------------------------------------------------------------------
# Install
-# this won't generate any files here for the target. All selected files will
-# later be part of the kernel image itself (initramfs). Instead only a control
-# file will be generated and all parts of the klibc get installed into
-# $(SYSROOT)/usr/lib/klibc.
-# To link applications against klibc, use the "klcc" wrapper instead of the
-# cross compiler. klcc will be build here and uses the $(COMPILER_PREFIX).
-# While kernel building the klibc files will be fetched from their build location!
# ----------------------------------------------------------------------------
-#
-#
-# where the klibc "install" target installs the target binaries
-#
+$(STATEDIR)/klibc.install:
+ @$(call targetinfo)
+
+ @rm -f $(KLIBC_DIR)/.config
+ @install $(KLIBC_DIR)/klcc/klcc $(PTXCONF_SYSROOT_CROSS)/bin/klcc
+ @cd $(KLIBC_DIR) && $(MAKE) $(KLIBC_MAKEVARS) install
+
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
KLIBC_BINSRC := $(KLIBC_DIR)/usr
-# where to store the file info
-KLIBC_CONTROL := $(KLIBC_DIR)/initramfs_spec
+KLIBC_UTILS-$(PTXCONF_KLIBC_CAT) += cat
+KLIBC_UTILS-$(PTXCONF_KLIBC_CHROOT) += chroot
+KLIBC_UTILS-$(PTXCONF_KLIBC_CPIO) += cpio
+KLIBC_UTILS-$(PTXCONF_KLIBC_DD) += dd
+KLIBC_UTILS-$(PTXCONF_KLIBC_DMESG) += dmesg
+KLIBC_UTILS-$(PTXCONF_KLIBC_FALSE) += false
+KLIBC_UTILS-$(PTXCONF_KLIBC_HALT) += halt
+KLIBC_UTILS-$(PTXCONF_KLIBC_KILL) += kill
+KLIBC_UTILS-$(PTXCONF_KLIBC_LN) += ln
+KLIBC_UTILS-$(PTXCONF_KLIBC_LS) += ls
+KLIBC_UTILS-$(PTXCONF_KLIBC_MINIPS) += minips
+KLIBC_UTILS-$(PTXCONF_KLIBC_MKDIR) += mkdir
+KLIBC_UTILS-$(PTXCONF_KLIBC_MKFIFO) += mkfifo
+KLIBC_UTILS-$(PTXCONF_KLIBC_MKNOD) += mknod
+KLIBC_UTILS-$(PTXCONF_KLIBC_MOUNT) += mount
+KLIBC_UTILS-$(PTXCONF_KLIBC_NUKE) += nuke
+KLIBC_UTILS-$(PTXCONF_KLIBC_PIVOT_ROOT) += pivot_root
+KLIBC_UTILS-$(PTXCONF_KLIBC_POWEROFF) += poweroff
+KLIBC_UTILS-$(PTXCONF_KLIBC_READLINK) += readlink
+KLIBC_UTILS-$(PTXCONF_KLIBC_REBOOT) += reboot
+KLIBC_UTILS-$(PTXCONF_KLIBC_SLEEP) += sleep
+KLIBC_UTILS-$(PTXCONF_KLIBC_SYNC) += sync
+KLIBC_UTILS-$(PTXCONF_KLIBC_TRUE) += true
+KLIBC_UTILS-$(PTXCONF_KLIBC_UMOUNT) += umount
+KLIBC_UTILS-$(PTXCONF_KLIBC_UNAME) += uname
+
+KLIBC_KINIT-$(PTXCONF_KLIBC_FSTYPE) += fstype
+KLIBC_KINIT-$(PTXCONF_KLIBC_IPCONFIG) += ipconfig
+#KLIBC_KINIT-$(PTXCONF_KLIBC_KINIT) += # kinit is copied to /
+KLIBC_KINIT-$(PTXCONF_KLIBC_NFSMOUNT) += nfsmount
+KLIBC_KINIT-$(PTXCONF_KLIBC_RESUME) += resume
+KLIBC_KINIT-$(PTXCONF_KLIBC_RUN_INIT) += run-init
+
+ifdef PTXCONF_KLIBC_STATIC
+KLIBC_SUBDIR := static
+KLIBC_EXT :=
+else
+KLIBC_SUBDIR := shared
+KLIBC_EXT := .shared
+endif
-$(STATEDIR)/klibc.install:
+$(STATEDIR)/klibc.targetinstall:
@$(call targetinfo)
- @echo "dir /dev/ 755 0 0" > $(KLIBC_CONTROL)
- @echo "dir /proc/ 755 0 0" >> $(KLIBC_CONTROL)
- @echo "dir /sys/ 755 0 0" >> $(KLIBC_CONTROL)
- @echo "dir /bin/ 755 0 0" >> $(KLIBC_CONTROL)
- @echo "nod /dev/console 644 0 0 c 5 1" >> $(KLIBC_CONTROL)
- @echo "nod /dev/loop0 644 0 0 b 7 0" >> $(KLIBC_CONTROL)
-#
-# select the static parts first
-#
-ifdef PTXCONF_KLIBC_STATIC_CAT
- @echo "file /bin/cat $(KLIBC_BINSRC)/utils/static/cat 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_CHROOT
- @echo "file /bin/chroot $(KLIBC_BINSRC)/utils/static/chroot 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_CPIO
- @echo "file /bin/cpio $(KLIBC_BINSRC)/utils/static/cpio 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_DD
- @echo "file /bin/dd $(KLIBC_BINSRC)/utils/static/dd 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_DMESG
- @echo "file /bin/dmesg $(KLIBC_BINSRC)/utils/static/dmesg 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_FALSE
- @echo "file /bin/false $(KLIBC_BINSRC)/utils/static/false 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_FSTYPE
- @echo "file /bin/fstype $(KLIBC_BINSRC)/kinit/fstype/static/fstype 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_HALT
- @echo "file /bin/halt $(KLIBC_BINSRC)/utils/static/halt 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_IPCONIFG
- @echo "file /bin/ipconfig $(KLIBC_BINSRC)/kinit/ipconfig/static/ipconfig 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_KILL
- @echo "file /bin/kill $(KLIBC_BINSRC)/utils/static/kill 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_LN
- @echo "file /bin/ln $(KLIBC_BINSRC)/utils/static/ln 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_MINIPS
- @echo "file /bin/minips $(KLIBC_BINSRC)/utils/static/minips 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_MKDIR
- @echo "file /bin/mkdir $(KLIBC_BINSRC)/utils/static/mkdir 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_MKFIFO
- @echo "file /bin/mkfifo $(KLIBC_BINSRC)/utils/static/mkfifo 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_MKNOD
- @echo "file /bin/mknod $(KLIBC_BINSRC)/utils/static/mknod 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_MOUNT
- @echo "file /bin/mount $(KLIBC_BINSRC)/utils/static/mount 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_NFSMOUNT
- @echo "file /bin/nfsmount $(KLIBC_BINSRC)/kinit/nfsmount/static/nfsmount 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_NUKE
- @echo "file /bin/nuke $(KLIBC_BINSRC)/utils/static/nuke 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_PIVOT_ROOT
- @echo "file /bin/pivot_root $(KLIBC_BINSRC)/utils/static/pivot_root 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_POWEROFF
- @echo "file /bin/poweroff $(KLIBC_BINSRC)/utils/static/poweroff 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_READLINK
- @echo "file /bin/readlink $(KLIBC_BINSRC)/utils/static/readlink 755 0 0">> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_REBOOT
- @echo "file /bin/reboot $(KLIBC_BINSRC)/utils/static/reboot 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_RESUME
- @echo "file /bin/resume $(KLIBC_BINSRC)/kinit/resume/static/resume 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_RUN_INIT
- @echo "file /bin/run-init $(KLIBC_BINSRC)/kinit/run-init/static/run-init 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_SLEEP
- @echo "file /bin/sleep $(KLIBC_BINSRC)/utils/static/sleep 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_SYNC
- @echo "file /bin/sync $(KLIBC_BINSRC)/utils/static/sync 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_TRUE
- @echo "file /bin/true $(KLIBC_BINSRC)/utils/static/true 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_UMOUNT
- @echo "file /bin/umount $(KLIBC_BINSRC)/utils/static/umount 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_STATIC_UNAME
- @echo "file /bin/uname $(KLIBC_BINSRC)/utils/static/uname 755 0 0" >> $(KLIBC_CONTROL)
-endif
+ @echo "# Generated initramfs" > $(KLIBC_CONTROL)
-ifdef PTXCONF_KLIBC_STATIC_DASH
- @echo "file /bin/sh $(KLIBC_BINSRC)/dash/sh 755 0 0" >> $(KLIBC_CONTROL)
-endif
+ @$(call install_initramfs, klibc, 0, 0, 0755, /bin);
+ @$(call install_initramfs, klibc, 0, 0, 0755, /dev);
+ @$(call install_initramfs, klibc, 0, 0, 0755, /etc);
+ @$(call install_initramfs, klibc, 0, 0, 0755, /lib);
+ @$(call install_initramfs, klibc, 0, 0, 0755, /proc);
+ @$(call install_initramfs, klibc, 0, 0, 0755, /sbin);
+ @$(call install_initramfs, klibc, 0, 0, 0755, /sys);
+
+ @$(call install_initramfs_node, klibc, 0, 0, 0600, c, 5, 1, /dev/console);
+
+ @for prog in $(KLIBC_UTILS-y); do \
+ $(call install_initramfs, klibc, 0, 0, 0755, \
+ $(KLIBC_DIR)/usr/utils/$(KLIBC_SUBDIR)/$${prog}, /bin/$${prog}); \
+ done
+
+ @for prog in $(KLIBC_KINIT-y); do \
+ $(call install_initramfs, klibc, 0, 0, 0755, \
+ $(KLIBC_DIR)/usr/kinit/$${prog}/$(KLIBC_SUBDIR)/$${prog}, /bin/$${prog}); \
+ done
ifdef PTXCONF_KLIBC_KINIT
- @echo "file /kinit $(KLIBC_BINSRC)/kinit/kinit 755 0 0" >> $(KLIBC_CONTROL)
+ @$(call install_initramfs, klibc, 0, 0, 0755, \
+ $(KLIBC_DIR)/usr/kinit/kinit$(KLIBC_EXT), /kinit);
endif
-#
-# select the dynamics
-# FIXME: Untested and not fully supported yet!
-#
-ifdef PTXCONF_KLIBC_DYNAMIC_LIB
- @echo "dir /lib/ 755 0 0" >> $(KLIBC_CONTROL)
- @echo "file /lib/klibc.so $(KLIBC_BINSRC)/utils/klibc/klibc.so 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_CAT
- @echo "file /bin/cat $(KLIBC_BINSRC)/utils/shared/cat 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_CHROOT
- @echo "file /bin/chroot $(KLIBC_BINSRC)/utils/shared/chroot 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_CPIO
- @echo "file /bin/cpio $(KLIBC_BINSRC)/utils/shared/cpio 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_DD
- @echo "file /bin/dd $(KLIBC_BINSRC)/utils/shared/dd 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_DMESG
- @echo "file /bin/dmesg $(KLIBC_BINSRC)/utils/shared/dmesg 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_FALSE
- @echo "file /bin/false $(KLIBC_BINSRC)/utils/shared/false 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_FSTYPE
- @echo "file /bin/fstype $(KLIBC_BINSRC)/kinit/fstype/shared/fstype 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_HALT
- @echo "file /bin/halt $(KLIBC_BINSRC)/utils/shared/halt 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_IPCONIFG
- @echo "file /bin/ipconfig $(KLIBC_BINSRC)/kinit/ipconfig/shared/ipconfig 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_KILL
- @echo "file /bin/kill $(KLIBC_BINSRC)/utils/shared/kill 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_LN
- @echo "file /bin/ln $(KLIBC_BINSRC)/utils/shared/ln 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_MINIPS
- @echo "file /bin/minips $(KLIBC_BINSRC)/utils/shared/minips 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_MKDIR
- @echo "file /bin/mkdir $(KLIBC_BINSRC)/utils/shared/mkdir 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_MKFIFO
- @echo "file /bin/mkfifo $(KLIBC_BINSRC)/utils/shared/mkfifo 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_MKNOD
- @echo "file /bin/mknod $(KLIBC_BINSRC)/utils/shared/mknod 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_MOUNT
- @echo "file /bin/mount $(KLIBC_BINSRC)/utils/shared/mount 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_NFSMOUNT
- @echo "file /bin/nfsmount $(KLIBC_BINSRC)/kinit/nfsmount/shared/nfsmount 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_NUKE
- @echo "file /bin/nuke $(KLIBC_BINSRC)/utils/shared/nuke 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_PIVOT_ROOT
- @echo "file /bin/pivot_root $(KLIBC_BINSRC)/utils/shared/pivot_root 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_POWEROFF
- @echo "file /bin/poweroff $(KLIBC_BINSRC)/utils/shared/poweroff 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_READLINK
- @echo "file /bin/readlink $(KLIBC_BINSRC)/utils/shared/readlink 755 0 0">> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_REBOOT
- @echo "file /bin/reboot $(KLIBC_BINSRC)/utils/shared/reboot 755 0 0" >> $(KLIBC_CONTROL)
+ifdef PTXCONF_KLIBC_DASH
+ @$(call install_initramfs, klibc, 0, 0, 0755, \
+ $(KLIBC_DIR)/usr/dash/sh$(KLIBC_EXT), /bin/sh);
endif
-ifdef PTXCONF_KLIBC_SHARED_RESUME
- @echo "file /bin/resume $(KLIBC_BINSRC)/kinit/resume/shared/resume 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_RUN_INIT
- @echo "file /bin/run-init $(KLIBC_BINSRC)/kinit/run-init/shared/run-init 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_SLEEP
- @echo "file /bin/sleep $(KLIBC_BINSRC)/utils/shared/sleep 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_SYNC
- @echo "file /bin/sync $(KLIBC_BINSRC)/utils/shared/sync 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_TRUE
- @echo "file /bin/true $(KLIBC_BINSRC)/utils/shared/true 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_UMOUNT
- @echo "file /bin/umount $(KLIBC_BINSRC)/utils/shared/umount 755 0 0" >> $(KLIBC_CONTROL)
-endif
-ifdef PTXCONF_KLIBC_SHARED_UNAME
- @echo "file /bin/uname $(KLIBC_BINSRC)/utils/shared/uname 755 0 0" >> $(KLIBC_CONTROL)
+
+ifdef PTXCONF_KLIBC_SHARED
+ @for lib in $(KLIBC_DIR)/usr/klibc/klibc-*.so; do \
+ $(call install_initramfs, klibc, 0, 0, 0755, \
+ $${lib}, /lib/$$(basename $${lib})); \
+ done
endif
#
# add the link when enabled
#
ifneq ($(call remove_quotes,$(PTXCONF_KLIBC_INIT)),)
- @echo "slink /init $(PTXCONF_KLIBC_INIT) 755 0 0" >> $(KLIBC_CONTROL)
+ @$(call install_initramfs_link, klibc, /init, $(PTXCONF_KLIBC_INIT));
endif
-#
-# adding user specific files to the list
-# Note: files without a leading '/' get a prefix path of the current project
-#
-ifdef PTXCONF_KLIBC_USER_SPEC
- cat $(PTXDIST_WORKSPACE)/initramfs_spec | while read type target source rest; do \
- if [ "$$type" == "file" ]; then \
- if [ "$$(echo "$$source" | grep "^/")" == "" ]; then \
- source=$(PTXDIST_WORKSPACE)/$$source; \
- fi; \
- fi; \
- echo "$$type $$target $$source $$rest" >> $(KLIBC_CONTROL); \
- done
-endif
-#
-# install the compiler wrapper to be used to link programs against klibc
-#
- install $(KLIBC_DIR)/klcc/klcc $(PTXCONF_SYSROOT_CROSS)/bin/klcc
-#
-# install a few commands to the local architecture directory
-# but important is the klibc.a only to link programs against it
-#
- cd $(KLIBC_DIR) && $(MAKE) $(KLIBC_MAKEVARS) install
-
-#
-# make sure the kernel regenerates the initramfs image
-#
- rm -f $(KERNEL_DIR)/usr/initramfs_data.cpio.gz
-
- @$(call touch)
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/klibc.targetinstall:
- @$(call targetinfo)
@$(call touch)
# ----------------------------------------------------------------------------
@@ -357,8 +195,10 @@ $(STATEDIR)/klibc.targetinstall:
klibc_clean:
rm -rf $(STATEDIR)/klibc.*
- rm -rf $(PKGDIR)/klibc_*
+ rm -rf $(PKGDIR)/klibc{-,_}*
rm -rf $(KLIBC_DIR)
rm -rf $(PTXCONF_SYSROOT_CROSS)/bin/klcc
+ rm -rf $(SYSROOT)/usr/lib/klibc
+ rm -rf $(KLIBC_CONTROL)
# vim: syntax=make