]> xenbits.xensource.com Git - osstest/rumprun.git/commitdiff
Give app-tools its own Makefile instead of it being a .inc
authorAntti Kantee <pooka@iki.fi>
Thu, 15 Oct 2015 22:41:09 +0000 (22:41 +0000)
committerAntti Kantee <pooka@iki.fi>
Thu, 15 Oct 2015 23:12:26 +0000 (23:12 +0000)
This means that app-tools are now built directly by build-rr.sh
instead of being driven by platform/x/Makefile.

app-tools/Makefile [new file with mode: 0644]
app-tools/Makefile.app-tools [deleted file]
build-rr.sh
platform/Makefile.inc
platform/hw/Makefile
platform/xen/Makefile

diff --git a/app-tools/Makefile b/app-tools/Makefile
new file mode 100644 (file)
index 0000000..e0c1705
--- /dev/null
@@ -0,0 +1,84 @@
+ifeq ($(CONFIG),)
+$(error CONFIG missing)
+endif
+
+include ${CONFIG}
+ifeq (${BUILDRUMP_TOOLFLAGS},)
+$(error invalid config file ${CONFIG})
+endif
+include ${BUILDRUMP_TOOLFLAGS}
+
+APP_TOOLS_DIR:=                $(abspath .)
+
+APP_TOOL_FILES=                configure make gmake toolchain.cmake recipe.s
+APP_TOOL_COMPILERS=    cc c++
+
+APP_TOOL_SPECS=                specs-compile_or_ferment specs-stub
+
+APP_TOOL_PASSTHROUGH=  ar as cpp ld nm objcopy objdump ranlib readelf
+APP_TOOL_PASSTHROUGH+= size strings strip
+
+GNUPLATFORM:= $(shell ${RUMPMAKE} -f bsd.own.mk -V '$${RUMPRUN_TUPLE}')
+MACHINE_ARCH:= $(shell ${RUMPMAKE} -f bsd.own.mk -V '$${MACHINE_ARCH}')
+
+_CCVARIANT:=$(shell ${RUMPMAKE} -f bsd.own.mk -V '$${HAVE_LLVM:Dclang:Ugcc}')
+_CXXVARIANT:=$(shell ${RUMPMAKE} -f bsd.own.mk -V '$${HAVE_LLVM:Dclang++:Ug++}')
+
+include ../global.mk
+LDFLAGS_BAKE:= ${LDFLAGS.${PLATFORM}.${MACHINE_ARCH}}
+
+_APP_TOOL_TARGETS:=                                                    \
+    $(APP_TOOL_FILES:%=$(APP_TOOLS_DIR)/$(GNUPLATFORM)-%)              \
+    $(APP_TOOLS_DIR)/$(GNUPLATFORM)-$(_CCVARIANT)                      \
+    $(APP_TOOLS_DIR)/$(GNUPLATFORM)-$(_CXXVARIANT)                     \
+    $(APP_TOOL_SPECS:%=$(APP_TOOLS_DIR)/%)                             \
+    $(APP_TOOL_PASSTHROUGH:%=$(APP_TOOLS_DIR)/$(GNUPLATFORM)-%)                \
+    $(APP_TOOLS_DIR)/specs-bake-$(GNUPLATFORM)-$(PLATFORM)
+
+.PHONY: app-tools
+app-tools: $(_APP_TOOL_TARGETS)
+
+APP_TOOLS_MAKE := $(APP_TOOLS_DIR)/$(GNUPLATFORM)-make
+APP_TOOLS_CC := $(APP_TOOLS_DIR)/$(GNUPLATFORM)-${_CCVARIANT}
+APP_TOOLS_CXX := $(APP_TOOLS_DIR)/$(GNUPLATFORM)-${_CXXVARIANT}
+
+define APPTOOLS_templ
+$(APP_TOOLS_DIR)/${2}:                                                 \
+    $(APP_TOOLS_DIR)/${1} Makefile
+       sed <$$< >$$@.tmp                                               \
+               -e 's#!CC!#$(CC)#g;'                                    \
+               -e 's#!CXX!#$(CXX)#g;'                                  \
+               -e 's#!APPTOOLS_CC!#$(APP_TOOLS_CC)#g;'                 \
+               -e 's#!APPTOOLS_CXX!#$(APP_TOOLS_CXX)#g;'               \
+               -e 's#!MACHINE_ARCH!#$(MACHINE_ARCH)#g;'                \
+               -e 's#!GNUPLATFORM!#$(GNUPLATFORM)#g;'                  \
+               -e 's#!DESTDIR!#$(DESTDIR)#g;'                          \
+               -e 's#!APPTOOLS_DIR!#$(APP_TOOLS_DIR)#g;'               \
+               -e 's#!APPTOOLS_PLATFORM!#$(PLATFORM)#g;'       \
+               -e 's#!CPPFLAGS!#$(BUILDRUMP_TOOL_CPPFLAGS)#g;'         \
+               -e 's#!CFLAGS!#$(BUILDRUMP_TOOL_CFLAGS)#g;'             \
+               -e 's#!CXXFLAGS!#$(BUILDRUMP_TOOL_CXXFLAGS)#g;'         \
+               -e 's#!LDFLAGS_BAKE!#$(LDFLAGS_BAKE)#g;'
+       if test -x $$<; then chmod +x $$@.tmp; fi
+       mv -f $$@.tmp $$@
+endef
+$(foreach tool,${APP_TOOL_FILES},$(eval \
+    $(call APPTOOLS_templ,${tool}.in,$(GNUPLATFORM)-${tool})))
+$(foreach spec,${APP_TOOL_SPECS},$(eval \
+    $(call APPTOOLS_templ,${spec}.in,${spec})))
+$(eval $(call APPTOOLS_templ,cc.in,$(GNUPLATFORM)-${_CCVARIANT}))
+$(eval $(call APPTOOLS_templ,cc.in,$(GNUPLATFORM)-${_CXXVARIANT}))
+$(eval $(call APPTOOLS_templ,specs-bake.in,specs-bake-$(GNUPLATFORM)-$(PLATFORM)))
+
+define APPTOOLS_passthrough
+uptool_$1=$(shell echo $1 | tr '[:lower:]' '[:upper:]')
+toolval_$1=$${$${uptool_$1}}
+$(APP_TOOLS_DIR)/$(GNUPLATFORM)-$1:
+       printf '#!/bin/sh\n\nexec %s "$$$${@}"\n' $${toolval_${1}} >$$@.tmp
+       chmod +x $$@.tmp
+       mv -f $$@.tmp $$@
+endef
+$(foreach t,${APP_TOOL_PASSTHROUGH},$(eval $(call APPTOOLS_passthrough,${t})))
+
+clean:
+       rm -f $(_APP_TOOL_TARGETS)
diff --git a/app-tools/Makefile.app-tools b/app-tools/Makefile.app-tools
deleted file mode 100644 (file)
index 0e3fa43..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-_APPTOOLS_PARAMS=  APP_TOOLS_PLATFORM APP_TOOLS_DIR
-
-define varchk_tmpl
-ifeq ($${$1},)
-  _APPTOOLS_MISSING=$1
-endif
-endef
-$(foreach var,${_APPTOOLS_PARAMS},$(eval $(call varchk_tmpl,${var})))
-ifdef _APPTOOLS_MISSING
-$(error ${_APPTOOLS_MISSING} not defined)
-endif
-
-APP_TOOL_FILES=                configure make gmake toolchain.cmake recipe.s
-APP_TOOL_COMPILERS=    cc c++
-
-APP_TOOL_SPECS=                specs-compile_or_ferment specs-stub
-
-APP_TOOL_PASSTHROUGH=  ar as cpp ld nm objcopy objdump ranlib readelf
-APP_TOOL_PASSTHROUGH+= size strings strip
-
-GNUPLATFORM:= $(shell ${RUMPMAKE} -f bsd.own.mk -V '$${RUMPRUN_TUPLE}')
-MACHINE_ARCH:= $(shell ${RUMPMAKE} -f bsd.own.mk -V '$${MACHINE_ARCH}')
-
-_CCVARIANT:=$(shell ${RUMPMAKE} -f bsd.own.mk -V '$${HAVE_LLVM:Dclang:Ugcc}')
-_CXXVARIANT:=$(shell ${RUMPMAKE} -f bsd.own.mk -V '$${HAVE_LLVM:Dclang++:Ug++}')
-
-_APP_TOOL_TARGETS:=                                                    \
-    $(APP_TOOL_FILES:%=$(APP_TOOLS_DIR)/$(GNUPLATFORM)-%)              \
-    $(APP_TOOLS_DIR)/$(GNUPLATFORM)-$(_CCVARIANT)                      \
-    $(APP_TOOLS_DIR)/$(GNUPLATFORM)-$(_CXXVARIANT)                     \
-    $(APP_TOOL_SPECS:%=$(APP_TOOLS_DIR)/%)                             \
-    $(APP_TOOL_PASSTHROUGH:%=$(APP_TOOLS_DIR)/$(GNUPLATFORM)-%)                \
-    $(APP_TOOLS_DIR)/specs-bake-$(GNUPLATFORM)-$(APP_TOOLS_PLATFORM)
-
-.PHONY: app-tools
-app-tools: $(_APP_TOOL_TARGETS)
-
-APP_TOOLS_MAKE := $(APP_TOOLS_DIR)/$(GNUPLATFORM)-make
-APP_TOOLS_CC := $(APP_TOOLS_DIR)/$(GNUPLATFORM)-${_CCVARIANT}
-APP_TOOLS_CXX := $(APP_TOOLS_DIR)/$(GNUPLATFORM)-${_CXXVARIANT}
-
-define APPTOOLS_templ
-$(APP_TOOLS_DIR)/${2}:                                                 \
-    $(APP_TOOLS_DIR)/${1} Makefile
-       sed <$$< >$$@.tmp                                               \
-               -e 's#!CC!#$(CC)#g;'                                    \
-               -e 's#!CXX!#$(CXX)#g;'                                  \
-               -e 's#!APPTOOLS_CC!#$(APP_TOOLS_CC)#g;'                 \
-               -e 's#!APPTOOLS_CXX!#$(APP_TOOLS_CXX)#g;'               \
-               -e 's#!MACHINE_ARCH!#$(MACHINE_ARCH)#g;'                \
-               -e 's#!GNUPLATFORM!#$(GNUPLATFORM)#g;'                  \
-               -e 's#!DESTDIR!#$(DESTDIR)#g;'                          \
-               -e 's#!APPTOOLS_DIR!#$(APP_TOOLS_DIR)#g;'               \
-               -e 's#!APPTOOLS_PLATFORM!#$(APP_TOOLS_PLATFORM)#g;'     \
-               -e 's#!CPPFLAGS!#$(BUILDRUMP_TOOL_CPPFLAGS)#g;'         \
-               -e 's#!CFLAGS!#$(BUILDRUMP_TOOL_CFLAGS)#g;'             \
-               -e 's#!CXXFLAGS!#$(BUILDRUMP_TOOL_CXXFLAGS)#g;'         \
-               -e 's#!LDFLAGS_BAKE!#$(LDFLAGS_BAKE)#g;'
-       if test -x $$<; then chmod +x $$@.tmp; fi
-       mv -f $$@.tmp $$@
-endef
-$(foreach tool,${APP_TOOL_FILES},$(eval \
-    $(call APPTOOLS_templ,${tool}.in,$(GNUPLATFORM)-${tool})))
-$(foreach spec,${APP_TOOL_SPECS},$(eval \
-    $(call APPTOOLS_templ,${spec}.in,${spec})))
-$(eval $(call APPTOOLS_templ,cc.in,$(GNUPLATFORM)-${_CCVARIANT}))
-$(eval $(call APPTOOLS_templ,cc.in,$(GNUPLATFORM)-${_CXXVARIANT}))
-$(eval $(call APPTOOLS_templ,specs-bake.in,specs-bake-$(GNUPLATFORM)-$(APP_TOOLS_PLATFORM)))
-
-define APPTOOLS_passthrough
-uptool_$1=$(shell echo $1 | tr '[:lower:]' '[:upper:]')
-toolval_$1=$${$${uptool_$1}}
-$(APP_TOOLS_DIR)/$(GNUPLATFORM)-$1:
-       printf '#!/bin/sh\n\nexec %s "$$$${@}"\n' $${toolval_${1}} >$$@.tmp
-       chmod +x $$@.tmp
-       mv -f $$@.tmp $$@
-endef
-$(foreach t,${APP_TOOL_PASSTHROUGH},$(eval $(call APPTOOLS_passthrough,${t})))
-
-app-tools_clean:
-       rm -f $(_APP_TOOL_TARGETS)
index 92b4e392e7a54236a90efcc3141c7ebb59b0cf5c..08292574e998bed46c2fbe2605a4c174760a3474 100755 (executable)
@@ -315,6 +315,7 @@ EOF
 
 builduserspace ()
 {
+       ${MAKE} -C app-tools CONFIG=$(pwd)/${PLATFORMDIR}/config.mk
 
        usermtree ${STAGING}
 
index 45bfd3d3bb1f13772472e63c8c631b51d066a12a..355fd026c82b4fb78ea145ba04c2e936a61f026f 100644 (file)
@@ -34,7 +34,7 @@ platformlibs: ${COREDIR}/${PLATFORM}/libbmk_core.a ${RUMPUSERDIR}/${PLATFORM}/li
 compiler_rt: ${COMPILERRTDIR}/${PLATFORM}/libcompiler_rt.a
 
 .PHONY: buildtest
-buildtest: ../../tests/hello/hello.c ${MAINOBJ} commonlibs app-tools
+buildtest: ../../tests/hello/hello.c ${MAINOBJ} commonlibs
        ${APP_TOOLS_CC} -g -o $@ $< -lrumprun_tester
        @echo Testing baking ...
        @export RUMPRUN_WARNING_STFU=please ; for board in \
@@ -57,7 +57,7 @@ commonclean:
        rm -f bmk.ldscript
 
 .PHONY: tests
-tests: ${MAINOBJ} commonlibs app-tools
+tests: ${MAINOBJ} commonlibs
        ../../tests/buildtests.sh ${PLATFORM}
        ../../tests/runtests.sh ${PLATFORM_DEFAULT_TESTER}
 
index cd206677b0508d70aa291db375c6cece942f7e6b..164f42436817161af610ec2d8ab216c66f923ccb 100644 (file)
@@ -8,7 +8,7 @@ include ${BUILDRUMP_TOOLFLAGS}
 endif
 
 ifneq (${KERNONLY},true)
-TARGETS:= app-tools userlibs
+TARGETS:= userlibs
 else
 TARGETS:= compiler_rt
 endif
@@ -57,11 +57,6 @@ include arch/${ARCHDIR}/Makefile.inc
 
 .PHONY:        clean cleandir test
 
-APP_TOOLS_PLATFORM= hw
-APP_TOOLS_DIR:= $(abspath ../../app-tools)
-
-include ${APP_TOOLS_DIR}/Makefile.app-tools
-
 include/hw/machine:
        @ln -sf ../arch/${MACHINE_ARCH} include/hw/machine
 
@@ -77,7 +72,7 @@ ${MAINOBJ}: ${OBJS_BMK} platformlibs
        ${OBJCOPY} -w -G bmk_* -G rumpuser_* -G jsmn_* \
            -G rumprun_platform_rumpuser_init -G _start $@
 
-clean: app-tools_clean commonclean
+clean: commonclean
        rm -f ${OBJS_BMK} include/hw/machine buildtest ${MAINOBJ}
 
 cleandir: clean
index b998b4965037a068a9786f2933ae3f4468a9b1ba..90aaacef50992fd36185af81a308853dd0fc20db 100644 (file)
@@ -20,7 +20,7 @@ OBJ_DIR ?= $(CURDIR)/obj
 TARGETS= prepare links mini-os $(MAINOBJ)
 
 ifneq (${KERNONLY},true)
-TARGETS+= app-tools userlibs
+TARGETS+= userlibs
 else
 TARGETS+= compiler_rt
 endif
@@ -78,14 +78,9 @@ $(MAINOBJ): $(RUMP_OBJS) platformlibs
            -L${COREDIR}/xen -L${RUMPUSERDIR}/xen -Wl,--whole-archive \
            -lbmk_rumpuser -lbmk_core -Wl,--no-whole-archive
 
-APP_TOOLS_PLATFORM= xen
-APP_TOOLS_DIR= $(abspath ../../app-tools)
+.PHONY: clean arch_clean
 
-include $(APP_TOOLS_DIR)/Makefile.app-tools
-
-.PHONY: clean arch_clean app-tools_clean
-
-clean: app-tools_clean commonclean
+clean: commonclean
        $(MAKE) -C xen OBJ_DIR=$(OBJ_DIR)/xen clean
        rm -f $(OBJ_DIR)/*.o $(OBJ_DIR)/lib/*.o buildtest $(MAINOBJ)