From d1dea3f1d60ee85c4d0919c880a7a0a76247969a Mon Sep 17 00:00:00 2001 From: apio Date: Wed, 9 Nov 2022 12:01:48 +0100 Subject: [PATCH] apps: Add support for C++ apps alongside C ones --- apps/Makefile | 20 ++++++++++++++------ apps/src/hello-cpp.cpp | 6 ++++++ 2 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 apps/src/hello-cpp.cpp diff --git a/apps/Makefile b/apps/Makefile index 0e8c25b3..f87c3c49 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -1,24 +1,32 @@ -APPS := init sh uname uptime hello ps ls args cat stat su session date mkdir screen +C_APPS := init sh uname uptime hello ps ls args cat stat su session date mkdir screen +CXX_APPS := hello-cpp APPS_DIR := $(LUNA_ROOT)/apps APPS_SRC := $(APPS_DIR)/src APPS_BIN := $(APPS_DIR)/bin -REAL_APPS := $(patsubst %, $(APPS_BIN)/%, $(APPS)) +C_APPS_PATH := $(patsubst %, $(APPS_BIN)/%, $(C_APPS)) +CXX_APPS_PATH := $(patsubst %, $(APPS_BIN)/%, $(CXX_APPS)) CFLAGS := -Wall -Wextra -Werror -Os -fno-asynchronous-unwind-tables -ffunction-sections -fdata-sections -Wl,--gc-sections +CXXFLAGS := -fno-exceptions $(APPS_BIN)/%: $(APPS_SRC)/%.c @mkdir -p $(@D) @$(CC) $(CFLAGS) -o $@ $^ @echo " CC $^" -build: $(REAL_APPS) +$(APPS_BIN)/%: $(APPS_SRC)/%.cpp + @mkdir -p $(@D) + @$(CXX) $(CFLAGS) $(CXXFLAGS) -o $@ $^ + @echo " CXX $^" -install: $(REAL_APPS) +build: $(C_APPS_PATH) $(CXX_APPS_PATH) + +install: $(C_APPS_PATH) $(CXX_APPS_PATH) @mkdir -p $(LUNA_ROOT)/initrd/bin - @cp $(REAL_APPS) $(LUNA_ROOT)/initrd/bin - @echo " INSTALL $(REAL_APPS)" + @cp $(C_APPS_PATH) $(CXX_APPS_PATH) $(LUNA_ROOT)/initrd/bin + @echo " INSTALL $(C_APPS_PATH) $(CXX_APPS_PATH)" @chmod a+s $(LUNA_ROOT)/initrd/bin/su clean: diff --git a/apps/src/hello-cpp.cpp b/apps/src/hello-cpp.cpp new file mode 100644 index 00000000..15a1fcaa --- /dev/null +++ b/apps/src/hello-cpp.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + printf("Well hello world!\n"); +} \ No newline at end of file