diff --git a/Makefile b/Makefile index 8bc7095..f0a05da 100644 --- a/Makefile +++ b/Makefile @@ -8,4 +8,44 @@ config: kconfig-conf Config.in py-menuconfig: - scripts/menuconfig Config.in \ No newline at end of file + scripts/menuconfig Config.in + +include scripts/funcs.mk +include package/package.mk + +Command := $(firstword $(MAKECMDGOALS)) + +UC = $(shell echo $(Command) | tr '[:lower:]' '[:upper:]') + +$(Command): + $(call CMD_CONFIGURE_$(call UC)) + $(call CMD_BUILD_$(call UC)) + $(call CMD_INSTALL_$(call UC)) + +all: + $(call CMD_CONFIGURE_UCLIBC) + $(call CMD_BUILD_UCLIBC) + $(call CMD_INSTALL_UCLIBC) + + $(call CMD_CONFIGURE_BUSYBOX) + $(call CMD_BUILD_BUSYBOX) + $(call CMD_INSTALL_BUSYBOX) + + $(call CMD_CONFIGURE_ZLIB) + $(call CMD_BUILD_ZLIB) + $(call CMD_INSTALL_ZLIB) + + $(call CMD_CONFIGURE_DROPBEAR) + $(call CMD_BUILD_DROPBEAR) + $(call CMD_INSTALL_DROPBEAR) +ifeq (CONFIG_SIMPLE_SFTP_SERVER_DROPBEAR,y) + $(call CMD_CONFIGURE_SFTP_SERVER_DROPBEAR) + $(call CMD_BUILD_SFTP_SERVER_DROPBEAR) + $(call CMD_INSTALL_SFTP_SERVER_DROPBEAR) +endif + + $(call CMD_CONFIGURE_UBOOT) + $(call CMD_BUILD_UBOOT) + $(call CMD_INSTALL_UBOOT) + + \ No newline at end of file diff --git a/boot/Config.in b/boot/Config.in index 2ad5583..453c1cc 100644 --- a/boot/Config.in +++ b/boot/Config.in @@ -1,10 +1,2 @@ -config SIMPLE_UBOOT - bool "U-Boot" - help - Build "Das U-Boot" Boot Monitor - https://www.denx.de/wiki/U-Boot - -config SIMPLE_GRUB2 - bool "Grub2" - help - GNU GRUB is a Multiboot boot loader \ No newline at end of file +source package/uboot/Config.in +source package/grub2/Config.in \ No newline at end of file diff --git a/package/bash/bash.mk b/package/bash/bash.mk new file mode 100644 index 0000000..28e70c3 --- /dev/null +++ b/package/bash/bash.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_BASH + $(call msg,configure_bash) +endef + +define CMD_BUILD_BASH + $(call msg,build_bash) +endef + +define CMD_INSTALL_BASH + $(call msg,install_bash) +endef \ No newline at end of file diff --git a/package/busybox/busybox.mk b/package/busybox/busybox.mk new file mode 100644 index 0000000..ef7db9f --- /dev/null +++ b/package/busybox/busybox.mk @@ -0,0 +1,12 @@ +define CMD_CONFIGURE_BUSYBOX + $(call msg,configure_busybox) + $(call warningmsg,configure_busybox) +endef + +define CMD_BUILD_BUSYBOX + $(call msg,build_busybox) +endef + +define CMD_INSTALL_BUSYBOX + $(call msg,install_busybox) +endef \ No newline at end of file diff --git a/package/curl/curl.mk b/package/curl/curl.mk new file mode 100644 index 0000000..b013de9 --- /dev/null +++ b/package/curl/curl.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_CURL + $(call msg,configure_curl) +endef + +define CMD_BUILD_CURL + $(call msg,build_curl) +endef + +define CMD_INSTALL_CURL + $(call msg,install_curl) +endef \ No newline at end of file diff --git a/package/dropbear/Config.in b/package/dropbear/Config.in index 834046a..aaea886 100644 --- a/package/dropbear/Config.in +++ b/package/dropbear/Config.in @@ -5,6 +5,4 @@ config SIMPLE_DROPBEAR help Embedded ssh server -config SIMPLE_SFTP_SERVER_DROPBEAR - bool "Sftp server" - depends on SIMPLE_DROPBEAR \ No newline at end of file +source package/sftp-server-dropbear/Config.in \ No newline at end of file diff --git a/package/dropbear/dropbear.mk b/package/dropbear/dropbear.mk new file mode 100644 index 0000000..be4a8fa --- /dev/null +++ b/package/dropbear/dropbear.mk @@ -0,0 +1,23 @@ +define CMD_CONFIGURE_DROPBEAR + $(call msg,configure_dropbear) +endef + +define CMD_BUILD_DROPBEAR + $(call msg,build_dropbear) +endef + +define CMD_INSTALL_DROPBEAR + $(call msg,install_dropbear) +endef + +define CMD_CONFIGURE_SFTP_SERVER_DROPBEAR + $(call msg,configure_sftp_server_dropbear) +endef + +define CMD_BUILD_SFTP_SERVER_DROPBEAR + $(call msg,build_sftp_server_dropbear) +endef + +define CMD_INSTALL_SFTP_SERVER_DROPBEAR + $(call msg,install_sftp_server_dropbear) +endef diff --git a/package/git/git.mk b/package/git/git.mk new file mode 100644 index 0000000..8a82b51 --- /dev/null +++ b/package/git/git.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_GIT + $(call msg,configure_git) +endef + +define CMD_BUILD_GIT + $(call msg,build_git) +endef + +define CMD_INSTALL_GIT + $(call msg,install_git) +endef \ No newline at end of file diff --git a/package/glibc/Config.in b/package/glibc/Config.in new file mode 100644 index 0000000..0e4927f --- /dev/null +++ b/package/glibc/Config.in @@ -0,0 +1,2 @@ +config SIMPLE_GLIBC + bool "glibc" \ No newline at end of file diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk new file mode 100644 index 0000000..a59cf3a --- /dev/null +++ b/package/glibc/glibc.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_GLIBC + $(call msg,configure_glibc) +endef + +define CMD_BUILD_GLIBC + $(call msg,build_glibc) +endef + +define CMD_INSTALL_GLIBC + $(call msg,install_glibc) +endef \ No newline at end of file diff --git a/package/grub2/Config.in b/package/grub2/Config.in new file mode 100644 index 0000000..eb1b27a --- /dev/null +++ b/package/grub2/Config.in @@ -0,0 +1,4 @@ +config SIMPLE_GRUB2 + bool "Grub2" + help + GNU GRUB is a Multiboot boot loader \ No newline at end of file diff --git a/package/grub2/grub2.mk b/package/grub2/grub2.mk new file mode 100644 index 0000000..b7183e2 --- /dev/null +++ b/package/grub2/grub2.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_GRUB2 + $(call msg,configure_grub2) +endef + +define CMD_BUILD_GRUB2 + $(call msg,build_grub2) +endef + +define CMD_INSTALL_GRUB2 + $(call msg,install_grub2) +endef \ No newline at end of file diff --git a/package/openssh/openssh.mk b/package/openssh/openssh.mk new file mode 100644 index 0000000..2b65b83 --- /dev/null +++ b/package/openssh/openssh.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_OPENSSH + $(call msg,configure_openssh) +endef + +define CMD_BUILD_OPENSSH + $(call msg,build_openssh) +endef + +define CMD_INSTALL_OPENSSH + $(call msg,install_openssh) +endef \ No newline at end of file diff --git a/package/package.mk b/package/package.mk new file mode 100644 index 0000000..d1df526 --- /dev/null +++ b/package/package.mk @@ -0,0 +1,11 @@ +include package/bash/bash.mk +include package/busybox/busybox.mk +include package/curl/curl.mk +include package/dropbear/dropbear.mk +include package/git/git.mk +include package/openssh/openssh.mk +include package/zlib/zlib.mk +include package/glibc/glibc.mk +include package/uclibc/uclibc.mk +include package/uboot/uboot.mk +include package/grub2/grub2.mk \ No newline at end of file diff --git a/package/sftp-server-dropbear/Config.in b/package/sftp-server-dropbear/Config.in new file mode 100644 index 0000000..4a8cdf5 --- /dev/null +++ b/package/sftp-server-dropbear/Config.in @@ -0,0 +1,3 @@ +config SIMPLE_SFTP_SERVER_DROPBEAR + bool "Sftp server" + depends on SIMPLE_DROPBEAR \ No newline at end of file diff --git a/package/sftp-server-dropbear/sftp-server-dropbear.mk b/package/sftp-server-dropbear/sftp-server-dropbear.mk new file mode 100644 index 0000000..e69de29 diff --git a/package/uboot/Config.in b/package/uboot/Config.in new file mode 100644 index 0000000..bb128cf --- /dev/null +++ b/package/uboot/Config.in @@ -0,0 +1,5 @@ +config SIMPLE_UBOOT + bool "U-Boot" + help + Build "Das U-Boot" Boot Monitor + https://www.denx.de/wiki/U-Boot \ No newline at end of file diff --git a/package/uboot/uboot.mk b/package/uboot/uboot.mk new file mode 100644 index 0000000..0bbb9fe --- /dev/null +++ b/package/uboot/uboot.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_UBOOT + $(call msg,configure_uclibc) +endef + +define CMD_BUILD_UBOOT + $(call msg,build_uclibc) +endef + +define CMD_INSTALL_UBOOT + $(call msg,install_uclibc) +endef \ No newline at end of file diff --git a/package/uclibc/Config.in b/package/uclibc/Config.in new file mode 100644 index 0000000..8037281 --- /dev/null +++ b/package/uclibc/Config.in @@ -0,0 +1,2 @@ +config SIMPLE_UCLIBC + bool "uclibc" \ No newline at end of file diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk new file mode 100644 index 0000000..a028802 --- /dev/null +++ b/package/uclibc/uclibc.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_UCLIBC + $(call msg,configure_uclibc) +endef + +define CMD_BUILD_UCLIBC + $(call msg,build_uclibc) +endef + +define CMD_INSTALL_UCLIBC + $(call msg,install_uclibc) +endef \ No newline at end of file diff --git a/package/zlib/zlib.mk b/package/zlib/zlib.mk new file mode 100644 index 0000000..ff853c7 --- /dev/null +++ b/package/zlib/zlib.mk @@ -0,0 +1,11 @@ +define CMD_CONFIGURE_ZLIB + $(call msg,configure_zlib) +endef + +define CMD_BUILD_ZLIB + $(call msg,build_zlib) +endef + +define CMD_INSTALL_ZLIB + $(call msg,install_zlib) +endef \ No newline at end of file diff --git a/scripts/funcs.mk b/scripts/funcs.mk new file mode 100644 index 0000000..0e98c61 --- /dev/null +++ b/scripts/funcs.mk @@ -0,0 +1,18 @@ +reset_color = \033[0m +white_background_color = \033[0;47m +high_intensity_yellow_background_color = \033[0;103m +high_intensity_red_background_color = \033[0;101m + + +define msg + @echo -e "$(white_background_color) Info: $1 $(reset_color)" +endef + +define errmsg + @echo -e "$(high_intensity_red_background_color) Error: $1 $(reset_color)" + @exit 1 +endef + +define warningmsg + @echo -e "$(high_intensity_yellow_background_color) Warning: $1 $(reset_color)" +endef \ No newline at end of file diff --git a/toolchain/Config.in b/toolchain/Config.in index dbfac77..5239538 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -1,10 +1,8 @@ choice SIMPLE_SELECT_STANDARD_LIBRARY prompt "Select default C library" default SIMPLE_UCLIBC -config SIMPLE_GLIBC - bool "glibc" -config SIMPLE_UCLIBC - bool "uclibc" +source package/glibc/Config.in +source package/uclibc/Config.in endchoice config SIMPLE_CROSS_COMPILE