mirror of
https://github.com/hermitcore/libhermit.git
synced 2025-03-09 00:00:03 +01:00
revise the build process, download required repos on demand
This commit is contained in:
parent
a665d1f78e
commit
92e5a04d6b
9 changed files with 91 additions and 55 deletions
46
Makefile.in
46
Makefile.in
|
@ -9,16 +9,18 @@ SUBDIRS = $(KERNDIRS)
|
|||
GIT_VERSION := $(shell git describe --abbrev=6 --dirty --always --tags)
|
||||
TODAY := $(shell date +'%Y%m%d')
|
||||
QEMU = @QEMU@ -machine accel=kvm -cpu host
|
||||
CROSSDIR = @CROSSDIR@
|
||||
CROSSDIR = @prefix@/bin
|
||||
JOBS = $(shell nproc)
|
||||
ARCH_OPT = @ARCH_OPT@
|
||||
TOOLCHAIN = @TOOLCHAIN@
|
||||
ifeq ($(TOOLCHAIN),0)
|
||||
BUILD_BOOTSTRAP =
|
||||
BUILD_TOOLCHAIN =
|
||||
INSTALL_LIBHERMIT = @echo "Library libhermit successfully built."
|
||||
else
|
||||
BUILD_BOOTSTRAP = bootstrap
|
||||
BUILD_TOOLCHAIN = toolchain
|
||||
INSTALL_LIBHERMIT = make install_libhermit
|
||||
endif
|
||||
|
||||
prefix = @prefix@
|
||||
|
@ -98,7 +100,7 @@ default: all
|
|||
all: arch/x86/kernel/boot.h $(BUILD_BOOTSTRAP) $(NAME) $(BUILD_TOOLCHAIN) tools loader
|
||||
|
||||
toolchain:
|
||||
$Q$(MAKE) ARCH=$(ARCH) \
|
||||
$Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) \
|
||||
LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_NEWLIB)" \
|
||||
GOFLAGS_FOR_TARGET="$(GOFLAGS_FOR_NEWLIB)" \
|
||||
CFLAGS_FOR_TARGET="$(CFLAGS_FOR_NEWLIB)" \
|
||||
|
@ -126,10 +128,10 @@ toolchain:
|
|||
PROFILING_LDFLAGS="$(PROFILING_LDFLAGS)" -C usr toolchain
|
||||
|
||||
bootstrap:
|
||||
$Q$(MAKE) ARCH=$(ARCH) CFLAGS="" LDFLAGS="" -C usr bootstrap
|
||||
$Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) CFLAGS="" LDFLAGS="" -C usr bootstrap
|
||||
|
||||
tools:
|
||||
$Q$(MAKE) ARCH=$(ARCH) CFLAGS="$(CFLAGS_FOR_TOOLS)" LDFLAGS="$(LDFLAGS_FOR_TOOLS)" -C tools
|
||||
$Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) CFLAGS="$(CFLAGS_FOR_TOOLS)" LDFLAGS="$(LDFLAGS_FOR_TOOLS)" -C tools
|
||||
|
||||
loader:
|
||||
$Q$(MAKE) -C arch/$(ARCH)/loader
|
||||
|
@ -138,9 +140,35 @@ $(NAME):
|
|||
@echo [AR] $(NAME)
|
||||
$Q$(AR_FOR_TARGET) $(ARFLAGS) -o $(NAME) $^
|
||||
$Q$(OBJCOPY_FOR_TARGET) --rename-section .bss=.kbss --rename-section .text=.ktext --rename-section .data=.kdata $(NAME)
|
||||
$(INSTALL_LIBHERMIT)
|
||||
|
||||
examples:
|
||||
$Q$(MAKE) -C usr examples
|
||||
$Q$(MAKE) ARCH=$(ARCH) PREFIX=$(prefix) \
|
||||
LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_NEWLIB)" \
|
||||
GOFLAGS_FOR_TARGET="$(GOFLAGS_FOR_NEWLIB)" \
|
||||
CFLAGS_FOR_TARGET="$(CFLAGS_FOR_NEWLIB)" \
|
||||
FFLAGS_FOR_TARGET="$(FFLAGS_FOR_NEWLIB)" \
|
||||
FCFLAGS_FOR_TARGET="$(FCFLAGS_FOR_NEWLIB)" \
|
||||
FCFLAGS="$(FCFLAGS_FOR_NEWLIB)" \
|
||||
CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_NEWLIB)" \
|
||||
NASMFLAGS="$(NASMFLAGS_FOR_NEWLIB)" \
|
||||
CC_FOR_TARGET=$(CC_FOR_TARGET) \
|
||||
GO_FOR_TARGET=$(GO_FOR_TARGET) \
|
||||
FC_FOR_TARGET=$(FC_FOR_TARGET) \
|
||||
CXX_FOR_TARGET=$(CXX_FOR_TARGET) \
|
||||
GCC_FOR_TARGET=$(GCC_FOR_TARGET) \
|
||||
AR_FOR_TARGET=$(AR_FOR_TARGET) \
|
||||
AS_FOR_TARGET=$(AS_FOR_TARGET) \
|
||||
LD_FOR_TARGET=$(LD_FOR_TARGET) \
|
||||
NM_FOR_TARGET=$(NM_FOR_TARGET) \
|
||||
OBJDUMP_FOR_TARGET=$(OBJDUMP_FOR_TARGET) \
|
||||
OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) \
|
||||
RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET) \
|
||||
STRIP_FOR_TARGET=$(STRIP_FOR_TARGET) \
|
||||
ELFEDIT_FOR_TARGET=$(ELFEDIT_FOR_TARGET) \
|
||||
READELF_FOR_TARGET=$(READELF_FOR_TARGET) \
|
||||
PROFILING_CFLAGS="$(PROFILING_CFLAGS)" \
|
||||
PROFILING_LDFLAGS="$(PROFILING_LDFLAGS)" -C usr examples
|
||||
|
||||
test: demo
|
||||
. ./test.sh
|
||||
|
@ -155,8 +183,12 @@ qemu:
|
|||
-device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hermit \
|
||||
-s
|
||||
|
||||
install:
|
||||
$Q$(INSTALL_DATA) $(NAME) $(prefix)/$(TOPDIR)/$(CROSSCOMPREFIX)/lib/
|
||||
install_libhermit:
|
||||
$Q$(INSTALL_DATA) $(NAME) $(prefix)/$(CROSSCOMPREFIX)/lib/
|
||||
|
||||
install: install_libhermit
|
||||
$Q$(MAKE) PREFIX=$(prefix) -C usr install
|
||||
$Q$(INSTALL_PROGRAM) tools/proxy $(prefix)/bin
|
||||
|
||||
clean:
|
||||
$Q$(RM) $(NAME) $(NAME).sym $(NAME).bin *~
|
||||
|
|
20
README.md
20
README.md
|
@ -30,14 +30,16 @@ On Debian-based systems the packets can be installed by executing:
|
|||
|
||||
1. Please make sure that you cloned this repository and all its submodules.
|
||||
2. To configure the system, run the *configure* script in the directory, which contains this *README*.
|
||||
Fine tuning of the installation directories, e.g., with the flag `--prefix` is currently not supported.
|
||||
HermitCore, the cross-compiler and the demo applications will be installed in subdirectories of this repository.
|
||||
With the flag `--with-toolchain`, the HermitCore's complete cross toolchain (cross compiler, binutils, etc.) will be downloaded and built.
|
||||
**NOTE**: This requires write access to the installation directory, which is specified by the flag `--prefix`.
|
||||
At the end of this *README* in section *Tips* you find hints to enable optimization for the target.
|
||||
3. The command `make all` build the the HermitCore kernel, the cross-compiler, and the demo applications.
|
||||
4. To start a virtual machine and to boot a small Linux version use the command `make qemu`.
|
||||
3. The command `make all` build the the HermitCore kernel and depending on the configuration flags the cross toolchain.
|
||||
4. Install the kernel with `make install`.
|
||||
5. Build all example applications with `make examples`.
|
||||
6. To start a virtual machine and to boot a small Linux version use the command `make qemu`.
|
||||
Per default, the virtual machine has 10 cores, 2 NUMA nodes, and 8 GiB RAM.
|
||||
To increase or to decrease the machine size, the label `qemu` in the Makefile has to be modified accordingly.
|
||||
5. Inside the VM runs a small Linux system, which already includes the patches for HermitCore.
|
||||
7. Inside the VM runs a small Linux system, which already includes the patches for HermitCore.
|
||||
Per NUMA node (= HermitCore isle) there is a directory called `isleX` under `/sys/hermit` , where `X` represents the NUMA node ID.
|
||||
The demo applications are located in the directories `/hermit/usr/{tests,benchmarks}`.
|
||||
A HermitCore loader is already registered.
|
||||
|
@ -45,18 +47,18 @@ On Debian-based systems the packets can be installed by executing:
|
|||
To change the default behavior, the environment variable `HERMIT_ISLE` is used to specify the (memory) location of the isle, while the environment variable `HERMIT_CPUS` is used to specify the cores.
|
||||
For instance, `HERMIT_ISLE=1 HERMIT_CPUS="3-5" /hermit/usr/tests/hello` starts a HelloWorld demo on the HermitCore isle 1, which uses the cores 3 to 5.
|
||||
The output messages are forwarded to the Linux proxy and printed on the Linux system.
|
||||
6. HermitCore's kernel messages of `isleX` are available via `cat /sys/hermit/isleX/log`.
|
||||
7. There is a virtual IP device for the communication between the HermitCore isles and the Linux system (see output of `ifconfig`).
|
||||
8. HermitCore's kernel messages of `isleX` are available via `cat /sys/hermit/isleX/log`.
|
||||
9. There is a virtual IP device for the communication between the HermitCore isles and the Linux system (see output of `ifconfig`).
|
||||
Per default, the Linux system has the IP address `192.168.28.1`.
|
||||
The HermitCore isles starts with the IP address `192.168.28.2` for isle 0 and is increased by one for every isle.
|
||||
8. More HermitCore applications are available at `/hermit/usr/{tests,benchmarks}` which is a shared directory between the host and QEmu.
|
||||
10. More HermitCore applications are available at `/hermit/usr/{tests,benchmarks}` which is a shared directory between the host and QEmu.
|
||||
|
||||
## Building and testing HermitCore as multi-kernel on a real machine
|
||||
|
||||
*Note*: to launch HermitCore applications, root privileges are required.
|
||||
|
||||
1. In principle you have to follow the tutorial above.
|
||||
After the configuration and building of the cross-compilers (Step 3 in the [above tutorial](#building-and-testing-hermitcore-within-a-virtual-machine)), a modified Linux kernel has to be installed.
|
||||
After the configuration, building of the cross-compilers and all example application (Step 5 in the [above tutorial](#building-and-testing-hermitcore-within-a-virtual-machine)), a modified Linux kernel has to be installed.
|
||||
Please clone the repository with the [modified Linux kernel](https://github.com/RWTH-OS/linux).
|
||||
Afterwards switch to the branch `hermit` for a relative new vanilla kernel or to `centos`, which is compatible to the current CentOS 7 kernel.
|
||||
Configure the kernel with `make menuconfig` for your system.
|
||||
|
|
4
configure
vendored
4
configure
vendored
|
@ -589,7 +589,6 @@ ac_subst_vars='LTLIBOBJS
|
|||
LIBOBJS
|
||||
TOOLCHAIN
|
||||
ARCH_OPT
|
||||
CROSSDIR
|
||||
INSTALL_DATA
|
||||
INSTALL_SCRIPT
|
||||
INSTALL_PROGRAM
|
||||
|
@ -2751,9 +2750,6 @@ $as_echo "#define DYNAMIC_TICKS 1" >>confdefs.h
|
|||
|
||||
#AC_DEFINE(SAVE_FPU, 1, Set task switched flag during a context switch);
|
||||
|
||||
CROSSDIR=`pwd`/usr/x86/bin
|
||||
|
||||
|
||||
|
||||
# Check whether --with-mtune was given.
|
||||
if test "${with_mtune+set}" = set; then :
|
||||
|
|
|
@ -32,9 +32,6 @@ AC_DEFINE(VIDEO_MEM_ADDR, 0xB8000, Definition of the VGA address)
|
|||
AC_DEFINE(DYNAMIC_TICKS, 1, Use a dynamic tick instead of a static)
|
||||
#AC_DEFINE(SAVE_FPU, 1, Set task switched flag during a context switch);
|
||||
|
||||
CROSSDIR=`pwd`/usr/x86/bin
|
||||
AC_SUBST(CROSSDIR)
|
||||
|
||||
AC_ARG_WITH([mtune],
|
||||
[AS_HELP_STRING([--with-mtune=ARCH],
|
||||
[enable tuning for a specific architecture])],
|
||||
|
|
9
debian/rules
vendored
9
debian/rules
vendored
|
@ -30,3 +30,12 @@ override_dh_auto_test:
|
|||
override_dh_auto_install:
|
||||
mkdir -p debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 libhermit.a debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 usr/ircce/libircce.a debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 usr/ircce/*.h debian/libhermit/opt/hermit/x86_64-hermit/include
|
||||
/usr/bin/install -c -m 644 usr/ircce/libxray.a debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 usr/ircce/libxray.spec debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 usr/ircce/libxray.h debian/libhermit/opt/hermit/x86_64-hermit/include
|
||||
/usr/bin/install -c -m 644 usr/libomp/libiomp.h debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 usr/libomp/libgomp.spec debian/libhermit/opt/hermit/x86_64-hermit/lib
|
||||
/usr/bin/install -c -m 644 usr/libomp/src/omp.h debian/libhermit/opt/hermit/x86_64-hermit/include
|
||||
/usr/bin/install -c tools/proxy debian/libhermit/opt/hermit/bin
|
||||
|
|
44
usr/Makefile
44
usr/Makefile
|
@ -6,7 +6,7 @@ NJOBS=-j$(shell nproc)
|
|||
OMPRT=libomp
|
||||
|
||||
CROSSCOMPREFIX = x86_64-hermit
|
||||
NEWLIB = $(TOPDIR)/$(ARCH)/$(TARGET)
|
||||
PREFIX = /opt/hermit
|
||||
RM = rm -rf
|
||||
CD = cd
|
||||
CP = cp
|
||||
|
@ -23,12 +23,6 @@ ifeq ($V,0)
|
|||
P = > /dev/null
|
||||
endif
|
||||
|
||||
# Avoid output on TravisCI
|
||||
T = 0
|
||||
ifeq ($T,1)
|
||||
TP = > /dev/null
|
||||
endif
|
||||
|
||||
default:
|
||||
@echo Do not use default rule!
|
||||
|
||||
|
@ -41,10 +35,7 @@ examples:
|
|||
#$Q$(MAKE) ELFEDIT_FOR_TARGET=$(ELFEDIT_FOR_TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C openmpbench depend
|
||||
$Q$(MAKE) ELFEDIT_FOR_TARGET=$(ELFEDIT_FOR_TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET) $(PROFILING_CFLAGS)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET) $(PROFILING_LDFLAGS)" OBJCOPY_FOR_TARGET=$(OBJCOPY_FOR_TARGET) -C openmpbench
|
||||
|
||||
$(ARCH):
|
||||
$Q$(MKDIR) $(TMP)
|
||||
|
||||
bootstrap: binutils gcc newlib pte $(ARCH) $(TMP)/binutils $(TMP)/bootstrap
|
||||
bootstrap: binutils gcc newlib pte $(TMP)/binutils $(TMP)/bootstrap
|
||||
|
||||
binutils:
|
||||
git clone $(CLONE_DEPTH) https://github.com/RWTH-OS/binutils.git
|
||||
|
@ -54,7 +45,7 @@ gcc:
|
|||
|
||||
pte:
|
||||
git clone $(CLONE_DEPTH) https://github.com/RWTH-OS/pthread-embedded.git pte
|
||||
$Q$(CD) pte; ./configure
|
||||
$Q$(CD) pte; ./configure --prefix=$(PREFIX)
|
||||
|
||||
newlib:
|
||||
git clone $(CLONE_DEPTH) https://github.com/RWTH-OS/newlib.git
|
||||
|
@ -62,43 +53,49 @@ newlib:
|
|||
$(TMP)/binutils:
|
||||
@echo Build binutils
|
||||
$Q$(MKDIR) $(TMP)/binutils
|
||||
$Q$(CD) $(TMP)/binutils; $(TOPDIR)/binutils/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --disable-multilib --disable-shared --disable-nls --disable-gdb --disable-libdecnumber --disable-readline --disable-sim --disable-libssp --enable-tls && $(MAKE) $(NJOBS) && $(MAKE) install
|
||||
$Q$(CD) $(TMP)/binutils; $(TOPDIR)/binutils/configure --target=$(TARGET) --prefix=$(PREFIX) --disable-multilib --disable-shared --disable-nls --disable-gdb --disable-libdecnumber --disable-readline --disable-sim --disable-libssp --enable-tls && $(MAKE) $(NJOBS) && $(MAKE) install
|
||||
|
||||
|
||||
$(TMP)/bootstrap:
|
||||
@echo Build bootstrap compiler
|
||||
$Q$(MKDIR) $(TMP)/bootstrap
|
||||
$Q$(CD) $(TMP)/bootstrap; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --without-headers --disable-multilib --with-isl --with-tune=generic --enable-languages=c,c++,lto --disable-nls --disable-shared --disable-libssp --disable-libgomp --enable-threads=posix --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) all-gcc $(TP) && $(MAKE) install-gcc $(TP)
|
||||
$Q$(CD) $(TMP)/bootstrap; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(PREFIX) --without-headers --disable-multilib --with-isl --with-tune=generic --enable-languages=c,lto --disable-nls --disable-shared --disable-libssp --disable-libgomp --enable-threads=posix --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) all-gcc && $(MAKE) install-gcc
|
||||
|
||||
toolchain: $(TMP)/newlib libpthread $(TMP)/gcc libs
|
||||
|
||||
$(TMP)/newlib:
|
||||
@echo Build newlib
|
||||
$Q$(MKDIR) $(TMP)/newlib
|
||||
$Q$(CD) $(TMP)/newlib; $(TOPDIR)/newlib/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) $(OPT) && $(MAKE) $(NJOBS) && $(MAKE) install
|
||||
$Q$(CD) $(TMP)/newlib; $(TOPDIR)/newlib/configure --target=$(TARGET) --prefix=$(PREFIX) $(OPT) && $(MAKE) $(NJOBS) && $(MAKE) install
|
||||
|
||||
libpthread:
|
||||
@echo Build libpthread
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte depend
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte
|
||||
$Q$(CP) pte/libpthread.a $(TOPDIR)/$(ARCH)/x86_64-hermit/lib/
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte install
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Iplatform/hermit -Iplatform/helper -Wall $(PROFILING_CFLAGS)" -C pte headers
|
||||
|
||||
libs:
|
||||
@echo Build Xray profiler
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" -C xray
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) CFLAGS_FOR_TARGET="$(CFLAGS_FOR_TARGET)" LDFLAGS_FOR_TARGET="$(LDFLAGS_FOR_TARGET)" PREFIX=$(PREFIX) -C xray
|
||||
@echo Build OpenMP Runtime and iRCCE
|
||||
$Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" -C $(OMPRT) depend
|
||||
$Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" -C $(OMPRT)
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" -C ircce depend
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" -C ircce
|
||||
$Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" PREFIX=$(PREFIX) -C $(OMPRT) depend
|
||||
$Q$(MAKE) TARGET=$(TARGET) CXX_FOR_TARGET=$(CXX_FOR_TARGET) CXXFLAGS_FOR_TARGET="$(CXXFLAGS_FOR_TARGET)" CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall -pthread $(PROFILING_CFLAGS)" PREFIX=$(PREFIX) -C $(OMPRT)
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" PREFIX=$(PREFIX) -C ircce depend
|
||||
$Q$(MAKE) TARGET=$(TARGET) CC_FOR_TARGET=$(CC_FOR_TARGET) AR_FOR_TARGET=$(AR_FOR_TARGET) CFLAGS_FOR_TARGET+="-I. -Wall" PREFIX=$(PREFIX) -C ircce
|
||||
|
||||
install:
|
||||
$Q$(MAKE) PREFIX=$(PREFIX) -C xray install
|
||||
$Q$(MAKE) PREFIX=$(PREFIX) -C ircce install
|
||||
$Q$(MAKE) PREFIX=$(PREFIX) -C $(OMPRT) install
|
||||
|
||||
$(TMP)/gcc:
|
||||
@echo Build final gcc
|
||||
$Q$(MKDIR) $(TMP)/gcc
|
||||
$Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --with-newlib --with-isl --disable-multilib --with-tune=generic --enable-languages=c,c++,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) $(TP) && $(MAKE) install $(TP)
|
||||
$Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(PREFIX) --with-newlib --with-isl --disable-multilib --without-libatomic --with-tune=generic --enable-languages=c,c++,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) && $(MAKE) install
|
||||
$Q$(RM) $(TMP)/gcc
|
||||
$Q$(MKDIR) $(TMP)/gcc
|
||||
$Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) --with-newlib --with-isl --disable-multilib --without-libatomic --with-tune=generic --enable-languages=c,c++,go,fortran,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) $(TP) && $(MAKE) install $(TP)
|
||||
$Q$(CD) $(TMP)/gcc; $(TOPDIR)/gcc/configure --target=$(TARGET) --prefix=$(PREFIX) --with-newlib --with-isl --disable-multilib --without-libatomic --with-tune=generic --enable-languages=c,c++,go,fortran,lto --disable-nls --disable-shared --disable-libssp --enable-threads=posix --disable-libgomp --enable-tls --enable-lto --disable-symvers && $(MAKE) $(NJOBS) && $(MAKE) install
|
||||
|
||||
clean:
|
||||
@echo Cleaning toolchain
|
||||
|
@ -117,7 +114,6 @@ veryclean:
|
|||
$Q$(MAKE) -C benchmarks veryclean
|
||||
$Q$(MAKE) -C openmpbench veryclean
|
||||
$Q$(RM) binutils gcc newlib pte
|
||||
$Q$(RM) $(TOPDIR)/$(ARCH)
|
||||
$Q$(RM) $(TMP)
|
||||
|
||||
.PHONY: default all clean veryclean headers libpthread libs
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
NEWLIB = ../x86/x86_64-hermit
|
||||
CROSSPREFIX = x86_64-hermit
|
||||
MAKE = make
|
||||
ARFLAGS_FOR_TARGET = rsv
|
||||
CP = cp
|
||||
|
@ -25,8 +25,10 @@ all: $(NAME)
|
|||
|
||||
$(NAME): $(OBJS)
|
||||
$Q$(AR_FOR_TARGET) $(ARFLAGS_FOR_TARGET) $@ $(OBJS)
|
||||
$Q$(CP) $@ $(NEWLIB)/lib
|
||||
$Q$(CP) *.h $(NEWLIB)/include
|
||||
|
||||
install:
|
||||
$Q$(CP) $(NAME) $(PREFIX)/$(CROSSPREFIX)/lib
|
||||
$Q$(CP) *.h $(PREFIX)/$(CROSSPREFIX)/include
|
||||
|
||||
clean:
|
||||
@echo Cleaning examples
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit fd7fc3288ddb0ef2b960469c83e00e3e32e99e70
|
||||
Subproject commit b686c65c3234365fd4c610be74ece5c3a5195658
|
|
@ -1,4 +1,4 @@
|
|||
NEWLIB = ../x86/x86_64-hermit
|
||||
CROSSPREFIX = x86_64-hermit
|
||||
CP = cp
|
||||
NAME = libxray.a
|
||||
|
||||
|
@ -14,9 +14,11 @@ OBJS = xray.o stringpool.o hashtable.o symtable.o demangle.o parsesymbols.o repo
|
|||
|
||||
$(NAME): $(OBJS)
|
||||
$(AR_FOR_TARGET) rsv $@ $(OBJS)
|
||||
$(CP) $@ $(NEWLIB)/lib
|
||||
$(CP) libxray.spec $(NEWLIB)/lib
|
||||
$(CP) xray.h $(NEWLIB)/include
|
||||
|
||||
install: $(NAME)
|
||||
$(CP) $(NAME) $(PREFIX)/$(CROSSPREFIX)/lib
|
||||
$(CP) libxray.spec $(PREFIX)/$(CROSSPREFIX)/lib
|
||||
$(CP) xray.h $(PREFIX)/$(CROSSPREFIX)/include
|
||||
|
||||
%.o: %.c
|
||||
@echo [CC] $@
|
||||
|
|
Loading…
Add table
Reference in a new issue