Merge branch 'main' of feistymeow.org:feisty_meow
[feisty_meow.git] / nucleus / makefile
index 2334be05a5b7092faaac28e65d55c0e9f2e732eb..9a2fd10bcf4158ca2b4b37da232cb27da5945391 100644 (file)
@@ -1,7 +1,55 @@
+# Top-level makefile for library, application and test components.
+
 include variables.def
 
-PROJECT = core_modules
-BUILD_BEFORE = library applications tools
+# Set default locations for the following variables.  If the build_variables
+# have been sourced in, that takes care of setting these.
+ifeq "$(FEISTY_MEOW_APEX)" ""
+  export FEISTY_MEOW_APEX := $(CURRENT_DIR)
+endif
+#ifeq "$(PRODUCTION_STORE)" ""
+#  export PRODUCTION_STORE = $(FEISTY_MEOW_APEX)/production
+#endif
+ifeq "$(CLAM_SCRIPTS)" ""
+  export CLAM_SCRIPTS = $(FEISTY_MEOW_SCRIPTS)/clam
+endif
+
+include $(CLAM_SCRIPTS)/cpp/variables.def
+
+PROJECT = feisty_meow_nucleus
+TYPE = hierarchy
+FIRST_TARGETS += do_make
+BUILD_AFTER = library applications tools
+
+include $(CLAM_SCRIPTS)/cpp/rules.def
+
+do_make: start_make $(RUNTIME_PATH)/binaries/manifest.txt end_make
+
+start_make: show_date.start
+
+end_make: show_date.end
 
-include rules.def
+$(RUNTIME_PATH)/binaries/manifest.txt: $(PARAMETER_FILE)
+       $(HIDESH) -c '\
+if [ ! -d "$(EXECUTABLE_DIR)" ]; then mkdir -p "$(EXECUTABLE_DIR)"; fi; \
+if [ $$? -ne 0 ]; then \
+  echo build failure while creating executable directory.; \
+  exit 1; \
+fi; \
+cp -f "$(PRODUCTION_STORE)/paths.ini" "$(EXECUTABLE_DIR)"; \
+if [ $$? -ne 0 ]; then \
+  echo build failure while copying paths initialization file.; \
+  exit 1; \
+fi; \
+$(CLAM_BINARIES)/value_tagger$(EXE_END) $(PRODUCTION_STORE)/codescan.ini; \
+if [ $$? -ne 0 ]; then \
+  echo build failure during value tagging.; \
+  exit 1; \
+fi; \
+$(CLAM_BINARIES)/write_build_config$(EXE_END); \
+if [ $$? -ne 0 ]; then \
+  echo build failure while writing config.; \
+  exit 1; \
+fi; \
+  '