|
| 1 | +# Copyright (C) 2015-2023 CE Programming |
| 2 | +# |
| 3 | +# This program is free software; you can redistribute it and/or |
| 4 | +# modify it under the terms of the GNU Lesser General Public |
| 5 | +# License as published by the Free Software Foundation; either |
| 6 | +# version 3 of the License, or (at your option) any later version. |
| 7 | +# |
| 8 | +# This program is distributed in the hope that it will be useful, |
| 9 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 11 | +# Lesser General Public License for more details. |
| 12 | +# |
| 13 | +# You should have received a copy of the GNU Lesser General Public License |
| 14 | +# along with this program; if not, write to the Free Software Foundation, |
| 15 | +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| 16 | + |
| 17 | +include $(CURDIR)/../common.mk |
| 18 | + |
| 19 | +BUILD := $(call NATIVEPATH,EASTL/build) |
| 20 | +# TODO: atomic |
| 21 | +BUILD_SRC := $(filter-out EASTL/build/atomic.cpp.src,$(patsubst EASTL/source/%,EASTL/build/%.src,$(wildcard EASTL/source/*.c EASTL/source/*.cpp))) |
| 22 | + |
| 23 | +EZCFLAGS := -S -ffreestanding -Wall -Wextra -Oz |
| 24 | +EZCFLAGS += -D_EZ80 -isystem ../ce/include -isystem ../libc/include -mllvm -profile-guided-section-prefix=false |
| 25 | +EZCFLAGS += -DEASTL_USER_CONFIG_HEADER="<__EASTL_user_config.h>" |
| 26 | +EZCXXFLAGS := $(EZCFLAGS) -fno-exceptions -fno-rtti -fno-use-cxa-atexit |
| 27 | +EZCXXFLAGS += -isystem ../libcxx/include -isystem EABase/include/Common -isystem EASTL/include -isystem include |
| 28 | + |
| 29 | +CONFIG_H = include/__EASTL_user_config.h |
| 30 | + |
| 31 | +WILDCARD_SRC = $(wildcard *.src) $(BUILD_SRC) |
| 32 | +WILDCARD_EASTL_H := $(wildcard EASTL/include/EASTL/*.h) |
| 33 | +WILDCARD_EASTL_BONUS_H := $(wildcard EASTL/include/EASTL/bonus/*.h) |
| 34 | +WILDCARD_EASTL_INTERNAL_H := $(wildcard EASTL/include/EASTL/internal/*.h) |
| 35 | +# WILDCARD_EASTL_INTERNAL_ATOMIC_H := $(wildcard EASTL/include/EASTL/internal/atomic/*.h) |
| 36 | +WILDCARD_EABASE_H := $(wildcard EABase/include/Common/EABase/*.h) |
| 37 | +WILDCARD_EABASE_CONFIG_H := $(wildcard EABase/include/Common/EABase/config/*.h) |
| 38 | + |
| 39 | +all: $(BUILD_SRC) |
| 40 | + |
| 41 | +EASTL/build/%.c.src: EASTL/source/%.c |
| 42 | + $(Q)$(call MKDIR,$(BUILD)) |
| 43 | + $(Q)$(EZCC) $(EZCFLAGS) $< -o $@ |
| 44 | + |
| 45 | +EASTL/build/%.cpp.src: EASTL/source/%.cpp |
| 46 | + $(Q)$(call MKDIR,$(BUILD)) |
| 47 | + $(Q)$(EZCC) $(EZCXXFLAGS) $< -o $@ |
| 48 | + |
| 49 | +clean: |
| 50 | + $(Q)$(call RMDIR,$(BUILD)) |
| 51 | + |
| 52 | +install: all |
| 53 | + $(Q)$(call MKDIR,$(INSTALL_H)) |
| 54 | + $(Q)$(call MKDIR,$(INSTALL_EABASE_H)) |
| 55 | + $(Q)$(call MKDIR,$(INSTALL_EABASE_CONFIG_H)) |
| 56 | + $(Q)$(call MKDIR,$(INSTALL_EASTL_H)) |
| 57 | + $(Q)$(call MKDIR,$(INSTALL_EASTL_BONUS_H)) |
| 58 | + $(Q)$(call MKDIR,$(INSTALL_EASTL_INTERNAL_H)) |
| 59 | +# $(Q)$(call MKDIR,$(INSTALL_EASTL_INTERNAL_ATOMIC_H)) |
| 60 | + $(Q)$(call MKDIR,$(INSTALL_EASTL)) |
| 61 | + $(Q)$(call COPY,$(call NATIVEPATH,$(WILDCARD_SRC)),$(INSTALL_EASTL)) |
| 62 | +# $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(WILDCARD_EASTL_INTERNAL_ATOMIC_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_EASTL_INTERNAL_ATOMIC_H)) |
| 63 | + $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(WILDCARD_EASTL_INTERNAL_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_EASTL_INTERNAL_H)) |
| 64 | + $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(WILDCARD_EASTL_BONUS_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_EASTL_BONUS_H)) |
| 65 | + $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(WILDCARD_EASTL_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_EASTL_H)) |
| 66 | + $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(WILDCARD_EABASE_CONFIG_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_EABASE_CONFIG_H)) |
| 67 | + $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(WILDCARD_EABASE_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_EABASE_H)) |
| 68 | + $(Q)$(call COPY,$(foreach file,$(call NATIVEPATH,$(CONFIG_H)),$(call QUOTE_ARG,$(file))),$(INSTALL_H)) |
| 69 | + |
| 70 | +.PHONY: all clean |
0 commit comments