git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix: corner cases when printing large content through term interface
[lunaix-os.git]
/
lunaix-os
/
usr
/
makefile
diff --git
a/lunaix-os/usr/makefile
b/lunaix-os/usr/makefile
index 942a5e623ff4f07cad51a2a61aee7b6d78f3ab18..e49d7d05ee68ffb5ef40046a86fa8a35c7112511 100644
(file)
--- a/
lunaix-os/usr/makefile
+++ b/
lunaix-os/usr/makefile
@@
-7,6
+7,8
@@
sys_include := $(CURDIR)/includes
build_dir := $(CURDIR)/build
libc_name := liblunac
libc_files := $(libc_name).a
build_dir := $(CURDIR)/build
libc_name := liblunac
libc_files := $(libc_name).a
+libc := $(addprefix $(build_dir)/lib/,$(libc_files))
+ldscript := $(CURDIR)/link-usr.ld
common_param := CC AR INCLUDES BUILD_DIR BUILD_NAME CFLAGS LDFLAGS
common_param := CC AR INCLUDES BUILD_DIR BUILD_NAME CFLAGS LDFLAGS
@@
-28,27
+30,38
@@
$(build_dir)/$(libc_name).a: $(build_dir)/bin $(build_dir)/lib $(build_dir)/incl
$(call status,TASK,$(BUILD_NAME))
@$(MAKE) $(MKFLAGS) -C libc/ $(task)
$(call status,TASK,$(BUILD_NAME))
@$(MAKE) $(MKFLAGS) -C libc/ $(task)
-app-list := ls
-app-list += init
-app-list += signal_demo
-app-list += sh
+app-list = $(shell cat apps.list)
+exec-list = $(shell cat execs.list)
mkapp-list := $(addprefix app-, $(app-list))
mkapp-list := $(addprefix app-, $(app-list))
+mkexec-list := $(addprefix $(build_dir)/bin/, $(exec-list))
-export LD_SCRIPT := $(
CURDIR)/link-usr.ld
-export LIBC := $(
addprefix $(build_dir)/lib/,$(libc_files)
)
+export LD_SCRIPT := $(
ldscript)
+export LIBC := $(
libc
)
app-%:
$(call status,TASK,$*)
@$(MAKE) $(MKFLAGS) -C $* $(task) BUILD_NAME="$*"
app-%:
$(call status,TASK,$*)
@$(MAKE) $(MKFLAGS) -C $* $(task) BUILD_NAME="$*"
+exec_%.o: %.c
+ $(call status,CC,$<)
+ @$(CC) $(CFLAGS) $(addprefix -I,$(INCLUDES)) -c $< -o $@
+
+$(build_dir)/bin/%: exec_%.o
+ $(call status,LD,$(@F))
+ @$(CC) -T $(ldscript) -o $@ $< $(libc) $(LDFLAGS)
+
app: task := all
app: INCLUDES += $(build_dir)/includes
app: $(mkapp-list)
app: task := all
app: INCLUDES += $(build_dir)/includes
app: $(mkapp-list)
+exec: task := all
+exec: INCLUDES += $(build_dir)/includes
+exec: $(mkexec-list)
+
clean: task := clean
clean: $(mkapp-list)
@rm -rf $(build_dir)
@$(MAKE) $(MKFLAGS) -C libc/ $(task)
all: task := all
clean: task := clean
clean: $(mkapp-list)
@rm -rf $(build_dir)
@$(MAKE) $(MKFLAGS) -C libc/ $(task)
all: task := all
-all: $(build_dir)/$(libc_name).a app
\ No newline at end of file
+all: $(build_dir)/$(libc_name).a
exec
app
\ No newline at end of file