examples: Fix the parallel build break (#138)
1.Remove build target to avoid build and install run parallelly 2.Invoke the sub Makefile just before the parent source code compile
This commit is contained in:
parent
1511403fdf
commit
f16a765cca
@ -51,11 +51,14 @@ ROOTDEPPATH := --dep-path tests
|
||||
|
||||
VPATH += :tests
|
||||
|
||||
context::
|
||||
@$(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
elf_main.c: build
|
||||
tests/symtab.c: build
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
+$(Q) $(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
clean::
|
||||
@$(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
$(call CLEAN)
|
||||
+$(Q) $(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
ALL_SUBDIRS = errno hello helloxx longjmp mutex pthread signal task struct
|
||||
BUILD_SUBDIRS = errno hello struct signal
|
||||
@ -77,41 +76,25 @@ endif
|
||||
|
||||
define DIR_template
|
||||
$(1)_$(2):
|
||||
+$(Q) $(MAKE) -C $(1) $(3) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" FSIMG_DIR="$(FSIMG_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
+$(Q) $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" FSIMG_DIR="$(FSIMG_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
endef
|
||||
|
||||
all: $(FSIMG_HDR) $(DIRLIST_HDR) $(SYMTAB_SRC)
|
||||
.PHONY: all build clean install populate
|
||||
.PHONY: all clean install
|
||||
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),build, all)))
|
||||
$(foreach DIR, $(ALL_SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
|
||||
|
||||
# Build program(s) in each sud-directory
|
||||
|
||||
build: $(foreach DIR, $(BUILD_SUBDIRS), $(DIR)_build)
|
||||
$(foreach DIR, $(ALL_SUBDIRS), $(eval $(call DIR_template,$(DIR),clean)))
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),install)))
|
||||
|
||||
# Install each program in the file system image directory
|
||||
|
||||
install: $(foreach DIR, $(BUILD_SUBDIRS), $(DIR)_install)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(wildcard $(FSIMG_SUBDIR)/*)
|
||||
endif
|
||||
|
||||
# Create the file system image directory
|
||||
|
||||
$(FSIMG_DIR):
|
||||
$(Q) mkdir $(FSIMG_DIR)
|
||||
|
||||
# Populate the file system image directory
|
||||
|
||||
populate: $(FSIMG_DIR) build install
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_ELF_ROMFS),y)
|
||||
# Create the romfs.img file from the populated romfs directory
|
||||
|
||||
$(ROMFS_IMG): populate
|
||||
$(Q) genromfs -f $@ -d $(FSIMG_DIR) -V "ELFTEST"
|
||||
$(ROMFS_IMG): install
|
||||
$(Q) genromfs -f $@.tmp -d $(FSIMG_DIR) -V "ELFTEST"
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
@ -126,19 +109,21 @@ $(NXTOOLDIR)/$(GENCROMFSEXE): $(NXTOOLDIR)/$(GENCROMFSSRC)
|
||||
|
||||
# Create the cromfs.h header file from the populated cromfs directory
|
||||
|
||||
$(FSIMG_HDR) : populate $(NXTOOLDIR)/$(GENCROMFSEXE)
|
||||
$(Q) $(NXTOOLDIR)/$(GENCROMFSEXE) $(FSIMG_DIR) $(FSIMG_HDR)
|
||||
$(FSIMG_HDR): install $(NXTOOLDIR)/$(GENCROMFSEXE)
|
||||
$(Q) $(NXTOOLDIR)/$(GENCROMFSEXE) $(FSIMG_DIR) $@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
endif
|
||||
|
||||
# Create the dirlist.h header file from the file system image directory
|
||||
|
||||
$(DIRLIST_HDR) : populate
|
||||
$(Q) $(TESTS_DIR)/mkdirlist.sh $(FSIMG_DIR) >$@
|
||||
$(DIRLIST_HDR): install
|
||||
$(Q) $(TESTS_DIR)/mkdirlist.sh $(FSIMG_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the exported symbol table
|
||||
|
||||
$(SYMTAB_SRC): populate
|
||||
$(SYMTAB_SRC): install
|
||||
$(Q) $(TESTS_DIR)/mksymtab.sh $(FSIMG_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -105,7 +105,7 @@ LDLIBSTDC_STUBS_DIR = $(TOPDIR)/libxx
|
||||
LDLIBSTDC_STUBS_LIB = $(LDLIBSTDC_STUBS_DIR)/liblibxx.a
|
||||
|
||||
all: $(BIN1) $(BIN2) $(BIN3) $(BIN4) $(BIN5)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.cpp
|
||||
@echo "CC: $<"
|
||||
@ -154,24 +154,39 @@ endif
|
||||
$(FSIMG_DIR)/$(BIN1): $(BIN1)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN1) $(FSIMG_DIR)/$(BIN1)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN1)
|
||||
endif
|
||||
|
||||
$(FSIMG_DIR)/$(BIN2): $(BIN2)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN2) $(FSIMG_DIR)/$(BIN2)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN2)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_BINFMT_CONSTRUCTORS),y)
|
||||
$(FSIMG_DIR)/$(BIN3): $(BIN3)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN3) $(FSIMG_DIR)/$(BIN3)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN3)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_ELF_UCLIBCXX),y)
|
||||
$(FSIMG_DIR)/$(BIN4): $(BIN4)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN4) $(FSIMG_DIR)/$(BIN4)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN4)
|
||||
endif
|
||||
|
||||
$(FSIMG_DIR)/$(BIN5): $(BIN5)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN5) $(FSIMG_DIR)/$(BIN5)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN5)
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -73,7 +73,7 @@ SRCS = struct_main.c struct_dummy.c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -86,6 +86,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -72,7 +72,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -85,6 +85,9 @@ $(BIN): $(OBJS)
|
||||
$(FSIMG_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSIMG_DIR)
|
||||
$(Q) install $(BIN) $(FSIMG_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSIMG_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSIMG_DIR)/$(BIN)
|
||||
|
||||
|
@ -55,10 +55,16 @@ ROOTDEPPATH += --dep-path drivers
|
||||
|
||||
# Build targets
|
||||
|
||||
context::
|
||||
@$(MAKE) -C drivers TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
module_main.c: build
|
||||
ifeq ($(CONFIG_BUILD_FLAT),y)
|
||||
drivers/mod_symtab.c: build
|
||||
endif
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
+$(Q) $(MAKE) -C drivers TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
clean::
|
||||
@$(MAKE) -C drivers TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
+$(Q) $(MAKE) -C drivers TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
ALL_SUBDIRS = chardev
|
||||
BUILD_SUBDIRS = chardev
|
||||
@ -44,8 +43,12 @@ MODULE_DIR = $(APPDIR)/examples/module
|
||||
DRIVER_DIR = $(MODULE_DIR)/drivers
|
||||
FSROOT_DIR = $(DRIVER_DIR)/fsroot
|
||||
SYMTAB_SRC = $(DRIVER_DIR)/mod_symtab.c
|
||||
PASS1_SYMTAB = $(TOPDIR)/pass1/mod_symtab.c
|
||||
|
||||
ifneq ($(CONFIG_BUILD_FLAT),y)
|
||||
PASS1_SYMTAB = $(TOPDIR)/pass1/mod_symtab.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_MODULE_BUILTINFS),y)
|
||||
ifeq ($(CONFIG_EXAMPLES_MODULE_ROMFS),y)
|
||||
ROMFS_IMG = $(DRIVER_DIR)/romfs.img
|
||||
FSIMG_HDR = $(DRIVER_DIR)/romfs.h
|
||||
@ -56,45 +59,30 @@ else ifeq ($(CONFIG_EXAMPLES_MODULE_CROMFS),y)
|
||||
|
||||
FSIMG_HDR = $(DRIVER_DIR)/cromfs.h
|
||||
endif
|
||||
endif
|
||||
|
||||
define DIR_template
|
||||
$(1)_$(2):
|
||||
+$(Q) $(MAKE) -C $(1) $(3) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" FSROOT_DIR="$(FSROOT_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
+$(Q) $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" FSROOT_DIR="$(FSROOT_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
endef
|
||||
|
||||
all: $(FSIMG_HDR) $(DIRLIST_HDR) $(SYMTAB_SRC) $(PASS1_SYMTAB)
|
||||
.PHONY: all build clean install populate
|
||||
all: $(FSIMG_HDR) $(SYMTAB_SRC) $(PASS1_SYMTAB)
|
||||
.PHONY: all clean install
|
||||
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),build, all)))
|
||||
$(foreach DIR, $(ALL_SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
|
||||
|
||||
# Build program(s) in each sud-directory
|
||||
|
||||
build: $(foreach DIR, $(BUILD_SUBDIRS), $(DIR)_build)
|
||||
$(foreach DIR, $(ALL_SUBDIRS), $(eval $(call DIR_template,$(DIR),clean)))
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),install)))
|
||||
|
||||
# Install each program in the fsroot directory
|
||||
|
||||
install: $(foreach DIR, $(BUILD_SUBDIRS), $(DIR)_install)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(wildcard $(FSIMG_SUBDIR)$(DELIM)*)
|
||||
endif
|
||||
|
||||
# Create the fsroot directory
|
||||
|
||||
$(FSROOT_DIR):
|
||||
$(Q) mkdir $(FSROOT_DIR)
|
||||
|
||||
# Populate the fsroot directory
|
||||
|
||||
populate: $(FSROOT_DIR) build install
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_MODULE_BUILTINFS),y)
|
||||
ifeq ($(CONFIG_EXAMPLES_MODULE_ROMFS),y)
|
||||
# Create the romfs.img file from the populated fsroot directory
|
||||
|
||||
$(ROMFS_IMG): populate
|
||||
$(Q) genromfs -f $@ -d $(FSROOT_DIR) -V "MODULETEST"
|
||||
$(ROMFS_IMG): install
|
||||
$(Q) genromfs -f $@.tmp -d $(FSROOT_DIR) -V "MODULETEST"
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
@ -109,27 +97,28 @@ $(NXTOOLDIR)/$(GENCROMFSEXE): $(NXTOOLDIR)/$(GENCROMFSSRC)
|
||||
|
||||
# Create the cromfs.h header file from the populated cromfs directory
|
||||
|
||||
$(FSIMG_HDR) : populate $(NXTOOLDIR)/$(GENCROMFSEXE)
|
||||
$(Q) $(NXTOOLDIR)/$(GENCROMFSEXE) $(FSIMG_DIR) $(FSIMG_HDR)
|
||||
$(FSIMG_HDR): install $(NXTOOLDIR)/$(GENCROMFSEXE)
|
||||
$(Q) $(NXTOOLDIR)/$(GENCROMFSEXE) $(FSIMG_DIR) $@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
endif
|
||||
endif
|
||||
|
||||
# Create the exported symbol table
|
||||
|
||||
$(SYMTAB_SRC): populate
|
||||
$(SYMTAB_SRC): install
|
||||
$(Q) $(DRIVER_DIR)/mksymtab.sh $(FSROOT_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Copy the symbol table into the kernel pass1/ build directory
|
||||
|
||||
$(PASS1_SYMTAB): $(SYMTAB_SRC)
|
||||
ifneq ($(CONFIG_BUILD_FLAT),y)
|
||||
$(PASS1_SYMTAB): $(SYMTAB_SRC)
|
||||
$(Q) install -m 0644 $(SYMTAB_SRC) $(PASS1_SYMTAB)
|
||||
endif
|
||||
|
||||
# Clean each subdirectory
|
||||
|
||||
clean: $(foreach DIR, $(ALL_SUBDIRS), $(DIR)_clean)
|
||||
$(Q) rm -f $(FSIMG_HDR) $(DIRLIST_HDR) $(ROMFS_IMG) $(SYMTAB_SRC)
|
||||
$(Q) rm -f $(FSIMG_HDR) $(ROMFS_IMG) $(SYMTAB_SRC)
|
||||
$(Q) rm -rf $(FSROOT_DIR)
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
OBJEXT ?= .o
|
||||
DELIM ?= /
|
||||
@ -65,8 +64,8 @@ LDLIBPATH += -L $(NUTTXLIB)
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_MODULE_LIBC),y)
|
||||
ifeq ($(CONFIG_BUILD_PROTECTED),y)
|
||||
LDLIBS += -luc
|
||||
ifneq ($(CONFIG_BUILD_FLAT),y)
|
||||
LDLIBS += -lkc
|
||||
else
|
||||
LDLIBS += -lc
|
||||
endif
|
||||
@ -78,7 +77,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
@ -91,6 +90,9 @@ $(BIN): $(OBJS)
|
||||
$(FSROOT_DIR)/$(BIN): $(BIN)
|
||||
$(Q) mkdir -p $(FSROOT_DIR)
|
||||
$(Q) install $(BIN) $(FSROOT_DIR)/$(BIN)
|
||||
ifneq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||
$(Q) $(STRIP) $(FSROOT_DIR)/$(BIN)
|
||||
endif
|
||||
|
||||
install: $(FSROOT_DIR)/$(BIN)
|
||||
|
||||
|
@ -44,7 +44,13 @@ PRIORITY = SCHED_PRIORITY_DEFAULT
|
||||
STACKSIZE = 2048
|
||||
MODULE = $(CONFIG_EXAMPLES_NXFLAT)
|
||||
|
||||
context::
|
||||
@$(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
nxflat_main.c: build
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
+$(Q) $(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
clean::
|
||||
+$(Q) $(MAKE) -C tests TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
@ -55,55 +55,44 @@ SYMTAB = $(TESTS_DIR)/symtab.h
|
||||
|
||||
define DIR_template
|
||||
$(1)_$(2):
|
||||
+$(Q) $(MAKE) -C $(1) $(3) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" ROMFS_DIR="$(ROMFS_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
+$(Q) $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" ROMFS_DIR="$(ROMFS_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
endef
|
||||
|
||||
all: $(ROMFS_HDR) $(ROMFS_DIRLIST) $(SYMTAB)
|
||||
.PHONY: all build clean install populate
|
||||
.PHONY: all clean install
|
||||
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),build, all)))
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
|
||||
|
||||
# Build program(s) in each sud-directory
|
||||
|
||||
build: $(foreach DIR, $(SUBDIRS), $(DIR)_build)
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),clean)))
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),install)))
|
||||
|
||||
# Install each program in the romfs directory
|
||||
|
||||
install: $(foreach DIR, $(SUBDIRS), $(DIR)_install)
|
||||
|
||||
# Create the romfs directory
|
||||
|
||||
$(ROMFS_DIR):
|
||||
@mkdir $(ROMFS_DIR)
|
||||
|
||||
# Populate the romfs directory
|
||||
|
||||
populate: $(ROMFS_DIR) build install
|
||||
|
||||
# Create the romfs.img file from the populated romfs directory
|
||||
|
||||
$(ROMFS_IMG): populate
|
||||
@genromfs -f $@ -d $(ROMFS_DIR) -V "NXFLATTEST"
|
||||
$(ROMFS_IMG): install
|
||||
$(Q) genromfs -f $@.tmp -d $(ROMFS_DIR) -V "NXFLATTEST"
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
$(ROMFS_HDR): $(ROMFS_IMG)
|
||||
@(cd $(TESTS_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
$(Q) (cd $(TESTS_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
|
||||
# Create the dirlist.h header file from the romfs directory
|
||||
|
||||
$(ROMFS_DIRLIST) : populate
|
||||
@$(TESTS_DIR)/mkdirlist.sh $(ROMFS_DIR) >$@
|
||||
$(ROMFS_DIRLIST): install
|
||||
$(Q) $(TESTS_DIR)/mkdirlist.sh $(ROMFS_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the exported symbol table list from the derived *-thunk.S files
|
||||
|
||||
$(SYMTAB): build
|
||||
@$(TESTS_DIR)/mksymtab.sh $(TESTS_DIR) >$@
|
||||
$(SYMTAB): install
|
||||
$(Q) $(TESTS_DIR)/mksymtab.sh $(ROMFS_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Clean each subdirectory
|
||||
|
||||
clean: $(foreach DIR, $(SUBDIRS), $(DIR)_clean)
|
||||
@rm -f $(ROMFS_HDR) $(ROMFS_DIRLIST) $(ROMFS_IMG) $(SYMTAB)
|
||||
@rm -rf $(ROMFS_DIR)
|
||||
$(Q) rm -f $(ROMFS_HDR) $(ROMFS_DIRLIST) $(ROMFS_IMG) $(SYMTAB)
|
||||
$(Q) rm -rf $(ROMFS_DIR)
|
||||
|
@ -51,34 +51,14 @@ ROOTDEPPATH += --dep-path filesystem
|
||||
|
||||
VPATH += filesystem
|
||||
|
||||
context::
|
||||
@$(MAKE) -C filesystem TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
spawn_main.c: build
|
||||
filesystem/symtab.c: build
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
+$(Q) $(MAKE) -C filesystem TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
clean::
|
||||
@$(MAKE) -C filesystem TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
$(call CLEAN)
|
||||
|
||||
# There are no dependencies in this directory. Some of more important
|
||||
# and more obvious dependencies are hard-coded here:
|
||||
|
||||
spawn_main.o: spawn_main.c \
|
||||
$(TOPDIR)/include/nuttx/config.h \
|
||||
$(TOPDIR)/include/nuttx/compiler.h \
|
||||
$(TOPDIR)/include/sys/mount.h \
|
||||
$(TOPDIR)/include/stdio.h \
|
||||
$(TOPDIR)/include/stdlib.h \
|
||||
$(TOPDIR)/include/unistd.h \
|
||||
$(TOPDIR)/include/string.h \
|
||||
$(TOPDIR)/include/fcntl.h \
|
||||
$(TOPDIR)/include/spawn.h \
|
||||
$(TOPDIR)/include/debug.h \
|
||||
$(TOPDIR)/include/errno.h \
|
||||
$(TOPDIR)/include/nuttx/drivers/ramdisk.h \
|
||||
$(TOPDIR)/include/nuttx/symtab.h \
|
||||
filesystem/romfs.h
|
||||
|
||||
symtab.o: filesystem/symtab.c \
|
||||
$(TOPDIR)/include/nuttx/compiler.h \
|
||||
$(TOPDIR)/include/nuttx/symtab.h
|
||||
+$(Q) $(MAKE) -C filesystem TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
SPAWN_DIR = $(APPDIR)$(DELIM)examples$(DELIM)posix_spawn
|
||||
FILESYSTEM_DIR = $(SPAWN_DIR)$(DELIM)filesystem
|
||||
@ -44,12 +43,7 @@ ROMFS_HDR = $(FILESYSTEM_DIR)$(DELIM)romfs.h
|
||||
SYMTAB_SRC = $(FILESYSTEM_DIR)$(DELIM)symtab.c
|
||||
|
||||
all: $(ROMFS_HDR) $(SYMTAB_SRC)
|
||||
.PHONY: all hello/hello redirect/redirect clean populate
|
||||
|
||||
# Create the romfs directory
|
||||
|
||||
$(ROMFS_DIR):
|
||||
$(Q) mkdir $(ROMFS_DIR)
|
||||
.PHONY: all hello/hello redirect/redirect clean
|
||||
|
||||
# Build the hello test program
|
||||
|
||||
@ -64,11 +58,12 @@ redirect/redirect:
|
||||
# Create the romfs.img file from the romfs directory
|
||||
# REVISIT: ELF binaries should be stripped so that they are not so big
|
||||
|
||||
$(ROMFS_IMG): hello/hello redirect/redirect testdata.txt $(ROMFS_DIR)
|
||||
$(ROMFS_IMG): hello/hello redirect/redirect testdata.txt
|
||||
$(Q) $(MAKE) -C hello install TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" ROMFS_DIR="$(ROMFS_DIR)"
|
||||
$(Q) $(MAKE) -C redirect install TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" ROMFS_DIR="$(ROMFS_DIR)"
|
||||
$(Q) install -m 0644 testdata.txt $(ROMFS_DIR)/testdata.txt
|
||||
$(Q) genromfs -f $@ -d $(ROMFS_DIR) -V "POSIXSPAWN"
|
||||
$(Q) genromfs -f $@.tmp -d $(ROMFS_DIR) -V "POSIXSPAWN"
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
|
@ -41,7 +41,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %.o: %.c
|
||||
@echo "CC: $<"
|
||||
|
@ -41,7 +41,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=.o)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %.o: %.c
|
||||
@echo "CC: $<"
|
||||
|
@ -56,10 +56,14 @@ ROOTDEPPATH += --dep-path lib
|
||||
|
||||
VPATH = lib
|
||||
|
||||
context::
|
||||
@$(MAKE) -C lib TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
sotest_main.c: build
|
||||
lib/sot_symtab.c: build
|
||||
|
||||
.PHONY: build
|
||||
build:
|
||||
+$(Q) $(MAKE) -C lib TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
clean::
|
||||
@$(MAKE) -C lib TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
+$(Q) $(MAKE) -C lib TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) clean
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
ALL_SUBDIRS = sotest
|
||||
BUILD_SUBDIRS = sotest
|
||||
@ -47,60 +46,49 @@ endif
|
||||
SOTEST_DIR = $(APPDIR)/examples/sotest
|
||||
LIB_DIR = $(SOTEST_DIR)/lib
|
||||
FSROOT_DIR = $(LIB_DIR)/fsroot
|
||||
SYMTAB_SRC = $(LIB_DIR)/sot_symtab.c
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_SOTEST_BUILTINFS),y)
|
||||
ROMFS_IMG = $(LIB_DIR)/romfs.img
|
||||
ROMFS_HDR = $(LIB_DIR)/romfs.h
|
||||
SYMTAB_SRC = $(LIB_DIR)/sot_symtab.c
|
||||
endif
|
||||
|
||||
define DIR_template
|
||||
$(1)_$(2):
|
||||
+$(Q) $(MAKE) -C $(1) $(3) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" FSROOT_DIR="$(FSROOT_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
+$(Q) $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" FSROOT_DIR="$(FSROOT_DIR)" CROSSDEV=$(CROSSDEV)
|
||||
endef
|
||||
|
||||
all: $(ROMFS_HDR) $(DIRLIST_HDR) $(SYMTAB_SRC)
|
||||
.PHONY: all build clean install populate
|
||||
all: $(ROMFS_HDR) $(SYMTAB_SRC)
|
||||
.PHONY: all clean install
|
||||
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),build, all)))
|
||||
$(foreach DIR, $(ALL_SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
|
||||
|
||||
# Build program(s) in each sud-directory
|
||||
|
||||
build: $(foreach DIR, $(BUILD_SUBDIRS), $(DIR)_build)
|
||||
$(foreach DIR, $(ALL_SUBDIRS), $(eval $(call DIR_template,$(DIR),clean)))
|
||||
$(foreach DIR, $(BUILD_SUBDIRS), $(eval $(call DIR_template,$(DIR),install)))
|
||||
|
||||
# Install each program in the fsroot directory
|
||||
|
||||
install: $(foreach DIR, $(BUILD_SUBDIRS), $(DIR)_install)
|
||||
|
||||
# Create the fsroot directory
|
||||
|
||||
$(FSROOT_DIR):
|
||||
$(Q) mkdir $(FSROOT_DIR)
|
||||
|
||||
# Populate the fsroot directory
|
||||
|
||||
populate: $(FSROOT_DIR) build install
|
||||
|
||||
ifeq ($(CONFIG_EXAMPLES_SOTEST_BUILTINFS),y)
|
||||
# Create the romfs.img file from the populated fsroot directory
|
||||
|
||||
$(ROMFS_IMG): populate
|
||||
ifeq ($(CONFIG_EXAMPLES_SOTEST_BUILTINFS),y)
|
||||
$(Q) genromfs -f $@ -d $(FSROOT_DIR) -V "SOTESTTEST"
|
||||
endif
|
||||
$(ROMFS_IMG): install
|
||||
$(Q) genromfs -f $@.tmp -d $(FSROOT_DIR) -V "SOTESTTEST"
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
$(ROMFS_HDR): $(ROMFS_IMG)
|
||||
ifeq ($(CONFIG_EXAMPLES_SOTEST_BUILTINFS),y)
|
||||
$(Q) (cd $(LIB_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
endif
|
||||
|
||||
# Create the exported symbol table
|
||||
|
||||
$(SYMTAB_SRC): build
|
||||
$(Q) $(LIB_DIR)/mksymtab.sh $(FSROOT_DIR) >$@
|
||||
$(SYMTAB_SRC): install
|
||||
$(Q) $(LIB_DIR)/mksymtab.sh $(FSROOT_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Clean each subdirectory
|
||||
|
||||
clean: $(foreach DIR, $(ALL_SUBDIRS), $(DIR)_clean)
|
||||
$(Q) rm -f $(ROMFS_HDR) $(DIRLIST_HDR) $(ROMFS_IMG) $(SYMTAB_SRC)
|
||||
$(Q) rm -f $(ROMFS_HDR) $(ROMFS_IMG) $(SYMTAB_SRC)
|
||||
$(Q) rm -rf $(FSROOT_DIR)
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
OBJEXT ?= .o
|
||||
DELIM ?= /
|
||||
@ -45,9 +44,6 @@ else
|
||||
NUTTXLIB = "$(TOPDIR)$(DELIM)staging"
|
||||
endif
|
||||
|
||||
KDEFINE = ${shell $(DEFINE) "$(CC)" __KERNEL__}
|
||||
CMODULEFLAGS += $(KDEFINE)
|
||||
|
||||
LDLIBPATH =
|
||||
LDLIBS =
|
||||
|
||||
@ -78,7 +74,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
|
@ -34,7 +34,6 @@
|
||||
############################################################################
|
||||
|
||||
-include $(TOPDIR)/Make.defs
|
||||
include $(APPDIR)/Make.defs
|
||||
|
||||
OBJEXT ?= .o
|
||||
DELIM ?= /
|
||||
@ -45,9 +44,6 @@ else
|
||||
NUTTXLIB = "$(TOPDIR)$(DELIM)staging"
|
||||
endif
|
||||
|
||||
KDEFINE = ${shell $(DEFINE) "$(CC)" __KERNEL__}
|
||||
CMODULEFLAGS += $(KDEFINE)
|
||||
|
||||
LDLIBPATH =
|
||||
LDLIBS =
|
||||
|
||||
@ -78,7 +74,7 @@ SRCS = $(BIN).c
|
||||
OBJS = $(SRCS:.c=$(OBJEXT))
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(OBJS): %$(OBJEXT): %.c
|
||||
@echo "CC: $<"
|
||||
|
@ -51,18 +51,24 @@ PRIORITY = SCHED_PRIORITY_DEFAULT
|
||||
STACKSIZE = 2048
|
||||
MODULE = $(CONFIG_EXAMPLES_THTTPD)
|
||||
|
||||
# Common build
|
||||
thttpd_main.c: build
|
||||
|
||||
all::
|
||||
.PHONY: build
|
||||
build:
|
||||
+$(Q) $(CONTENT_MAKE) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
# Common build
|
||||
|
||||
context::
|
||||
+$(Q) $(CONTENT_MAKE) context TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
depend::
|
||||
@$(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep
|
||||
+$(Q) $(CONTENT_MAKE) depend TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
clean::
|
||||
+$(Q) $(CONTENT_MAKE) clean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
distclean::
|
||||
+$(Q) $(CONTENT_MAKE) distclean TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV)
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
@ -39,47 +39,42 @@ PROGNAME = hello tasks
|
||||
PRIORITY = $(CONFIG_THTTPD_CGI_PRIORITY)
|
||||
STACKSIZE = $(CONFIG_THTTPD_CGI_STACKSIZE)
|
||||
|
||||
CSRCS = hello.c tasks.c
|
||||
|
||||
ROOTDEPPATH += --dep-path hello --dep-path tasks
|
||||
VPATH += :hello:tasks
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
|
||||
THTTPD_DIR = $(APPDIR)/examples/thttpd
|
||||
CONTENT_DIR = $(THTTPD_DIR)/content
|
||||
ROMFS_DIR = $(CONTENT_DIR)/romfs
|
||||
ROMFS_IMG = $(CONTENT_DIR)/romfs.img
|
||||
ROMFS_HDR = $(CONTENT_DIR)/romfs.h
|
||||
|
||||
CSRCS = hello.c tasks.c
|
||||
|
||||
ROOTDEPPATH += --dep-path hello --dep-path tasks
|
||||
VPATH += :hello:tasks
|
||||
|
||||
# Create the romfs directory
|
||||
|
||||
$(ROMFS_DIR):
|
||||
@mkdir -p $(ROMFS_DIR)
|
||||
|
||||
# Populate the romfs directory
|
||||
|
||||
$(ROMFS_DIR)/index.html : $(CONTENT_DIR)/index.html
|
||||
@cp -a $< $@ || { echo "cp of index.html failed"; exit 1; }
|
||||
$(Q) mkdir -p $(ROMFS_DIR)
|
||||
$(Q) cp -a $< $@ || { echo "cp of index.html failed"; exit 1; }
|
||||
|
||||
$(ROMFS_DIR)/style.css : $(CONTENT_DIR)/style.css
|
||||
@cp -a $< $@ || { echo "cp of $< failed"; exit 1; }
|
||||
|
||||
populate: $(ROMFS_DIR) $(ROMFS_DIR)/index.html $(ROMFS_DIR)/style.css
|
||||
$(Q) mkdir -p $(ROMFS_DIR)
|
||||
$(Q) cp -a $< $@ || { echo "cp of $< failed"; exit 1; }
|
||||
|
||||
# Create the romfs.img file from the populated romfs directory
|
||||
|
||||
$(ROMFS_IMG): populate
|
||||
@genromfs -f $@ -d $(ROMFS_DIR) -V "THTTPDTEST"
|
||||
$(ROMFS_IMG): $(ROMFS_DIR)/index.html $(ROMFS_DIR)/style.css
|
||||
$(Q) genromfs -f $@ -d $(ROMFS_DIR) -V "THTTPDTEST"
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
$(ROMFS_HDR): $(ROMFS_IMG)
|
||||
@(cd $(CONTENT_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
$(Q) (cd $(CONTENT_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
|
||||
context:: $(ROMFS_HDR)
|
||||
all:: $(ROMFS_HDR)
|
||||
|
||||
clean::
|
||||
$(call DELFILE$(ROMFS_HDR))
|
||||
$(call DELFILE, $(ROMFS_HDR))
|
||||
$(call DELFILE, $(ROMFS_IMG))
|
||||
@rm -rf $(ROMFS_DIR)
|
||||
|
||||
include $(APPDIR)/Application.mk
|
||||
$(Q) rm -rf $(ROMFS_DIR)
|
||||
|
@ -46,61 +46,38 @@ SYMTAB = $(CONTENT_DIR)/symtab.h
|
||||
|
||||
define DIR_template
|
||||
$(1)_$(2):
|
||||
+$(Q) $(MAKE) -C $(1) $(3) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) CGI_DIR="$(ROMFSCGI_DIR)"
|
||||
+$(Q) $(MAKE) -C $(1) $(2) TOPDIR="$(TOPDIR)" APPDIR="$(APPDIR)" CROSSDEV=$(CROSSDEV) CGI_DIR="$(ROMFSCGI_DIR)"
|
||||
endef
|
||||
|
||||
all: $(ROMFS_HDR) $(SYMTAB)
|
||||
.PHONY: all build clean install populate headers binaries context depend
|
||||
.PHONY: all clean distclean install context depend
|
||||
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),build,all)))
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),clean,clean)))
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),install,install)))
|
||||
|
||||
# Build program(s) in each sud-directory
|
||||
|
||||
build: $(foreach DIR, $(SUBDIRS), $(DIR)_build)
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),clean)))
|
||||
$(foreach DIR, $(SUBDIRS), $(eval $(call DIR_template,$(DIR),install)))
|
||||
|
||||
# Install each program in the romfs directory
|
||||
|
||||
install: $(foreach DIR, $(SUBDIRS), $(DIR)_install)
|
||||
@( for file in $(INSTALL_FILES); do\
|
||||
$(Q) ( for file in $(INSTALL_FILES); do\
|
||||
install -m 0644 -D $${file} $(ROMFS_DIR)/$${file}; \
|
||||
done; )
|
||||
|
||||
# Create the romfs directory
|
||||
|
||||
$(ROMFS_DIR):
|
||||
@mkdir -p $(ROMFS_DIR)
|
||||
|
||||
$(ROMFSCGI_DIR): $(ROMFS_DIR)
|
||||
@mkdir -p $(ROMFSCGI_DIR)
|
||||
|
||||
# Populate the romfs directory
|
||||
|
||||
populate: $(ROMFSCGI_DIR) build install
|
||||
|
||||
# Create the romfs.img file from the populated romfs directory
|
||||
|
||||
$(ROMFS_IMG): populate
|
||||
@genromfs -f $@ -d $(ROMFS_DIR) -V "THTTPDTEST"
|
||||
$(ROMFS_IMG): install
|
||||
$(Q) genromfs -f $@.tmp -d $(ROMFS_DIR) -V "THTTPDTEST"
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Create the romfs.h header file from the romfs.img file
|
||||
|
||||
$(ROMFS_HDR): $(ROMFS_IMG)
|
||||
@(cd $(CONTENT_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
$(Q) (cd $(CONTENT_DIR); xxd -i romfs.img | sed -e "s/^unsigned/static const unsigned/g" >$@)
|
||||
|
||||
# Create the exported symbol table list from the derived *-thunk.S files
|
||||
|
||||
$(SYMTAB): build
|
||||
@$(CONTENT_DIR)/mksymtab.sh $(CONTENT_DIR) >$@
|
||||
|
||||
# Make ROMFS header file and symbols tables.
|
||||
|
||||
headers: $(ROMFS_HDR) $(SYMTAB)
|
||||
|
||||
# No binaries need to be build
|
||||
|
||||
binaries:
|
||||
$(SYMTAB): install
|
||||
$(Q) $(CONTENT_DIR)/mksymtab.sh $(CONTENT_DIR) >$@.tmp
|
||||
$(Q) $(call TESTANDREPLACEFILE, $@.tmp, $@)
|
||||
|
||||
# Nothing special needs to be done during the context phase
|
||||
|
||||
@ -109,11 +86,10 @@ context:
|
||||
# Clean each subdirectory
|
||||
|
||||
clean: $(foreach DIR, $(SUBDIRS), $(DIR)_clean)
|
||||
$(call DELFILE$(ROMFS_HDR))
|
||||
$(call DELFILE, $(ROMFS_HDR))
|
||||
$(call DELFILE, $(ROMFS_IMG))
|
||||
$(call DELFILE, $(SYMTAB))
|
||||
@rm -rf $(ROMFS_DIR)
|
||||
$(call CLEAN)
|
||||
$(Q) rm -rf $(ROMFS_DIR)
|
||||
|
||||
distclean: clean
|
||||
|
||||
|
@ -44,7 +44,7 @@ R2SRC = $(BIN)-thunk.S
|
||||
R2OBJ = $(R2SRC:.S=.o)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
@echo "CC: $<"
|
||||
|
@ -47,7 +47,7 @@ R2SRC = $(BIN)-thunk.S
|
||||
R2OBJ = $(R2SRC:.S=.o)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: clean install
|
||||
.PHONY: all clean install
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
@echo "CC: $<"
|
||||
|
Loading…
x
Reference in New Issue
Block a user