mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 22:23:16 +00:00
36ae42b8ff
Fixes #221.
84 lines
2.6 KiB
Makefile
84 lines
2.6 KiB
Makefile
#
|
|
# \brief Download, unpack and patch OKLinux source code
|
|
# \author Stefan Kalkowski
|
|
# \date 2010-01-06
|
|
|
|
DOWNLOAD_DIR = download
|
|
CONTRIB_DIR = contrib
|
|
PATCH_FILE = patches/oklx_genode.patch
|
|
PATCH_UNIONFS = patches/unionfs.patch
|
|
|
|
VERBOSE ?= @
|
|
ECHO = @echo
|
|
OKLX_URL = http://wiki.ok-labs.com/downloads/release-2.1.1-patch.9
|
|
OKLX_VERSION = oklinux_2.6.23.24
|
|
OKLX_ARCHIVE = $(OKLX_VERSION).tar.gz
|
|
OKLX_CONTRIB = kernel-2.6.23-v2
|
|
|
|
#
|
|
# Utility to check if a tool is installed
|
|
#
|
|
check_tool = $(if $(shell which $(1)),,$(error Need to have '$(1)' installed.))
|
|
|
|
$(call check_tool,wget)
|
|
$(call check_tool,patch)
|
|
$(call check_tool,sed)
|
|
|
|
#
|
|
# Print help information by default
|
|
#
|
|
help:
|
|
$(ECHO)
|
|
$(ECHO) "Prepare the OKLinux repository"
|
|
$(ECHO)
|
|
$(ECHO) "--- available commands ---"
|
|
$(ECHO) "prepare - download and extract the OKLinux source code"
|
|
$(ECHO) "clean - clean everything except downloaded archives"
|
|
$(ECHO) "cleanall - clean everything including downloaded archives"
|
|
$(ECHO) "update-patch - updates patch to the original OKLinux code"
|
|
$(ECHO)
|
|
|
|
prepare: $(CONTRIB_DIR) message
|
|
|
|
$(CONTRIB_DIR): $(DOWNLOAD_DIR)/$(OKLX_ARCHIVE)
|
|
$(ECHO) "unpacking source code to '$(CONTRIB_DIR)/'"
|
|
$(VERBOSE)tar xzf $<
|
|
$(VERBOSE)mv $(OKLX_VERSION)/$(OKLX_CONTRIB) $@
|
|
$(VERBOSE)rm -rf $(OKLX_VERSION)
|
|
$(ECHO) "applying patches to '$(CONTRIB_DIR)/'"
|
|
$(VERBOSE)patch -p0 < $(PATCH_FILE)
|
|
$(VERBOSE)cd $(CONTRIB_DIR); patch --no-backup-if-mismatch -p1 < ../$(PATCH_UNIONFS)
|
|
|
|
$(DOWNLOAD_DIR)/$(OKLX_ARCHIVE):
|
|
$(ECHO) "downloading source code to '$(DOWNLOAD_DIR)/'"
|
|
$(VERBOSE)mkdir -p $(DOWNLOAD_DIR)
|
|
$(VERBOSE)wget -c $(OKLX_URL)/$(OKLX_ARCHIVE) -O $@
|
|
|
|
message:
|
|
$(ECHO)
|
|
$(ECHO) "Preparation completed!"
|
|
$(ECHO) "Now, go to your Genode build directory and type 'make oklinux'."
|
|
$(ECHO) "Hint: don't forget to put '$(shell pwd)' "
|
|
$(ECHO) " as a repository into your build.conf"
|
|
$(ECHO)
|
|
|
|
update-patch:
|
|
$(ECHO) "producing a new diff and save it to '$(PATCH_FILE)'"
|
|
$(VERBOSE)cd $(CONTRIB_DIR); patch --no-backup-if-mismatch -R -p1 < ../$(PATCH_UNIONFS)
|
|
$(VERBOSE)tar xzf $(DOWNLOAD_DIR)/$(OKLX_ARCHIVE)
|
|
$(VERBOSE)mv $(OKLX_VERSION)/$(OKLX_CONTRIB) .
|
|
$(VERBOSE)find $(CONTRIB_DIR) -name "*~" -delete
|
|
$(VERBOSE)LC_COLLATE=C diff -urNpB $(OKLX_CONTRIB) $(CONTRIB_DIR) \
|
|
| sed "s/\(^--- [^\t]*\).*/\\1/" \
|
|
| sed "s/\(^+++ [^\t]*\).*/\\1/" \
|
|
> $(PATCH_FILE) || true
|
|
$(VERBOSE)rm -rf $(OKLX_CONTRIB) $(OKLX_VERSION)
|
|
$(VERBOSE)cd $(CONTRIB_DIR); patch --no-backup-if-mismatch -p1 < ../$(PATCH_UNIONFS)
|
|
|
|
clean:
|
|
$(VERBOSE)rm -rf $(CONTRIB_DIR)
|
|
|
|
cleanall: clean
|
|
$(VERBOSE)rm -rf $(DOWNLOAD_DIR)
|
|
|