Browse Source

Merge branch 'gogs-master' of ableton-dir/openadk into master

Waldemar Brodkorb 5 years ago
parent
commit
71bd053dc6

+ 6 - 0
docs/customize-rootfs.txt

@@ -21,3 +21,9 @@ You can also point to another directory via:
 You can start with the example configuration files from +root_*+.
 The +extra+ directory will never be deleted by any clean target to avoid
 loss of customized configuration data.
+
+Another option is to configure a post-build action. This is available
+in +Global settings+. It must point to a script relative to the root
+of your openadk working copy. It will be invoked as part of the
++*-imageinstall+ step with $ADK_TOPDIR as first argument. You can use
+it e.g. to modify the +root_*+ filesystem before bundling it.

+ 2 - 0
mk/build.mk

@@ -674,4 +674,6 @@ info:
 	@printf "TOOLCHAIN_DIR=$(TOOLCHAIN_DIR)\n"
 	@printf "TARGET_PATH=$(TARGET_PATH)\n"
 	@printf "LINUX_DIR=$(LINUX_DIR)\n"
+	@printf "TARGET_DIR=$(TARGET_DIR)\n"
 	@printf -- "---OPENADK-INFO---\n"
+

+ 1 - 1
mk/host-bottom.mk

@@ -78,7 +78,7 @@ host-build:
 ${_HOST_BUILD_COOKIE}: ${_HOST_CONFIGURE_COOKIE}
 	@$(CMD_TRACE) "compiling.. "
 ifneq (${HOST_STYLE},manual)
-	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
+	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -j${ADK_MAKE_JOBS} -f ${MAKE_FILE} \
 	    ${HOST_MAKE_FLAGS} ${HOST_ALL_TARGET} $(MAKE_TRACE)
 endif
 	${MAKE} host-build $(MAKE_TRACE)

+ 1 - 1
mk/pkg-bottom.mk

@@ -158,7 +158,7 @@ spkg-install: ${ALL_POSTINST}
 ${_FAKE_COOKIE}: ${_BUILD_COOKIE}
 	@-rm -f ${_ALL_CONTROLS}
 	@mkdir -p '${STAGING_PKG_DIR}/stamps' ${WRKINST} '${STAGING_TARGET_DIR}/scripts'
-	@${MAKE} ${_ALL_CONTROLS} $(MAKE_TRACE)
+	@${MAKE} -j${ADK_MAKE_JOBS} ${_ALL_CONTROLS} $(MAKE_TRACE)
 	@env ${MAKE_ENV} ${MAKE} pre-install $(MAKE_TRACE)
 ifneq ($(filter meson,${INSTALL_STYLE}),)
 	DESTDIR='$(WRKINST)' PATH='$(HOST_PATH)' \

+ 33 - 0
package/autologin/Makefile

@@ -0,0 +1,33 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		autologin
+PKG_VERSION:=		1.0
+PKG_RELEASE:=		1
+PKG_DESCR:=		tool to automatically login a user with getty
+PKG_SECTION:=		sys/misc
+
+PKG_NOPARALLEL:=	1
+NO_DISTFILES:=		1
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,AUTOLOGIN,autologin,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+CONFIG_STYLE:=          manual
+BUILD_STYLE:=		manual
+INSTALL_STYLE:=         manual
+
+TARGET_CPPFLAGS+=	-I../autologin
+TARGET_CPPFLAGS+=	-D_GNU_SOURCE
+
+do-build:
+	$(CC) src/autologin.c -o $(WRKBUILD)/autologin
+
+autologin-install:
+	$(INSTALL_DIR) $(IDIR_AUTOLOGIN)/bin
+	$(INSTALL_BIN) $(WRKBUILD)/autologin $(IDIR_AUTOLOGIN)/bin
+
+include ${ADK_TOPDIR}/mk/pkg-bottom.mk

+ 10 - 0
package/autologin/src/autologin.c

