1 |
|
---|
2 |
|
---|
3 | # Generate compilation rule for a c file
|
---|
4 | define def_compile_c
|
---|
5 | $$.$(call OBJFILE,$(1)): $(1)
|
---|
6 | $$(call DO.COMPILE.c,$(.TCF) $(.TCF.$(1)))
|
---|
7 | endef
|
---|
8 |
|
---|
9 | # Generate compilation rule for a S file
|
---|
10 | define def_compile_S
|
---|
11 | $$.$(call OBJFILE,$(1)): $(1)
|
---|
12 | $$(call DO.COMPILE.s,$(.TSF) $(.TSF.$(1)))
|
---|
13 | endef
|
---|
14 |
|
---|
15 | # Generate compilation rule for an asm files
|
---|
16 | define def_compile_asm
|
---|
17 | $$.$(call OBJFILE,$(1)): $(1)
|
---|
18 | $$(call DO.COMPILE.asm,$(.TAF) $(.TAF.$(1)))
|
---|
19 | endef
|
---|
20 |
|
---|
21 | # Linking rule for an EXE.
|
---|
22 | define def_link_exe
|
---|
23 | $$.$(.TARG): $(.OBJS) $(.DEPS)
|
---|
24 | $$(call DO.LINK.exe,$(.TLDF))
|
---|
25 | endef
|
---|
26 |
|
---|
27 | # Linking rule for a DLL.
|
---|
28 | define def_link_dll
|
---|
29 | $$.$(.TARG): $(.OBJS) $(.DEPS) $(.TDEF)
|
---|
30 | $$(call DO.LINK.dll,$(.TLDF))
|
---|
31 | endef
|
---|
32 |
|
---|
33 | # generic rule for building libs.
|
---|
34 | define def_lib
|
---|
35 | $$.$(.TARG): $(.OBJS) $(.DEPS)
|
---|
36 | $$(call DO.LIBRARY,$(^O))
|
---|
37 | endef
|
---|
38 |
|
---|
39 | # The rule for building an archive with lot's of arguments.
|
---|
40 | define def_lib_ar
|
---|
41 | $$.$(.TARG): $(.OBJS) $(.DEPS)
|
---|
42 | echo "CREATE $$@" > $$@.ar-script
|
---|
43 | $(foreach x, $(filter %.o, $(sort $(.OBJS) $(.DEPS))), $(call def_lib_ar_addmod))
|
---|
44 | echo "SAVE" >> $$@.ar-script
|
---|
45 | echo "END" >> $$@.ar-script
|
---|
46 | rm -f $$@
|
---|
47 | ar -M < $$@.ar-script
|
---|
48 |
|
---|
49 | endef
|
---|
50 |
|
---|
51 | # defined used by def_lib_ar to add a module to the script file.
|
---|
52 | define def_lib_ar_addmod
|
---|
53 | echo "ADDMOD $(x)" >> $$@.ar-script
|
---|
54 |
|
---|
55 | endef
|
---|
56 |
|
---|
57 | # The rule for building an archive with imports
|
---|
58 | define def_implib
|
---|
59 | $$.$(.TARG): $(.IMPS) $(.OBJS) $(.DEPS)
|
---|
60 | $$(call DO.IMPLIB)
|
---|
61 | endef
|
---|
62 |
|
---|