From: Martin Jerabek Date: Fri, 25 Mar 2016 20:22:07 +0000 (+0100) Subject: Added latester (sources in submodule) and dependencies (libpopt, libtalloc) X-Git-Url: https://rtime.felk.cvut.cz/gitweb/fpga/zynq/canbench-sw.git/commitdiff_plain/59387cbef1415b61dd694de6a8e275e9fc1d8fb6?hp=d77327d474b45f1085d4515cadccacd122e70f08 Added latester (sources in submodule) and dependencies (libpopt, libtalloc) --- diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..ba9599f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "can-benchmark"] + path = can-benchmark + url = git@rtime.felk.cvut.cz:/can-benchmark.git diff --git a/can-benchmark b/can-benchmark new file mode 160000 index 0000000..ce4da28 --- /dev/null +++ b/can-benchmark @@ -0,0 +1 @@ +Subproject commit ce4da28a74000c4e81d546af1aef61b5d7804d86 diff --git a/petalinux/components/apps/latester/.gdbinit b/petalinux/components/apps/latester/.gdbinit new file mode 100644 index 0000000..d59fb8d --- /dev/null +++ b/petalinux/components/apps/latester/.gdbinit @@ -0,0 +1,2 @@ +# Load the PetaLinux SDK main gdbinit script +source plnx_gdbinit diff --git a/petalinux/components/apps/latester/Kconfig b/petalinux/components/apps/latester/Kconfig new file mode 100644 index 0000000..25d70ab --- /dev/null +++ b/petalinux/components/apps/latester/Kconfig @@ -0,0 +1,14 @@ +############################################################################### +# Please modify this file if you want to configure your own application. +# You can uncommon and/or change the following Kconfig elements. +############################################################################### + + +if ROOTFS_COMPONENT_APPS_NAME_LATESTER + comment "No additional options for LATESTER" + +# config APPS_LATESTER_OPTION0 +# bool "option0" +# help +# Help text +endif diff --git a/petalinux/components/apps/latester/Makefile b/petalinux/components/apps/latester/Makefile new file mode 100644 index 0000000..d0300bc --- /dev/null +++ b/petalinux/components/apps/latester/Makefile @@ -0,0 +1,35 @@ +ifndef PETALINUX +$(error "Error: PETALINUX environment variable not set. Change to the root of your PetaLinux install, and source the settings.sh file") +endif + +# directory where this file is located +d := $(dir $(lastword $(MAKEFILE_LIST))) +d := $(realpath $(d)) + +include apps.common.mk +srcdir := $(PROOT)/../can-benchmark/latester +bindir := $(d)/_compiled + +all: install + +build: + $(MAKE) -C $(srcdir) MAKERULES_DIR=$(d) +# $(CC) $(LDFLAGS) -o $@ $(APP_OBJS) $(LDLIBS) + +clean: + $(MAKE) -C $(srcdir) MAKERULES_DIR=$(d) clean + +.PHONY: all build install + +install: build + $(TARGETINST) -d $(bindir)/bin/latester /usr/bin/latester + $(TARGETINST) -d $(bindir)/bin/vcanbench /usr/bin/vcanbench + +help: + @echo "" + @echo "Quick reference for various supported build targets for $(INSTANCE)." + @echo "----------------------------------------------------" + @echo " clean clean out build objects" + @echo " all build $(INSTANCE) and install to rootfs host copy" + @echo " build build subsystem" + @echo " install install built objects to rootfs host copy" diff --git a/petalinux/components/apps/latester/Makefile.rules b/petalinux/components/apps/latester/Makefile.rules new file mode 100644 index 0000000..f1f9615 --- /dev/null +++ b/petalinux/components/apps/latester/Makefile.rules @@ -0,0 +1,1397 @@ +# Makefile.rules - OCERA make framework common project rules -*- makefile-gmake -*- #OMK:base.omk +# +# (C) Copyright 2003, 2006, 2007, 2008, 2009 by Pavel Pisa - OCERA team member +# (C) Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2013 by Michal Sojka - Czech Technical University, FEE, DCE +# +# Homepage: http://rtime.felk.cvut.cz/omk/ +# Version: 0.2-158-g90ea1a7 +# +# The OMK build system is distributed under the GNU General Public +# License. See file COPYING for details. +# +# +# Version for Linux/RTLinux builds. #OMK:linux.omk +# +# +# input variables #OMK:base.omk +# V .. if set to 1, full command text is shown else short form is used +# W .. whole tree - if set to 1, make is always called from the top-level directory +# SUBDIRS .. list of subdirectories intended for make from actual directory +# default_CONFIG .. list of default config assignments CONFIG_XXX=y/n ... +# wvtest_SCRIPTS .. list of scripts producing wvtest output #OMK:wvtest.omk +# wvtest_PROGRAMS .. list of the testing programs producing wvtest output +# LN_HEADERS .. if "y", header files are symbolicaly linked instead of copied. #OMK:include.omk +# input variables #OMK:linux.omk +# lib_LIBRARIES .. list of the user-space libraries +# shared_LIBRARIES .. list of the user-space shared libraries +# include_HEADERS .. list of the user-space public header files +# nobase_include_HEADERS .. public headers copied even with directory part +# renamed_include_HEADERS .. public headers copied to the different target name +# bin_PROGRAMS .. list of the require binary programs +# utils_PROGRAMS .. list of the development utility programs +# test_PROGRAMS .. list of the testing programs +# bin_SCRIPTS .. list of scripts to be copied to _compiled/bin +# xxx_SOURCES .. list of specific target sources +# xxx_GEN_SOURCES .. list of specific target sources that are generated in the build directory +# xxx_LIBS .. list of specific target libraries (-l prefix is automatically added) +# xxx_LDFLAGS .. list of specific target LDFLAGS +# lib_LOADLIBES .. list of libraries linked to each executable +# INCLUDES .. additional include directories and defines for user-space +# +# OMK_CFLAGS .. C compiler flags +# OMK_CXXFLAGS .. C++ compiler flags +# OMK_CPPFLAGS .. C preprocessor flags +# LDFLAGS .. linker flags for programs linking +# kernel_LIBRARIES .. list of the kernel-space libraries #OMK:linux-kernel.omk +# rtlinux_LIBRARIES.. list of the RT-Linux kernel-space libraries +# kernel_HEADERS .. list of the kernel-space public header files +# rtlinux_HEADERS .. list of the RT-Linux kernel-space public header files +# kernel_MODULES .. list of the kernel side modules/applications +# rtlinux_MODULES .. list of RT-Linux the kernel side modules/applications +# kernel_INCLUDES .. additional include directories and defines for kernel-space +# rtlinux_INCLUDES .. additional include directories and defines for RT-Linux +# OMIT_KERNEL_PASSES if defined, all kernel passes are omited +# LINUX_DIR .. location of Linux kernel sources +# RTL_DIR .. location of RT-Linux sources +# cmetric_include_HEADERS .. generate header file with offsets and sizes of structure fields #OMK:cmetric.omk +# xxx_CMETRIC_SOURCES .. the source cmetric generation +# LOCAL_CONFIG_H .. name of local config.h file generated from values #OMK:config_h.omk +# of options defined in the current directory +# config_include_HEADERS .. names of global config files (possibly +# with subdirectories) +# xxx_DEFINES .. list of config directives to be included in +# config header file of the name /xxx.h +# DOXYGEN .. if non-empty, generated headers includes Doxygen's @file +# command, so it is possible to document config +# variables. +# QT_PROJECTS .. list of QT .pro file to use for compilation #OMK:qt.omk +# QT_SUBDIRS .. subdirectories where to build QT applications using qmake (depricated) +# QTDIR .. where QT resides +OMK_RULES_TYPE=linux #OMK:Makefile.rules.linux@ + #OMK:base.omk@Makefile.rules.linux +# If we are not called by OMK leaf Makefile... +ifndef MAKERULES_DIR +MAKERULES_DIR := $(abspath $(dir $(filter %Makefile.rules,$(MAKEFILE_LIST)))) +endif + +# The $(SED4OMK) command for BSD based systems requires -E option to allow +# extended regular expressions + +SED4OMK ?= sed +ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + SED4OMK := $(SED4OMK) -E + ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + SED4OMK := gsed + endif + ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + SED4OMK := gsed -E + endif + ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + $(error No SED program suitable for OMK found) + endif +endif + +# OUTPUT_DIR is the place where _compiled, _build and possible other +# files/directories are created. By default is the same as +# $(MAKERULES_DIR). +ifndef OUTPUT_DIR +OUTPUT_DIR := $(MAKERULES_DIR) +endif + +# We need to ensure definition of sources directory first +ifndef SOURCES_DIR +# Only shell built-in pwd understands -L +SOURCES_DIR := $(shell ( pwd -L ) ) +INVOCATION_DIR := $(SOURCES_DIR:$(OUTPUT_DIR)%=%) +INVOCATION_DIR := $(INVOCATION_DIR:/%=%) +INVOCATION_DIR := $(INVOCATION_DIR:\\%=%) +endif + +.PHONY: all default check-make-ver print-hints omkize + +ifdef W + ifeq ("$(origin W)", "command line") + OMK_WHOLE_TREE:=$(W) + endif +endif +ifndef OMK_WHOLE_TREE + OMK_WHOLE_TREE:=0 +endif + +ifneq ($(OMK_WHOLE_TREE),1) +all: check-make-ver print-hints default + @echo "Compilation finished" +else +# Run make in the top-level directory +all: + @$(MAKE) -C $(MAKERULES_DIR) OMK_SERIALIZE_INCLUDED=n SOURCES_DIR=$(MAKERULES_DIR) RELATIVE_DIR="" $(MAKECMDGOALS) W=0 +endif + +# omk-get-var target allows external scripts/programs to determine the +# values of OMK variables such as RELATIVE_DIR etc. +.PHONY: omk-get-var +omk-get-var: + @$(foreach var,$(VAR),echo $(var)=$($(var));) + +#========================= +# Include the config file + +ifndef CONFIG_FILE +CONFIG_FILE := $(OUTPUT_DIR)/config.omk +endif + +$(CONFIG_FILE)-default: + $(MAKE) default-config + +ifeq ($(MAKECMDGOALS),default-config) +export DEFAULT_CONFIG_PASS=1 +endif + +ifneq ($(DEFAULT_CONFIG_PASS),1) +include $(CONFIG_FILE)-default +endif + +-include $(OUTPUT_DIR)/config.target + +ifneq ($(wildcard $(CONFIG_FILE)),) +-include $(CONFIG_FILE) +endif + + +CONFIG_FILES ?= $(wildcard $(CONFIG_FILE)-default) $(wildcard $(OUTPUT_DIR)/config.target) $(wildcard $(CONFIG_FILE)) + + +export SED4OMK SOURCES_DIR MAKERULES_DIR RELATIVE_DIR INVOCATION_DIR +export CONFIG_FILE CONFIG_FILES OMK_SERIALIZE_INCLUDED OMK_VERBOSE OMK_SILENT +# OMK_SERIALIZE_INCLUDED has to be exported to submakes because passes +# must to be serialized only in the toplevel make. + +ifndef RELATIVE_DIR +RELATIVE_DIR := $(SOURCES_DIR:$(OUTPUT_DIR)%=%) +endif +#$(warning === RELATIVE_DIR = "$(RELATIVE_DIR)" ===) +override RELATIVE_DIR := $(RELATIVE_DIR:/%=%) +override RELATIVE_DIR := $(RELATIVE_DIR:\\%=%) +#$(warning RELATIVE_DIR = "$(RELATIVE_DIR)") +#override BACK2TOP_DIR := $(shell echo $(RELATIVE_DIR)/ | $(SED4OMK) -e 's_//_/_g' -e 's_/\./_/_g' -e 's_^\./__g' -e 's_\([^/][^/]*\)_.._g' -e 's_/$$__') +#$(warning BACK2TOP_DIR = "$(BACK2TOP_DIR)") + +#$(warning SOURCES_DIR = "$(SOURCES_DIR)") +#$(warning MAKERULES_DIR = "$(OUTPUT_DIR)") +#$(warning RELATIVE_DIR = "$(RELATIVE_DIR)") + +# We have to use RELATIVE_PREFIX because of mingw +override RELATIVE_PREFIX := $(RELATIVE_DIR)/ +override RELATIVE_PREFIX := $(RELATIVE_PREFIX:/%=%) + +#vpath %.c $(SOURCES_DIR) +#vpath %.cc $(SOURCES_DIR) +#vpath %.cxx $(SOURCES_DIR) + +# Define srcdir for Automake compatibility +srcdir = $(SOURCES_DIR) + +# Defines for quiet compilation +ifdef V + ifeq ("$(origin V)", "command line") + OMK_VERBOSE = $(V) + endif +endif +ifndef OMK_VERBOSE + OMK_VERBOSE = 0 +endif +ifneq ($(OMK_VERBOSE),0) + Q = +else + Q = @ +endif +ifneq ($(findstring s,$(MAKEFLAGS)),) + QUIET_CMD_ECHO = true + OMK_SILENT = 1 +else + QUIET_CMD_ECHO = echo +endif + +MAKEFILE_OMK=Makefile.omk +# All subdirectories (even linked ones) containing Makefile.omk +# Usage in Makefile.omk: SUBDIRS = $(ALL_OMK_SUBDIRS) +ALL_OMK_SUBDIRS = $(patsubst %/$(MAKEFILE_OMK),%,$(patsubst $(SOURCES_DIR)/%,%,$(wildcard $(SOURCES_DIR)/*/$(MAKEFILE_OMK)))) + +# =================================================================== +# We have set up all important variables, so we can check and include +# real OCERA style Makefile.omk now +ifndef OMK_INCLUDED +include $(SOURCES_DIR)/$(MAKEFILE_OMK) +ifeq ($(AUTOMATIC_SUBDIRS),y) +SUBDIRS?=$(ALL_OMK_SUBDIRS) +endif +OMK_INCLUDED := 1 +endif + +print-hints: + @echo 'Use "make V=1" to see the verbose compile lines.' + +check-make-ver: + @GOOD_MAKE_VERSION=`echo $(MAKE_VERSION) | $(SED4OMK) -n -e 's/^[4-9]\..*\|^3\.9[0-9].*\|^3\.8[1-9].*/y/p'` ; \ + if [ x$$GOOD_MAKE_VERSION != xy ] ; then \ + echo "Your make program version ($(MAKE_VERSION)) is too old and does not support OMK system." ; \ + echo "Please update to make program 3.81beta1 or newer." ; exit 1 ; \ + fi + +distclean dist-clean: + @$(QUIET_CMD_ECHO) " RM $(COMPILED_DIR_NAME) $(BUILD_DIR_NAME)" + @rm -fr $(OUTPUT_DIR)/$(COMPILED_DIR_NAME) $(OUTPUT_DIR)/$(BUILD_DIR_NAME) + +# Common OMK templates +# ==================== + +# Syntax: $(call mkdir,) +define mkdir_def + [ -d $(1) ] || mkdir -p $(1) || exit 1 +endef + +ifneq ($(OMK_VERBOSE),2) +NO_PRINT_DIRECTORY := --no-print-directory +endif + +ifeq ($(USE_LEAF_MAKEFILES),n) +export USE_LEAF_MAKEFILES +SUBDIR_MAKEFILE=$(MAKERULES_DIR)/Makefile.rules +SOURCESDIR_MAKEFILE=$(MAKERULES_DIR)/Makefile.rules +else +SUBDIR_MAKEFILE=$(SOURCES_DIR)/$(3)/Makefile +SOURCESDIR_MAKEFILE=$(SOURCES_DIR)/Makefile +endif + +pass = $(strip $(1)) + +unexport SUBDIRS + +# Call a pass in a subdirectory +# Usage: $(call omk_pass_subdir_template,,,) +define omk_pass_subdir_template +.PHONY: $(pass)-$(3)-subdir +$(pass)-submakes: $(pass)-$(3)-subdir +$(pass)-$(3)-subdir: MAKEOVERRIDES:=$(filter-out SUBDIRS=%,$(MAKEOVERRIDES)) +$(pass)-$(3)-subdir: + @$(call mkdir_def,$(2)/$(3)) + +@$(MAKE) --no-builtin-rules SOURCES_DIR=$(SOURCES_DIR)/$(3) $(NO_PRINT_DIRECTORY) \ + RELATIVE_DIR=$(RELATIVE_PREFIX)$(3) -C $(2)/$(3) \ + -f $(SUBDIR_MAKEFILE) $(pass)-submakes +# In subdirectories we can call submakes directly since passes are +# already serialized on the toplevel make. +endef + +ifdef OMK_TESTSROOT +check-target = $(1:%=%-check) +endif + +# Call a pass in a subdirectory +# Usage: $(call extra_rules_subdir_template,) +define extra_rules_subdir_template +extra-rules-subdirs: extra-rules-$(1) +extra-rules-$(1): + +@$(MAKE) OMK_SERIALIZE_INCLUDED=n MAKERULES_DIR=$(SOURCES_DIR)/$(1) OUTPUT_DIR=$(OUTPUT_DIR) \ + SOURCES_DIR=$(SOURCES_DIR)/$(1) RELATIVE_DIR=$(RELATIVE_PREFIX)$(1) -C $(SOURCES_DIR)/$(1) +endef + +.PHONY: extra-rules-subdirs +extra-rules-subdirs: + +$(foreach subdir,$(EXTRA_RULES_SUBDIRS),$(eval $(call extra_rules_subdir_template,$(subdir)))) + +# Usage: $(call omk_pass_template,,,[],[]) +define omk_pass_template +.PHONY: $(pass) $(pass)-local $(pass)-check $(pass)-submakes +$(foreach subdir,$(SUBDIRS),$(eval $(call omk_pass_subdir_template,$(pass),$(2),$(subdir)))) +$(pass): +# Submakes have to be called this way and not as dependecies for pass +# serialization to work + +@$(MAKE) --no-builtin-rules SOURCES_DIR=$(SOURCES_DIR) $(NO_PRINT_DIRECTORY) \ + RELATIVE_DIR=$(RELATIVE_DIR) \ + -f $(SOURCESDIR_MAKEFILE) $(pass)-submakes +$(pass)-submakes: + @true # Do not emit "nothing to be done" messages + +ifneq ($(4)$($(pass)_HOOKS),) +$(pass)-submakes: $(pass)-this-dir +$(pass)-this-dir: $(foreach subdir,$(SUBDIRS),$(pass)-$(subdir)-subdir) + +@echo "make[omk]: $(pass) in $(RELATIVE_DIR)" + @$(call mkdir_def,$(2)) + +@$(MAKE) --no-builtin-rules $(NO_PRINT_DIRECTORY) SOURCES_DIR=$(SOURCES_DIR) RELATIVE_DIR=$(RELATIVE_DIR) -C $(2) \ + -f $(SOURCESDIR_MAKEFILE) $(3) $(check-target) $(1:%=%-local) +ifneq ($(pass),clean) +$(pass)-local: $($(pass)_HOOKS) +endif +endif +endef + +# ======================= +# DEFAULT CONFIG PASS + +default-config: + @echo "# Start of OMK config file" > "$(CONFIG_FILE)-default" + @echo "# This file should not be altered manually" >> "$(CONFIG_FILE)-default" + @echo "# Overrides should be stored in file $(notdir $(CONFIG_FILE))" >> "$(CONFIG_FILE)-default" + @echo >> "$(CONFIG_FILE)-default" + @$(MAKE) $(NO_PRINT_DIRECTORY) -C $(OUTPUT_DIR) \ + RELATIVE_DIR="" SOURCES_DIR=$(OUTPUT_DIR) \ + -f $(OUTPUT_DIR)/Makefile default-config-pass + +$(eval $(call omk_pass_template,default-config-pass,$$(LOCAL_BUILD_DIR),,always)) + +default-config-pass-local: +# @echo Default config for $(RELATIVE_DIR) + @echo "# Config for $(RELATIVE_DIR)" >> "$(CONFIG_FILE)-default" + @$(foreach x, $(default_CONFIG), echo '$(x)' | \ + $(SED4OMK) -e 's/^[^=]*=x$$/#\0/' >> "$(CONFIG_FILE)-default" ; ) + + +omkize: + $(Q)if ! grep -q MAKERULES_DIR Makefile; then \ + echo "Makefile is not OMK leaf makefile!" >&2; exit 1; \ + fi + $(Q)for i in `find -L . -name Makefile.omk` ; do \ + d=`dirname $${i}`; \ + if ! test -f "$${d}/Makefile.rules" && ! cmp -s Makefile "$${d}/Makefile"; then \ + rm -f "$${d}/Makefile"; \ + cp -v Makefile "$${d}/Makefile"; \ + fi \ + done + #OMK:wvtest.omk@Makefile.rules.linux +ifndef WVTEST_LIBRARY +WVTEST_LIBRARY = wvtest +endif + +# Documentation: wvtest_PROGRAMS is amost equivalent to test_PROGRAMS. +# The two differences are that the program is automatically linked +# with $(WVTEST_LIBRARY) and it is run during "make wvtest". +test_PROGRAMS += $(wvtest_PROGRAMS) + +# Documentation: If your project uses wvtest, it is recomended to put +# the "test: wvtest" rule to config.target. +wvtest: + $(Q)$(MAKERULES_DIR)/wvtestrun $(MAKE) wvtest-pass + +.PHONY: wvtest + +$(eval $(call omk_pass_template,wvtest-pass,$$(LOCAL_BUILD_DIR),,$(wvtest_SCRIPTS)$(wvtest_PROGRAMS))) + +# Usage: $(call wvtest_template,) +define wvtest_template +wvtest-pass-local: wvtest-run-$(1) +.PHONY: wvtest-run-$(1) +wvtest-run-$(1): + $(Q)echo "Testing \"Run $(1)\" in Makefile.rules:" + $(Q)mkdir -p $(1).wvtest + $(Q)cd $(1).wvtest && \ + PATH=$$(USER_BIN_DIR):$$$$PATH LD_LIBRARY_PATH=$$(USER_LIB_DIR):$$$$LD_LIBRARY_PATH \ + $(1) +$(notdir $(1))_LIBS += $$(WVTEST_LIBRARY) +endef + +# Documentation: Write the test so, that it can be run from arbitrary +# directory, i.e. in case of a script ensure that the wvtest library +# is sourced like this: +# +# . $(dirname $0)/wvtest.sh + +$(foreach script,$(wvtest_SCRIPTS),$(eval $(call wvtest_template,$(SOURCES_DIR)/$(script)))) +# Hack!!! +USER_TESTS_DIR := $(OUTPUT_DIR)/_compiled/bin-tests +$(foreach prog,$(wvtest_PROGRAMS),$(eval $(call wvtest_template,$(USER_TESTS_DIR)/$(prog)))) +ifeq ($(OMK_VERBOSE),1) #OMK:include.omk@Makefile.rules.linux +CPHEADER_FLAGS += -v +LNHEADER_FLAGS += -v +endif + +ifneq ($(LN_HEADERS),y) +define cp_cmd +if ! cmp -s $(1) $(2); then \ + echo " CP $(1:$(OUTPUT_DIR)/%=%) -> $(2:$(OUTPUT_DIR)/%=%)"; \ + install -d $(CPHEADER_FLAGS) `dirname $(2)` && \ + install $(CPHEADER_FLAGS) $(1) $(2) || exit 1; \ +fi +endef +else +define cp_cmd +if ! cmp -s $(1) $(2); then \ + echo " LN $(1:$(OUTPUT_DIR)/%=%) -> $(2:$(OUTPUT_DIR)/%=%)"; \ + if [ -f $(1) ]; then d=$(2); mkdir -p $${d%/*} && ln -sf $(LNHEADER_FLAGS) $(1) $(2) || exit 1; else exit 1; fi; \ +fi +endef +endif + +# TODO: Check modification date of changed header files. If it is +# newer that in source dir, show a warning. + +# Syntax: $(call include-pass-template,,) +define include-pass-template +include-pass-local: include-pass-local-$(2) +include-pass-local-$(2): $$($(2)_GEN_HEADERS) $$(foreach f,$$(renamed_$(2)_GEN_HEADERS),$$(shell f='$$(f)'; echo $$$${f%->*})) + @$$(foreach f, $$($(2)_HEADERS),$$(call cp_cmd,$$(SOURCES_DIR)/$$(f),$(1)/$$(notdir $$(f))); ) +# FIXME: Use correct build dir, then document it (in the line bellow) + @$$(foreach f, $$($(2)_GEN_HEADERS),$$(call cp_cmd,$$(LOCAL_BUILD_DIR)/$$(f),$(1)/$$(notdir $$(f))); ) + @$$(foreach f, $$(nobase_$(2)_HEADERS), $$(call cp_cmd,$$(SOURCES_DIR)/$$(f),$(1)/$$(f)); ) + @$$(foreach f, $$(renamed_$(2)_HEADERS), \ + f='$$(f)'; srcfname=$$$${f%->*}; destfname=$$$${f#*->}; \ + $$(call cp_cmd,$$(SOURCES_DIR)/$$$${srcfname},$(1)/$$$${destfname}); ) + @$$(foreach f, $$(renamed_$(2)_GEN_HEADERS), \ + f='$$(f)'; srcfname=$$$${f%->*}; destfname=$$$${f#*->}; \ + $$(call cp_cmd,$$(LOCAL_BUILD_DIR)/$$$${srcfname},$(1)/$$$${destfname}); ) +# Suppress "Nothing to be done for `include-pass-local'" message if no headers are defined in Makefile.omk + @$$(if $$($(2)_HEADERS)$$($(2)_GEN_HEADERS)$$(nobase_$(2)_HEADERS)$$(renamed_$(2)_HEADERS)$$(renamed_$(2)_GEN_HEADERS),,true) +endef + #OMK:linux.omk@Makefile.rules.linux +BUILD_DIR_NAME = _build +COMPILED_DIR_NAME = _compiled +ifndef GROUP_DIR_NAME +GROUP_DIR_NAME = nogroup +endif + +USER_INCLUDE_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/include +USER_LIB_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/lib +USER_UTILS_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/bin-utils +USER_TESTS_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/bin-tests +USER_BIN_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/bin +USER_BUILD_DIR := $(OUTPUT_DIR)/$(BUILD_DIR_NAME)/user + +ifeq ($(BUILD_OS),) + # Check for target + ifeq ($(OS),Windows_NT) + BUILD_OS := win32 + else + BUILD_OS := $(shell uname | tr '[A-Z]' '[a-z]' ) + #$(warning BUILD_OS=$(BUILD_OS)) + endif +endif + +ifeq ($(TARGET_OS),) + TARGET_OS := $(BUILD_OS) +endif + +export TARGET_OS +export BUILD_OS + +LOCAL_BUILD_DIR = $(USER_OBJS_DIR) + +# Assign default values to CFLAGS variable. If the variable is defined +# earlier (i.g. in config.omk), it is not overriden here. +CFLAGS ?= -O2 -Wall +CXXFLAGS ?= -O2 -Wall + + +CPPFLAGS += -I $(USER_INCLUDE_DIR) + +LOADLIBES += -L$(USER_LIB_DIR) + +LOADLIBES += $(lib_LOADLIBES:%=-l%) + +LIB_CPPFLAGS += $(CPPFLAGS) +LIB_CFLAGS += $(CFLAGS) + +ifeq ($(TARGET_OS),win32) + EXE_SUFFIX = .exe + SOLIB_EXT = dll +else + SOLIB_EXT = so + SOLIB_PICFLAGS += -fpic +endif + +#vpath %.c $(SOURCES_DIR) +#vpath %.cc $(SOURCES_DIR) +#vpath %.cxx $(SOURCES_DIR) + +USER_OBJS_DIR = $(USER_BUILD_DIR)/$(RELATIVE_DIR) +OMK_WORK_DIR = $(USER_OBJS_DIR) + +.PHONY: dep subdirs clean clean-custom cleandepend check-dir + +# Some support to serialize some targets for parallel make +ifneq ($(OMK_SERIALIZE_INCLUDED),y) +include-pass: check-dir +library-pass: include-pass +link-pseudo-pass: library-pass +binary-pass: link-pseudo-pass + +override OMK_SERIALIZE_INCLUDED = y +MAKEOVERRIDES := $(filter-out OMK_SERIALIZE_INCLUDED=n,$(MAKEOVERRIDES)) +endif + +#===================================================================== +# User-space rules and templates to compile programs, libraries etc. + +ifdef USER_RULE_TEMPLATES + +c_o_COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OMK_CPPFLAGS) \ + $(CPPFLAGS) $(OMK_CFLAGS) $(CFLAGS) -DOMK_FOR_USER + +cc_o_COMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OMK_CPPFLAGS) \ + $(CPPFLAGS) $(OMK_CFLAGS) $(CFLAGS) $(OMK_CXXFLAGS) $(CXXFLAGS) -DOMK_FOR_USER + +S_o_COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(OMK_CPPFLAGS) \ + $(CPPFLAGS) $(OMK_CFLAGS) $(CFLAGS) $(ASFLAGS) -DOMK_FOR_USER + +idl_COMPILE = $(IDL_COMPILER) + +# Check GCC version for user build +ifndef CC_MAJOR_VERSION +CC_MAJOR_VERSION := $(shell $(CC) -dumpversion | $(SED4OMK) -e 's/\([^.]\)\..*/\1/') +endif +# Prepare suitable define for dependency building +ifeq ($(CC_MAJOR_VERSION),2) +CC_DEPFLAGS = -Wp,-MD,"$@.d.tmp" +else +CC_DEPFLAGS = -MT $@ -MD -MP -MF "$@.d.tmp" +endif + + +# Syntax: $(call COMPILE_c_o_template,,,) +define COMPILE_c_o_template +ifeq ($$($(2)_C_TARGET),) +$(2)_C_TARGET=1 +$(2): $(1) $$(GEN_HEADERS) + @$(QUIET_CMD_ECHO) " CC $$@" + $(Q) if $$(c_o_COMPILE) $$(CC_DEPFLAGS) $(3) -o $$@ -c $$< ; \ + then mv -f "$$@.d.tmp" "$$@.d" ; \ + else rm -f "$$@.d.tmp" ; exit 1; \ + fi +endif +endef + + +# Syntax: $(call COMPILE_cc_o_template,,,) +define COMPILE_cc_o_template +ifeq ($$($(2)_CC_TARGET),) +$(2)_CC_TARGET=1 +$(2): $(1) $$(GEN_HEADERS) + @$(QUIET_CMD_ECHO) " CXX $$@" + $(Q) if $$(cc_o_COMPILE) $$(CC_DEPFLAGS) $(3) -o $$@ -c $$< ; \ + then mv -f "$$@.d.tmp" "$$@.d" ; \ + else rm -f "$$@.d.tmp" ; exit 1; \ + fi +endif +endef + + +# Syntax: $(call COMPILE_S_o_template,,,) +define COMPILE_S_o_template +ifeq ($$($(2)_S_TARGET),) +$(2)_S_TARGET=1 +$(2): $(1) $$(GEN_HEADERS) + @$(QUIET_CMD_ECHO) " AS $$@" + $(Q) if $$(S_o_COMPILE) -D__ASSEMBLY__ $$(CC_DEPFLAGS) $(3) -o $$@ -c $$< ; \ + then mv -f "$$@.d.tmp" "$$@.d" ; \ + else rm -f "$$@.d.tmp" ; exit 1; \ + fi +endif +endef + +# Syntax: $(call COMPILE_idl_template,,) +define COMPILE_idl_template + +ifeq ($$($(2)_IDL_TARGET),) +$(2)_IDL_TARGET=1 +GEN_HEADERS+=$(filter %.h,$(notdir $(1:%.idl=%.h))) # Do we need this global variable? + +$(2).c $(2)-stubs.c $(2)-skels.c $(2)-common.c $(2).h: $(1) $$(wildcard $$(firstword $$(idl_COMPILE))) + @$(QUIET_CMD_ECHO) " IDL $$@" + $(Q) $$(idl_COMPILE) $$($(2)_IDLFLAGS) $(1) +endif +endef + +# Syntax: $(call COMPILE_templates,,,) +# Note: The newlines after $(call ) are IMPORTANT!!! +define COMPILE_templates +$(foreach src,$(filter %.c,$(1)),$(call COMPILE_c_o_template,$(src),$(3)$(notdir $(src:%.c=%$(2))),) +) +$(foreach src,$(filter %.cc,$(1)),$(call COMPILE_cc_o_template,$(src),$(3)$(notdir $(src:%.cc=%$(2))),) +) +$(foreach src,$(filter %.cxx,$(1)),$(call COMPILE_cc_o_template,$(src),$(3)$(notdir $(src:%.cxx=%$(2))),) +) +$(foreach src,$(filter %.cpp,$(1)),$(call COMPILE_cc_o_template,$(src),$(3)$(notdir $(src:%.cpp=%$(2))),) +) +$(foreach src,$(filter %.S,$(1)),$(call COMPILE_S_o_template,$(src),$(3)$(notdir $(src:%.S=%$(2))),) +) +endef + +TARGET_IDL_SOURCES = $(filter %.c,$($(1)_SERVER_IDL:%.idl=%-skels.c)) \ + $(filter %.c,$($(1)_SERVER_IDL:%.idl=%-common.c)) \ + $(filter %.c,$($(1)_CLIENT_IDL:%.idl=%-stubs.c)) \ + $(filter %.c,$($(1)_CLIENT_IDL:%.idl=%-common.c)) \ + $(filter %.c,$($(1)_IDL:%.idl=%.c)) +TARGET_SOURCES = $($(1)_SOURCES) $($(1)_GEN_SOURCES) $(TARGET_IDL_SOURCES) +TARGET_SOURCES_ABS = $($(1)_SOURCES:%=$(SOURCES_DIR)/%) $($(1)_GEN_SOURCES) $(TARGET_IDL_SOURCES) +TARGET_OBJ_PREFIX = $(if $($(1)_CFLAGS)$($(1)_CXXFLAGS)$($(1)_CPPFLAGS),$(1)-,) +TARGET_OBJS = $(sort $(addprefix $(TARGET_OBJ_PREFIX),$(addsuffix .o,$(basename $(notdir $(TARGET_SOURCES)))))) +TARGET_LOBJS = $(sort $(addprefix $(TARGET_OBJ_PREFIX),$(addsuffix .lo,$(basename $(notdir $(TARGET_SOURCES)))))) +TARGET_IDLS = $($(1)_SERVER_IDL) $($(1)_CLIENT_IDL) $($(1)_IDL) +TARGET_CFLAGS = $(if $($(1)_CFLAGS),$($(1)_CFLAGS),$(OMK_CFLAGS)) +TARGET_CXXFLAGS = $(if $($(1)_CXXFLAGS),$($(1)_CXXFLAGS),$(OMK_CXXFLAGS)) +TARGET_CPPFLAGS = $(if $($(1)_CPPFLAGS),$($(1)_CPPFLAGS),$(OMK_CPPFLAGS)) +LINK_WITH_CXX = $(filter %.cc,$(TARGET_SOURCES))$(filter %.cxx,$(TARGET_SOURCES))$(filter %.cpp,$(TARGET_SOURCES)) + +# Syntax: $(call PROGRAM_template,,,,) +define PROGRAM_template +$(foreach idl,$(TARGET_IDLS),$(call COMPILE_idl_template,$(SOURCES_DIR)/$(idl),$(idl:%.idl=%))) + +$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.o,$(TARGET_OBJ_PREFIX)) + +$(2)/$(1)$(3): OMK_CFLAGS=$(TARGET_CFLAGS) +$(2)/$(1)$(3): OMK_CXXFLAGS=$(TARGET_CXXFLAGS) +$(2)/$(1)$(3): OMK_CPPFLAGS=$(TARGET_CPPFLAGS) +$(2)/$(1)$(3): $(TARGET_OBJS) + @$(QUIET_CMD_ECHO) " LINK $$@" + $(Q) $(if $(LINK_WITH_CXX),$$(CXX),$$(CC)) \ + $(TARGET_OBJS) $$($(1)_LIBS:%=-l%) $$(LOADLIBES) $$(OMK_LDFLAGS) $$(LDFLAGS) $$($(1)_LDFLAGS) -Wl,-rpath-link,$(USER_LIB_DIR) -Wl,-Map,$(USER_OBJS_DIR)/$(1).exe.map -o $$@ + @echo "$(2)/$(1)$(3): \\" >$(USER_OBJS_DIR)/$(1).exe.d + @$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(USER_OBJS_DIR)/$(1).exe.map|tr '&' '\134' >>$(USER_OBJS_DIR)/$(1).exe.d + @echo >>$(USER_OBJS_DIR)/$(1).exe.d + +binary-pass-local: $(2)/$(1)$(3) +endef + +# Usage: $(call SCRIPT_template,,) +define SCRIPT_template +$(2)/$(1): $$(SOURCES_DIR)/$(1) + @$(QUIET_CMD_ECHO) " CP $$@" + $(Q)cp $$^ $$@ + +binary-pass-local: $(2)/$(1) +endef + + +# Syntax: $(call LIBRARY_template,) +define LIBRARY_template + +$(foreach idl,$(TARGET_IDLS),$(call COMPILE_idl_template,$(SOURCES_DIR)/$(idl),$(idl:%.idl=%))) + +$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.o,$(TARGET_OBJ_PREFIX)) + +$(USER_LIB_DIR)/lib$(1).a: OMK_CFLAGS=$(TARGET_CFLAGS) +$(USER_LIB_DIR)/lib$(1).a: OMK_CXXFLAGS=$(TARGET_CXXFLAGS) +$(USER_LIB_DIR)/lib$(1).a: OMK_CPPFLAGS=$(TARGET_CPPFLAGS) +$(USER_LIB_DIR)/lib$(1).a: $(TARGET_OBJS) + @$(QUIET_CMD_ECHO) " AR $$@" + $(Q) $(AR) rcs $$@ $$^ + +library-pass-local: $(USER_LIB_DIR)/lib$(1).a +endef + + +# Syntax: $(call SOLIB_template,) +define SOLIB_template + +$(foreach idl,$(TARGET_IDLS),$(call COMPILE_idl_template,$(SOURCES_DIR)/$(idl),$(idl:%.idl=%))) + +$(call COMPILE_templates,$(TARGET_SOURCES_ABS),.lo,$(TARGET_OBJ_PREFIX)) + +.PHONY: $(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar +$(2)/$(1)$(3): OMK_CFLAGS=$(TARGET_CFLAGS) +$(2)/$(1)$(3): OMK_CXXFLAGS=$(TARGET_CXXFLAGS) +$(2)/$(1)$(3): OMK_CPPFLAGS=$(TARGET_CPPFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: OMK_CFLAGS = $(TARGET_CFLAGS) $(SOLIB_PICFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: OMK_CXXFLAGS = $(TARGET_CXXFLAGS) $(SOLIB_PICFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: OMK_CPPFLAGS = $(TARGET_CPPFLAGS) +$(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar: $(TARGET_LOBJS) + $(Q)echo '$(1)_objslo += $$$$(addprefix $(USER_OBJS_DIR)/,$$^)' > $$@.tmp; \ + echo '$(1)_libs += $$($(1)_LIBS) $$(lib_LOADLIBES)' >> $$@.tmp; \ + echo '$(1)_ldflags += $$($(1)_LDFLAGS) $$(lib_LDFLAGS)' >> $$@.tmp; \ + echo 'shared_libs := $$$$(sort $(1) $$$$(shared_libs))' >> $$@.tmp; \ + if cmp -s $$@.tmp $$@; then rm $$@.tmp; else mv $$@.tmp $$@; fi + +library-pass-local: $(OMK_WORK_DIR)/lib$(1).$(SOLIB_EXT).omkvar +endef + +# Generate rules for compilation of programs and libraries + +$(foreach prog,$(utils_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_UTILS_DIR),$(EXE_SUFFIX)))) + +$(foreach prog,$(test_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_TESTS_DIR),$(EXE_SUFFIX)))) + +$(foreach prog,$(bin_PROGRAMS),$(eval $(call PROGRAM_template,$(prog),$(USER_BIN_DIR),$(EXE_SUFFIX)))) + +$(foreach script,$(bin_SCRIPTS),$(eval $(call SCRIPT_template,$(script),$(USER_BIN_DIR)))) + + +# $(foreach lib,$(lib_LIBRARIES),$(info $(call LIBRARY_template,$(lib)))) +$(foreach lib,$(lib_LIBRARIES),$(eval $(call LIBRARY_template,$(lib)))) + +$(foreach lib,$(shared_LIBRARIES),$(eval $(call SOLIB_template,$(lib)))) + +-include $(USER_OBJS_DIR)/*.d +#FIXME: This doesn't include dependencies of source files from +#subdirectories (i.s. *_SOURCES=dir/file.c. I'm currently not sure, +#how to handle this. + +endif # USER_RULE_TEMPLATES + +.PHONY: link-pseudo-pass +link-pseudo-pass: + $(Q)$(MAKE) $(NO_PRINT_DIRECTORY) -C $(USER_BUILD_DIR) -f $(SOURCESDIR_MAKEFILE) link-shared-libs + +ifeq ($(MAKECMDGOALS),link-shared-libs) + + + +# Syntax: $(call solib_link_template,) +define solib_link_template +$(1)_shared_libs = $$(patsubst %,$(USER_LIB_DIR)/lib%.$(SOLIB_EXT),$$(filter $$(shared_libs),$$($(1)_libs))) +#$$(warning $(1)_shared_libs = $$($(1)_shared_libs)) +$(USER_LIB_DIR)/lib$(1).$(SOLIB_EXT): $$($(1)_shared_libs) $$($(1)_objslo) + @$(QUIET_CMD_ECHO) " LINK $$@" + $(Q)$(CC) --shared -Xlinker -soname=lib$(1).$(SOLIB_EXT) -Wl,-Map,$(USER_OBJS_DIR)/lib$(1).$(SOLIB_EXT).map -o $$@ $$($(1)_objslo) $$(LOADLIBES) $$($(1)_libs:%=-l%) $$(lib_ldflags) $$($(1)_ldflags) +endef + +-include $(shell true; find $(USER_BUILD_DIR) -name 'lib*.omkvar') # `true' is a hack for MinGW +#$(warning $(shared_libs)) +$(foreach lib,$(shared_libs),$(eval $(call solib_link_template,$(lib)))) + +.PHONY: link-shared-libs +link-shared-libs: $(shared_libs:%=$(USER_LIB_DIR)/lib%.$(SOLIB_EXT)) +endif # link-shared-libs + +$(eval $(call omk_pass_template, library-pass,$(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(lib_LIBRARIES)$(shared_LIBRARIES)$(cmetric_include_HEADERS))) +$(eval $(call omk_pass_template, binary-pass, $(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,$(bin_PROGRAMS)$(utils_PROGRAMS)$(test_PROGRAMS)$(bin_SCRIPTS))) + +$(eval $(call omk_pass_template,clean,$(USER_OBJS_DIR),,always)) +$(eval $(call omk_pass_template,install,$(USER_OBJS_DIR),,always)) +$(eval $(call omk_pass_template,include-pass,$(USER_OBJS_DIR),USER_RULE_TEMPLATES=y,always)) + +check-dir:: + @$(call mkdir_def,$(USER_BUILD_DIR)) + @$(call mkdir_def,$(USER_INCLUDE_DIR)) + @$(call mkdir_def,$(USER_LIB_DIR)) + @$(call mkdir_def,$(USER_BIN_DIR)) + @$(call mkdir_def,$(USER_UTILS_DIR)) + @$(call mkdir_def,$(USER_TESTS_DIR)) + +install-local: # TODO + +$(eval $(call include-pass-template,$(USER_INCLUDE_DIR),include)) + +clean-local:: + @echo Cleaning in $(USER_OBJS_DIR) + @rm -f $(USER_OBJS_DIR)/*.[och] \ + $(USER_OBJS_DIR)/*.lo \ + $(USER_OBJS_DIR)/*.d \ + $(USER_OBJS_DIR)/*.map \ + $(LOCAL_CONFIG_H:%=$(USER_OBJS_DIR)/%) + +include-pass-submakes: extra-rules-subdirs + +# We must go to EXTRA_RULES_SUBDIRS before going to any other +# directory, since the executables compiled in EXTRA_RULES_SUBDIRS +# might be needed there. +include-pass-this-dir $(foreach subdir,$(SUBDIRS),include-pass-$(subdir)-subdir): extra-rules-subdirs + +default: include-pass library-pass binary-pass + #OMK:linux-kernel.omk@Makefile.rules.linux +KERN_INCLUDE_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/include-kern +KERN_LIB_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/lib-kern +KERN_MODULES_DIR := $(OUTPUT_DIR)/$(COMPILED_DIR_NAME)/modules +KERN_BUILD_DIR := $(OUTPUT_DIR)/$(BUILD_DIR_NAME)/kern +KERN_MODPOST_DIR := $(OUTPUT_DIR)/$(BUILD_DIR_NAME)/kern-modpost + +ifndef LINUX_VERSION +LINUX_VERSION=$(shell uname -r) +endif +ifndef LINUX_DIR +LINUX_DIR=/lib/modules/$(LINUX_VERSION)/build +endif + +KERN_OBJS_DIR = $(KERN_BUILD_DIR)/$(RELATIVE_DIR) + +kernel-lib-pass: include-pass +kernel-mod-pass: kernel-lib-pass +kernel-modpost-pass: kernel-mod-pass +kernel-pass: kernel-mod-pass kernel-modpost-pass + +#===================================================================== +# Kernel-space rules and templates to compile modules, libraries etc. + +ifdef KERN_RULE_TEMPLATES + +$(KERN_LIB_DIR)/kernel.mk: $(LINUX_DIR)/.config $(MAKERULES_DIR)/kernelcfg2mk + @$(QUIET_CMD_ECHO) " KCFG2MK $@" + $(Q) $(MAKERULES_DIR)/kernelcfg2mk $(LINUX_DIR) $(KERN_LIB_DIR) + +ifeq ($(CONFIG_RTLINUX),y) +include $(RTL_DIR)/rtl.mk + +KERN_CC = $(CC) +kern_GCCLIB_DIR=$(shell LANG=C LC_ALL=C LC_MESSAGES=C $(CC) -print-search-dirs | $(SED4OMK) -n -e 's/^install: \(.*\)$$/\1/p' ) +INCLUDES := -I $(KERN_INCLUDE_DIR) $(INCLUDE) $(rtlinux_INCLUDES) $(kernel_INCLUDES) +#-DEXPORT_NO_SYMBOLS +c_o_kern_COMPILE = $(KERN_CC) -idirafter $(kern_GCCLIB_DIR)/include $(INCLUDES) $(CFLAGS) -DOMK_FOR_KERNEL -DEXPORT_SYMTAB -nostdinc +cc_o_kern_COMPILE = $(CXX) $(INCLUDES) $(CXXFLAGS) -DOMK_FOR_KERNEL -DEXPORT_SYMTAB +KERN_EXE_SUFFIX := .o +KERN_ARCH = $(ARCH) +KERN_LD = $(LD) +KERN_AR = $(AR) + +else # CONFIG_RTLINUX + +include $(KERN_LIB_DIR)/kernel.mk + +ifeq ($(LINUX_SRC),) +LINUX_SRC = $(LINUX_DIR) +endif +kernel_INCLUDES += -I $(KERN_INCLUDE_DIR) -I $(LINUX_DIR) -idirafter $(LINUX_SRC)/include/linux + +ifdef LINUX_CC +KERN_CC = $(LINUX_CC) +kern_GCCLIB_DIR=$(shell LANG=C LC_ALL=C LC_MESSAGES=C $(LINUX_CC) -print-search-dirs | $(SED4OMK) -n -e 's/^install: \(.*\)$$/\1/p' ) +else +KERN_CC = echo KERN_CC not defined - compilation skipped +endif +c_o_kern_COMPILE = $(KERN_CC) $(kernel_INCLUDES) -idirafter $(kern_GCCLIB_DIR)/include $(LINUX_CPPFLAGS) $(LINUX_CFLAGS) $(LINUX_CFLAGS_MODULE) -DOMK_FOR_KERNEL -DEXPORT_SYMTAB -nostdinc +cc_o_kern_COMPILE = $(KERN_CC) $(kernel_INCLUDES) -idirafter $(kern_GCCLIB_DIR)/include $(LINUX_CPPFLAGS) $(LINUX_CFLAGS) $(LINUX_CFLAGS_MODULE) -DOMK_FOR_KERNEL -DEXPORT_SYMTAB +S_o_kern_COMPILE = $(KERN_CC) $(kernel_INCLUDES) -idirafter $(kern_GCCLIB_DIR)/include $(LINUX_CPPFLAGS) $(LINUX_AFLAGS) $(LINUX_AFLAGS_MODULE) -DOMK_FOR_KERNEL -DEXPORT_SYMTAB -nostdinc +KERN_EXE_SUFFIX := $(LINUX_MODULE_EXT) +KERN_LDFLAGS = $(LINUX_LDFLAGS) $(LINUX_LDFLAGS_MODULE) +ifdef LINUX_ARCH +KERN_ARCH = $(LINUX_ARCH) +else +KERN_ARCH = echo KERN_ARCH not defined - skipped +endif +ifdef LINUX_LD +KERN_LD = $(LINUX_LD) +else +KERN_LD = echo KERN_LD not defined - skipped +endif +ifneq ($(LINUX_AR),) +KERN_AR = $(LINUX_AR) +else +KERN_AR = $(AR) +endif +ifeq ($(LINUX_QUOTE_MODNAME),y) +KERN_MQ=\" +KERN_KBUILD_MODNAME=-D"KBUILD_MODNAME=((THIS_MODULE)!=NULL?(THIS_MODULE)->name:NULL)" +endif +endif # CONFIG_RTLINUX + +KERN_LOADLIBES += -L$(KERN_LIB_DIR) + +KERN_LOADLIBES += $(rtlinux_LOADLIBES:%=-l%) +KERN_LOADLIBES += $(kernel_LOADLIBES:%=-l%) + + + +# Check GCC version for kernel part of build +ifndef kern_CC_MAJOR_VERSION +kern_CC_MAJOR_VERSION := $(shell $(KERN_CC) -dumpversion | $(SED4OMK) -e 's/\([^.]\)\..*/\1/') +endif +# Prepare suitable define for dependency building +ifeq ($(kern_CC_MAJOR_VERSION),2) +kern_CC_DEPFLAGS = -Wp,-MD,"$@.d.tmp" +else +kern_CC_DEPFLAGS = -MT $@ -MD -MP -MF "$@.d.tmp" +endif + +ifeq ($(KERN_EXE_SUFFIX),.ko) +ifeq ($(wildcard $(LINUX_DIR)/scripts/mod/modpost),) +KERN_MODPOST = $(LINUX_DIR)/scripts/modpost +else +KERN_MODPOST = $(LINUX_DIR)/scripts/mod/modpost +endif +KERN_MODULES_LINK_DIR = $(KERN_MODPOST_DIR) +KERN_LINK_SUFFIX = .o +else +KERN_MODULES_LINK_DIR = $(KERN_MODULES_DIR) +KERN_LINK_SUFFIX = $(KERN_EXE_SUFFIX) +endif + +ifeq ($(LINUX_CONFIG_MODVERSIONS),y) +MODPOST_OPTS += -m +MODPOST_OPTS += -i $(LINUX_DIR)/Module.symvers +ifneq ($(LINUX_BUILDHOST),) # this is not correct point, it should look for 2.6.17 kernel +MODPOST_OPTS += -I $(KERN_LIB_DIR)/Module.symvers +endif +MODPOST_OPTS += -o $(KERN_LIB_DIR)/Module.symvers +endif + +ifeq ($(LINUX_CONFIG_DEBUG_SECTION_MISMATCH),y) +MODPOST_OPTS += -S +endif + +ifeq ($(LINUX_CONFIG_MARKERS),y) +MODPOST_OPTS += -K $(LINUX_DIR)/Module.markers +MODPOST_OPTS += -M $(KERN_LIB_DIR)/Module.markers +endif + +ifeq ($(LINUX_KBUILD_MODPOST_WARN),y) +MODPOST_OPTS += -w +endif + +ifneq ($(LINUX_BUILDHOST),) +ifneq ($(LINUX_BUILDHOST),$(LINUX_ARCH)) +MODPOST_OPTS += -c +endif +endif + +define COMPILE_c_o_kern_template + +$(2): $(1) + @$(QUIET_CMD_ECHO) " CC [K] $$@" + $(Q) if $$(c_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) $(KERN_KBUILD_MODNAME) \ + -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \ + -o $$@ -c $$< ; \ + then mv -f "$$@.d.tmp" "$$@.d" ; \ + else rm -f "$$@.d.tmp" ; exit 1; \ + fi +endef + + + +define COMPILE_cc_o_kern_template + +$(2): $(1) + @$(QUIET_CMD_ECHO) " CXX [K] $$@" + $(Q) if $$(cc_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) $(KERN_KBUILD_MODNAME) \ + -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \ + -o $$@ -c $$< ; \ + then mv -f "$$@.d.tmp" "$$@.d" ; \ + else rm -f "$$@.d.tmp" ; exit 1; \ + fi +endef + + + +define COMPILE_S_o_kern_template + +$(2): $(1) + @$(QUIET_CMD_ECHO) " AS [K] $$@" + $(Q) if $$(S_o_kern_COMPILE) $$(kern_CC_DEPFLAGS) $(3) $(KERN_KBUILD_MODNAME) \ + -D"KBUILD_BASENAME=$(KERN_MQ)$(notdir $(basename $(1)))$(KERN_MQ)" \ + -o $$@ -c $$< ; \ + then mv -f "$$@.d.tmp" "$$@.d" ; \ + else rm -f "$$@.d.tmp" ; exit 1; \ + fi +endef + + + +define MODULE_kern_template +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.c=%.o)) +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.cc=%.o)) +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.cxx=%.o)) +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.cpp=%.o)) +$(1)_OBJS := $$(sort $$($(1)_OBJS)) + +KERN_OBJS += $$($(1)_OBJS) +KERN_SOURCES += $$($(1)_SOURCES) + +# this is hack to build "__this_module" structure for 2.6.x kernels +# modpost is used for that purpose now + +#$(1).mod.c: +# echo "\ +# #include @\ +# #include @\ +# #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,5))@\ +# #include @\ +# #include @\ +# @\ +# MODULE_INFO(vermagic, VERMAGIC_STRING);@\ +# @\ +# #undef unix@\ +# struct module __this_module@\ +# __attribute__((section(\".gnu.linkonce.this_module\"))) = {@\ +# .name = __stringify(KBUILD_MODNAME),@\ +# .init = init_module,@\ +# #ifdef CONFIG_MODULE_UNLOAD@\ +# .exit = cleanup_module,@\ +# #endif@\ +# };@\ +# #endif@\ +# " | tr @ \\n >$$@ + + +#$(eval $(call COMPILE_c_o_kern_template,$(1).mod.c,$(1).mod.o,-DKBUILD_MODNAME=$(1))) + +$(2)/$(1)$(KERN_LINK_SUFFIX): $$($(1)_OBJS) + @$(QUIET_CMD_ECHO) " LD [K] $$@" + $(Q) $$(KERN_LD) $$(KERN_LDFLAGS) -r $$($(1)_OBJS) -L$$(kern_GCCLIB_DIR) $$($(1)_LIBS:%=-l%) $$(KERN_LOADLIBES) -Map $(KERN_OBJS_DIR)/$(1).mod.map -o $$@ + @echo "$(2)/$(1)$(KERN_LINK_SUFFIX): \\" >$(KERN_OBJS_DIR)/$(1).mod.d + @$(SED4OMK) -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(KERN_OBJS_DIR)/$(1).mod.map >>$(KERN_OBJS_DIR)/$(1).mod.d + @echo >>$(KERN_OBJS_DIR)/$(1).mod.d + @if [ "$(KERN_EXE_SUFFIX)" = ".ko" ] ; then \ + echo $(1) >>$(KERN_MODPOST_DIR)/module-changes ; \ + echo $(1) >$(KERN_MODPOST_DIR)/$(1).mod.stamp ; \ + fi + +endef + + + +define LIBRARY_kern_template +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.c=%.o)) +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.cc=%.o)) +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.cxx=%.o)) +$(1)_OBJS += $$(filter %.o,$$($(1)_SOURCES:%.cpp=%.o)) +$(1)_OBJS := $$(sort $$($(1)_OBJS)) + +KERN_OBJS += $$($(1)_OBJS) +KERN_SOURCES += $$($(1)_SOURCES) + +$(KERN_LIB_DIR)/lib$(1).a: $$($(1)_OBJS) + @$(QUIET_CMD_ECHO) " AR [K] $$@" + $(Q) $(KERN_AR) rcs $$@ $$^ +endef + + +ifdef LINUX_DIR + +kernel-lib-pass-local: $(kernel_LIBRARIES:%=$(KERN_LIB_DIR)/lib%.a) + +kernel-mod-pass-local: $(kernel_MODULES:%=$(KERN_MODULES_LINK_DIR)/%$(KERN_LINK_SUFFIX)) + +$(foreach module,$(kernel_MODULES),$(eval $(call MODULE_kern_template,$(module),$(KERN_MODULES_LINK_DIR)))) + +$(foreach lib,$(kernel_LIBRARIES),$(eval $(call LIBRARY_kern_template,$(lib)))) + +endif + + +ifeq ($(CONFIG_RTLINUX),y) + +kernel-mod-pass-local: $(rtlinux_MODULES:%=$(KERN_MODULES_LINK_DIR)/%$(KERN_LINK_SUFFIX)) + +kernel-lib-pass-local: $(rtlinux_LIBRARIES:%=$(KERN_LIB_DIR)/lib%.a) + +$(foreach module,$(rtlinux_MODULES),$(eval $(call MODULE_kern_template,$(module),$(KERN_MODULES_LINK_DIR)))) + +$(foreach lib,$(rtlinux_LIBRARIES),$(eval $(call LIBRARY_kern_template,$(lib)))) + +endif + +ifeq ($(KERN_MODPOST_PASS),y) + +MODULES_LIST := $(wildcard *.mod.stamp) +MODULES_LIST := $(MODULES_LIST:%.mod.stamp=%) + +define MODPOST_kern_template +$(2) : $(1)$(KERN_LINK_SUFFIX) $(1).mod.c + @$(QUIET_CMD_ECHO) " LD [M] $$@" + $(Q) $$(c_o_kern_COMPILE) -D"KBUILD_BASENAME=$(KERN_MQ)$(1)$(KERN_MQ)" \ + -D"KBUILD_MODNAME=$(KERN_MQ)$(1)$(KERN_MQ)" \ + -o $(1).mod.o -c $(1).mod.c + $(Q) $$(KERN_LD) $$(KERN_LDFLAGS) $(1)$(KERN_LINK_SUFFIX) $(1).mod.o -r -o $$@ +endef + +kernel-modpost-versions: $(wildcard $(LINUX_DIR)/Module.symvers) + @$(QUIET_CMD_ECHO) " MODPOST $(KERN_MODPOST_DIR)" + @echo >$(KERN_MODPOST_DIR)/modpost-running + @rm -f $(KERN_MODPOST_DIR)/module-changes + $(Q) $(KERN_MODPOST) $(MODPOST_OPTS) $(MODULES_LIST:%=%$(KERN_LINK_SUFFIX)) + +$(MODULES_LIST:%=%.mod.c) : kernel-modpost-versions + +kernel-modpost-pass-local: $(MODULES_LIST:%=$(KERN_MODULES_DIR)/%$(KERN_EXE_SUFFIX)) + @rm -f $(KERN_MODPOST_DIR)/modpost-running + +$(foreach module,$(MODULES_LIST),$(eval $(call MODPOST_kern_template,$(module),$(module:%=$(KERN_MODULES_DIR)/%$(KERN_EXE_SUFFIX))))) + +endif + +-include $(KERN_OBJS_DIR)/*.d + +endif + +#===================================================================== + +# Kernel requires its own set of configuration header-files +ifneq ($(kernel_LIBRARIES)$(rtlinux_LIBRARIES)$(kernel_MODULES)$(rtlinux_MODULES)$(kernel_HEADERS)$(rtlinux_HEADERS)$(kernel_HEADERS)$(rtlinux_HEADERS)$(nobase_kernel_HEADERS)$(nobase_rtlinux_HEADERS)$(renamed_kernel_HEADERS)$(renamed_rtlinux_HEADERS),) +KERN_CONFIG_HEADERS_REQUIRED = y +endif + +$(eval $(call omk_pass_template, kernel-lib-pass,$(KERN_OBJS_DIR),KERN_RULE_TEMPLATES=y,$(kernel_LIBRARIES)$(rtlinux_LIBRARIES))) +$(eval $(call omk_pass_template, kernel-mod-pass,$(KERN_OBJS_DIR),KERN_RULE_TEMPLATES=y,$(kernel_MODULES)$(rtlinux_MODULES))) + +kernel-modpost-pass: + +@if [ -e "$(KERN_MODPOST_DIR)/module-changes" -o -e "$(KERN_MODPOST_DIR)/modpost-running" ] ; \ + then \ + $(MAKE) --no-print-directory -C $(KERN_MODPOST_DIR) \ + -f $(SOURCES_DIR)/Makefile KERN_RULE_TEMPLATES=y KERN_MODPOST_PASS=y $(@:%=%-local) ; \ + fi + +check-dir:: + @$(call mkdir_def,$(KERN_BUILD_DIR)) + @$(call mkdir_def,$(KERN_INCLUDE_DIR)) + @$(call mkdir_def,$(KERN_LIB_DIR)) + @$(call mkdir_def,$(KERN_MODULES_DIR)) + @$(call mkdir_def,$(KERN_MODPOST_DIR)) + +$(eval $(call include-pass-template,$(KERN_INCLUDE_DIR),kernel)) +ifeq ($(CONFIG_RTLINUX),y) +$(eval $(call include-pass-template,$(KERN_INCLUDE_DIR),rtlinux)) +endif + +ifdef KERN_RULE_TEMPLATES + +KERN_SOURCES := $(sort $(KERN_SOURCES)) + +#$(warning KERN_SOURCES = $(KERN_SOURCES)) + +$(foreach src,$(filter %.c,$(KERN_SOURCES)),$(eval $(call COMPILE_c_o_kern_template,$(SOURCES_DIR)/$(src),$(src:%.c=%.o),))) + +$(foreach src,$(filter %.cc,$(KERN_SOURCES)),$(eval $(call COMPILE_cc_o_kern_template,$(SOURCES_DIR)/$(src),$(src:%.cc=%.o),))) + +$(foreach src,$(filter %.cxx,$(KERN_SOURCES)),$(eval $(call COMPILE_cc_o_kern_template,$(SOURCES_DIR)/$(src),$(src:%.cxx=%.o),))) + +$(foreach src,$(filter %.cpp,$(KERN_SOURCES)),$(eval $(call COMPILE_cc_o_kern_template,$(SOURCES_DIR)/$(src),$(src:%.cpp=%.o),))) + +$(foreach src,$(filter %.S,$(USER_SOURCES)),$(eval $(call COMPILE_S_o_kern_template,$(SOURCES_DIR)/$(src),$(src:%.S=%.o),))) +endif + +clean-local:: + @echo Cleaning in $(KERN_OBJS_DIR) + @rm -f $(KERN_OBJS_DIR)/*.o \ + $(KERN_OBJS_DIR)/*.d \ + $(KERN_OBJS_DIR)/*.map \ + $(KERN_OBJS_DIR)/*.mod.c \ + $(kernel_MODULES:%=$(KERN_MODPOST_DIR)/%.*) \ + $(LOCAL_CONFIG_H:%=$(KERN_OBJS_DIR)/%) + @if [ -e $(KERN_LIB_DIR)/kernel.mk ] ; then \ + touch -t 200001010101 $(KERN_LIB_DIR)/kernel.mk ; \ + fi + +ifndef OMIT_KERNEL_PASSES +# Also make kernel passes if not disabled +default: kernel-lib-pass kernel-pass +endif + #OMK:cmetric.omk@Makefile.rules.linux +NM ?= nm + +# Syntax: $(call CMETRIC_o_h_template,,) +define CMETRIC_o_h_template +$(2): $(1) + @$(QUIET_CMD_ECHO) " CMETRIC $$@" + $(Q)if [ -n `dirname $$@` ] ; then \ + if [ ! -e `dirname $$@` ] ; then \ + mkdir -p `dirname $$@` ; fi ; fi + $(Q)echo >$$@.tmp '/* Automatically generated from $$< */' + $(Q)echo >>$$@.tmp '/* Conditionals to control compilation */' +# Bellow, the tricks with redirection are for shells without set -o pipefail +# (see http://www.mail-archive.com/dash@vger.kernel.org/msg00149.html) + $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | sort >>$$@.tmp` && exit $$$$status + $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in hexadecimal format */' + $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | sort >>$$@.tmp` && exit $$$$status + $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in decimal format */' + $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) -td $$<; echo $$$$? >&4; }\ + | $(SED4OMK) -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ + | sort >>$$@.tmp` && exit $$$$status + $(Q)mv $$@.tmp $$@ +endef + +library-pass-local: $(addprefix $(USER_INCLUDE_DIR)/,$(cmetric_include_HEADERS)) + +# Special rules for CMETRIC generated headers + +$(foreach cmetrh,$(cmetric_include_HEADERS),$(eval $(call COMPILE_c_o_template,\ + $(SOURCES_DIR)/$($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES),\ + $($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES:%.c=%.o),))) +$(foreach cmetrh,$(cmetric_include_HEADERS),$(eval $(call CMETRIC_o_h_template,\ + $($(basename $(notdir $(cmetrh)))_CMETRIC_SOURCES:%.c=%.o),\ + $(addprefix $(USER_INCLUDE_DIR)/,$(cmetrh))))) + +GEN_HEADERS+=$(cmetric_include_HEADERS:%=$(USER_INCLUDE_DIR)/%) + #OMK:config_h.omk@Makefile.rules.linux +# Syntax: $(call BUILD_CONFIG_H_template,,,,) +define BUILD_CONFIG_H_template + +$(addprefix $(1)/,$(notdir $(addsuffix .stamp,$(2)))) : $(CONFIG_FILES) + @$(QUIET_CMD_ECHO) " CONFGEN $(notdir $(2))" + @if [ ! -d `dirname $(2).tmp` ] ; then \ + mkdir -p `dirname $(2).tmp` ; fi + @echo "/* Automatically generated from */" > "$(2).tmp" + @echo "/* config files: $$(^:$(OUTPUT_DIR)/%=%) */" >> "$(2).tmp" + $(if $(DOXYGEN),@echo "/** @file */" >> "$(2).tmp") + @echo "#ifndef $(4)" >> "$(2).tmp" + @echo "#define $(4)" >> "$(2).tmp" + @( $(foreach x, $(shell echo '$($(3))' | tr 'x\t ' 'x\n\n' | $(SED4OMK) -e 's/^\([^ =]*\)\(=[^ ]\+\|\)$$/\1/' ), \ + echo '$(x).$($(x))' ; ) echo ; ) | \ + $(SED4OMK) -e '/^[^.]*\.n$$$$/d' -e '/^[^.]*\.$$$$/d' -e 's/^\([^.]*\)\.[ym]$$$$/\1.1/' | \ + $(SED4OMK) -n -e 's/^\([^.]*\)\.\(.*\)$$$$/#define \1 \2/p' \ + >> "$(2).tmp" + @echo "#endif /*$(4)*/" >> "$(2).tmp" + @touch "$$@" + @if cmp -s "$(2).tmp" "$(2)" ; then rm "$(2).tmp"; \ + else mv "$(2).tmp" "$(2)" ; \ + echo "Updated configuration $(2)" ; fi + +endef + +ifdef LOCAL_CONFIG_H + +# This must be declared after the default cflags are assigned! +# Override is used to override command line assignemnt. +override CFLAGS += -I $(USER_OBJS_DIR) +override kernel_INCLUDES += -I $(KERN_OBJS_DIR) +$(eval $(call BUILD_CONFIG_H_template,$(USER_OBJS_DIR),$(USER_OBJS_DIR)/$(LOCAL_CONFIG_H),default_CONFIG,_LOCAL_CONFIG_H) ) + +endif + +# Special rules for configuration exported headers + +#FIXME: The directory for headers should not be specified here. +$(foreach confh,$(config_include_HEADERS),$(eval $(call BUILD_CONFIG_H_template,$(USER_OBJS_DIR),$(addprefix $(USER_INCLUDE_DIR)/,$(confh)),$(basename $(notdir $(confh)))_DEFINES,\ +_$(basename $(notdir $(confh)))_H \ +))) + +config_h_stamp_files = $(addprefix $(USER_OBJS_DIR)/,$(notdir $(addsuffix .stamp,$(config_include_HEADERS) $(LOCAL_CONFIG_H)))) + +# Add some hooks to standard passes +include-pass-local: $(config_h_stamp_files) + +ifneq ($(KERN_CONFIG_HEADERS_REQUIRED),) + +ifdef LOCAL_CONFIG_H +$(eval $(call BUILD_CONFIG_H_template,$(KERN_OBJS_DIR),$(KERN_OBJS_DIR)/$(LOCAL_CONFIG_H),default_CONFIG,_LOCAL_CONFIG_H) ) +endif + +$(foreach confh,$(config_include_HEADERS),$(eval $(call BUILD_CONFIG_H_template,$(KERN_OBJS_DIR),$(addprefix $(KERN_INCLUDE_DIR)/,$(confh)),$(basename $(notdir $(confh)))_DEFINES,\ +_$(basename $(notdir $(confh)))_H \ +))) + +kern_config_h_stamp_files = $(addprefix $(KERN_OBJS_DIR)/,$(notdir $(addsuffix .stamp,$(config_include_HEADERS) $(LOCAL_CONFIG_H)))) + +# Add some hooks to standard passes +include-pass-local: $(kern_config_h_stamp_files) + +endif + +clean-local:: + @$(foreach confh,$(config_h_stamp_files) $(kern_config_h_stamp_files),\ + if [ -e $(confh) ] ; then rm $(confh) ; fi ; \ + ) + #OMK:qt.omk@Makefile.rules.linux +ifneq ($(QT_SUBDIRS)$(QT_PROJECTS),) + +# Usage: $(call qt_project_template,<.pro_file relative to SOURCES_DIR>) +define qt_project_template + +.PHONY: qt-subpass-$(1) clean-qt-$(dir $(1)) + +# FIXME: Handle multiple .pro files correctly +$(LOCAL_BUILD_DIR)/$(dir $(1))Makefile: $(SOURCES_DIR)/$(1) + $(Q)mkdir -p $$(dir $$(@)) && cd $$(dir $$(@)) && \ + $(if $(QMAKE),$(QMAKE),$(QTDIR:%=%/bin/)qmake) \ + TOP_DIR=$(OUTPUT_DIR) \ + RELATIVE_DIR=$(RELATIVE_PREFIX)$(dir $(1)) \ + $(QTDIR:%=QTDIR=%) CC=$(CC) CXX=$(CXX) \ + LIBS+="-L$(USER_LIB_DIR)" DESTDIR=$(USER_BIN_DIR) \ + INCLUDEPATH+="$(USER_INCLUDE_DIR)" \ + DEPENDPATH+="$(USER_INCLUDE_DIR)" \ + QMAKE_LFLAGS="-Wl,-rpath-link,$(USER_LIB_DIR) $$(QMAKE_LFLAGS)" \ + $(SOURCES_DIR)/$(1) + +# This horrible substitution is here to properly escape +# -Wl,-rpath,$ORIGIN flags. It includes escaping for make, shell, +# qmake and again make and shell run on qmake generated makefile. +QMAKE_LFLAGS = $$(subst $$$$,\\\\\\$$$$\$$$$,$$(LDFLAGS)) + +# Hook to binary pass +binary-pass-submakes: qt-subpass-$(1) +qt-subpass-$(1): $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile + $(Q)$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(dir $(1)) \ + RELATIVE_DIR=$(RELATIVE_PREFIX)$(dir $(1)) -C $(LOCAL_BUILD_DIR)/$(dir $(1)) || exit 1 ; + +# Hook to clean pass +clean-local:: $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile + @$(QUIET_CMD_ECHO) " QT CLEAN $(dir $(1))" + $(Q)$(MAKE) SOURCES_DIR=$(SOURCES_DIR)/$(dir $(1)) \ + RELATIVE_DIR=$(RELATIVE_PREFIX)$(dir $(1)) \ + -C $(LOCAL_BUILD_DIR)/$(dir $(1)) clean + $(Q)rm $(LOCAL_BUILD_DIR)/$(dir $(1))Makefile +endef + +$(foreach pro,$(QT_PROJECTS), $(eval $(call qt_project_template,$(pro)))) +$(foreach pro,$(foreach dir,$(QT_SUBDIRS), $(wildcard $(SOURCES_DIR)/$(dir)/*.pro)), $(eval $(call qt_project_template,$(pro:$(SOURCES_DIR)/%=%)))) + +endif + #OMK:sources-list.omk@Makefile.rules.linux +# Rules that creates the list of files which are used during +# compilation. The list reflects conditional compilation depending on +# config.omk and other variables. + +SOURCES_LIST_FN=sources.txt +ifndef SOURCES_LIST +SOURCES_LIST_DIR:=$(RELATIVE_DIR) +SOURCES_LIST:=$(OUTPUT_DIR)/$(SOURCES_LIST_DIR)/$(SOURCES_LIST_FN) +SOURCES_LIST_D := $(LOCAL_BUILD_DIR)/$(SOURCES_LIST_FN).d +export SOURCES_LIST SOURCES_LIST_DIR SOURCES_LIST_D +endif + +ifneq ($(filter sources-list TAGS tags cscope,$(MAKECMDGOALS)),) +NEED_SOURCES_LIST=y +endif + +ifeq ($(NEED_SOURCES_LIST),y) # avoid execution of find command bellow if it is not useful +.PHONY: sources-list +sources-list: $(SOURCES_LIST) + +$(SOURCES_LIST): $(CONFIG_FILES) $(shell find -name $(MAKEFILE_OMK)) + @$(call mkdir_def,$(dir $(SOURCES_LIST_D))) + @echo -n "" > "$(SOURCES_LIST).tmp" + @echo -n "" > "$(SOURCES_LIST_D).tmp" + @$(MAKE) --no-print-directory sources-list-pass + @echo "# Automatically generated list of files in '$(RELATIVE_DIR)' that are used during OMK compilation" > "$(SOURCES_LIST).tmp2" + @cat "$(SOURCES_LIST).tmp"|sort|uniq >> "$(SOURCES_LIST).tmp2" + @rm "$(SOURCES_LIST).tmp" + @mv "$(SOURCES_LIST).tmp2" "$(SOURCES_LIST)" + @echo "$(SOURCES_LIST): \\" > "$(SOURCES_LIST_D).tmp2" + @cat "$(SOURCES_LIST_D).tmp"|grep -v "$(SOURCES_LIST_D).tmp"|sort|uniq|\ + $(SED4OMK) -e 's/$$/\\/' >> "$(SOURCES_LIST_D).tmp2" + @rm "$(SOURCES_LIST_D).tmp" + @mv "$(SOURCES_LIST_D).tmp2" "$(SOURCES_LIST_D)" +endif + +$(eval $(call omk_pass_template,sources-list-pass,$$(LOCAL_BUILD_DIR),,always)) + +sources-list-pass-local: + @$(foreach m,$(MAKEFILE_LIST),echo ' $(m)' >> "$(SOURCES_LIST_D).tmp";) + @$(foreach h,$(include_HEADERS) $(nobase_include_HEADERS) $(kernel_HEADERS),\ + echo "$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))$(h)" >> "$(SOURCES_LIST).tmp";) + @$(foreach ch,$(config_include_HEADERS), \ + echo "$(USER_INCLUDE_DIR:$(OUTPUT_DIR)/$(addsuffix /,$(SOURCES_LIST_DIR))%=%)/$(ch)" >> "$(SOURCES_LIST).tmp";) + @$(foreach h,$(renamed_include_HEADERS),echo '$(h)'|$(SED4OMK) -e 's|\(.*\)->.*|$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))\1|' >> "$(SOURCES_LIST).tmp";) + @$(foreach bin,$(lib_LIBRARIES) $(shared_LIBRARIES) $(bin_PROGRAMS) $(test_PROGRAMS) $(utils_PROGRAMS) \ + $(kernel_LIBRARIES) $(rtlinux_LIBRARIES) $(kernel_MODULES),\ + $(foreach src,$(filter-out %.o,$($(bin)_SOURCES)),echo "$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))$(src)" >> "$(SOURCES_LIST).tmp";)) + +############ TAGS ########### + +ifeq ($(MAKECMDGOALS),TAGS) +ETAGS=etags +TAGS_CMD = $(ETAGS) +TAGS: $(SOURCES_LIST) + @$(MAKE) --no-print-directory do-tags +endif +ifeq ($(MAKECMDGOALS),tags) +CTAGS=ctags -N +TAGS_CMD = $(CTAGS) +tags: $(SOURCES_LIST) + @$(MAKE) --no-print-directory do-tags +endif +export TAGS_CMD + +ifeq ($(MAKECMDGOALS),do-tags) +.PHONY: do-tags +do-tags: $(shell $(SED4OMK) -e '/^\#/d' $(SOURCES_LIST)) + @$(QUIET_CMD_ECHO) " TAGS $(SOURCES_LIST_FN)" + $(Q)$(TAGS_CMD) $^ +endif + +############ CSCOPE ########### + +cscope: $(SOURCES_LIST) + @$(QUIET_CMD_ECHO) " CSCOPE < $(SOURCES_LIST_FN)" + $(Q)$(SED4OMK) -e '/^#/d' $(SOURCES_LIST) > cscope.files + $(Q)cscope -b -icscope.files +#FIXME: see doc to -i in cscope(1) diff --git a/petalinux/components/apps/latester/README b/petalinux/components/apps/latester/README new file mode 100644 index 0000000..493925c --- /dev/null +++ b/petalinux/components/apps/latester/README @@ -0,0 +1,47 @@ +PetaLinux User Application Template +=================================== + +This directory contains a PetaLinux user application created from a template. + +If you are developing your application from scratch, simply start editing the +file latester.c. + +You can easily import any existing application code by copying it into this +directory, and editing the automatically generated Makefile. + +Before building the application, you will need to enable the application +from PetaLinux menuconfig by running: + "petalinux-config -c rootfs" +You will see your application in the "Applications --->" submenu. + +To build your application, simply run "petlainux-build -c rootfs/latester". +This command will build your application and will install your application +into the target file system host copy. + +You will also need to rebuild PetaLinux bootable images so that the images +is updated with the updated target filesystem copy, run this command: + "petalinux-build -x package" + +You can also run one PetaLinux command to install the application to the +target filesystem host copy and update the bootable images as follows: + "petalinux-build" + +To add extra source code files (for example, to split a large application into +multiple source files), add the relevant .o files to the list in the local +Makefile where indicated. + +To have other files (for example application configuration files or scripts) +copied into the root file system, add addition lines under the "install:" +target in the Makefile. For example: + + $(TARGETINST) myfile.conf /etc + +Copy the file myfile.conf from this directory into the /etc directory +on the Embedded Linux filesystem). + +Another example: + (TARGETINST) -a "some text here" /etc/system.conf + +Add the line "some text here" to the /etc/system.conf file. + +See ${PETALINUX}/components/rootfs/targetroot-inst.sh for details and more options. diff --git a/petalinux/components/libs/talloc/Kconfig.7 b/petalinux/components/libs/talloc/Kconfig.7 new file mode 100644 index 0000000..aa1a059 --- /dev/null +++ b/petalinux/components/libs/talloc/Kconfig.7 @@ -0,0 +1,14 @@ +############################################################################### +# Please modify this file if you want to configure your own library. +# You can uncommon and/or change the following Kconfig elements. +############################################################################### + + +if ROOTFS_COMPONENT_LIBS_NAME_TALLOC + comment "No additional options for TALLOC" + +# config LIBS_TALLOC_OPTION0 +# bool "option0" +# help +# Help text +endif diff --git a/petalinux/components/libs/talloc/Makefile b/petalinux/components/libs/talloc/Makefile new file mode 100644 index 0000000..1e6f1b6 --- /dev/null +++ b/petalinux/components/libs/talloc/Makefile @@ -0,0 +1,48 @@ +ifndef PETALINUX +$(error "Error: PETALINUX environment variable not set. Change to the root of your PetaLinux install, and source the settings.sh file") +endif + +include libs.common.mk + +.PHONY: all build install clean help +all: build install +build: .installed +install: .merged + +VER := 2.1.6 +DIR := talloc-$(VER) +ARCHIVE := $(DIR).tar.gz +URL := https://www.samba.org/ftp/talloc/$(ARCHIVE) +L := libtalloc.so + +$(ARCHIVE): + wget -c $(URL) +.unpacked: | $(ARCHIVE) + tar xzf $(ARCHIVE) + touch .unpacked + +.configured: .unpacked + cd $(DIR) && python2 ./buildtools/bin/waf configure --prefix=$(STAGEDIR)/usr --cross-compile --cross-answers=../answers.txt --disable-python --hostcc=gcc --disable-rpath --bundled-libraries=NONE + touch .configured +.built: .configured + cd $(DIR) && python2 ./buildtools/bin/waf build + touch .built +.installed: .built + cd $(DIR) && python2 ./buildtools/bin/waf install + touch .installed + +.merged: .installed + for f in $(L).$(VER); do $(TARGETINST) -d $(STAGEDIR)/usr/lib/$$f /usr/lib/$$f; done + for f in $(L) $(L).2; do $(TARGETINST) -s $(L).$(VER) /usr/lib/$$f; done + +clean: + rm -rf $(DIR) + +help: + @echo "" + @echo "Quick reference for various supported build targets for $(INSTANCE)." + @echo "----------------------------------------------------" + @echo " clean clean out build objects" + @echo " all build $(INSTANCE) and install to rootfs host copy" + @echo " build build subsystem" + @echo " install install built objects to rootfs host copy" diff --git a/petalinux/components/libs/talloc/README b/petalinux/components/libs/talloc/README new file mode 100644 index 0000000..89ad0f9 --- /dev/null +++ b/petalinux/components/libs/talloc/README @@ -0,0 +1,46 @@ +PetaLinux User Library Template +=================================== + +This directory contains a PetaLinux user library created from a template. + +If you are developing your library from scratch, simply start editing the +file libtalloc.c. + +You can easily import any existing library code by copying it into this +directory, and editing the automatically generated Makefile as described below. + +Before building the library, you will need to enable the library from +PetaLinux menuconfig by running: + "petalinux-config -c rootfs" +You will see your library in the "Libraries --->" submenu. + +To build your library, simply run the "petlainux-build -c rootfs/libtalloc". +This command will build your library and will install your library into +the target file system host copy. + +You will also need to rebuild PetaLinux bootable images so that the images +is updated with the updated target filesystem copy, run this command: + "petalinux-build -x package" + +You can also run one PetaLinux command to compile the library, install it +to the target filesystem host copy and update the bootable images as follows: + "petalinux-build" + +To add extra source code files (for example, to split a large library into +multiple source files), add the relevant .o files to the list in the local +Makefile where indicated. + +To have other files (for example library configuration files or scripts) +copied into the root file system, add addition lines under the "install:" +target in the Makefile. For example + +$(TARGETINST) myfile.conf /etc + + Copy the file myfile.conf from this directory into the /etc directory + on the Embedded Linux filesystem) + +$(TARGETINST) -a "some text here" /etc/system.conf + + Add the line "some text here" to the /etc/system.conf file. + +See ${PETALINUX}/components/rootfs/targetroot-inst.sh for details and more options. diff --git a/petalinux/components/libs/talloc/answers.txt b/petalinux/components/libs/talloc/answers.txt new file mode 100644 index 0000000..e146fe9 --- /dev/null +++ b/petalinux/components/libs/talloc/answers.txt @@ -0,0 +1,21 @@ +Checking uname sysname type: "Linux" +Checking uname machine type: "arm" +Checking uname release type: "4.0.0-xilinx" +Checking uname version type: "#1 SMP PREEMPT Wed Mar 9 16:52:04 CET 2016" +Checking simple C program: OK +rpath library support: OK +-Wl,--version-script support: OK +Checking getconf LFS_CFLAGS: FAIL +Checking for large file support without additional flags: FAIL +Checking for -D_FILE_OFFSET_BITS=64: OK +Checking for -D_LARGE_FILES: OK +Checking correct behavior of strtoll: OK +Checking for working strptime: OK +Checking for C99 vsnprintf: OK +Checking for HAVE_SHARED_MMAP: OK +Checking for HAVE_MREMAP: OK +Checking for HAVE_INCOHERENT_MMAP: FAIL +Checking for HAVE_SECURE_MKSTEMP: OK +Checking for HAVE_IFACE_GETIFADDRS: OK +Checking for HAVE_IFACE_IFCONF: OK +Checking for HAVE_IFACE_IFREQ: OK diff --git a/petalinux/subsystems/linux/configs/rootfs/config b/petalinux/subsystems/linux/configs/rootfs/config index 54a1378..1f7202b 100644 --- a/petalinux/subsystems/linux/configs/rootfs/config +++ b/petalinux/subsystems/linux/configs/rootfs/config @@ -7,12 +7,28 @@ CONFIG_ARCH_ARM=y # # Filesystem Packages # -# CONFIG_ROOTFS_ADVANCED_MODE is not set +CONFIG_ROOTFS_ADVANCED_MODE=y CONFIG_ROOTFS_BASE_SYSTEM_DEFAULT=y CONFIG_ROOTFS_COMPONENT_PACKAGES__REPO_NAME_PLNX__REPO=y + +# +# base +# + +# +# base-files +# CONFIG_ROOTFS_PACKAGES_BASE_FILES=y + +# +# base-passwd +# CONFIG_ROOTFS_PACKAGES_BASE_PASSWD=y # CONFIG_ROOTFS_PACKAGES_BASE_PASSWD_UPDATE is not set + +# +# busybox +# CONFIG_ROOTFS_PACKAGES_BUSYBOX=y # CONFIG_ROOTFS_PACKAGES_BUSYBOX_HTTPD is not set # CONFIG_ROOTFS_PACKAGES_BUSYBOX_HWCLOCK is not set @@ -21,7 +37,15 @@ CONFIG_ROOTFS_PACKAGES_BUSYBOX_MDEV=y # CONFIG_ROOTFS_PACKAGES_BUSYBOX_SYSLOG is not set CONFIG_ROOTFS_PACKAGES_BUSYBOX_UDHCPC=y # CONFIG_ROOTFS_PACKAGES_BUSYBOX_UDHCPD is not set + +# +# cryptodev-linux +# # CONFIG_ROOTFS_PACKAGES_CRYPTODEV_LINUX is not set + +# +# e2fsprogs +# CONFIG_ROOTFS_PACKAGES_E2FSPROGS=y CONFIG_ROOTFS_PACKAGES_E2FSPROGS_BADBLOCKS=y CONFIG_ROOTFS_PACKAGES_E2FSPROGS_E2FSCK=y @@ -32,44 +56,102 @@ CONFIG_ROOTFS_PACKAGES_LIBCOM_ERR2=y CONFIG_ROOTFS_PACKAGES_LIBE2P2=y CONFIG_ROOTFS_PACKAGES_LIBEXT2FS2=y CONFIG_ROOTFS_PACKAGES_LIBSS2=y + +# +# external-xilinx-toolchain +# # CONFIG_ROOTFS_PACKAGES_CATCHSEGV is not set CONFIG_ROOTFS_PACKAGES_GDBSERVER=y +# CONFIG_ROOTFS_PACKAGES_GDBSERVER_DBG is not set # CONFIG_ROOTFS_PACKAGES_GLIBC_EXTRA_NSS is not set # CONFIG_ROOTFS_PACKAGES_LDD is not set +# CONFIG_ROOTFS_PACKAGES_LIBATOMIC_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBATOMIC_STATICDEV is not set # CONFIG_ROOTFS_PACKAGES_LIBATOMIC1 is not set CONFIG_ROOTFS_PACKAGES_LIBC6=y # CONFIG_ROOTFS_PACKAGES_LIBC6_PCPROFILE is not set # CONFIG_ROOTFS_PACKAGES_LIBC6_UTILS is not set # CONFIG_ROOTFS_PACKAGES_LIBCIDN1 is not set +# CONFIG_ROOTFS_PACKAGES_LIBGCC_S_DEV is not set CONFIG_ROOTFS_PACKAGES_LIBGCC_S1=y # CONFIG_ROOTFS_PACKAGES_LIBMEMUSAGE is not set # CONFIG_ROOTFS_PACKAGES_LIBSEGFAULT is not set # CONFIG_ROOTFS_PACKAGES_LIBSOTRUSS is not set +# CONFIG_ROOTFS_PACKAGES_LIBSTDCPLUSPLUS_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBSTDCPLUSPLUS_STATICDEV is not set # CONFIG_ROOTFS_PACKAGES_LIBSTDCPLUSPLUS6 is not set # CONFIG_ROOTFS_PACKAGES_LIBTHREAD_DB1 is not set # CONFIG_ROOTFS_PACKAGES_LINUX_LIBC_HEADERS is not set # CONFIG_ROOTFS_PACKAGES_NSCD is not set # CONFIG_ROOTFS_PACKAGES_SLN is not set # CONFIG_ROOTFS_PACKAGES_TZCODE is not set + +# +# i2c-tools +# # CONFIG_ROOTFS_PACKAGES_I2C_TOOLS is not set # CONFIG_ROOTFS_PACKAGES_I2C_TOOLS_MISC is not set + +# +# init-ifupdown +# CONFIG_ROOTFS_PACKAGES_INIT_IFUPDOWN=y + +# +# initscripts +# CONFIG_ROOTFS_PACKAGES_INITSCRIPTS=y CONFIG_ROOTFS_PACKAGES_INITSCRIPTS_FUNCTIONS=y + +# +# iproute2 +# CONFIG_ROOTFS_PACKAGES_IPROUTE2=y # CONFIG_ROOTFS_PACKAGES_IPROUTE2_TC is not set + +# +# iptables +# # CONFIG_ROOTFS_PACKAGES_IPTABLES is not set + +# +# kmod +# # CONFIG_ROOTFS_PACKAGES_KMOD is not set # CONFIG_ROOTFS_PACKAGES_KMOD_BASH_COMPLETION is not set # CONFIG_ROOTFS_PACKAGES_LIBKMOD2 is not set + +# +# libaio +# # CONFIG_ROOTFS_PACKAGES_LIBAIO1 is not set + +# +# libffi +# # CONFIG_ROOTFS_PACKAGES_LIBFFI6 is not set + +# +# m4 +# # CONFIG_ROOTFS_PACKAGES_M4 is not set + +# +# modutils-initscripts +# CONFIG_ROOTFS_PACKAGES_MODUTILS_INITSCRIPTS=y + +# +# mtd-utils +# CONFIG_ROOTFS_PACKAGES_MTD_UTILS=y # CONFIG_ROOTFS_PACKAGES_MTD_UTILS_JFFS2 is not set # CONFIG_ROOTFS_PACKAGES_MTD_UTILS_MISC is not set # CONFIG_ROOTFS_PACKAGES_MTD_UTILS_UBIFS is not set + +# +# net-snmp +# # CONFIG_ROOTFS_PACKAGES_LIBNETSNMP30 is not set # CONFIG_ROOTFS_PACKAGES_NET_SNMP is not set # CONFIG_ROOTFS_PACKAGES_NET_SNMP_CLIENT is not set @@ -77,19 +159,61 @@ CONFIG_ROOTFS_PACKAGES_MTD_UTILS=y # CONFIG_ROOTFS_PACKAGES_NET_SNMP_SERVER is not set # CONFIG_ROOTFS_PACKAGES_NET_SNMP_SERVER_SNMPD is not set # CONFIG_ROOTFS_PACKAGES_NET_SNMP_SERVER_SNMPTRAPD is not set + +# +# net-tools +# # CONFIG_ROOTFS_PACKAGES_NET_TOOLS is not set + +# +# netbase +# CONFIG_ROOTFS_PACKAGES_NETBASE=y + +# +# opkg-utils +# CONFIG_ROOTFS_PACKAGES_UPDATE_ALTERNATIVES_OPKG=y + +# +# sysfsutils +# +# CONFIG_ROOTFS_PACKAGES_LIBSYSFS_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBSYSFS_STATICDEV is not set # CONFIG_ROOTFS_PACKAGES_LIBSYSFS2 is not set # CONFIG_ROOTFS_PACKAGES_SYSFSUTILS is not set + +# +# sysvinit +# CONFIG_ROOTFS_PACKAGES_SYSVINIT=y CONFIG_ROOTFS_PACKAGES_SYSVINIT_PIDOF=y # CONFIG_ROOTFS_PACKAGES_SYSVINIT_SULOGIN is not set + +# +# sysvinit-inittab +# CONFIG_ROOTFS_PACKAGES_SYSVINIT_INITTAB=y + +# +# tcf-agent +# # CONFIG_ROOTFS_PACKAGES_TCF_AGENT is not set + +# +# update-rc.d +# CONFIG_ROOTFS_PACKAGES_UPDATE_RC_D=y + +# +# usbutils +# # CONFIG_ROOTFS_PACKAGES_USBUTILS is not set # CONFIG_ROOTFS_PACKAGES_USBUTILS_IDS is not set + +# +# util-linux +# CONFIG_ROOTFS_PACKAGES_LIBBLKID1=y CONFIG_ROOTFS_PACKAGES_LIBMOUNT1=y CONFIG_ROOTFS_PACKAGES_LIBSMARTCOLS1=y @@ -120,29 +244,297 @@ CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_SWAPONOFF=y CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_UMOUNT=y # CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_UUIDD is not set # CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_UUIDGEN is not set + +# +# base/shell +# + +# +# bash +# # CONFIG_ROOTFS_PACKAGES_BASH is not set + +# +# console/network +# + +# +# bridge-utils +# # CONFIG_ROOTFS_PACKAGES_BRIDGE_UTILS is not set + +# +# dropbear +# # CONFIG_ROOTFS_PACKAGES_DROPBEAR is not set # CONFIG_ROOTFS_PACKAGES_DROPBEAR_OPENSSH_SFTP_SERVER is not set + +# +# ethtool +# # CONFIG_ROOTFS_PACKAGES_ETHTOOL is not set + +# +# netcat +# # CONFIG_ROOTFS_PACKAGES_NETCAT is not set + +# +# openssh +# # CONFIG_ROOTFS_PACKAGES_OPENSSH_SFTP_SERVER is not set + +# +# portmap +# # CONFIG_ROOTFS_PACKAGES_PORTMAP is not set # CONFIG_ROOTFS_PACKAGES_PORTMAP_UTILS is not set + +# +# tcp-wrappers +# +# CONFIG_ROOTFS_PACKAGES_LIBWRAP_DEV is not set # CONFIG_ROOTFS_PACKAGES_LIBWRAP_DOC is not set +# CONFIG_ROOTFS_PACKAGES_LIBWRAP_STATICDEV is not set # CONFIG_ROOTFS_PACKAGES_LIBWRAP0 is not set # CONFIG_ROOTFS_PACKAGES_TCP_WRAPPERS is not set + +# +# tcpdump +# # CONFIG_ROOTFS_PACKAGES_TCPDUMP is not set + +# +# console/utils +# + +# +# bzip2 +# # CONFIG_ROOTFS_PACKAGES_BZIP2 is not set # CONFIG_ROOTFS_PACKAGES_LIBBZ2_0 is not set + +# +# pciutils +# +# CONFIG_ROOTFS_PACKAGES_LIBPCI_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBPCI_DEV is not set # CONFIG_ROOTFS_PACKAGES_LIBPCI3 is not set # CONFIG_ROOTFS_PACKAGES_PCIUTILS is not set # CONFIG_ROOTFS_PACKAGES_PCIUTILS_IDS is not set + +# +# strace +# CONFIG_ROOTFS_PACKAGES_STRACE=y + +# +# unzip +# # CONFIG_ROOTFS_PACKAGES_UNZIP is not set + +# +# devel +# + +# +# base-files +# +# CONFIG_ROOTFS_PACKAGES_BASE_FILES_DBG is not set +# CONFIG_ROOTFS_PACKAGES_BASE_FILES_DEV is not set + +# +# base-passwd +# +# CONFIG_ROOTFS_PACKAGES_BASE_PASSWD_DBG is not set +# CONFIG_ROOTFS_PACKAGES_BASE_PASSWD_DEV is not set + +# +# bash +# +# CONFIG_ROOTFS_PACKAGES_BASH_DBG is not set +# CONFIG_ROOTFS_PACKAGES_BASH_DEV is not set + +# +# bridge-utils +# +# CONFIG_ROOTFS_PACKAGES_BRIDGE_UTILS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_BRIDGE_UTILS_DEV is not set + +# +# busybox +# +# CONFIG_ROOTFS_PACKAGES_BUSYBOX_DBG is not set +# CONFIG_ROOTFS_PACKAGES_BUSYBOX_DEV is not set + +# +# bzip2 +# +# CONFIG_ROOTFS_PACKAGES_BZIP2_DBG is not set +# CONFIG_ROOTFS_PACKAGES_BZIP2_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBBZ2_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBBZ2_STATICDEV is not set + +# +# cryptodev-linux +# +# CONFIG_ROOTFS_PACKAGES_CRYPTODEV_LINUX_DBG is not set +# CONFIG_ROOTFS_PACKAGES_CRYPTODEV_LINUX_DEV is not set + +# +# db +# +# CONFIG_ROOTFS_PACKAGES_DB_DBG is not set +# CONFIG_ROOTFS_PACKAGES_DB_DEV is not set +# CONFIG_ROOTFS_PACKAGES_DB_STATICDEV is not set + +# +# dropbear +# +# CONFIG_ROOTFS_PACKAGES_DROPBEAR_DBG is not set +# CONFIG_ROOTFS_PACKAGES_DROPBEAR_DEV is not set + +# +# e2fsprogs +# +# CONFIG_ROOTFS_PACKAGES_E2FSPROGS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_E2FSPROGS_DEV is not set +# CONFIG_ROOTFS_PACKAGES_E2FSPROGS_STATICDEV is not set + +# +# ethtool +# +# CONFIG_ROOTFS_PACKAGES_ETHTOOL_DBG is not set +# CONFIG_ROOTFS_PACKAGES_ETHTOOL_DEV is not set + +# +# expat +# +# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_STATICDEV is not set + +# +# external-xilinx-toolchain +# +# CONFIG_ROOTFS_PACKAGES_LIBC6_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBC6_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBC6_STATICDEV is not set + +# +# flex +# # CONFIG_ROOTFS_PACKAGES_FLEX is not set +# CONFIG_ROOTFS_PACKAGES_FLEX_DBG is not set +# CONFIG_ROOTFS_PACKAGES_FLEX_DEV is not set +# CONFIG_ROOTFS_PACKAGES_FLEX_STATICDEV is not set + +# +# gdbm +# +# CONFIG_ROOTFS_PACKAGES_LIBGDBM_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBGDBM_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBGDBM_STATICDEV is not set + +# +# gettext +# +# CONFIG_ROOTFS_PACKAGES_GETTEXT_DBG is not set +# CONFIG_ROOTFS_PACKAGES_GETTEXT_DEV is not set +# CONFIG_ROOTFS_PACKAGES_GETTEXT_STATICDEV is not set + +# +# glib-2.0 +# +# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_DEV is not set + +# +# gmp +# +# CONFIG_ROOTFS_PACKAGES_LIBGMP_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBGMP_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBGMP_STATICDEV is not set # CONFIG_ROOTFS_PACKAGES_LIBGMP10 is not set # CONFIG_ROOTFS_PACKAGES_LIBGMPXX4 is not set + +# +# i2c-tools +# +# CONFIG_ROOTFS_PACKAGES_I2C_TOOLS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_I2C_TOOLS_DEV is not set + +# +# init-ifupdown +# +# CONFIG_ROOTFS_PACKAGES_INIT_IFUPDOWN_DBG is not set +# CONFIG_ROOTFS_PACKAGES_INIT_IFUPDOWN_DEV is not set + +# +# initscripts +# +# CONFIG_ROOTFS_PACKAGES_INITSCRIPTS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_INITSCRIPTS_DEV is not set + +# +# iproute2 +# +# CONFIG_ROOTFS_PACKAGES_IPROUTE2_DBG is not set +# CONFIG_ROOTFS_PACKAGES_IPROUTE2_DEV is not set + +# +# iptables +# +# CONFIG_ROOTFS_PACKAGES_IPTABLES_DBG is not set +# CONFIG_ROOTFS_PACKAGES_IPTABLES_DEV is not set + +# +# kmod +# +# CONFIG_ROOTFS_PACKAGES_KMOD_DBG is not set +# CONFIG_ROOTFS_PACKAGES_KMOD_DEV is not set + +# +# libaio +# +# CONFIG_ROOTFS_PACKAGES_LIBAIO_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBAIO_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBAIO_STATICDEV is not set + +# +# libffi +# +# CONFIG_ROOTFS_PACKAGES_LIBFFI_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBFFI_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBFFI_STATICDEV is not set + +# +# libnet +# +# CONFIG_ROOTFS_PACKAGES_LIBNET_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBNET_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBNET_STATICDEV is not set + +# +# libnl +# +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_STATICDEV is not set + +# +# libpcap +# +# CONFIG_ROOTFS_PACKAGES_LIBPCAP_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBPCAP_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBPCAP_STATICDEV is not set + +# +# libpcre +# +# CONFIG_ROOTFS_PACKAGES_LIBPCRE_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBPCRE_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBPCRE_STATICDEV is not set # CONFIG_ROOTFS_PACKAGES_LIBPCRE1 is not set # CONFIG_ROOTFS_PACKAGES_LIBPCRECPP0 is not set # CONFIG_ROOTFS_PACKAGES_LIBPCREPOSIX0 is not set @@ -150,8 +542,109 @@ CONFIG_ROOTFS_PACKAGES_STRACE=y # CONFIG_ROOTFS_PACKAGES_PCREGREP_DOC is not set # CONFIG_ROOTFS_PACKAGES_PCRETEST is not set # CONFIG_ROOTFS_PACKAGES_PCRETEST_DOC is not set + +# +# libpng +# +# CONFIG_ROOTFS_PACKAGES_LIBPNG16_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBPNG16_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBPNG16_STATICDEV is not set + +# +# libusb-compat +# +# CONFIG_ROOTFS_PACKAGES_LIBUSB_0_1_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBUSB_0_1_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBUSB_0_1_STATICDEV is not set + +# +# libusb1 +# +# CONFIG_ROOTFS_PACKAGES_LIBUSB_1_0_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBUSB_1_0_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBUSB_1_0_STATICDEV is not set + +# +# lzo +# +# CONFIG_ROOTFS_PACKAGES_LIBLZO2_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBLZO2_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBLZO2_STATICDEV is not set + +# +# m4 +# +# CONFIG_ROOTFS_PACKAGES_M4_DBG is not set +# CONFIG_ROOTFS_PACKAGES_M4_DEV is not set + +# +# modutils-initscripts +# +# CONFIG_ROOTFS_PACKAGES_MODUTILS_INITSCRIPTS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_MODUTILS_INITSCRIPTS_DEV is not set + +# +# mtd-utils +# +# CONFIG_ROOTFS_PACKAGES_MTD_UTILS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_MTD_UTILS_DEV is not set + +# +# ncurses +# +# CONFIG_ROOTFS_PACKAGES_NCURSES_DBG is not set +# CONFIG_ROOTFS_PACKAGES_NCURSES_DEV is not set +# CONFIG_ROOTFS_PACKAGES_NCURSES_STATICDEV is not set + +# +# net-snmp +# +# CONFIG_ROOTFS_PACKAGES_NET_SNMP_DBG is not set +# CONFIG_ROOTFS_PACKAGES_NET_SNMP_DEV is not set +# CONFIG_ROOTFS_PACKAGES_NET_SNMP_STATICDEV is not set + +# +# net-tools +# +# CONFIG_ROOTFS_PACKAGES_NET_TOOLS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_NET_TOOLS_DEV is not set + +# +# netbase +# +# CONFIG_ROOTFS_PACKAGES_NETBASE_DBG is not set +# CONFIG_ROOTFS_PACKAGES_NETBASE_DEV is not set + +# +# netcat +# +# CONFIG_ROOTFS_PACKAGES_NETCAT_DBG is not set +# CONFIG_ROOTFS_PACKAGES_NETCAT_DEV is not set + +# +# openssl +# +# CONFIG_ROOTFS_PACKAGES_OPENSSL_DBG is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL_DEV is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL_STATICDEV is not set + +# +# oprofile +# + +# +# pciutils +# +# CONFIG_ROOTFS_PACKAGES_PCIUTILS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_PCIUTILS_DEV is not set + +# +# perl +# # CONFIG_ROOTFS_PACKAGES_LIBPERL5 is not set # CONFIG_ROOTFS_PACKAGES_PERL is not set +# CONFIG_ROOTFS_PACKAGES_PERL_DBG is not set +# CONFIG_ROOTFS_PACKAGES_PERL_DEV is not set # CONFIG_ROOTFS_PACKAGES_PERL_MISC is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE__CHARNAMES is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_ANYDBM_FILE is not set @@ -222,6 +715,9 @@ CONFIG_ROOTFS_PACKAGES_STRACE=y # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DBM_FILTER_NULL is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DBM_FILTER_UTF8 is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DEPRECATE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DEVEL_PEEK is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DEVEL_PPPORT is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DEVEL_SELFSTUBBER is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DIAGNOSTICS is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DIGEST is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_DIGEST_BASE is not set @@ -604,374 +1100,166 @@ CONFIG_ROOTFS_PACKAGES_STRACE=y # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_EXECUTABLE is not set # CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_FILE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_HANDLE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_PERL is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_RAWTAP is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_YAMLISH_READER is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_YAMLISH_WRITER is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_ANSICOLOR is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_CAP is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_COMPLETE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_READLINE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER_MODULE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER_TESTER is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER_TESTER_COLOR is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_HARNESS is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_MORE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_SIMPLE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_ABBREV is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_BALANCED is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_PARSEWORDS is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_TABS is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_WRAP is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREAD is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREAD_QUEUE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREAD_SEMAPHORE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREADS is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREADS_SHARED is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_ARRAY is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_FILE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_HANDLE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_HASH is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_HASH_NAMEDCAPTURE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_MEMOIZE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_REFHASH is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_SCALAR is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_STDHANDLE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_SUBSTRHASH is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_GMTIME is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_HIRES is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_LOCAL is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_LOCALTIME is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_PIECE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_SECONDS is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_TM is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_BIG5 is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_GB2312 is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_JISX0208 is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_KOREAN is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_PINYIN is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_STROKE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_ZHUYIN is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_NORMALIZE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_UCD is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICORE is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNIVERSAL is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_USER_GRENT is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_USER_PWENT is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UTF8 is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UTF8_HEAVY is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VERSION is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VERSION_REGEX is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VERSION_VPP is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VMSISH is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_XSLOADER is not set -# CONFIG_ROOTFS_PACKAGES_PERL_MODULES is not set -# CONFIG_ROOTFS_PACKAGES_PERL_POD is not set -# CONFIG_ROOTFS_PACKAGES_BASE_FILES_DOC is not set -# CONFIG_ROOTFS_PACKAGES_BASE_PASSWD_DOC is not set -# CONFIG_ROOTFS_PACKAGES_BASH_DOC is not set -# CONFIG_ROOTFS_PACKAGES_BRIDGE_UTILS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_BZIP2_DOC is not set -# CONFIG_ROOTFS_PACKAGES_DB_DOC is not set -# CONFIG_ROOTFS_PACKAGES_E2FSPROGS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_ETHTOOL_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBC6_DOC is not set -# CONFIG_ROOTFS_PACKAGES_FLEX_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBGDBM_DOC is not set -# CONFIG_ROOTFS_PACKAGES_GETTEXT_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBGMP_DOC is not set -# CONFIG_ROOTFS_PACKAGES_I2C_TOOLS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_IPROUTE2_DOC is not set -# CONFIG_ROOTFS_PACKAGES_IPTABLES_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBFFI_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBNET_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_3_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBPCAP_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBPCRE_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBPNG16_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBLZO2_DOC is not set -# CONFIG_ROOTFS_PACKAGES_M4_DOC is not set -# CONFIG_ROOTFS_PACKAGES_MTD_UTILS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_NCURSES_DOC is not set -# CONFIG_ROOTFS_PACKAGES_NET_TOOLS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_NETBASE_DOC is not set -# CONFIG_ROOTFS_PACKAGES_NETCAT_DOC is not set -# CONFIG_ROOTFS_PACKAGES_OPENSSL_DOC is not set -# CONFIG_ROOTFS_PACKAGES_PCIUTILS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_PERL_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBPOPT_DOC is not set -# CONFIG_ROOTFS_PACKAGES_PORTMAP_DOC is not set -# CONFIG_ROOTFS_PACKAGES_STRACE_DOC is not set -# CONFIG_ROOTFS_PACKAGES_SYSFSUTILS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_SYSVINIT_DOC is not set -# CONFIG_ROOTFS_PACKAGES_TCP_WRAPPERS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_TCPDUMP_DOC is not set -# CONFIG_ROOTFS_PACKAGES_UNZIP_DOC is not set -# CONFIG_ROOTFS_PACKAGES_USBUTILS_DOC is not set -# CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBZ_DOC is not set -# CONFIG_ROOTFS_PACKAGES_DB is not set -# CONFIG_ROOTFS_PACKAGES_DB_BIN is not set -# CONFIG_ROOTFS_PACKAGES_DB_CXX is not set -# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_BIN is not set -# CONFIG_ROOTFS_PACKAGES_LIBEXPAT1 is not set -# CONFIG_ROOTFS_PACKAGES_LIBGDBM_BIN is not set -# CONFIG_ROOTFS_PACKAGES_LIBGDBM_COMPAT4 is not set -# CONFIG_ROOTFS_PACKAGES_LIBGDBM4 is not set -# CONFIG_ROOTFS_PACKAGES_GETTEXT is not set -# CONFIG_ROOTFS_PACKAGES_GETTEXT_RUNTIME is not set -# CONFIG_ROOTFS_PACKAGES_GETTEXT_RUNTIME_DOC is not set -# CONFIG_ROOTFS_PACKAGES_LIBGETTEXTLIB is not set -# CONFIG_ROOTFS_PACKAGES_LIBGETTEXTSRC is not set -# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_0 is not set -# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_BASH_COMPLETION is not set -# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_CODEGEN is not set -# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_UTILS is not set -# CONFIG_ROOTFS_PACKAGES_LIBNET9 is not set -# CONFIG_ROOTFS_PACKAGES_LIBPNG16_16 is not set -# CONFIG_ROOTFS_PACKAGES_LIBPNG16_TOOLS is not set -# CONFIG_ROOTFS_PACKAGES_LIBUSB_0_1_4 is not set -# CONFIG_ROOTFS_PACKAGES_LIBUSB_1_0_0 is not set -# CONFIG_ROOTFS_PACKAGES_LIBLZO2_2 is not set -# CONFIG_ROOTFS_PACKAGES_LIBFORM5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBFORMW5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBMENU5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBMENUW5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBNCURSES5 is not set -CONFIG_ROOTFS_PACKAGES_LIBNCURSESW5=y -# CONFIG_ROOTFS_PACKAGES_LIBPANEL5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBPANELW5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBTIC5 is not set -# CONFIG_ROOTFS_PACKAGES_LIBTICW5 is not set -CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y -# CONFIG_ROOTFS_PACKAGES_NCURSES is not set -# CONFIG_ROOTFS_PACKAGES_NCURSES_TERMINFO is not set -# CONFIG_ROOTFS_PACKAGES_NCURSES_TERMINFO_BASE is not set -# CONFIG_ROOTFS_PACKAGES_NCURSES_TOOLS is not set -# CONFIG_ROOTFS_PACKAGES_LIBPOPT0 is not set -# CONFIG_ROOTFS_PACKAGES_LIBZ1 is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_3_200 is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_3_CLI is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_3_GENL is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_IDIAG_3_200 is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_NF_3_200 is not set -# CONFIG_ROOTFS_PACKAGES_LIBNL_ROUTE_3_200 is not set -# CONFIG_ROOTFS_PACKAGES_LIBPCAP1 is not set -# CONFIG_ROOTFS_PACKAGES_LIBCRYPTO1_0_0 is not set -# CONFIG_ROOTFS_PACKAGES_LIBSSL1_0_0 is not set -# CONFIG_ROOTFS_PACKAGES_OPENSSL is not set -# CONFIG_ROOTFS_PACKAGES_OPENSSL_CONF is not set -# CONFIG_ROOTFS_PACKAGES_OPENSSL_ENGINES is not set -# CONFIG_ROOTFS_PACKAGES_OPENSSL_MISC is not set - -# -# base -# - -# -# base-files -# - -# -# base-passwd -# - -# -# busybox -# - -# -# cryptodev-linux -# - -# -# e2fsprogs -# - -# -# external-xilinx-toolchain -# - -# -# i2c-tools -# - -# -# init-ifupdown -# - -# -# initscripts -# - -# -# iproute2 -# - -# -# iptables -# - -# -# kmod -# - -# -# libaio -# - -# -# libffi -# - -# -# m4 -# - -# -# modutils-initscripts -# - -# -# mtd-utils -# +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_HANDLE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_PERL is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_SOURCEHANDLER_RAWTAP is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_YAMLISH_READER is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TAP_PARSER_YAMLISH_WRITER is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_ANSICOLOR is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_CAP is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_COMPLETE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TERM_READLINE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER_MODULE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER_TESTER is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_BUILDER_TESTER_COLOR is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_HARNESS is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_MORE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEST_SIMPLE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_ABBREV is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_BALANCED is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_PARSEWORDS is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_TABS is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TEXT_WRAP is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREAD is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREAD_QUEUE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREAD_SEMAPHORE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREADS is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_THREADS_SHARED is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_ARRAY is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_FILE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_HANDLE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_HASH is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_HASH_NAMEDCAPTURE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_MEMOIZE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_REFHASH is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_SCALAR is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_STDHANDLE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIE_SUBSTRHASH is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_GMTIME is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_HIRES is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_LOCAL is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_LOCALTIME is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_PIECE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_SECONDS is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_TIME_TM is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_BIG5 is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_GB2312 is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_JISX0208 is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_KOREAN is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_PINYIN is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_STROKE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_COLLATE_CJK_ZHUYIN is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_NORMALIZE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICODE_UCD is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNICORE is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UNIVERSAL is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_USER_GRENT is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_USER_PWENT is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UTF8 is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_UTF8_HEAVY is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VERSION is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VERSION_REGEX is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VERSION_VPP is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_VMSISH is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULE_XSLOADER is not set +# CONFIG_ROOTFS_PACKAGES_PERL_MODULES is not set +# CONFIG_ROOTFS_PACKAGES_PERL_POD is not set # -# net-snmp +# popt # +# CONFIG_ROOTFS_PACKAGES_LIBPOPT_DBG is not set +CONFIG_ROOTFS_PACKAGES_LIBPOPT_DEV=y +# CONFIG_ROOTFS_PACKAGES_LIBPOPT_STATICDEV is not set # -# net-tools +# portmap # +# CONFIG_ROOTFS_PACKAGES_PORTMAP_DBG is not set +# CONFIG_ROOTFS_PACKAGES_PORTMAP_DEV is not set # -# netbase +# run-postinsts # +# CONFIG_ROOTFS_PACKAGES_RUN_POSTINSTS is not set +# CONFIG_ROOTFS_PACKAGES_RUN_POSTINSTS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_RUN_POSTINSTS_DEV is not set # -# opkg-utils +# strace # +# CONFIG_ROOTFS_PACKAGES_STRACE_DBG is not set +# CONFIG_ROOTFS_PACKAGES_STRACE_DEV is not set # # sysfsutils # +# CONFIG_ROOTFS_PACKAGES_SYSFSUTILS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_SYSFSUTILS_DEV is not set # # sysvinit # +# CONFIG_ROOTFS_PACKAGES_SYSVINIT_DBG is not set +# CONFIG_ROOTFS_PACKAGES_SYSVINIT_DEV is not set # # sysvinit-inittab # +# CONFIG_ROOTFS_PACKAGES_SYSVINIT_INITTAB_DBG is not set +# CONFIG_ROOTFS_PACKAGES_SYSVINIT_INITTAB_DEV is not set # # tcf-agent # - -# -# update-rc.d -# - -# -# usbutils -# - -# -# util-linux -# - -# -# base/shell -# - -# -# bash -# - -# -# console/network -# - -# -# bridge-utils -# - -# -# dropbear -# - -# -# ethtool -# - -# -# netcat -# - -# -# openssh -# - -# -# portmap -# +# CONFIG_ROOTFS_PACKAGES_TCF_AGENT_DBG is not set +# CONFIG_ROOTFS_PACKAGES_TCF_AGENT_DEV is not set # # tcp-wrappers # +# CONFIG_ROOTFS_PACKAGES_TCP_WRAPPERS_DBG is not set # # tcpdump # - -# -# console/utils -# - -# -# bzip2 -# - -# -# pciutils -# - -# -# strace -# +# CONFIG_ROOTFS_PACKAGES_TCPDUMP_DBG is not set +# CONFIG_ROOTFS_PACKAGES_TCPDUMP_DEV is not set # # unzip # +# CONFIG_ROOTFS_PACKAGES_UNZIP_DBG is not set +# CONFIG_ROOTFS_PACKAGES_UNZIP_DEV is not set # -# devel -# - -# -# flex -# - -# -# gmp +# update-rc.d # +# CONFIG_ROOTFS_PACKAGES_UPDATE_RC_D_DBG is not set +# CONFIG_ROOTFS_PACKAGES_UPDATE_RC_D_DEV is not set # -# libpcre +# usbutils # +# CONFIG_ROOTFS_PACKAGES_USBUTILS_DBG is not set +# CONFIG_ROOTFS_PACKAGES_USBUTILS_DEV is not set # -# oprofile +# util-linux # +# CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_DBG is not set +# CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_DEV is not set +# CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_STATICDEV is not set # -# perl +# zlib # +# CONFIG_ROOTFS_PACKAGES_LIBZ_DBG is not set +# CONFIG_ROOTFS_PACKAGES_LIBZ_DEV is not set +# CONFIG_ROOTFS_PACKAGES_LIBZ_STATICDEV is not set # # doc @@ -980,126 +1268,157 @@ CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y # # base-files # +# CONFIG_ROOTFS_PACKAGES_BASE_FILES_DOC is not set # # base-passwd # +# CONFIG_ROOTFS_PACKAGES_BASE_PASSWD_DOC is not set # # bash # +# CONFIG_ROOTFS_PACKAGES_BASH_DOC is not set # # bridge-utils # +# CONFIG_ROOTFS_PACKAGES_BRIDGE_UTILS_DOC is not set # # bzip2 # +# CONFIG_ROOTFS_PACKAGES_BZIP2_DOC is not set # # db # +# CONFIG_ROOTFS_PACKAGES_DB_DOC is not set # # e2fsprogs # +# CONFIG_ROOTFS_PACKAGES_E2FSPROGS_DOC is not set # # ethtool # +# CONFIG_ROOTFS_PACKAGES_ETHTOOL_DOC is not set # # expat # +# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_DOC is not set # # external-xilinx-toolchain # +# CONFIG_ROOTFS_PACKAGES_LIBC6_DOC is not set # # flex # +# CONFIG_ROOTFS_PACKAGES_FLEX_DOC is not set # # gdbm # +# CONFIG_ROOTFS_PACKAGES_LIBGDBM_DOC is not set # # gettext # +# CONFIG_ROOTFS_PACKAGES_GETTEXT_DOC is not set # # gmp # +# CONFIG_ROOTFS_PACKAGES_LIBGMP_DOC is not set # # i2c-tools # +# CONFIG_ROOTFS_PACKAGES_I2C_TOOLS_DOC is not set # # iproute2 # +# CONFIG_ROOTFS_PACKAGES_IPROUTE2_DOC is not set # # iptables # +# CONFIG_ROOTFS_PACKAGES_IPTABLES_DOC is not set # # libffi # +# CONFIG_ROOTFS_PACKAGES_LIBFFI_DOC is not set # # libnet # +# CONFIG_ROOTFS_PACKAGES_LIBNET_DOC is not set # # libnl # +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_DOC is not set # # libpcap # +# CONFIG_ROOTFS_PACKAGES_LIBPCAP_DOC is not set # # libpcre # +# CONFIG_ROOTFS_PACKAGES_LIBPCRE_DOC is not set # # libpng # +# CONFIG_ROOTFS_PACKAGES_LIBPNG16_DOC is not set # # lzo # +# CONFIG_ROOTFS_PACKAGES_LIBLZO2_DOC is not set # # m4 # +# CONFIG_ROOTFS_PACKAGES_M4_DOC is not set # # mtd-utils # +# CONFIG_ROOTFS_PACKAGES_MTD_UTILS_DOC is not set # # ncurses # +# CONFIG_ROOTFS_PACKAGES_NCURSES_DOC is not set # # net-tools # +# CONFIG_ROOTFS_PACKAGES_NET_TOOLS_DOC is not set # # netbase # +# CONFIG_ROOTFS_PACKAGES_NETBASE_DOC is not set # # netcat # +# CONFIG_ROOTFS_PACKAGES_NETCAT_DOC is not set # # openssl # +# CONFIG_ROOTFS_PACKAGES_OPENSSL_DOC is not set # # oprofile @@ -1108,54 +1427,67 @@ CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y # # pciutils # +# CONFIG_ROOTFS_PACKAGES_PCIUTILS_DOC is not set # # perl # +# CONFIG_ROOTFS_PACKAGES_PERL_DOC is not set # # popt # +# CONFIG_ROOTFS_PACKAGES_LIBPOPT_DOC is not set # # portmap # +# CONFIG_ROOTFS_PACKAGES_PORTMAP_DOC is not set # # strace # +# CONFIG_ROOTFS_PACKAGES_STRACE_DOC is not set # # sysfsutils # +# CONFIG_ROOTFS_PACKAGES_SYSFSUTILS_DOC is not set # # sysvinit # +# CONFIG_ROOTFS_PACKAGES_SYSVINIT_DOC is not set # # tcp-wrappers # +# CONFIG_ROOTFS_PACKAGES_TCP_WRAPPERS_DOC is not set # # tcpdump # +# CONFIG_ROOTFS_PACKAGES_TCPDUMP_DOC is not set # # unzip # +# CONFIG_ROOTFS_PACKAGES_UNZIP_DOC is not set # # usbutils # +# CONFIG_ROOTFS_PACKAGES_USBUTILS_DOC is not set # # util-linux # +# CONFIG_ROOTFS_PACKAGES_UTIL_LINUX_DOC is not set # # zlib # +# CONFIG_ROOTFS_PACKAGES_LIBZ_DOC is not set # # libs @@ -1164,54 +1496,94 @@ CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y # # db # +# CONFIG_ROOTFS_PACKAGES_DB is not set +# CONFIG_ROOTFS_PACKAGES_DB_BIN is not set +# CONFIG_ROOTFS_PACKAGES_DB_CXX is not set # # expat # +# CONFIG_ROOTFS_PACKAGES_LIBEXPAT_BIN is not set +# CONFIG_ROOTFS_PACKAGES_LIBEXPAT1 is not set # # gdbm # +# CONFIG_ROOTFS_PACKAGES_LIBGDBM_BIN is not set +# CONFIG_ROOTFS_PACKAGES_LIBGDBM_COMPAT4 is not set +# CONFIG_ROOTFS_PACKAGES_LIBGDBM4 is not set # # gettext # +# CONFIG_ROOTFS_PACKAGES_GETTEXT is not set +# CONFIG_ROOTFS_PACKAGES_GETTEXT_RUNTIME is not set +# CONFIG_ROOTFS_PACKAGES_GETTEXT_RUNTIME_DOC is not set +# CONFIG_ROOTFS_PACKAGES_LIBGETTEXTLIB is not set +# CONFIG_ROOTFS_PACKAGES_LIBGETTEXTSRC is not set # # glib-2.0 # +# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_0 is not set +# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_BASH_COMPLETION is not set +# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_CODEGEN is not set +# CONFIG_ROOTFS_PACKAGES_LIBGLIB_2_0_UTILS is not set # # libnet # +# CONFIG_ROOTFS_PACKAGES_LIBNET9 is not set # # libpng # +# CONFIG_ROOTFS_PACKAGES_LIBPNG16_16 is not set +# CONFIG_ROOTFS_PACKAGES_LIBPNG16_TOOLS is not set # # libusb-compat # +# CONFIG_ROOTFS_PACKAGES_LIBUSB_0_1_4 is not set # # libusb1 # +# CONFIG_ROOTFS_PACKAGES_LIBUSB_1_0_0 is not set # # lzo # +# CONFIG_ROOTFS_PACKAGES_LIBLZO2_2 is not set # # ncurses # +# CONFIG_ROOTFS_PACKAGES_LIBFORM5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBFORMW5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBMENU5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBMENUW5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBNCURSES5 is not set +CONFIG_ROOTFS_PACKAGES_LIBNCURSESW5=y +# CONFIG_ROOTFS_PACKAGES_LIBPANEL5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBPANELW5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBTIC5 is not set +# CONFIG_ROOTFS_PACKAGES_LIBTICW5 is not set +CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y +# CONFIG_ROOTFS_PACKAGES_NCURSES is not set +# CONFIG_ROOTFS_PACKAGES_NCURSES_TERMINFO is not set +# CONFIG_ROOTFS_PACKAGES_NCURSES_TERMINFO_BASE is not set +# CONFIG_ROOTFS_PACKAGES_NCURSES_TOOLS is not set # # popt # +CONFIG_ROOTFS_PACKAGES_LIBPOPT0=y # # zlib # +# CONFIG_ROOTFS_PACKAGES_LIBZ1 is not set # # libs/network @@ -1220,14 +1592,28 @@ CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y # # libnl # +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_200 is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_CLI is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_3_GENL is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_IDIAG_3_200 is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_NF_3_200 is not set +# CONFIG_ROOTFS_PACKAGES_LIBNL_ROUTE_3_200 is not set # # libpcap # +# CONFIG_ROOTFS_PACKAGES_LIBPCAP1 is not set # # openssl # +# CONFIG_ROOTFS_PACKAGES_LIBCRYPTO1_0_0 is not set +# CONFIG_ROOTFS_PACKAGES_LIBSSL1_0_0 is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL_CONF is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL_ENGINES is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL_ENGINES_DBG is not set +# CONFIG_ROOTFS_PACKAGES_OPENSSL_MISC is not set # # x11/base @@ -1240,6 +1626,11 @@ CONFIG_ROOTFS_PACKAGES_LIBTINFO5=y # # Libs # +CONFIG_ROOTFS_COMPONENT_LIBS_NAME_TALLOC=y + +# +# No additional options for TALLOC +# # # Apps @@ -1252,6 +1643,11 @@ CONFIG_ROOTFS_COMPONENT_APPS_NAME_CANHWTSTAMP=y CONFIG_ROOTFS_COMPONENT_APPS_NAME_FWUPGRADE=y # CONFIG_ROOTFS_COMPONENT_APPS_NAME_GPIO__DEMO is not set # CONFIG_ROOTFS_COMPONENT_APPS_NAME_LATENCYSTAT is not set +CONFIG_ROOTFS_COMPONENT_APPS_NAME_LATESTER=y + +# +# No additional options for LATESTER +# CONFIG_ROOTFS_COMPONENT_APPS_NAME_PEEKPOKE=y #