annotate Makefile @ 546:80b21c6b4a6b

Disable building all the lwcc binaries except lwcpp by default Since lwcpp is functional but the rest of the stuff in the lwcc directory is not, only build lwcpp by default.
author William Astle <lost@l-w.ca>
date Thu, 16 Mar 2023 16:03:20 -0600
parents 1fa6eca684e5
children b2ee86298516
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
1 # define anything system specific here
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
2 #
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
3 # set these variables if needed
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
4 # PROGSUFFIX: suffix added to binaries
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
5 # BUILDTPREFIX: prefix added to build utilities (cc, etc.) for xcompile
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
6 # can also set them when invoking "make"
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
7 #PROGSUFFIX := .exe
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
8 #BUILDTPREFIX=i586-mingw32msvc-
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
9
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
545
1fa6eca684e5 Silence spurious warning in lwcpp build
William Astle <lost@l-w.ca>
parents: 519
diff changeset
47 # The format truncation warnings are bleeping stupid when applied to
1fa6eca684e5 Silence spurious warning in lwcpp build
William Astle <lost@l-w.ca>
parents: 519
diff changeset
48 # snprintf() and friends. I'm using snprintf() precisely to prevent
1fa6eca684e5 Silence spurious warning in lwcpp build
William Astle <lost@l-w.ca>
parents: 519
diff changeset
49 # overflows and I don't care if the string is truncated, so why should
1fa6eca684e5 Silence spurious warning in lwcpp build
William Astle <lost@l-w.ca>
parents: 519
diff changeset
50 # I need to test the return value? Bleeping stupid.
1fa6eca684e5 Silence spurious warning in lwcpp build
William Astle <lost@l-w.ca>
parents: 519
diff changeset
51 CFLAGS ?= -O3 -Wall -Wno-char-subscripts -Wno-format-truncation
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
52
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 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
54 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
55 lwar/lwar$(PROGSUFFIX) \
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
56 lwlink/lwobjdump$(PROGSUFFIX) \
546
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
57 lwcc/lwcc-cpp$(PROGSUFFIX)
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
58
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
59 SECONDARY_TARGETS := lwcc/lwcc$(PROGSUFFIX) \
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
60 lwcc/lwcc-cc$(PROGSUFFIX)
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
61
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
62 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
63 LWCC_LIBLIB_FILES =
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
64 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
65
546
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
66 .PHONY: default
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
67 default: $(MAIN_TARGETS)
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
68
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
69 .PHONY: all
546
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
70 all: $(MAIN_TARGETS) $(SECONDARY_TARGETS)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
71
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
72 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
73 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
74
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
75 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
76 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
77 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
78 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
79
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
80 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
81 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
82 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
83 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
84
376
35d4213e6657 Add cycle counting to listing
William Astle <lost@l-w.ca>
parents: 361
diff changeset
85 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
86 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
87 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
88 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
89 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
90 lwasm_srcs := $(addprefix lwasm/,$(lwasm_srcs))
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
91
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 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
93 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
94 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
95 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
96 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
97
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 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
99 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
100 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
101 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
102 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
103
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
104 lwcc_driver_srcs := driver-main.c
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
105 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
106 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
107 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
108
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
109 lwcc_cpp_srcs := cpp-main.c
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
110 lwcc_cpp_srcs := $(addprefix lwcc/,$(lwcc_cpp_srcs))
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
111 lwcc_cpp_objs := $(lwcc_cpp_srcs:.c=.o)
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
112 lwcc_cpp_deps := $(lwcc_cpp_srcs:.c=.d)
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
113
499
c3099c5d9d3e Add very simple code generator
William Astle <lost@l-w.ca>
parents: 498
diff changeset
114 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
115 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
116 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
117 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
118
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
119 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
120 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
121 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
122 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
123
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
124 lwcc_deps := $(lwcc_cpp_deps) $(lwcc_driver_deps) $(lwcc_cpplib_deps) $(lwcc_cc_deps)
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
125
288
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
126 .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
127 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
128 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
129 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
130 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX)
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
131 lwcc: lwcc/lwcc$(PROGSUFFIX)
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
132 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
133 lwcc-cpplib: lwcc/libcpp.a
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
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 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
136 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
137 @$(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
138
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
139 lwlink/lwlink$(PROGSUFFIX): $(lwlink_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
140 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
141 @$(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
142
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
143 lwlink/lwobjdump$(PROGSUFFIX): $(lwobjdump_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
144 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
145 @$(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
146
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
147 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
148 @echo Linking $@
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
149 @$(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
150
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
151 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
152 @echo Linking $@
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
153 @$(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
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 lwcc/lwcc-cpp$(PROGSUFFIX): $(lwcc_cpp_objs) lwlib lwcc-cpplib
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
156 @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
157 @$(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
158
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
159 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
160 @echo Linking $@
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
161 @$(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
162
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
163 .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
164 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
165 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
166 @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
167 @$(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
168 @$(RANLIB) $@
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
169
17
4969bd6f3b7d Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents: 16
diff changeset
170 #.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
171 .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
172 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
173
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
174 lwlib/liblw.a: $(lwlib_objs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
175 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
176 @$(AR) rc $@ $(lwlib_objs)
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
177 @$(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
178
288
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
179 alldeps := $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) ($lwobjdump_deps) $(lwcc_deps)
3
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
180
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
181 -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
182
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
183 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
184
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
185 %.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
186 @echo "Building dependencies for $@"
503
17fa03d69df3 Unbork "make install"
William Astle <lost@l-w.ca>
parents: 499
diff changeset
187 @$(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
188 @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
189 @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
190 @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
191 @rm -f $*.d.tmp
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
192 @echo Building $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
193 @$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
194
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
195
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
196 .PHONY: clean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
197 clean: $(cleantargs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
198 @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
199 @rm -f lwlib/liblw.a lwasm/lwasm$(PROGSUFFIX) lwlink/lwlink$(PROGSUFFIX) lwlink/lwobjdump$(PROGSUFFIX) lwar/lwar$(PROGSUFFIX)
546
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
200 @rm -f lwcc/lwcc$(PROGSUFFIX) lwcc/lwcc-cpp$(PROGSUFFIX) lwcc/lwcc-cc$(PROGSUFFIX) lwcc/libcpp.a
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
201 @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
202 @rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
203 @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
204 @rm -f */*.exe
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
205
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
206 .PHONY: realclean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
207 realclean: clean $(realcleantargs)
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
208 @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
209 @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
210 @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
211
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
212 print-%:
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
213 @echo $* = $($*)
3
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
214
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
215 .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
216 install: $(MAIN_TARGETS)
275
776a076d1afa Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents: 272
diff changeset
217 install -d $(INSTALLDIR)
503
17fa03d69df3 Unbork "make install"
William Astle <lost@l-w.ca>
parents: 499
diff changeset
218 install -d $(INSTALLBIN)
17fa03d69df3 Unbork "make install"
William Astle <lost@l-w.ca>
parents: 499
diff changeset
219 install $(MAIN_TARGETS) $(INSTALLBIN)
546
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
220
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
221 .PHONY: install-all
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
222 install-all: install
80b21c6b4a6b Disable building all the lwcc binaries except lwcpp by default
William Astle <lost@l-w.ca>
parents: 545
diff changeset
223 install $(SECONDARY_TARGETS) $(INSTALLBIN)
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
224 install -d $(LWCC_INSTALLLIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
225 install -d $(LWCC_INSTALLLIBDIR)/bin
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
226 install -d $(LWCC_INSTALLLIBDIR)/lib
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
227 install -d $(LWCC_INSTALLLIBDIR)/include
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
228 ifneq ($(LWCC_LIBBIN_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
229 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
230 endif
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
231 ifneq ($(LWCC_LIBLIB_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
232 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
233 endif
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
234 ifneq ($(LWCC_LIBINC_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
235 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
236 endif
173
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
237
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
238 .PHONY: test
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
239 test: all test/runtests
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
240 @test/runtests
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
241