aboutsummaryrefslogtreecommitdiff
path: root/system/system.mk
diff options
context:
space:
mode:
authorGravatar Thomas Petazzoni <thomas.petazzoni@free-electrons.com>2012-11-03 08:27:58 +0000
committerGravatar Peter Korsgaard <jacmet@sunsite.dk>2012-11-04 12:51:08 +0100
commit6c3e3ad4197714ea39fcd49d572a1713f803d835 (patch)
tree88a5c4db6a9703cc07607b8a0a6f8d14a002a36e /system/system.mk
parentef1e76ae433e744d2cebf23f1c6d3b6446790270 (diff)
downloadbuildroot-6c3e3ad4197714ea39fcd49d572a1713f803d835.tar.gz
buildroot-6c3e3ad4197714ea39fcd49d572a1713f803d835.tar.bz2
New top-level directory: system
This directory groups the following elements: * the default root filesystem skeleton * the default device tables * the Config.in options for system configuration (UART port for getty, system hostname, etc.) * the make rules to apply the system configuration options Even though the skeleton and device tables could have lived in fs/, it would have been strange to have the UART, system hostname and other related options into fs/. A new system/ directory makes more sense. As a consequence, this patch also removes target/Makefile.in, which has become useless in the process. [Peter: fixup TARGET_SKELETON settings / documentation to match] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Yann E. MORIN <yann.morin.1998@free.fr> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'system/system.mk')
-rw-r--r--system/system.mk53
1 files changed, 53 insertions, 0 deletions
diff --git a/system/system.mk b/system/system.mk
new file mode 100644
index 0000000000..4185202b73
--- /dev/null
+++ b/system/system.mk
@@ -0,0 +1,53 @@
+TARGET_GENERIC_HOSTNAME:=$(call qstrip,$(BR2_TARGET_GENERIC_HOSTNAME))
+TARGET_GENERIC_ISSUE:=$(call qstrip,$(BR2_TARGET_GENERIC_ISSUE))
+TARGET_GENERIC_GETTY:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_PORT))
+TARGET_GENERIC_GETTY_BAUDRATE:=$(call qstrip,$(BR2_TARGET_GENERIC_GETTY_BAUDRATE))
+
+target-generic-hostname:
+ mkdir -p $(TARGET_DIR)/etc
+ echo "$(TARGET_GENERIC_HOSTNAME)" > $(TARGET_DIR)/etc/hostname
+ $(SED) '$$a \127.0.1.1\t$(TARGET_GENERIC_HOSTNAME)' \
+ -e '/^127.0.1.1/d' $(TARGET_DIR)/etc/hosts
+
+target-generic-issue:
+ mkdir -p $(TARGET_DIR)/etc
+ echo "$(TARGET_GENERIC_ISSUE)" > $(TARGET_DIR)/etc/issue
+
+target-generic-getty-busybox:
+ $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(TARGET_GENERIC_GETTY)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) vt100 #~' \
+ $(TARGET_DIR)/etc/inittab
+
+# In sysvinit inittab, the "id" must not be longer than 4 bytes, so we
+# skip the "tty" part and keep only the remaining.
+target-generic-getty-sysvinit:
+ $(SED) '/# GENERIC_SERIAL$$/s~^.*#~$(shell echo $(TARGET_GENERIC_GETTY) | tail -c+4)::respawn:/sbin/getty -L $(TARGET_GENERIC_GETTY) $(TARGET_GENERIC_GETTY_BAUDRATE) vt100 #~' \
+ $(TARGET_DIR)/etc/inittab
+
+# Find commented line, if any, and remove leading '#'s
+target-generic-do-remount-rw:
+ $(SED) '/^#.*# REMOUNT_ROOTFS_RW$$/s~^#\+~~' $(TARGET_DIR)/etc/inittab
+
+# Find uncommented line, if any, and add a leading '#'
+target-generic-dont-remount-rw:
+ $(SED) '/^[^#].*# REMOUNT_ROOTFS_RW$$/s~^~#~' $(TARGET_DIR)/etc/inittab
+
+ifneq ($(TARGET_GENERIC_HOSTNAME),)
+TARGETS += target-generic-hostname
+endif
+
+ifneq ($(TARGET_GENERIC_ISSUE),)
+TARGETS += target-generic-issue
+endif
+
+ifeq ($(BR2_ROOTFS_SKELETON_DEFAULT),y)
+ifeq ($(BR2_PACKAGE_SYSVINIT),y)
+TARGETS += target-generic-getty-sysvinit
+else
+TARGETS += target-generic-getty-busybox
+endif
+ifeq ($(BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW),y)
+TARGETS += target-generic-do-remount-rw
+else
+TARGETS += target-generic-dont-remount-rw
+endif
+endif