]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
build: Added a make target for installing Unikraft headers 1087/head
authorMihai-Drosi Caju <cajum.bugs@yandex.com>
Sun, 10 Sep 2023 07:22:52 +0000 (10:22 +0300)
committerMihai-Drosi Caju <cajum.bugs@yandex.com>
Mon, 11 Sep 2023 08:18:10 +0000 (11:18 +0300)
Add the headers_install top-level make target in order to export
them when building external projects such as glibc.

Signed-off-by: Mihai-Drosi Caju <cajum.bugs@yandex.com>
Makefile

index f33bd74d128a9e8f0f8c7ce9d907f38adc711919..65a0244a8427359ac5900e8784906127955bcaba 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -760,7 +760,7 @@ endif
 # include Makefile for platform linking (`Linker.uk`)
 $(foreach plat,$(UK_PLATS),$(eval $(call _import_linker,$(plat))))
 
-.PHONY: prepare preprocess image libs objs clean
+.PHONY: prepare preprocess headers_install image libs objs clean
 
 fetch: $(UK_FETCH) $(UK_FETCH-y)
 
@@ -775,6 +775,25 @@ prepare: $(UK_FIXDEP) | fetch
 
 preprocess: $(UK_PREPROCESS) $(UK_PREPROCESS-y) | prepare
 
+headers_install: preprocess
+       @mkdir -p $(INSTALL_HDR_PATH)/include/uk; \
+       mkdir -p $(INSTALL_HDR_PATH)/include/uk/nolibc; \
+       for hdr_dir in $$(echo $(HDR_DIRS) | tr ' ' '\n' | sort -u); do \
+         if [ ! -d "$$hdr_dir" ]; then \
+           continue; \
+         fi; \
+         for hdr_dir2 in $$hdr_dir/*; do \
+           bname=$$(basename $$hdr_dir2); \
+           if [ "$$bname" == uk ]; then \
+             cp -r $$hdr_dir2 $(INSTALL_HDR_PATH)/include/; \
+           elif [ -n "$$(echo $$hdr_dir2 | grep nolibc)" ]; then \
+             cp -r $$hdr_dir2 $(INSTALL_HDR_PATH)/include/uk/nolibc; \
+           else \
+             cp -r $$hdr_dir2 $(INSTALL_HDR_PATH)/include/uk/; \
+           fi; \
+         done; \
+       done
+
 objs: $(UK_OBJS) $(UK_OBJS-y)
 
 libs: $(UK_ALIBS) $(UK_ALIBS-y) $(UK_OLIBS) $(UK_OLIBS-y)
@@ -1136,6 +1155,10 @@ sub-make: $(BUILD_DIR)/Makefile
 
 endif
 
+INCLUDES = $(ASINCLUDES) $(ASINCLUDES-y) $(CINCLUDES) $(CINCLUDES-y) $(CXXINCLUDES) $(CXXINCLUDES-y) $(GOCINCLUDES) $(GOCINCLUDES-y)
+HDR_DIRS = $(patsubst -I%,%,$(INCLUDES))
+INSTALL_HDR_PATH ?= /usr/local
+
 help:
        @echo 'Cleaning:'
        @echo '  clean-[LIBNAME]        - delete all files created by build for a single library'