@@ -0,0 +1,10 @@
+// This file is part of the OpenADK project. OpenADK is copyrighted
+// material, please see the LICENCE file in the top-level directory.
+
+#include <unistd.h>
+#include <stdio.h>
+
+int main()
+{
+  return execlp("login\0","login\0","-f\0", "root\0" ,0);
+}

+ 19 - 0
package/base-files/Makefile

@@ -21,6 +21,18 @@ CONFIG_STYLE:=		manual
 BUILD_STYLE:=		manual
 INSTALL_STYLE:=		manual
 
+ifeq ($(ADK_RUNTIME_DEV_MDEV_LOGGING),y)
+ADK_RUNTIME_DEV_MDEV_LOGGING_LINE:='echo >/dev/mdev.log'
+else
+ADK_RUNTIME_DEV_MDEV_LOGGING_LINE:=''
+endif
+
+ifeq ($(ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN),y)
+ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA:= -n -l autologin
+else
+ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA:=
+endif
+
 do-install:
 	$(CP) ./src/* $(IDIR_BASE_FILES)
 	mkdir -p $(IDIR_BASE_FILES)/{etc,dev,boot,root,sys,proc,tmp,run,var,mnt,media}
@@ -55,9 +67,11 @@ endif
 endif
 ifeq ($(ADK_RUNTIME_DEV_MDEV),y)
 	$(CP) ./files/rcdev.mdev $(IDIR_BASE_FILES)/etc/init.d/rcdev
+	$(SED) "s#@ADK_RUNTIME_DEV_MDEV_LOGGING@#"$(ADK_RUNTIME_DEV_MDEV_LOGGING_LINE)"#g" $(IDIR_BASE_FILES)/etc/init.d/rcdev
 	$(CP) ./files/mdev.conf $(IDIR_BASE_FILES)/etc
 	$(CP) ./files/mdev $(IDIR_BASE_FILES)/etc
 endif
+
 ifeq ($(ADK_RUNTIME_DEV_UDEV),y)
 	$(CP) ./files/rcdev.udev $(IDIR_BASE_FILES)/etc/init.d/rcdev
 endif
@@ -75,9 +89,14 @@ endif
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#g' $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
+	$(SED) 's#@AUTOLOGIN@#$(ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN_STANZA)#' $(IDIR_BASE_FILES)/etc/inittab
 endif
 ifeq ($(ADK_RUNTIME_INIT_SYSVINIT),y)
 	cp ./files/inittab.sysvinit $(IDIR_BASE_FILES)/etc/inittab
+endif
+ifeq ($(ADK_RUNTIME_MOUNT_DEBUGFS),y)
+	echo debugfs    /sys/kernel/debug      debugfs  defaults  0 0 >> $(IDIR_BASE_FILES)/etc/fstab
+	echo null::sysinit:/bin/mount -a -t debugfs >> $(IDIR_BASE_FILES)/etc/inittab
 endif
 	test -z $(ADK_RUNTIME_HOSTNAME) || \
 	    echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \

+ 1 - 1
package/base-files/files/inittab.serial

@@ -1 +1 @@
-@DEVICE@::respawn:/sbin/getty -i -L @DEVICE@ @SPEED@ vt100
+@DEVICE@::respawn:/sbin/getty -i -L @DEVICE@ @SPEED@ vt100 @AUTOLOGIN@

+ 1 - 0
package/base-files/files/rcdev.mdev

@@ -2,6 +2,7 @@
 mount -o remount,nosuid,size=128k,mode=0755 -t tmpfs mdev /dev
 # start mdev dynamic device node management
 echo >/dev/mdev.seq
+@ADK_RUNTIME_DEV_MDEV_LOGGING@
 if [ -f /proc/sys/kernel/hotplug ];then
 	echo "/sbin/mdev" >/proc/sys/kernel/hotplug
 fi

+ 27 - 0
package/bcm2835/Makefile

@@ -0,0 +1,27 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		bcm2835
+PKG_VERSION:=		1.52
+PKG_RELEASE:=		1
+PKG_HASH:=		b9fd10f7a80aadaed28a77168709b7c519568a63b6e98d0a50e9c5fe31bea6bb
+PKG_DESCR:=		the BCM2835 direct hardware access library
+PKG_SECTION:=		libs/misc
+PKG_URL:=		http://www.airspayce.com/mikem/bcm2835/
+PKG_SITES:=		http://www.airspayce.com/mikem/bcm2835/
+
+PKG_SYSTEM_DEPENDS:=    raspberry-pi raspberry-pi2 raspberry-pi3
+
+DISTFILES:=		bcm2835-${PKG_VERSION}.tar.gz
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,LIBBCM2835,libbcm2835,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+bcm2835-install:
+	$(INSTALL_DIR) $(IDIR_LIBBCM2835)/usr/lib
+	$(INSTALL_DIR) $(IDIR_LIBBCM2835)/usr/include
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk

+ 3 - 3
package/cmake/Makefile

@@ -25,14 +25,14 @@ $(eval $(call HOST_template,CMAKE,cmake,$(PKG_VERSION)-${PKG_RELEASE}))
 HOST_STYLE:=		manual
 
 host-configure:
-	(cd $(WRKBUILD); ./configure --prefix=${STAGING_HOST_DIR}/usr --system-curl)
+	(cd $(WRKBUILD); ./configure --prefix=${STAGING_HOST_DIR}/usr --system-curl --parallel=${ADK_MAKE_JOBS} )
 
 host-build:
-	(cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
+	(cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -j${ADK_MAKE_JOBS} -f ${MAKE_FILE} \
 		${HOST_MAKE_FLAGS} ${HOST_ALL_TARGET}) $(MAKE_TRACE)
 
 cmake-hostinstall:
-	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -f ${MAKE_FILE} \
+	cd ${WRKBUILD} && env ${HOST_MAKE_ENV} ${MAKE} -j${ADK_MAKE_JOBS} -f ${MAKE_FILE} \
 		${HOST_FAKE_FLAGS} ${HOST_INSTALL_TARGET} $(MAKE_TRACE)
 
 include ${ADK_TOPDIR}/mk/host-bottom.mk

+ 1 - 0
package/gdb/Makefile

@@ -29,6 +29,7 @@ CONFIGURE_ARGS+=	--enable-static \
 			--disable-gdbtk \
 			--disable-gdbserver \
 			--without-x \
+			--with-expat \
 			--disable-sim \
 			--disable-plugins \
 			--disable-werror \

+ 1 - 1
package/glib/Makefile

@@ -11,7 +11,7 @@ PKG_HASH:=		40ef3f44f2c651c7a31aedee44259809b6f03d3d20be44545cd7d177221c0b8d
 PKG_DESCR:=		low-level core library that forms the basis of gtk+
 PKG_SECTION:=		libs/misc
 PKG_DEPENDS:=		libpcre zlib
-PKG_BUILDDEP:=		glib-host libffi zlib libelf dbus pcre
+PKG_BUILDDEP:=		glib-host libffi zlib dbus pcre
 HOST_BUILDDEP:=		pkgconf-host libiconv-host libffi-host python2-host gettext-host util-linux-host
 PKG_NEEDS:=		threads intl iconv
 PKG_URL:=		http://www.gtk.org/

+ 11 - 0
package/glib/patches/patch-configure

@@ -0,0 +1,11 @@
+- glib-2.48.2.orig/configure	2016-08-17 18:37:42.000000000 +0200
++++ glib-2.48.2/configure	2017-12-14 14:37:31.000000000 +0100
+@@ -6027,7 +6027,7 @@ if test "x$glib_have_cocoa" = "xyes"; th
+ 
+ $as_echo "#define HAVE_COCOA 1" >>confdefs.h
+ 
+-  COCOA_LIBS="-Wl,-framework,Foundation"
++  COCOA_LIBS="-Wl,-framework,Foundation,-framework,Cocoa"
+   LDFLAGS="$LDFLAGS $COCOA_LIBS"
+ 
+   osx_version=`sw_vers -productVersion`

+ 4 - 2
package/util-linux/Makefile

@@ -108,11 +108,13 @@ endif
 
 TARGET_CFLAGS+=		-fPIC
 FAKE_FLAGS+=		INSTALLSUID="install -m 4755"
-HOST_CONFIGURE_ARGS+=	--enable-libuuid \
-			--enable-libblkid \
+HOST_CONFIGURE_ARGS+=	--enable-libblkid \
 			--enable-libmount \
 			--disable-all-programs \
 			--disable-use-tty-group
+ifneq ($(OS_FOR_BUILD),Darwin)
+HOST_CONFIGURE_ARGS+=   --enable-libuuid
+endif
 
 fdisk-install:
 	$(INSTALL_DIR) $(IDIR_FDISK)/usr/sbin

+ 6 - 0
target/Makefile

@@ -228,6 +228,12 @@ endif
 	$(MAKE) -C $(patsubst %-targethelp,%,$@) targethelp
 
 %-imageinstall: %-imageprepare
+ifdef ADK_POST_BUILD_ACTION
+ifneq ($(ADK_POST_BUILD_ACTION),"")
+	@printf "running post build action '$(ADK_POST_BUILD_ACTION)'\n"
+	$(ADK_TOPDIR)/$(ADK_POST_BUILD_ACTION) $(ADK_TOPDIR)
+endif
+endif
 	$(MAKE) -C $(patsubst %-imageinstall,%,$@) imageinstall
 	@for x in $$(ls $(ADK_TOPDIR)/scripts/postimage/*.sh 2>/dev/null); do \
 		[[ -x "$$x" ]] && $$x; \

+ 4 - 0
target/config/Config.in.adk

@@ -112,4 +112,8 @@ config ADK_TARGET_PORT
 	help
 	  Port to use for SSH when running make check.
 
+config ADK_POST_BUILD_ACTION
+	string "Path to script run post build. Must be relative to ADK_TOPDIR."
+        default ""
+
 endmenu

+ 15 - 0
target/config/Config.in.runtime

@@ -64,6 +64,10 @@ config ADK_RUNTIME_DEV_MDEV
 	depends on ADK_PACKAGE_BUSYBOX
 	depends on !ADK_RUNTIME_INIT_SYSTEMD
 
+config ADK_RUNTIME_DEV_MDEV_LOGGING
+	bool "Log mdev events into /dev/mdev.log"
+	depends on ADK_RUNTIME_DEV_MDEV
+
 config ADK_RUNTIME_DEV_UDEV
 	bool "Use udev"
 	select ADK_PACKAGE_UDEV
@@ -184,6 +188,12 @@ config ADK_RUNTIME_USER_SHELL
 	help
 	  Set the shell to use.
 
+config ADK_RUNTIME_MOUNT_DEBUGFS
+	bool "mount debugfs"
+	depends on !ADK_RUNTIME_INIT_SYSTEMD
+	help
+	  mount debugfs under /sys/kernel/debug
+
 config ADK_RUNTIME_START_SERVICES
 	bool "start services by default"
 	default n
@@ -363,6 +373,11 @@ config ADK_RUNTIME_GETTY_SERIAL
 	help
 	  Start getty on serial console.
 
+config ADK_RUNTIME_GETTY_SERIAL_AUTOLOGIN
+       bool "run autologin on serial getty"
+       depends on ADK_RUNTIME_GETTY_SERIAL
+       select ADK_PACKAGE_AUTOLOGIN
+
 config ADK_RUNTIME_CONSOLE_VGA_DEVICE
 	string "VGA console device"
 	depends on ADK_TARGET_WITH_VGA || ADK_TARGET_GENERIC