Mercurial > hg > index.cgi
annotate Makefile @ 304:d85d173ba120 ccdev
Checkpoint lwcc development - preprocessor is runnable but nonfunctional
The preprocessor is currently runnable but doesn't actually do anything
useful. This is just a checkpoint.
author | William Astle <lost@l-w.ca> |
---|---|
date | Tue, 17 Sep 2013 19:33:41 -0600 |
parents | 83fcc1ed6ad6 |
children | 670ea8f90212 |
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 |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
10 LWTOOLS_VERSION = 4.8 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
11 LWTOOLS_VERSION_SUFFIX = -devcc |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
12 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
13 PACKAGE_VERSION = $(LWTOOLS_VERSION)$(LWTOOLS_VERSION_SUFFIX) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
14 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
15 ifeq ($(PREFIX),) |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
16 ifneq ($(DESTDIR),) |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
17 PREFIX = /usr |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
18 else |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
19 PREFIX = /usr/local |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
20 endif |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
21 endif |
270
35b6787a5b39
Allow make install destination to be overridden
William Astle <lost@l-w.ca>
parents:
269
diff
changeset
|
22 |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
23 LIBDIR = $(PREFIX)/lib |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
24 BINDIR = $(PREFIX)/bin |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
25 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
26 INSTALLDIR = $(DESTDIR)$(PREFIX) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
27 INSTALLBIN = $(DESTDIR)$(BINDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
28 INSTALLLIB = $(DESTDIR)$(LIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
29 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
30 LWCC_LIBDIR = $(LIBDIR)/lwcc/$(PACKAGE_VERSION) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
31 LWCC_INSTALLLIBDIR = $(DESTDIR)$(LWCC_LIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
32 |
272
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
33 # this are probably pointless but they will make sure |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
34 # the variables are set without overriding the environment |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
35 # or automatic values from make itself. |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
36 CC ?= cc |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
37 AR ?= ar |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
38 RANLIB ?= ranlib |
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
|
39 |
272
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
40 # Set variables for cross compiling |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
41 ifneq ($(BUILDTPREFIX),) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
42 CC := $(BUILDTPREFIX)$(CC) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
43 AR := $(BUILDTPREFIX)$(AR) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
44 RANLIB := $(BUILDTPREFIX)$(RANLIB) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
45 endif |
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
|
46 |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
47 CPPFLAGS += -I lwlib -DPACKAGE_STRING='"lwtools $(PACKAGE_VERSION)"' |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
48 CPPFLAGS += -DPREFIX=$(PREFIX) -DLWCC_LIBDIR=$(LWCC_LIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
49 CPPFLAGS += -DPROGSUFFIX=$(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
|
50 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
|
51 |
260 | 52 CFLAGS ?= -O3 -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
|
53 |
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
|
54 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
|
55 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
|
56 lwar/lwar$(PROGSUFFIX) \ |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
57 lwlink/lwobjdump$(PROGSUFFIX) \ |
295 | 58 lwcc/lwcc$(PROGSUFFIX) \ |
59 lwcc/lwcc-cpp$(PROGSUFFIX) | |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
60 |
295 | 61 LWCC_LIBBIN_FILES = lwcc/lwcc-cpp$(PROGSUFFIX) |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
62 LWCC_LIBLIB_FILES = |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
63 LWCC_LIBINC_FILES = |
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
|
64 |
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 .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
|
66 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
|
67 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
68 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
|
69 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
|
70 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
71 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
|
72 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
|
73 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
|
74 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
75 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
|
76 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
|
77 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
|
78 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
|
79 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
80 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
|
81 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
|
82 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
|
83 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
|
84 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
|
85 lwasm_srcs := $(addprefix lwasm/,$(lwasm_srcs)) |
188 | 86 |
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
|
87 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
|
88 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
|
89 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
|
90 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
|
91 lwobjdump_objs := $(lwobjdump_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
|
92 |
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
|
93 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
|
94 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
|
95 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
|
96 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
|
97 lwobjdump_deps := $(lwobjdump_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
|
98 |
295 | 99 lwcc_driver_srcs := driver-main.c |
100 lwcc_driver_srcs := $(addprefix lwcc/,$(lwcc_driver_srcs)) | |
288
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
101 lwcc_driver_objs := $(lwcc_driver_srcs:.c=.o) |
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
102 lwcc_driver_deps := $(lwcc_driver_srcs:.c=.d) |
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
103 |
304
d85d173ba120
Checkpoint lwcc development - preprocessor is runnable but nonfunctional
William Astle <lost@l-w.ca>
parents:
296
diff
changeset
|
104 lwcc_cpp_srcs := cpp-main.c cpp.c lex.c strbuf.c token.c preproc.c symbol.c strpool.c |
295 | 105 lwcc_cpp_srcs := $(addprefix lwcc/,$(lwcc_cpp_srcs)) |
292 | 106 lwcc_cpp_objs := $(lwcc_cpp_srcs:.c=.o) |
107 lwcc_cpp_deps := $(lwcc_cpp_srcs:.c=.d) | |
108 | |
295 | 109 lwcc_deps := $(lwcc_cpp_deps) $(lwcc_driver_deps) |
110 | |
288
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
111 .PHONY: lwlink lwasm lwar lwobjdump lwcc |
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
|
112 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
|
113 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
|
114 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
|
115 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX) |
295 | 116 lwcc: lwcc/lwcc$(PROGSUFFIX) |
117 lwcc-cpp: lwcc/lwcc-cpp$(PROGSUFFIX) | |
22 | 118 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
119 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib |
11 | 120 @echo Linking $@ |
121 @$(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
|
122 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
123 lwlink/lwlink$(PROGSUFFIX): $(lwlink_objs) lwlib |
11 | 124 @echo Linking $@ |
125 @$(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
|
126 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
127 lwlink/lwobjdump$(PROGSUFFIX): $(lwobjdump_objs) lwlib |
11 | 128 @echo Linking $@ |
129 @$(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
|
130 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
131 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
|
132 @echo Linking $@ |
11 | 133 @$(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
|
134 |
295 | 135 lwcc/lwcc$(PROGSUFFIX): $(lwcc_driver_objs) lwlib |
288
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
136 @echo Linking $@ |
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
137 @$(CC) -o $@ $(lwcc_driver_objs) $(LDFLAGS) |
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
138 |
295 | 139 lwcc/lwcc-cpp$(PROGSUFFIX): $(lwcc_cpp_objs) lwlib |
292 | 140 @echo Linking $@ |
141 @$(CC) -o $@ $(lwcc_cpp_objs) $(LDFLAGS) | |
142 | |
17
4969bd6f3b7d
Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents:
16
diff
changeset
|
143 #.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
|
144 .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
|
145 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
|
146 |
190
20ba68be2cd7
Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents:
189
diff
changeset
|
147 lwlib/liblw.a: $(lwlib_objs) |
11 | 148 @echo Linking $@ |
149 @$(AR) rc $@ $(lwlib_objs) | |
150 @$(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
|
151 |
288
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
152 alldeps := $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) ($lwobjdump_deps) $(lwcc_deps) |
3 | 153 |
154 -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
|
155 |
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
|
156 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
|
157 |
11 | 158 %.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
|
159 @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
|
160 @$(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
|
161 @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
|
162 @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
|
163 @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
|
164 @rm -f $*.d.tmp |
11 | 165 @echo Building $@ |
166 @$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $< | |
167 | |
168 | |
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
|
169 .PHONY: clean |
22 | 170 clean: $(cleantargs) |
11 | 171 @echo "Cleaning up" |
269
1c70570e3d42
Remove references to lwbasic and lwcc directories from the Makefile
William Astle <lost@l-w.ca>
parents:
260
diff
changeset
|
172 @rm -f lwlib/liblw.a lwasm/lwasm$(PROGSUFFIX) lwlink/lwlink$(PROGSUFFIX) lwlink/lwobjdump$(PROGSUFFIX) lwar/lwar$(PROGSUFFIX) |
295 | 173 @rm -f lwcc/lwcc$(PROGSUFFIX) lwcc/lwcc-cpp$(PROGSUFFIX) |
293
c419b3b3d43f
Checkpoint on lwcc-cpp development
William Astle <lost@l-w.ca>
parents:
292
diff
changeset
|
174 @rm -f $(lwcc_driver_ojbs) $(lwcc_cpp_objs) |
269
1c70570e3d42
Remove references to lwbasic and lwcc directories from the Makefile
William Astle <lost@l-w.ca>
parents:
260
diff
changeset
|
175 @rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs) |
11 | 176 @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
|
177 @rm -f */*.exe |
2
7317fbe024af
Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents:
1
diff
changeset
|
178 |
16
2f98cf1558e1
Added building of manual from docbook source to Makefile
lost@l-w.ca
parents:
11
diff
changeset
|
179 .PHONY: realclean |
22 | 180 realclean: clean $(realcleantargs) |
16
2f98cf1558e1
Added building of manual from docbook source to Makefile
lost@l-w.ca
parents:
11
diff
changeset
|
181 @echo "Cleaning up even more" |
269
1c70570e3d42
Remove references to lwbasic and lwcc directories from the Makefile
William Astle <lost@l-w.ca>
parents:
260
diff
changeset
|
182 @rm -f $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) $(lwobjdump_deps) |
293
c419b3b3d43f
Checkpoint on lwcc-cpp development
William Astle <lost@l-w.ca>
parents:
292
diff
changeset
|
183 @rm -f $(lwcc_driver_deps) $(lwcc_cpp_deps) |
16
2f98cf1558e1
Added building of manual from docbook source to Makefile
lost@l-w.ca
parents:
11
diff
changeset
|
184 @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
|
185 |
2
7317fbe024af
Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents:
1
diff
changeset
|
186 print-%: |
7317fbe024af
Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents:
1
diff
changeset
|
187 @echo $* = $($*) |
3 | 188 |
189 .PHONY: install | |
190 install: | |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
191 install -d $(INSTALLBIN) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
192 install $(MAIN_TARGETS) $(INSTALLBIN) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
193 install -d $(LWCC_INSTALLLIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
194 install -d $(LWCC_INSTALLLIBDIR)/bin |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
195 install -d $(LWCC_INSTALLLIBDIR)/lib |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
196 install -d $(LWCC_INSTALLLIBDIR)/include |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
197 ifneq ($(LWCC_LIBBIN_FILES),) |
292 | 198 install $(LWCC_LIBBIN_FILES) $(LWCC_INSTALLLIBDIR)/bin |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
199 endif |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
200 ifneq ($(LWCC_LIBLIB_FILES),) |
292 | 201 install $(LWCC_LIBLIB_FILES) $(LWCC_INSTALLLIBDIR)/lib |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
202 endif |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
203 ifneq ($(LWCC_LIBINC_FILES),) |
292 | 204 install $(LWCC_LIBINC_FILES) $(LWCC_INSTALLLIBDIR)/include |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
205 endif |
173 | 206 |
207 .PHONY: test | |
208 test: all test/runtests | |
209 @test/runtests | |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
210 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
211 .PHONY: manual |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
212 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
|
213 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
214 .PHONY: manual-html |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
215 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
|
216 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
217 .PHONY: manual-htmlm |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
218 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
|
219 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
220 .PHONY: manual-pdf |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
221 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
|
222 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
223 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
|
224 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
|
225 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
226 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
|
227 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
|
228 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
229 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
|
230 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
|
231 |