Mercurial > hg > index.cgi
annotate Makefile @ 541:5fb1110c043f
Update version number to reflect ongoing development
author | William Astle <lost@l-w.ca> |
---|---|
date | Wed, 17 Aug 2022 17:05:01 -0600 |
parents | 724bcc4508bc |
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 |