annotate Makefile @ 239:8beb109dfd69

Fix hang on undefined symbol in rmb under pragma undefextern Problem in the pass4.c implementation led to an infinite loop if any instructions failed to resolve. Instead, if a pass through the loop fails to resolve anything, bail out since it's clearly pointless to continue trying.
author William Astle <lost@l-w.ca>
date Tue, 14 Aug 2012 21:06:52 -0600
parents d4cf2e139e4a
children b97460509c3d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
1 # define anything system specific here
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
2 #
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
3 # set these variables if needed
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
4 # PROGSUFFIX: suffix added to binaries
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
5 # BUILDTPREFIX: prefix added to build utilities (cc, etc.) for xcompile
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
6 # can also set them when invoking "make"
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
7 #PROGSUFFIX := .exe
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
8 #BUILDTPREFIX=i586-mingw32msvc-
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
9
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
10 # C compiler
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
11 CC := $(BUILDTPREFIX)cc
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
12
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
13 # ar
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
14 AR := $(BUILDTPREFIX)ar
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
15
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
16 # ranlib
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
17 RANLIB := $(BUILDTPREFIX)ranlib
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
18
237
d4cf2e139e4a Bump version number in preparation for a release.
William Astle <lost@l-w.ca>
parents: 222
diff changeset
19 CPPFLAGS += -I lwlib -DPACKAGE_STRING='"lwtools 4.7"'
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
20 LDFLAGS += -L$(PWD)/lwlib -llw
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
21
25
87590f43e76d Started lwbasic parser; checkpoint
lost@l-w.ca
parents: 22
diff changeset
22 CFLAGS ?= -g -Wall
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
23
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
24 MAIN_TARGETS := lwasm/lwasm$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
25 lwlink/lwlink$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
26 lwar/lwar$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
27 lwlink/lwobjdump$(PROGSUFFIX)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
28
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
29 .PHONY: all
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
30 all: $(MAIN_TARGETS)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
31
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
32 lwar_srcs := add.c extract.c list.c lwar.c main.c remove.c replace.c
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
33 lwar_srcs := $(addprefix lwar/,$(lwar_srcs))
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
34
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
35 lwlib_srcs := lw_alloc.c lw_realloc.c lw_free.c lw_error.c lw_expr.c \
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
36 lw_stack.c lw_string.c lw_stringlist.c lw_cmdline.c
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
37 lwlib_srcs := $(addprefix lwlib/,$(lwlib_srcs))
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
38
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
39 lwlink_srcs := main.c lwlink.c readfiles.c expr.c script.c link.c output.c map.c
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
40 lwobjdump_srcs := objdump.c
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
41 lwlink_srcs := $(addprefix lwlink/,$(lwlink_srcs))
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
42 lwobjdump_srcs := $(addprefix lwlink/,$(lwobjdump_srcs))
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
43
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
44 lwcc_srcs := lwcc.c
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
45 lwcc_srcs := $(addprefix lwcc/,$(lwcc_srcs))
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
46 lwcpp_srcs := lwcpp.c
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
47 lwcpp_srcs := $(addprefix lwcc/cpp/,$(lwcpp_srcs))
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
48
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
49 lwasm_srcs := debug.c input.c insn_bitbit.c insn_gen.c insn_indexed.c \
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
50 insn_inh.c insn_logicmem.c insn_rel.c insn_rlist.c insn_rtor.c insn_tfm.c \
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
51 instab.c list.c lwasm.c macro.c main.c os9.c output.c pass1.c pass2.c \
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
52 pass3.c pass4.c pass5.c pass6.c pass7.c pragma.c pseudo.c section.c \
222
03f7192fcd20 Add --unicorns option for IDE integration
William Astle <lost@l-w.ca>
parents: 213
diff changeset
53 struct.c symbol.c unicorns.c
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
54 lwasm_srcs := $(addprefix lwasm/,$(lwasm_srcs))
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
55
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
56 lwasm_objs := $(lwasm_srcs:.c=.o)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
57 lwlink_objs := $(lwlink_srcs:.c=.o)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
58 lwar_objs := $(lwar_srcs:.c=.o)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
59 lwlib_objs := $(lwlib_srcs:.c=.o)
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
60 lwobjdump_objs := $(lwobjdump_srcs:.c=.o)
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
61 lwcc_objs := $(lwcc_srcs:.c=.o)
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
62 lwcpp_objs := $(lwcpp_srcs:.c=.o)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
63
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
64 lwasm_deps := $(lwasm_srcs:.c=.d)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
65 lwlink_deps := $(lwlink_srcs:.c=.d)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
66 lwar_deps := $(lwar_srcs:.c=.d)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
67 lwlib_deps := $(lwlib_srcs:.c=.d)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
68 lwobjdump_deps := $(lwobjdump_srcs:.c=.d)
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
69 lwcc_deps := $(lwcc_srcs:.c=.d)
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
70 lwcpp_deps := $(lwcpp_srcs:.c=.d)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
71
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
72 .PHONY: lwlink lwasm lwar lwobjdump lwcc lwcpp
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
73 lwlink: lwlink/lwlink$(PROGSUFFIX)
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
74 lwasm: lwasm/lwasm$(PROGSUFFIX)
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
75 lwar: lwar/lwar$(PROGSUFFIX)
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
76 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX)
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
77 lwcc: lwcc/lwcc$(PROGSUFFIX)
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
78 lwcpp: lwcc/lwcpp$(PROGSUFFIX)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
79
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
80 .PHONY: lwbasic
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
81 lwbasic: lwbasic/lwbasic$(PROGSUFFIX)
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
82
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
83 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
84 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
85 @$(CC) -o $@ $(lwasm_objs) $(LDFLAGS)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
86
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
87 lwlink/lwlink$(PROGSUFFIX): $(lwlink_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
88 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
89 @$(CC) -o $@ $(lwlink_objs) $(LDFLAGS)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
90
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
91 lwlink/lwobjdump$(PROGSUFFIX): $(lwobjdump_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
92 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
93 @$(CC) -o $@ $(lwobjdump_objs) $(LDFLAGS)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
94
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
95 lwar/lwar$(PROGSUFFIX): $(lwar_objs) lwlib
17
4969bd6f3b7d Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents: 16
diff changeset
96 @echo Linking $@
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
97 @$(CC) -o $@ $(lwar_objs) $(LDFLAGS)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
98
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
99 lwcc/lwcc$(PROGSUFFIX): $(lwcc_objs) lwlib
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
100 @echo Linking $@
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
101 @$(CC) -o $@ $(lwcc_objs) $(LDFLAGS)
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
102
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
103 lwcc/lwcpp$(PROGSUFFIX): $(lwcpp_objs) lwlib
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
104 @echo Linking $@
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
105 @$(CC) -o $@ $(lwcpp_objs) $(LDFLAGS)
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
106
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
107
17
4969bd6f3b7d Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents: 16
diff changeset
108 #.PHONY: lwlib
4969bd6f3b7d Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents: 16
diff changeset
109 .INTERMEDIATE: lwlib
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
110 lwlib: lwlib/liblw.a
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
111
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
112 lwlib/liblw.a: $(lwlib_objs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
113 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
114 @$(AR) rc $@ $(lwlib_objs)
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
115 @$(RANLIB) $@
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
116
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
117 alldeps := $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) ($lwobjdump_deps) $(lwcc_deps)
3
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
118
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
119 -include $(alldeps)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
120
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
121 extra_clean := $(extra_clean) *~ */*~
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
122
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
123 %.o: %.c
181
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
124 @echo "Building dependencies for $@"
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
125 @$(CC) -MM $(CPPFLAGS) -o $*.d $<
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
126 @mv -f $*.d $*.d.tmp
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
127 @sed -e 's|.*:|$*.o $*.d:|' < $*.d.tmp > $*.d
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
128 @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
129 @rm -f $*.d.tmp
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
130 @echo Building $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
131 @$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
132
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
133
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
134 .PHONY: clean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
135 clean: $(cleantargs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
136 @echo "Cleaning up"
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
137 @rm -f lwlib/liblw.a lwasm/lwasm$(PROGSUFFIX) lwlink/lwlink$(PROGSUFFIX) lwlink/lwobjdump$(PROGSUFFIX) lwar/lwar$(PROGSUFFIX) lwcc/lwcc$(PROGSUFFIX)
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
138 @rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs) $(lwcc_objs) $(lwcpp_objs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
139 @rm -f $(extra_clean)
20
f4df3bd4b85f Moved removal of dep files to realclean and properly remove any .exe files
lost@l-w.ca
parents: 17
diff changeset
140 @rm -f */*.exe
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
141
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
142 .PHONY: realclean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
143 realclean: clean $(realcleantargs)
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
144 @echo "Cleaning up even more"
193
68f41eaf44f2 Added lwcc, lwcpp stubs
lost@l-w.ca
parents: 190
diff changeset
145 @rm -f $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) $(lwobjdump_deps) $(lwcc_deps) $(lwcpp_deps)
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
146 @rm -f docs/manual/*.html docs/manual/*.pdf
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
147
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
148 print-%:
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
149 @echo $* = $($*)
3
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
150
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
151 .PHONY: install
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
152 install:
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
153 cp $(MAIN_TARGETS) /usr/local/bin/
173
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
154
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
155 .PHONY: test
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
156 test: all test/runtests
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
157 @test/runtests
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
158
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
159 .PHONY: manual
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
160 manual: manual-html manual-htmlm manual-pdf
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
161
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
162 .PHONY: manual-html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
163 manual-html: docs/manual/manual.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
164
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
165 .PHONY: manual-htmlm
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
166 manual-htmlm: docs/manual/index.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
167
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
168 .PHONY: manual-pdf
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
169 manual-pdf: docs/manual/manual.pdf
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
170
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
171 docs/manual/manual.html: docs/manual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
172 docbook2html -o docs -u docs/manual.docbook.sgml && mv docs/manual.docbook.html docs/manual/manual.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
173
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
174 docs/manual/index.html: docs/manual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
175 docbook2html -o docs/manual docsmanual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
176
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
177 docs/manual/manual.pdf: docs/manual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
178 docbook2pdf -o docs -u docsmanual.docbook.sgml && mv docs/manual.docbook.pdf docs/manual/manual.pdf && rm -f docs/manual.docbook.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
179