Mercurial > hg > index.cgi
annotate Makefile @ 519:724bcc4508bc
Add SETSTR/INCLUDESTR for some basic code building
It seemed useful to have the ability to build up a variable containing
arbitrary text and then to be able to include that in the assembly process
like an include file. So add, undocumented for now, the following:
SETTSTR varname="string"
INCLUDESTSR "string"
"string" must be enclosed in double quotes and may contain most of the usual
escape sequences (\t, \r, etc.) as well as %(varname) to interpolate a
variable value.
To use it to create assembleable source code, you need to make sure it
creates lines (ended by either \r or \n) with appropriate whitespace in
appropriate places.
author | William Astle <lost@l-w.ca> |
---|---|
date | Sun, 19 Dec 2021 17:01:42 -0700 |
parents | 17fa03d69df3 |
children | 1fa6eca684e5 |
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 ifeq ($(PREFIX),) |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
11 ifneq ($(DESTDIR),) |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
12 PREFIX = /usr |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
13 else |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
14 PREFIX = /usr/local |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
15 endif |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
16 endif |
270
35b6787a5b39
Allow make install destination to be overridden
William Astle <lost@l-w.ca>
parents:
269
diff
changeset
|
17 |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
18 LIBDIR = $(PREFIX)/lib |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
19 BINDIR = $(PREFIX)/bin |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
20 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
21 INSTALLDIR = $(DESTDIR)$(PREFIX) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
22 INSTALLBIN = $(DESTDIR)$(BINDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
23 INSTALLLIB = $(DESTDIR)$(LIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
24 |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
25 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
|
26 LWCC_INSTALLLIBDIR = $(DESTDIR)$(LWCC_LIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
27 |
272
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
28 # 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
|
29 # 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
|
30 # 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
|
31 CC ?= cc |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
32 AR ?= ar |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
33 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
|
34 |
272
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
35 # 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
|
36 ifneq ($(BUILDTPREFIX),) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
37 CC := $(BUILDTPREFIX)$(CC) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
38 AR := $(BUILDTPREFIX)$(AR) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
39 RANLIB := $(BUILDTPREFIX)$(RANLIB) |
cfeb196251e4
Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents:
271
diff
changeset
|
40 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
|
41 |
467
a6c9129e5948
Move version header into a common direction to better reflect what it is.
William Astle <lost@l-w.ca>
parents:
376
diff
changeset
|
42 CPPFLAGS += -I lwlib -Icommon |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
43 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
|
44 CPPFLAGS += -DPROGSUFFIX=$(PROGSUFFIX) |
350
f0910d85f7db
Remove extraneous PWD reference from Makefile.
William Astle <lost@l-w.ca>
parents:
346
diff
changeset
|
45 LDFLAGS += -Llwlib -llw |
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
|
46 |
361
4130ffdeb5c8
Add contributed support for building with Microsoft's compiler
William Astle <lost@l-w.ca>
parents:
356
diff
changeset
|
47 CFLAGS ?= -O3 -Wall -Wno-char-subscripts |
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
|
48 |
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
|
49 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
|
50 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
|
51 lwar/lwar$(PROGSUFFIX) \ |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
52 lwlink/lwobjdump$(PROGSUFFIX) \ |
295 | 53 lwcc/lwcc$(PROGSUFFIX) \ |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
54 lwcc/lwcc-cpp$(PROGSUFFIX) \ |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
55 lwcc/lwcc-cc$(PROGSUFFIX) |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
56 |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
57 LWCC_LIBBIN_FILES = lwcc/lwcc-cpp$(PROGSUFFIX) lwcc/lwcc-cc$(PROGSUFFIX) |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
58 LWCC_LIBLIB_FILES = |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
59 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
|
60 |
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
|
61 .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
|
62 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
|
63 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
64 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
|
65 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
|
66 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
67 lwlib_srcs := lw_alloc.c lw_realloc.c lw_free.c lw_error.c lw_expr.c \ |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
68 lw_stack.c lw_string.c lw_stringlist.c lw_cmdline.c lw_strbuf.c \ |
519
724bcc4508bc
Add SETSTR/INCLUDESTR for some basic code building
William Astle <lost@l-w.ca>
parents:
503
diff
changeset
|
69 lw_strpool.c lw_dict.c |
190
20ba68be2cd7
Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents:
189
diff
changeset
|
70 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
|
71 |
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
72 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
|
73 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
|
74 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
|
75 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
|
76 |
376 | 77 lwasm_srcs := cycle.c debug.c input.c insn_bitbit.c insn_gen.c insn_indexed.c \ |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
78 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
|
79 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
|
80 pass3.c pass4.c pass5.c pass6.c pass7.c pragma.c pseudo.c section.c \ |
519
724bcc4508bc
Add SETSTR/INCLUDESTR for some basic code building
William Astle <lost@l-w.ca>
parents:
503
diff
changeset
|
81 strings.c struct.c symbol.c symdump.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
|
82 lwasm_srcs := $(addprefix lwasm/,$(lwasm_srcs)) |
188 | 83 |
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
|
84 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
|
85 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
|
86 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
|
87 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
|
88 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
|
89 |
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 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
|
91 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
|
92 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
|
93 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
|
94 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
|
95 |
295 | 96 lwcc_driver_srcs := driver-main.c |
97 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
|
98 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
|
99 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
|
100 |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
101 lwcc_cpp_srcs := cpp-main.c |
295 | 102 lwcc_cpp_srcs := $(addprefix lwcc/,$(lwcc_cpp_srcs)) |
292 | 103 lwcc_cpp_objs := $(lwcc_cpp_srcs:.c=.o) |
104 lwcc_cpp_deps := $(lwcc_cpp_srcs:.c=.d) | |
105 | |
499 | 106 lwcc_cc_srcs := cc-main.c tree.c cc-parse.c cc-gencode.c |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
107 lwcc_cc_srcs := $(addprefix lwcc/,$(lwcc_cc_srcs)) |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
108 lwcc_cc_objs := $(lwcc_cc_srcs:.c=.o) |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
109 lwcc_cc_deps := $(lwcc_cc_srcs:.c=.d) |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
110 |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
111 lwcc_cpplib_srcs := cpp.c lex.c token.c preproc.c symbol.c |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
112 lwcc_cpplib_srcs := $(addprefix lwcc/,$(lwcc_cpplib_srcs)) |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
113 lwcc_cpplib_objs := $(lwcc_cpplib_srcs:.c=.o) |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
114 lwcc_cpplib_deps := $(lwcc_cpplib_srcs:.c=.d) |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
115 |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
116 lwcc_deps := $(lwcc_cpp_deps) $(lwcc_driver_deps) $(lwcc_cpplib_deps) $(lwcc_cc_deps) |
295 | 117 |
288
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
118 .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
|
119 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
|
120 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
|
121 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
|
122 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX) |
295 | 123 lwcc: lwcc/lwcc$(PROGSUFFIX) |
124 lwcc-cpp: lwcc/lwcc-cpp$(PROGSUFFIX) | |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
125 lwcc-cpplib: lwcc/libcpp.a |
22 | 126 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
127 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib |
11 | 128 @echo Linking $@ |
129 @$(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
|
130 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
131 lwlink/lwlink$(PROGSUFFIX): $(lwlink_objs) lwlib |
11 | 132 @echo Linking $@ |
133 @$(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
|
134 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
135 lwlink/lwobjdump$(PROGSUFFIX): $(lwobjdump_objs) lwlib |
11 | 136 @echo Linking $@ |
137 @$(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
|
138 |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
139 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
|
140 @echo Linking $@ |
11 | 141 @$(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
|
142 |
295 | 143 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
|
144 @echo Linking $@ |
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
145 @$(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
|
146 |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
147 lwcc/lwcc-cpp$(PROGSUFFIX): $(lwcc_cpp_objs) lwlib lwcc-cpplib |
292 | 148 @echo Linking $@ |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
149 @$(CC) -o $@ $(lwcc_cpp_objs) lwcc/libcpp.a $(LDFLAGS) |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
150 |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
151 lwcc/lwcc-cc$(PROGSUFFIX): $(lwcc_cc_objs) lwlib lwcc-cpplib |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
152 @echo Linking $@ |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
153 @$(CC) -o $@ $(lwcc_cc_objs) lwcc/libcpp.a $(LDFLAGS) |
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
154 |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
155 .INTERMEDIATE: lwcc-cpplib |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
156 lwcc-cpplib: lwcc/libcpp.a |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
157 lwcc/libcpp.a: $(lwcc_cpplib_objs) |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
158 @echo Linking $@ |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
159 @$(AR) rc $@ $(lwcc_cpplib_objs) |
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
160 @$(RANLIB) $@ |
292 | 161 |
17
4969bd6f3b7d
Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents:
16
diff
changeset
|
162 #.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
|
163 .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
|
164 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
|
165 |
190
20ba68be2cd7
Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents:
189
diff
changeset
|
166 lwlib/liblw.a: $(lwlib_objs) |
11 | 167 @echo Linking $@ |
168 @$(AR) rc $@ $(lwlib_objs) | |
169 @$(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
|
170 |
288
fc76f1a0dc49
Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents:
277
diff
changeset
|
171 alldeps := $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) ($lwobjdump_deps) $(lwcc_deps) |
3 | 172 |
173 -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
|
174 |
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
|
175 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
|
176 |
11 | 177 %.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
|
178 @echo "Building dependencies for $@" |
503 | 179 @$(CC) -MM $(CPPFLAGS) -o $*.d $< |
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
|
180 @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
|
181 @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
|
182 @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
|
183 @rm -f $*.d.tmp |
11 | 184 @echo Building $@ |
185 @$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $< | |
186 | |
187 | |
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
|
188 .PHONY: clean |
22 | 189 clean: $(cleantargs) |
11 | 190 @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
|
191 @rm -f lwlib/liblw.a lwasm/lwasm$(PROGSUFFIX) lwlink/lwlink$(PROGSUFFIX) lwlink/lwobjdump$(PROGSUFFIX) lwar/lwar$(PROGSUFFIX) |
308
670ea8f90212
Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents:
304
diff
changeset
|
192 @rm -f lwcc/lwcc$(PROGSUFFIX) lwcc/lwcc-cpp$(PROGSUFFIX) lwcc/libcpp.a |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
193 @rm -f $(lwcc_driver_objs) $(lwcc_cpp_objs) $(lwcc_cpplib_objs) $(lwcc_cc_objs) |
269
1c70570e3d42
Remove references to lwbasic and lwcc directories from the Makefile
William Astle <lost@l-w.ca>
parents:
260
diff
changeset
|
194 @rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs) |
11 | 195 @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
|
196 @rm -f */*.exe |
2
7317fbe024af
Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents:
1
diff
changeset
|
197 |
16
2f98cf1558e1
Added building of manual from docbook source to Makefile
lost@l-w.ca
parents:
11
diff
changeset
|
198 .PHONY: realclean |
22 | 199 realclean: clean $(realcleantargs) |
16
2f98cf1558e1
Added building of manual from docbook source to Makefile
lost@l-w.ca
parents:
11
diff
changeset
|
200 @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
|
201 @rm -f $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) $(lwobjdump_deps) |
311
7957e90d0a35
Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents:
309
diff
changeset
|
202 @rm -f $(lwcc_driver_deps) $(lwcc_cpp_deps) $(lwcc_cpplib_deps) $(lwcc_cc_deps) |
16
2f98cf1558e1
Added building of manual from docbook source to Makefile
lost@l-w.ca
parents:
11
diff
changeset
|
203 |
2
7317fbe024af
Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents:
1
diff
changeset
|
204 print-%: |
7317fbe024af
Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents:
1
diff
changeset
|
205 @echo $* = $($*) |
3 | 206 |
207 .PHONY: install | |
471
ad0efd5835c3
Cause "make install" to trigger builds for the binaries if needed
William Astle <lost@l-w.ca>
parents:
467
diff
changeset
|
208 install: $(MAIN_TARGETS) |
275
776a076d1afa
Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents:
272
diff
changeset
|
209 install -d $(INSTALLDIR) |
503 | 210 install -d $(INSTALLBIN) |
211 install $(MAIN_TARGETS) $(INSTALLBIN) | |
289
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
212 install -d $(LWCC_INSTALLLIBDIR) |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
213 install -d $(LWCC_INSTALLLIBDIR)/bin |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
214 install -d $(LWCC_INSTALLLIBDIR)/lib |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
215 install -d $(LWCC_INSTALLLIBDIR)/include |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
216 ifneq ($(LWCC_LIBBIN_FILES),) |
292 | 217 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
|
218 endif |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
219 ifneq ($(LWCC_LIBLIB_FILES),) |
292 | 220 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
|
221 endif |
b67a118dbdb7
Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents:
288
diff
changeset
|
222 ifneq ($(LWCC_LIBINC_FILES),) |
292 | 223 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
|
224 endif |
173 | 225 |
226 .PHONY: test | |
227 test: all test/runtests | |
228 @test/runtests | |
189
8a84141ea6dd
Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents:
188
diff
changeset
|
229 |