annotate Makefile @ 308:670ea8f90212 ccdev

Converted preproc logic to library and moved some utility stuff to lwlib The strbuf and strpool stuff is generally useful so move it to lwlib where other such things live. Also, package the preprocessor logic into a library for easy use in multiple places.
author William Astle <lost@l-w.ca>
date Sat, 21 Sep 2013 13:33:54 -0600
parents d85d173ba120
children 65ed8dde5331
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
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
47 CPPFLAGS += -I lwlib -DPACKAGE_STRING='"lwtools $(PACKAGE_VERSION)"'
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
48 CPPFLAGS += -DPREFIX=$(PREFIX) -DLWCC_LIBDIR=$(LWCC_LIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
49 CPPFLAGS += -DPROGSUFFIX=$(PROGSUFFIX)
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
50 LDFLAGS += -L$(PWD)/lwlib -llw
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
51
260
c5b1dd523ac4 Make default build use -O3
William Astle <lost@l-w.ca>
parents: 246
diff changeset
52 CFLAGS ?= -O3 -Wall
10
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
53
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
54 MAIN_TARGETS := lwasm/lwasm$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
55 lwlink/lwlink$(PROGSUFFIX) \
127e5b1e01c0 Removed use of asprintf() and added Makefile options for cross compiling; also a bugfix with sizeof{} in lwasm
lost@l-w.ca
parents: 9
diff changeset
56 lwar/lwar$(PROGSUFFIX) \
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
57 lwlink/lwobjdump$(PROGSUFFIX) \
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
58 lwcc/lwcc$(PROGSUFFIX) \
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
59 lwcc/lwcc-cpp$(PROGSUFFIX)
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
60
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
61 LWCC_LIBBIN_FILES = lwcc/lwcc-cpp$(PROGSUFFIX)
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
62 LWCC_LIBLIB_FILES =
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
63 LWCC_LIBINC_FILES =
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
64
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
65 .PHONY: all
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
66 all: $(MAIN_TARGETS)
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
67
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
68 lwar_srcs := add.c extract.c list.c lwar.c main.c remove.c replace.c
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
69 lwar_srcs := $(addprefix lwar/,$(lwar_srcs))
0
2c24602be78f Initial import from lwtools 3.0.1 version, with new hand built build system and file reorganization
lost@l-w.ca
parents:
diff changeset
70
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
71 lwlib_srcs := lw_alloc.c lw_realloc.c lw_free.c lw_error.c lw_expr.c \
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
72 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
73 lw_strpool.c
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
74 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
75
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
76 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
77 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
78 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
79 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
80
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
81 lwasm_srcs := debug.c input.c insn_bitbit.c insn_gen.c insn_indexed.c \
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
82 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
83 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
84 pass3.c pass4.c pass5.c pass6.c pass7.c pragma.c pseudo.c section.c \
222
03f7192fcd20 Add --unicorns option for IDE integration
William Astle <lost@l-w.ca>
parents: 213
diff changeset
85 struct.c symbol.c unicorns.c
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
86 lwasm_srcs := $(addprefix lwasm/,$(lwasm_srcs))
188
b6685a7ec2bd Add stub for lwcc
lost@l-w.ca
parents: 181
diff changeset
87
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
88 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
89 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
90 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
91 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
92 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
93
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 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
95 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
96 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
97 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
98 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
99
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
100 lwcc_driver_srcs := driver-main.c
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
101 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
102 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
103 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
104
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
105 lwcc_cpp_srcs := cpp-main.c
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
106 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
107 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
108 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
109
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
110 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
111 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
112 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
113 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
114
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
115 lwcc_deps := $(lwcc_cpp_deps) $(lwcc_driver_deps) $(lwcc_cpplib_deps)
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
116
288
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
117 .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
118 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
119 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
120 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
121 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX)
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
122 lwcc: lwcc/lwcc$(PROGSUFFIX)
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
123 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
124 lwcc-cpplib: lwcc/libcpp.a
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
125
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
126 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
127 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
128 @$(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
129
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
130 lwlink/lwlink$(PROGSUFFIX): $(lwlink_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
131 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
132 @$(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
133
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
134 lwlink/lwobjdump$(PROGSUFFIX): $(lwobjdump_objs) lwlib
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
135 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
136 @$(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
137
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
138 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
139 @echo Linking $@
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
140 @$(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
141
295
4b17780f2777 Checkpoint lwcc development
William Astle <lost@l-w.ca>
parents: 294
diff changeset
142 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
143 @echo Linking $@
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
144 @$(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
145
308
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
146 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
147 @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
148 @$(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
149
670ea8f90212 Converted preproc logic to library and moved some utility stuff to lwlib
William Astle <lost@l-w.ca>
parents: 304
diff changeset
150 .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
151 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
152 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
153 @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
154 @$(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
155 @$(RANLIB) $@
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
156
17
4969bd6f3b7d Fixed up glitch with Makefile causing binaries to always be considered out of date
lost@l-w.ca
parents: 16
diff changeset
157 #.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
158 .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
159 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
160
190
20ba68be2cd7 Fixed typos with conversion away from rules.make stuff
lost@l-w.ca
parents: 189
diff changeset
161 lwlib/liblw.a: $(lwlib_objs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
162 @echo Linking $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
163 @$(AR) rc $@ $(lwlib_objs)
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
164 @$(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
165
288
fc76f1a0dc49 Initial version of lwcc compiler driver and Makefile infrastructure
William Astle <lost@l-w.ca>
parents: 277
diff changeset
166 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
167
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
168 -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
169
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 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
171
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
172 %.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
173 @echo "Building dependencies for $@"
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
174 @$(CC) -MM $(CPPFLAGS) -o $*.d $<
5350ce9f446f Arranged for dependencies to be generated when building object files; no more extraneous dependency rebuilds
lost@l-w.ca
parents: 173
diff changeset
175 @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
176 @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
177 @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
178 @rm -f $*.d.tmp
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
179 @echo Building $@
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
180 @$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
181
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
182
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
183 .PHONY: clean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
184 clean: $(cleantargs)
11
a0317b794b7b Make output tidying
lost@l-w.ca
parents: 10
diff changeset
185 @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
186 @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
187 @rm -f lwcc/lwcc$(PROGSUFFIX) lwcc/lwcc-cpp$(PROGSUFFIX) 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
188 @rm -f $(lwcc_driver_objs) $(lwcc_cpp_objs) $(lwcc_cpplib_objs)
269
1c70570e3d42 Remove references to lwbasic and lwcc directories from the Makefile
William Astle <lost@l-w.ca>
parents: 260
diff changeset
189 @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
190 @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
191 @rm -f */*.exe
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
192
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
193 .PHONY: realclean
22
7c35fa8dbc91 Added initial framework for lwbasic
lost@l-w.ca
parents: 20
diff changeset
194 realclean: clean $(realcleantargs)
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
195 @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
196 @rm -f $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) $(lwobjdump_deps)
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_driver_deps) $(lwcc_cpp_deps) $(lwcc_cpplib_deps)
16
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
198 @rm -f docs/manual/*.html docs/manual/*.pdf
2f98cf1558e1 Added building of manual from docbook source to Makefile
lost@l-w.ca
parents: 11
diff changeset
199
2
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
200 print-%:
7317fbe024af Clean up insane number of compiler warnings under -Wall
lost@l-w.ca
parents: 1
diff changeset
201 @echo $* = $($*)
3
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
202
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
203 .PHONY: install
d4eb3c328a47 Typo fixes
lost@l-w.ca
parents: 2
diff changeset
204 install:
289
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
205 install -d $(INSTALLBIN)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
206 install $(MAIN_TARGETS) $(INSTALLBIN)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
207 install -d $(LWCC_INSTALLLIBDIR)
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
208 install -d $(LWCC_INSTALLLIBDIR)/bin
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
209 install -d $(LWCC_INSTALLLIBDIR)/lib
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
210 install -d $(LWCC_INSTALLLIBDIR)/include
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
211 ifneq ($(LWCC_LIBBIN_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
212 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
213 endif
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
214 ifneq ($(LWCC_LIBLIB_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
215 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
216 endif
b67a118dbdb7 Updated Makefile to install additonal components of lwcc
William Astle <lost@l-w.ca>
parents: 288
diff changeset
217 ifneq ($(LWCC_LIBINC_FILES),)
292
40ecbd5da481 Part one of the C preprocessor
William Astle <lost@l-w.ca>
parents: 289
diff changeset
218 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
219 endif
173
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
220
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
221 .PHONY: test
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
222 test: all test/runtests
3413a88f4d09 Added test framework
lost@l-w.ca
parents: 126
diff changeset
223 @test/runtests
189
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
224
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
225 .PHONY: manual
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
226 manual: manual-html manual-htmlm manual-pdf
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
227
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
228 .PHONY: manual-html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
229 manual-html: docs/manual/manual.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
230
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
231 .PHONY: manual-htmlm
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
232 manual-htmlm: docs/manual/index.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
233
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
234 .PHONY: manual-pdf
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
235 manual-pdf: docs/manual/manual.pdf
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
236
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
237 docs/manual/manual.html: docs/manual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
238 docbook2html -o docs -u docs/manual.docbook.sgml && mv docs/manual.docbook.html docs/manual/manual.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
239
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
240 docs/manual/index.html: docs/manual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
241 docbook2html -o docs/manual docsmanual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
242
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
243 docs/manual/manual.pdf: docs/manual.docbook.sgml
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
244 docbook2pdf -o docs -u docsmanual.docbook.sgml && mv docs/manual.docbook.pdf docs/manual/manual.pdf && rm -f docs/manual.docbook.html
8a84141ea6dd Removed rules.make stuff in sub directories - it was not particularly helpful
lost@l-w.ca
parents: 188
diff changeset
245