annotate Makefile @ 502:14a40f8bb4eb

Add various operators to lwcc Add various binary and ternary operators to lwcc, but only those which can work with constant operands. Seems like variables are probably required next.
author William Astle <lost@l-w.ca>
date Wed, 25 Sep 2019 20:23:49 -0600
parents c3099c5d9d3e
children 17fa03d69df3
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 LWTOOLS_VERSION = 4.8
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
11 LWTOOLS_VERSION_SUFFIX = -devcc
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
12
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
13 PACKAGE_VERSION = $(LWTOOLS_VERSION)$(LWTOOLS_VERSION_SUFFIX)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
14
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
15 ifeq ($(PREFIX),)
275
776a076d1afa Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents: 272
diff changeset
16 ifneq ($(DESTDIR),)
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
17 PREFIX = /usr
275
776a076d1afa Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents: 272
diff changeset
18 else
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
19 PREFIX = /usr/local
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
20 endif
275
776a076d1afa Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents: 272
diff changeset
21 endif
270
35b6787a5b39 Allow make install destination to be overridden
William Astle <lost@l-w.ca>
parents: 269
diff changeset
22
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
23 LIBDIR = $(PREFIX)/lib
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
24 BINDIR = $(PREFIX)/bin
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
25
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
26 INSTALLDIR = $(DESTDIR)$(PREFIX)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
27 INSTALLBIN = $(DESTDIR)$(BINDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
28 INSTALLLIB = $(DESTDIR)$(LIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
29
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
30 LWCC_LIBDIR = $(LIBDIR)/lwcc/$(PACKAGE_VERSION)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
31 LWCC_INSTALLLIBDIR = $(DESTDIR)$(LWCC_LIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
32
272
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
33 # this are probably pointless but they will make sure
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
34 # the variables are set without overriding the environment
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
35 # or automatic values from make itself.
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
36 CC ?= cc
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
37 AR ?= ar
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
38 RANLIB ?= ranlib
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
39
272
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
40 # Set variables for cross compiling
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
41 ifneq ($(BUILDTPREFIX),)
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
42 CC := $(BUILDTPREFIX)$(CC)
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
43 AR := $(BUILDTPREFIX)$(AR)
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
44 RANLIB := $(BUILDTPREFIX)$(RANLIB)
cfeb196251e4 Fix conditional setting of build tools variables in the makefile
William Astle <lost@l-w.ca>
parents: 271
diff changeset
45 endif
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
46
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
47 CPPFLAGS += -I lwlib -Icommon
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
48 CPPFLAGS += -DPREFIX=$(PREFIX) -DLWCC_LIBDIR=$(LWCC_LIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
49 CPPFLAGS += -DPROGSUFFIX=$(PROGSUFFIX)
350
f0910d85f7db Remove extraneous PWD reference from Makefile.
William Astle <lost@l-w.ca>
parents: 346
diff changeset
50 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
51
361
4130ffdeb5c8 Add contributed support for building with Microsoft's compiler
William Astle <lost@l-w.ca>
parents: 356
diff changeset
52 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
53
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
54 MAIN_TARGETS := lwasm/lwasm$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
55 lwlink/lwlink$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
56 lwar/lwar$(PROGSUFFIX) \
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
57 lwlink/lwobjdump$(PROGSUFFIX) \
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
58 lwcc/lwcc$(PROGSUFFIX) \
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
59 lwcc/lwcc-cpp$(PROGSUFFIX) \
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
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 .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
67 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
68
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
69 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
70 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
71
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
72 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
73 lw_stack.c lw_string.c lw_stringlist.c lw_cmdline.c lw_strbuf.c \
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
74 lw_strpool.c
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
75 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
76
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
77 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
78 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
79 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
80 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
81
376
35d4213e6657 Add cycle counting to listing
William Astle <lost@l-w.ca>
parents: 361
diff changeset
82 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
83 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
84 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
85 pass3.c pass4.c pass5.c pass6.c pass7.c pragma.c pseudo.c section.c \
487
7fbf3171ca15 Add symbol table dump in assembly format
William Astle <lost@l-w.ca>
parents: 471
diff changeset
86 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
87 lwasm_srcs := $(addprefix lwasm/,$(lwasm_srcs))
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
88
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 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
90 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
91 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
92 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
93 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
94
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 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
96 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
97 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
98 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
99 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
100
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
101 lwcc_driver_srcs := driver-main.c
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
102 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
103 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
104 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
105
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
106 lwcc_cpp_srcs := cpp-main.c
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
107 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
108 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
109 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
110
499
c3099c5d9d3e Add very simple code generator
William Astle <lost@l-w.ca>
parents: 498
diff changeset
111 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
112 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
113 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
114 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
115
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
116 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
117 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
118 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
119 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
120
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
121 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
122
288
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
123 .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
124 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
125 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
126 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
127 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX)
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
128 lwcc: lwcc/lwcc$(PROGSUFFIX)
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
129 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
130 lwcc-cpplib: lwcc/libcpp.a
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
131
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
132 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
133 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
134 @$(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
135
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
136 lwlink/lwlink$(PROGSUFFIX): $(lwlink_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
137 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
138 @$(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
139
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
140 lwlink/lwobjdump$(PROGSUFFIX): $(lwobjdump_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
141 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
142 @$(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
143
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
144 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
145 @echo Linking $@
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
146 @$(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
147
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
148 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
149 @echo Linking $@
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
150 @$(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
151
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
152 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
153 @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
154 @$(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
155
311
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
156 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
157 @echo Linking $@
7957e90d0a35 Add skeleton compiler target to build
William Astle <lost@l-w.ca>
parents: 309
diff changeset
158 @$(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
159
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
160 .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
161 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
162 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
163 @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
164 @$(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
165 @$(RANLIB) $@
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
166
17
4969bd6f3b7d Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents: 16
diff changeset
167 #.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
168 .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
169 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
170
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
171 lwlib/liblw.a: $(lwlib_objs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
172 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
173 @$(AR) rc $@ $(lwlib_objs)
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
174 @$(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
175
288
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
176 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
177
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
178 -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
179
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
180 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
181
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
182 %.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
183 @echo "Building dependencies for $@"
314
a3e277c58df9 Checkpoint parser development for lwcc
William Astle <lost@l-w.ca>
parents: 312
diff changeset
184 @$(CC) -MM -MG $(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
185 @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
186 @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
187 @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
188 @rm -f $*.d.tmp
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
189 @echo Building $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
190 @$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
191
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
192
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
193 .PHONY: clean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
194 clean: $(cleantargs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
195 @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
196 @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
197 @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
198 @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
199 @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
200 @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
201 @rm -f */*.exe
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
202
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
203 .PHONY: realclean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
204 realclean: clean $(realcleantargs)
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
205 @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
206 @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
207 @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
208
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
209 print-%:
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
210 @echo $* = $($*)
3
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
211
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
212 .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
213 install: $(MAIN_TARGETS)
275
776a076d1afa Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents: 272
diff changeset
214 install -d $(INSTALLDIR)
776a076d1afa Makefile: Allow DESTDIR for distribution package creation
Tormod Volden <debian.tormod@gmail.com>
parents: 272
diff changeset
215 install $(MAIN_TARGETS) $(INSTALLDIR)
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
216 install -d $(LWCC_INSTALLLIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
217 install -d $(LWCC_INSTALLLIBDIR)/bin
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
218 install -d $(LWCC_INSTALLLIBDIR)/lib
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
219 install -d $(LWCC_INSTALLLIBDIR)/include
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
220 ifneq ($(LWCC_LIBBIN_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
221 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
222 endif
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
223 ifneq ($(LWCC_LIBLIB_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
224 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
225 endif
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
226 ifneq ($(LWCC_LIBINC_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
227 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
228 endif
173
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
229
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
230 .PHONY: test
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
231 test: all test/runtests
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
232 @test/runtests
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
233