-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMakefile
111 lines (85 loc) · 2.48 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#
# dcplaya top level Makefile
#
# (C) COPYRIGHT 2002 benjamin gerard <[email protected]>
#
# $Id: Makefile,v 1.31 2007-03-17 14:40:29 vincentp Exp $
#
TARGETS=dcplaya.elf
SUBDIRS = arm data plugins src libs dynshell
BUILTIN_DRIVERS=./plugins/img/tga/tga.lef
WHOLE_LIBS=-lz,-ltranslator,-ldraw,-ldreammp3,-lta,-llua,-lkosutils,-lkallisti
OPT_LIBS= -lgcc -lm
ELF_EXTRA += -L./src -L./libs/z -L./libs/draw -L./libs/ta -L./libs/translator -L./libs/lua -L$(KOS_BASE)/lib/$(KOS_ARCH) -L$(KOS_BASE)/addons/lib/$(KOS_ARCH) \
-Wl,--whole-archive,$(WHOLE_LIBS),--no-whole-archive\
$(BUILTIN_DRIVERS) $(OPT_LIBS) -lconio -lkosh
#ELF_EXTRA += -shared -L./src -ldreammp3 -los
#ELF_EXTRA += `find src -type f -name '*.o'` -los
KOS_INCS= -I. -Iinclude
ALL_INCS= -I$(KOS_INCS) -I$(KOS_BASE)/kernel/arch/$(KOS_ARCH)/include
CLEAN_LOCAL=symtab.h tmp_symtab.h full-symb-$(TARGETS) debug.log
my_all: all TODO
symtab.o: symtab.h
.PHONY: symtab.h
symtab.h :
@echo "Build [$@]"
@[ -e $@ ] || touch $@
@utils/makesymb.sh $(TARGETS) > tmp_$@
@diff tmp_$@ $@ > /dev/null || mv -f tmp_$@ $@
@rm -f tmp_$@
force_$(TARGETS): symtab.o main.o force_math.o data/romdisk.o
@echo "Build [$@]"
$(KOS_CXX) $(KOS_CFLAGS) $(KOS_LDFLAGS) -o $(TARGETS) $(KOS_START) \
$^ $(ELF_EXTRA)
.PRECIOUS: $(TARGETS)
$(TARGETS): force_$(TARGETS) $(OBJS)
@echo "Build [$@]"
@( \
pass=1; \
rm -f tmp_$@; \
[ -z "0" ]; \
while [ $$? -ne 0 ]; do \
cp -f $@ tmp_$@;\
echo "** [$@] PASS $$pass ";\
pass=`expr $$pass + 1`;\
$(MAKE) force_$@; \
diff tmp_$@ $@ > /dev/null; \
done; \
rm -f tmp_$@; \
)
@cp -fv $@ full-symb-$@
@$(KOS_STRIP) $@
send: make-data userconf.lua
$(KOS_LOADER) $(KOS_LOADER_FLAGS) $(TARGETS) | tee debug.log
make-data:
$(MAKEDATA)
userconf.lua:
@cp -v userconf-developer.lua $@
r: send
run: my_all send
backup: maintainer-clean
N="`basename $(TOP_DIR)`"; tar cjvf ../$${N}-"`date -I`".tar.bz2 -C .. "$${N}"
.PHONY: doc
doc:
@$(MAKE) -s -C doc
.PHONY: TODO
TODO:
@echo "[Build $@]"
@utils/shasubst.sh -D "d=[`date '+%Y-%m-%d %r'`, `id -un`]"\
<$@ >$@.$$$$ && \
diff -q $@ $@.$$$$; \
if test $$? -ne 0; then mv -f $@.$$$$ $@; else rm -f $@.$$$$; fi;
commit: TODO
cvs commit 2>&1 | tee - cvs.log
update: TODO
cvs update -d 2>&1 | tee - cvs.log
DEPEND_EXTRA=depend_extra
depend_extra:
@touch "symtab.h"
# ----------------------------------------------------------------------
include Makefile.inc
ifeq '$(MASTER)' '1'
MAKEDATA=$(MAKE) -C make-cd iso
else
MAKEDATA=@echo "NO make data"
endif