diff --git a/repos/base-foc/Makefile b/repos/base-foc/Makefile index 4a790056e..ba10c4fab 100644 --- a/repos/base-foc/Makefile +++ b/repos/base-foc/Makefile @@ -1,90 +1 @@ -# -# \brief Checkout Fiasco.OC and addtional needed tools (sigma0, bootstrap) -# \author Stefan Kalkowski -# \author Sebastian Sumpf -# \date 2011-03-31 -# - -VERBOSE ?= @ -ECHO = @echo -SVN_URI = http://svn.tudos.org/repos/oc/tudos/trunk -GIT_URI = http://github.com/ssumpf/foc.git -GIT_BRANCH = r56 -CONTRIB_DIR = contrib -GNU_FIND ?= find - -SVN_TARGETS = tools/preprocess \ - kernel/fiasco \ - l4/conf \ - l4/doc \ - l4/mk \ - l4/tool \ - l4/pkg/bootstrap \ - l4/pkg/cxx \ - l4/pkg/drivers-frst \ - l4/pkg/l4sys \ - l4/pkg/l4util \ - l4/pkg/ldscripts \ - l4/pkg/libgcc-pure \ - l4/pkg/libgcc \ - l4/pkg/libsigma0 \ - l4/pkg/sigma0 \ - l4/pkg/uclibc-headers \ - l4/pkg/uclibc-minimal \ - l4/pkg/uclibc \ - l4/pkg/libvcpu - -# -# Utility to check if a tool is installed -# -check_tool = $(if $(shell which $(1)),,$(error Need to have '$(1)' installed.)) - -$(call check_tool,git) -$(call check_tool,svn) -$(call check_tool,$(GNU_FIND)) - -# -# Print help information by default -# -help:: - -$(CONTRIB_DIR)/.git: - $(VERBOSE)git clone $(GIT_URI) $(CONTRIB_DIR) - -prepare: $(CONTRIB_DIR)/.git - $(VERBOSE)cd $(CONTRIB_DIR); git fetch origin - $(VERBOSE)cd $(CONTRIB_DIR); git checkout $(GIT_BRANCH) - $(VERBOSE)cd $(CONTRIB_DIR); git rebase origin/$(GIT_BRANCH) - -$(SVN_REV)/%: - $(VERBOSE)svn co -r $(SVN_REV) $(SVN_URI)/$* $@ - -checkout_base: -ifeq ($(SVN_REV),) - $(error Syntax 'make checkout SVN_REV=') -endif - $(VERBOSE)svn export -r $(SVN_REV) $(SVN_URI)/l4/COPYING-GPL-2 $(SVN_REV) - $(VERBOSE)svn co -r $(SVN_REV) --depth immediates $(SVN_URI) $(SVN_REV) - $(VERBOSE)svn co -r $(SVN_REV) --depth files $(SVN_URI)/l4 $(SVN_REV)/l4 - $(VERBOSE)svn co -r $(SVN_REV) --depth files $(SVN_URI)/l4/pkg $(SVN_REV)/l4/pkg - -checkout: checkout_base $(addprefix $(SVN_REV)/,$(SVN_TARGETS)) - $(VERBOSE)$(GNU_FIND) $(SVN_REV) -depth -name .svn -type d -exec rm -r {} ";" - -help:: - $(ECHO) - $(ECHO) "Check out upstream source code of Fiasco.OC" - $(ECHO) - $(ECHO) "The source code will be located at the '$(CONTRIB_DIR)/' directory." - $(ECHO) - $(ECHO) "--- available commands ---" - $(ECHO) "prepare - checkout upstream source codes" - $(ECHO) "checkout SVN_REV= - checkout out revision of Fiasco.OC/L4RE from the official repositiry" - $(ECHO) " and store in directory " - $(ECHO) "clean - remove upstream source codes" - $(ECHO) - -clean:: - $(VERBOSE)rm -rf $(CONTRIB_DIR) - -.NOTPARALLEL: +include ../../tool/prepare.mk diff --git a/repos/base-foc/lib/mk/platform.inc b/repos/base-foc/lib/mk/platform.inc index 9c5da6e1f..f70d84d7c 100644 --- a/repos/base-foc/lib/mk/platform.inc +++ b/repos/base-foc/lib/mk/platform.inc @@ -26,23 +26,7 @@ $(BUILD_BASE_DIR)/include/%: $(VERBOSE)mkdir -p $(dir $@) $(VERBOSE)ln -sf $(L4_BUILD_DIR)/include/$* $@ -# -# Sanity checks -# -ifeq ($(L4_BUILD_DIR),$(BUILD_BASE_DIR)/l4) -ifeq ($(L4_CONFIG),) -all: $(REP_DIR)/contrib l4_config_not_defined -l4_config_not_defined: - $(VERBOSE)$(ECHO) "Error: L4_CONFIG is not defined, platform not supported" - @false -endif -endif - -$(REP_DIR)/contrib: - $(VERBOSE)$(ECHO) "--> Please, execute 'make prepare' in $(REP_DIR)" - $(VERBOSE)$(ECHO) "--> before compiling Genode apps for Fiasco.OC." - $(VERBOSE)$(ECHO) "--> Run 'make cleanall' before next compilation." - $(VERBOSE)exit 1 +FOC_CONTRIB_DIR := $(call select_from_ports,foc)/src/kernel/foc # # Create L4 build directory @@ -50,8 +34,8 @@ $(REP_DIR)/contrib: # Resetting the 'MAKEFLAGS' is important because otherwise, the L4 # build system will stuble over predefined variables, i.e., 'LIB' # -$(BUILD_BASE_DIR)/l4/.kconfig: $(REP_DIR)/contrib - $(VERBOSE_MK) MAKEFLAGS= $(MAKE) $(VERBOSE_DIR) -C $(REP_DIR)/contrib/l4 B=$(dir $@) \ +$(BUILD_BASE_DIR)/l4/.kconfig: + $(VERBOSE_MK) MAKEFLAGS= $(MAKE) $(VERBOSE_DIR) -C $(FOC_CONTRIB_DIR)/l4 B=$(dir $@) \ DROPSCONF_DEFCONFIG="$(L4_CONFIG)" \ VERBOSE="$(VERBOSE)" SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" diff --git a/repos/base-foc/mk/l4_pkg.mk b/repos/base-foc/mk/l4_pkg.mk index 07e4d55da..7979db774 100644 --- a/repos/base-foc/mk/l4_pkg.mk +++ b/repos/base-foc/mk/l4_pkg.mk @@ -30,7 +30,7 @@ endif L4_BUILD_DIR = $(BUILD_BASE_DIR)/l4 L4_BUILD_OPT = SYSTEM_TARGET=$(CROSS_DEV_PREFIX) -L4_PKG_DIR = $(REP_DIR)/contrib/l4/pkg +L4_PKG_DIR := $(call select_from_ports,foc)/src/kernel/foc/l4/pkg STARTUP_LIB = PKG_TAGS = $(addsuffix .tag,$(PKGS)) diff --git a/repos/base-foc/ports/foc.hash b/repos/base-foc/ports/foc.hash new file mode 100644 index 000000000..2995a4d0e --- /dev/null +++ b/repos/base-foc/ports/foc.hash @@ -0,0 +1 @@ +dummy \ No newline at end of file diff --git a/repos/base-foc/ports/foc.port b/repos/base-foc/ports/foc.port new file mode 100644 index 000000000..b042828d0 --- /dev/null +++ b/repos/base-foc/ports/foc.port @@ -0,0 +1,6 @@ +LICENSE := GPLv2 +VERSION := git +DOWNLOADS := foc.git +URL(foc) := http://github.com/ssumpf/foc.git +REV(foc) := 7cd187003db06c842b11c9f46f0a0753ed677203 +DIR(foc) := src/kernel/foc diff --git a/repos/base-foc/src/kernel/arndale/target.mk b/repos/base-foc/src/kernel/arndale/target.mk index 0765b8cec..0b4d0a210 100644 --- a/repos/base-foc/src/kernel/arndale/target.mk +++ b/repos/base-foc/src/kernel/arndale/target.mk @@ -1,5 +1,5 @@ -REQUIRES = platform_arndale -FIASCO_DIR = $(REP_DIR)/contrib/kernel/fiasco -KERNEL_CONFIG = $(REP_DIR)/config/arndale.kernel +REQUIRES = platform_arndale +FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco +KERNEL_CONFIG = $(REP_DIR)/config/arndale.kernel -include $(PRG_DIR)/../target.inc diff --git a/repos/base-foc/src/kernel/panda/target.mk b/repos/base-foc/src/kernel/panda/target.mk index 69e51b5bd..4073bc98c 100644 --- a/repos/base-foc/src/kernel/panda/target.mk +++ b/repos/base-foc/src/kernel/panda/target.mk @@ -1,5 +1,5 @@ -REQUIRES = platform_panda -FIASCO_DIR = $(REP_DIR)/contrib/kernel/fiasco -KERNEL_CONFIG = $(REP_DIR)/config/panda.kernel +REQUIRES = platform_panda +FIASCO_DIR := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco +KERNEL_CONFIG = $(REP_DIR)/config/panda.kernel -include $(PRG_DIR)/../target.inc diff --git a/repos/base-foc/src/kernel/target.inc b/repos/base-foc/src/kernel/target.inc index edffb9ba9..ecd1d4dfc 100644 --- a/repos/base-foc/src/kernel/target.inc +++ b/repos/base-foc/src/kernel/target.inc @@ -2,7 +2,7 @@ TARGET = fiasco.oc REQUIRES += foc FOC_BUILD_DIR = $(BUILD_BASE_DIR)/kernel/$(TARGET) FIASCO = $(FOC_BUILD_DIR)/fiasco -FIASCO_SRC = $(REP_DIR)/contrib/kernel/fiasco +FIASCO_SRC := $(call select_from_ports,foc)/src/kernel/foc/kernel/fiasco STARTUP_LIB = $(TARGET): $(FIASCO)