EnderIce2 7e69b8f82a
feat(userspace/libc): support for linux target
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
2025-03-17 23:18:54 +00:00

69 lines
1.9 KiB
Makefile

export DOCKER_ROOT = $(CURDIR)/docker-root
DOCKER_IMAGE_NAME = fennix-userspace
export CMAKE_INSTALL_PREFIX := $(DOCKER_ROOT)
export CMAKE_SYSROOT := $(DOCKER_ROOT)
export LDFLAGS := --sysroot=$(DOCKER_ROOT) \
-ggdb3 -O0
export CFLAGS := \
--sysroot=$(DOCKER_ROOT) \
-I$(DOCKER_ROOT)/include \
-DDEBUG -ggdb3 -O0 -fdiagnostics-color=always
create_docker_out:
rm -rf cache
rm -rf $(DOCKER_ROOT)
mkdir -p $(DOCKER_ROOT)
mkdir -p $(DOCKER_ROOT)/bin
mkdir -p $(DOCKER_ROOT)/etc
mkdir -p $(DOCKER_ROOT)/lib
mkdir -p $(DOCKER_ROOT)/lib64
mkdir -p $(DOCKER_ROOT)/include/linux
mkdir -p $(DOCKER_ROOT)/usr/bin
mkdir -p $(DOCKER_ROOT)/usr/share/doc
mkdir -p $(DOCKER_ROOT)/usr/share/info
mkdir -p $(DOCKER_ROOT)/usr/include
mkdir -p $(DOCKER_ROOT)/usr/lib
build_docker_coreutils:
mkdir -p cache/coreutils
cd cache/coreutils && \
cmake $(CURDIR)/../coreutils \
-DCMAKE_INSTALL_PREFIX:PATH=$(DOCKER_ROOT) \
-DCMAKE_SYSROOT=$(DOCKER_ROOT) \
-DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(DOCKER_ROOT)/include \
-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$(DOCKER_ROOT)/include \
&& \
make -j$(shell nproc) && \
make install
build_docker_libc:
mkdir -p cache/libc
cd cache/libc && \
cmake $(CURDIR)/../libc \
-DCMAKE_INSTALL_PREFIX=$(DOCKER_ROOT) \
-DCMAKE_SYSROOT=$(DOCKER_ROOT) \
-DCMAKE_INSTALL_INCLUDEDIR=include \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_BINDIR=bin && \
make -j$(shell nproc) && \
make install
docker_image:
docker build -t $(DOCKER_IMAGE_NAME) -f Dockerfile .
docker_run:
@echo "Running container..."
@docker run -it --name fennix-userspace-instance fennix-userspace:latest /bin/sh || true
@echo "\nExit code: $$(docker inspect fennix-userspace-instance --format='{{.State.ExitCode}}')"
@docker rm fennix-userspace-instance >/dev/null 2>&1
docker: create_docker_out
$(MAKE) build_docker_libc
$(MAKE) build_docker_coreutils
clean:
rm -rf cache
rm -rf $(DOCKER_ROOT)