BRLIBEXECINST:= ${INSTALLDIR}/libexec/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}/
BRLIBEXECDEST:= ${RRDEST}/libexec/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}/
+INSTALLDIR_ARCH:= ${INSTALLDIR}/rumprun-${MACHINE_GNU_ARCH}
+
ARCHDIR:= rumprun-${MACHINE_GNU_ARCH}
MACHDIR:= rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}
${INSTALLDIR}/etc:
mkdir -p $@
+${INSTALLDIR_ARCH}/share:
+ mkdir -p $@
+
install-buildrumpwrappers: ${BRLIBEXECINST} ${BRTOOLS}
install -m 0755 ${BRTOOLS} ${CC} ${CXX} ${BRLIBEXECINST}
install -m 0755 ${BRSOURCEDIR}/brprintmetainfo ${BRLIBEXECINST}
ln -f ${INSTALLDIR}/bin/rumprun-bake ${INSTALLDIR}/bin/rumpbake
install-files: ${GENS.files} ${GENS.archspecs} ${GENS.machspecs} \
- ${INSTALLDIR}/etc
- install -m 0644 ${GENS.files} ${INSTALLDIR}/share
- install -m 0644 ${GENS.archspecs} ${INSTALLDIR}/lib/${ARCHDIR}
- install -m 0644 ${GENS.machspecs} ${INSTALLDIR}/lib/${MACHDIR}
+ ${INSTALLDIR}/etc ${INSTALLDIR_ARCH}/share
+ install -m 0644 ${GENS.files} ${INSTALLDIR_ARCH}/share
+ install -m 0644 ${GENS.archspecs} ${INSTALLDIR_ARCH}/lib
+ install -m 0644 ${GENS.machspecs} ${INSTALLDIR_ARCH}/lib/rumprun-${PLATFORM}
install -m 0644 rumprun-bake.conf ${INSTALLDIR}/etc
install: install-buildrumpwrappers install-bins install-files
case ${MODE} in
compile)
exec ${CC} ${CFLAGS} -no-integrated-cpp \
- -specs=!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!/specs-compile_or_ferment \
+ -specs=!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/specs-compile_or_ferment \
"$@" ${EXTRALIBS}
;;
ferment)
# with no rump components. '-u main' is necessary to pull in main if the
# user is linking it in from a library.
${CC} ${CFLAGS} -no-integrated-cpp \
- -specs=!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!/specs-compile_or_ferment \
+ -specs=!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/specs-compile_or_ferment \
-Wl,-r -Wl,-u,main \
- "$@" !DESTDIR!/share/!TOOLTUPLE!-recipe.s ${EXTRALIBS} || die
+ "$@" !DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/share/!TOOLTUPLE!-recipe.s ${EXTRALIBS} || die
# If the presumed output file did not change, and the compiler
# did not flag an error, assume this is a command which does not
# Try a stub link with minimal rump components. If that fails then stop.
${CC} ${CFLAGS} -no-integrated-cpp \
- -specs=!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!/specs-stub \
+ -specs=!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/specs-stub \
${OUTFILE} -o /dev/null
if [ $? -ne 0 ]; then
if [ "${RUMPRUN_STUBLINK}" = "succeed" ]; then
# Final link using cc to produce the unikernel image.
${runcmd} ${RUMPBAKE_BACKINGCC} ${RUMPBAKE_CFLAGS} \
- -specs=${RUMPBAKE_TOOLDIR}/lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}/specs-bake \
+ -specs=${RUMPBAKE_TOOLDIR}/rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM}/specs-bake \
-o ${OUTPUT} ${allobjs} \
-Wl,--whole-archive ${LIBS} || exit 1
*startfile:
-!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!-!PLATFORM!/rumprun.o
+!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/rumprun-!PLATFORM!/rumprun.o
*endfile:
*lib:
-!LDFLAGS_BAKE! -L!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!-!PLATFORM! \
+!LDFLAGS_BAKE! -L!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/rumprun-!PLATFORM! \
--whole-archive -lrump --no-whole-archive \
--start-group -lrumprun_base -lpthread -lc --end-group
*link:
-%{m64:-m elf_x86_64;mx32:-m elf32_x86_64;m32:-m elf_i386} -T !DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!-!PLATFORM!.ldscript %:replace-outfile(-lstdc++ -lc++) %{rdynamic:}
+%{m64:-m elf_x86_64;mx32:-m elf32_x86_64;m32:-m elf_i386} -T !DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/!PLATFORM!.ldscript %:replace-outfile(-lstdc++ -lc++) %{rdynamic:}
%rename link_libgcc old_link_libgcc
%rename cpp_options old_cpp_options
*cpp_options:
--nostdinc -isystem !DESTDIR!/include/rumprun %{,c++:%{!std=*:-std=c++11}} %{,c++:-isystem !DESTDIR!/include/rumprun/c++} %(old_cpp_options) !CPPFLAGS! -D__RUMPRUN__
+-nostdinc -isystem !DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/include %{,c++:%{!std=*:-std=c++11}} %{,c++:-isystem !DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/include/c++} %(old_cpp_options) !CPPFLAGS! -D__RUMPRUN__
%rename cc1_options old_cc1_options
*lib:
--L!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!
+-L!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib
*link:
%{m64:-m elf_x86_64;mx32:-m elf32_x86_64;m32:-m elf_i386} %:remove-outfile(-lstdc++) %{rdynamic:}
*lib:
--L!DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH! \
- --start-group -lpthread -lc --end-group \
- !DESTDIR!/lib/rumprun-!MACHINE_GNU_ARCH!/pseudolinkstubs.o
+-L!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib \
+ --start-group -lpthread -lc --end-group \
+ !DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/lib/pseudolinkstubs.o
*link:
%{m64:-m elf_x86_64;mx32:-m elf32_x86_64;m32:-m elf_i386} %:replace-outfile(-lstdc++ -lc++) %{rdynamic:}
. ${PLATFORMDIR}/platform.conf
buildrump "$@"
- mkdir -p ${STAGING}/lib/rumprun-${MACHINE_GNU_ARCH} \
- || die cannot create libdir
- mkdir -p ${STAGING}/lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM} \
+ mkdir -p ${STAGING}/rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM}\
|| die cannot create libdir
${MAKE} -C ${PLATFORMDIR} links
# remove in a few months.
rm -f ${RRDEST} > /dev/null 2>&1 || true
- mkdir -p ${RRDEST}/include/rumprun \
+ mkdir -p ${RRDEST}/rumprun-${MACHINE_GNU_ARCH}/include \
|| die cannot create ${RRDEST}/include/rumprun
# copy everything except include
cd ${STAGING}
rm -rf lib/pkgconfig
find lib -maxdepth 1 -name librump\*.a \
- -exec mv -f '{}' lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}/ \;
+ -exec mv -f '{}' rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM}/ \;
find lib -maxdepth 1 -name \*.a \
- -exec mv -f '{}' lib/rumprun-${MACHINE_GNU_ARCH}/ \;
+ -exec mv -f '{}' rumprun-${MACHINE_GNU_ARCH}/lib/ \;
# make sure special cases are visible everywhere
for x in c pthread ; do
- rm -f lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}/lib${x}.a
- ln -s ../rumprun-${MACHINE_GNU_ARCH}/lib${x}.a \
- lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}/lib${x}.a
+ rm -f rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM}/lib${x}.a
+ ln -s ../lib${x}.a \
+ rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM}/lib${x}.a
done
find . -maxdepth 1 \! -path . \! -path ./include\* \
| xargs tar -cf -
# copy include to destdir/include/rumprun
( cd ${STAGING}/include ; tar -cf - . ) \
- | ( cd ${RRDEST}/include/rumprun ; tar -xf - )
+ | ( cd ${RRDEST}/rumprun-${MACHINE_GNU_ARCH}/include ; tar -xf - )
}
#
COMMONDIR:= $(abspath ../)
-INSTALLDIR_LIBARCH:= ${INSTALLDIR}/lib/rumprun-${MACHINE_GNU_ARCH}
-INSTALLDIR_LIBPLAT:= ${INSTALLDIR}/lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}
+INSTALLDIR_LIBARCH:= ${INSTALLDIR}/rumprun-${MACHINE_GNU_ARCH}/lib
+INSTALLDIR_LIBPLAT:= ${INSTALLDIR}/rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM}
define BUILDLIB_target
.PHONY: $${RROBJLIB}/${1}/${1}.a
.PHONY: installkern
installkern:
install -m 0444 ${MAINOBJ} ${INSTALLDIR_LIBPLAT}
- install -m 0444 ${LDSCRIPT} ${INSTALLDIR}/lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM}.ldscript
+ install -m 0444 ${LDSCRIPT} ${INSTALLDIR}/rumprun-${MACHINE_GNU_ARCH}/lib/${PLATFORM}.ldscript
.PHONY: installuser
installuser:
(
mkdir -p cmake/build
cd cmake/build
- cmake -DCMAKE_TOOLCHAIN_FILE=${RRDEST}/share/${TOOLTUPLE}-toolchain.cmake ..
+ cmake -DCMAKE_TOOLCHAIN_FILE=${RRDEST}/rumprun-${MACHINE_GNU_ARCH}/share/${TOOLTUPLE}-toolchain.cmake ..
make
)
fi
CFLAGS+= ${BUILDRUMP_TOOL_CFLAGS}
-LDFLAGS:= -L$(abspath ../../rumprun/lib/rumprun-${MACHINE_GNU_ARCH}-${PLATFORM})
+LDFLAGS:= -L$(abspath ../../rumprun/rumprun-${MACHINE_GNU_ARCH}/lib/rumprun-${PLATFORM})
LDFLAGS+= -L${RROBJ}/lib/libcompiler_rt
-CPPFLAGS+= -I../../include -I../../rumprun/include/rumprun
+CPPFLAGS+= -I../../include -I../../rumprun/rumprun-${MACHINE_GNU_ARCH}/include
CPPFLAGS+= -I../../platform/${PLATFORM}/include
LDSCRIPT= ${RROBJ}/bmk.ldscript