mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 06:57:51 +00:00
117 lines
3.3 KiB
Plaintext
117 lines
3.3 KiB
Plaintext
|
#!/usr/bin/make -f
|
||
|
#
|
||
|
# \brief Build rumpkernel based tools for use within the Genode OS Framework
|
||
|
# tool chain
|
||
|
# \author Josef Soentgen
|
||
|
# \date 2014-04-24
|
||
|
|
||
|
help:
|
||
|
$(ECHO)
|
||
|
$(ECHO) "Build rump tools for the Genode OS Framework tool chain"
|
||
|
$(ECHO)
|
||
|
$(ECHO) "--- available commands ---"
|
||
|
$(ECHO) "build - build rump tools"
|
||
|
$(ECHO) "clean - clean everything except contrib sources"
|
||
|
$(ECHO) "cleanall - clean everything including contrib sources"
|
||
|
$(ECHO) "install - copy rump tools to '$(INSTALL_LOCATION)'"
|
||
|
$(ECHO)
|
||
|
|
||
|
.PHONY: build help install
|
||
|
|
||
|
#
|
||
|
# Rump tool list
|
||
|
#
|
||
|
|
||
|
TOOLS = cat cgdconfig cp dd df disklabel fsck_ext2fs fsck_ffs \
|
||
|
fsck_msdos halt ln ls mkdir mount_ext2fs mount_ffs mv \
|
||
|
newfs newfs_ext2fs newfs_msdos rm rump_server umount \
|
||
|
vnconfig
|
||
|
|
||
|
#
|
||
|
# Source and install location
|
||
|
#
|
||
|
|
||
|
RUMPRUN_URL = https://github.com/cnuke/rumprun.git
|
||
|
INSTALL_LOCATION = /usr/local/genode-rump
|
||
|
CONTRIB_DIR = contrib/rumprun
|
||
|
BUILD_DIR = build/rumprun
|
||
|
TOOLS_LIST = $(addprefix $(BUILD_DIR)/bin/, $(TOOLS))
|
||
|
|
||
|
#
|
||
|
# Utilities
|
||
|
#
|
||
|
|
||
|
SHELL = bash
|
||
|
BRIGHT_COL = \033[01;33m
|
||
|
DEFAULT_COL = \033[0m
|
||
|
ECHO = @echo -e
|
||
|
VERBOSE = @
|
||
|
|
||
|
#
|
||
|
# Target rules
|
||
|
#
|
||
|
|
||
|
$(BUILD_DIR):
|
||
|
$(VERBOSE)mkdir -p $@
|
||
|
|
||
|
$(CONTRIB_DIR):
|
||
|
$(VERBOSE)mkdir -p $@
|
||
|
|
||
|
$(CONTRIB_DIR)/.checkout_sources.tag:
|
||
|
$(ECHO) "$(BRIGHT_COL)downloading rump sources...$(DEFAULT_COL)"
|
||
|
$(VERBOSE)git clone $(RUMPRUN_URL) $(CONTRIB_DIR) && \
|
||
|
cd $(CONTRIB_DIR) && git submodule update --init --recursive && \
|
||
|
./buildrump.sh/buildrump.sh -s rumpsrc checkout
|
||
|
@touch $@
|
||
|
|
||
|
$(CONTRIB_DIR)/.patch_sources.tag: $(CONTRIB_DIR)/.checkout_sources.tag
|
||
|
$(ECHO) "$(BRIGHT_COL)patching rump sources...$(DEFAULT_COL)"
|
||
|
$(VERBOSE)cd $(CONTRIB_DIR) && \
|
||
|
patch -N -d nbusersrc -p1 < updatesrc.sh.patch && \
|
||
|
patch -N -d buildrump.sh -p1 < buildrump.sh.patch && \
|
||
|
patch -N -d rumpsrc/usr.bin/rump_allserver -p0 < rump_allserver.c.patch
|
||
|
@touch $@
|
||
|
|
||
|
$(CONTRIB_DIR)/.prepare_sources.tag: $(CONTRIB_DIR)/.patch_sources.tag
|
||
|
$(ECHO) "$(BRIGHT_COL)preparing rump sources...$(DEFAULT_COL)"
|
||
|
$(VERBOSE)cd $(CONTRIB_DIR)/nbusersrc && \
|
||
|
sh updatesrc.sh && cd .. && mv nbusersrc nbusersrc_old && \
|
||
|
mv nbusersrc_old/newsrc nbusersrc && \
|
||
|
cp -Rp nbusersrc/* rumpsrc/
|
||
|
@touch $@
|
||
|
|
||
|
$(CONTRIB_DIR)/.compile.tag: $(CONTRIB_DIR)/.prepare_sources.tag
|
||
|
$(ECHO) "$(BRIGHT_COL)building rump tools...$(DEFAULT_COL)"
|
||
|
$(VERBOSE)cd $(CONTRIB_DIR) && \
|
||
|
./buildnb.sh && \
|
||
|
make
|
||
|
@touch $@
|
||
|
|
||
|
$(BUILD_DIR)/bin/rump_server: $(CONTRIB_DIR)/.compile.tag $(BUILD_DIR)
|
||
|
$(ECHO) "$(BRIGHT_COL)finished building rump tools.$(DEFAULT_COL)"
|
||
|
$(VERBOSE)cp -a $(CONTRIB_DIR)/rumpdyn/* $(BUILD_DIR) && \
|
||
|
cp -a $(CONTRIB_DIR)/bin $(BUILD_DIR)
|
||
|
@touch $@
|
||
|
|
||
|
build: $(CONTRIB_DIR) $(BUILD_DIR)/bin/rump_server
|
||
|
|
||
|
install: $(CONTRIB_DIR) $(BUILD_DIR)/bin/rump_server
|
||
|
$(ECHO) "$(BRIGHT_COL)installing rump tools to '$(INSTALL_LOCATION)'...$(DEFAULT_COL)"
|
||
|
$(VERBOSE)sudo mkdir -p $(INSTALL_LOCATION)/bin >/dev/null 2>&1 || true
|
||
|
$(VERBOSE)sudo mkdir -p $(INSTALL_LOCATION)/share/man >/dev/null 2>&1 || true
|
||
|
$(VERBOSE)sudo cp -a $(TOOLS_LIST) $(INSTALL_LOCATION)/bin
|
||
|
$(VERBOSE)sudo cp -a $(BUILD_DIR)/lib/ $(INSTALL_LOCATION)
|
||
|
$(VERBOSE)sudo cp -a $(BUILD_DIR)/share/man/man* $(INSTALL_LOCATION)/share/man
|
||
|
|
||
|
#
|
||
|
# Clean rules
|
||
|
#
|
||
|
|
||
|
clean:
|
||
|
$(VERBOSE)rm -rf $(BUILD_DIR)
|
||
|
$(VERBOSE)cd $(CONTRIB_DIR) && make cleanrump
|
||
|
|
||
|
cleanall: clean
|
||
|
$(VERBOSE)rm -rf $(CONTRIB_DIR)
|
||
|
|