comparison Makefile @ 288:fc76f1a0dc49 ccdev

Initial version of lwcc compiler driver and Makefile infrastructure Implement an initial version of the lwcc compiler front end and arrange for the Makefile to understand how to compile it.
author William Astle <lost@l-w.ca>
date Sun, 08 Sep 2013 15:53:06 -0600
parents 1dcc0b174e3b
children b67a118dbdb7
comparison
equal deleted inserted replaced
287:d2f04fa0103b 288:fc76f1a0dc49
69 lwlink_deps := $(lwlink_srcs:.c=.d) 69 lwlink_deps := $(lwlink_srcs:.c=.d)
70 lwar_deps := $(lwar_srcs:.c=.d) 70 lwar_deps := $(lwar_srcs:.c=.d)
71 lwlib_deps := $(lwlib_srcs:.c=.d) 71 lwlib_deps := $(lwlib_srcs:.c=.d)
72 lwobjdump_deps := $(lwobjdump_srcs:.c=.d) 72 lwobjdump_deps := $(lwobjdump_srcs:.c=.d)
73 73
74 .PHONY: lwlink lwasm lwar lwobjdump 74 lwcc_driver_srcs := main.c
75 lwcc_driver_srcs := $(addprefix lwcc/driver/,$(lwcc_driver_srcs))
76 lwcc_driver_objs := $(lwcc_driver_srcs:.c=.o)
77 lwcc_driver_deps := $(lwcc_driver_srcs:.c=.d)
78
79 .PHONY: lwlink lwasm lwar lwobjdump lwcc
75 lwlink: lwlink/lwlink$(PROGSUFFIX) 80 lwlink: lwlink/lwlink$(PROGSUFFIX)
76 lwasm: lwasm/lwasm$(PROGSUFFIX) 81 lwasm: lwasm/lwasm$(PROGSUFFIX)
77 lwar: lwar/lwar$(PROGSUFFIX) 82 lwar: lwar/lwar$(PROGSUFFIX)
78 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX) 83 lwobjdump: lwlink/lwobjdump$(PROGSUFFIX)
84 lwcc: lwcc/driver/lwcc
79 85
80 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib 86 lwasm/lwasm$(PROGSUFFIX): $(lwasm_objs) lwlib
81 @echo Linking $@ 87 @echo Linking $@
82 @$(CC) -o $@ $(lwasm_objs) $(LDFLAGS) 88 @$(CC) -o $@ $(lwasm_objs) $(LDFLAGS)
83 89
91 97
92 lwar/lwar$(PROGSUFFIX): $(lwar_objs) lwlib 98 lwar/lwar$(PROGSUFFIX): $(lwar_objs) lwlib
93 @echo Linking $@ 99 @echo Linking $@
94 @$(CC) -o $@ $(lwar_objs) $(LDFLAGS) 100 @$(CC) -o $@ $(lwar_objs) $(LDFLAGS)
95 101
102 lwcc/driver/lwcc$(PROGSUFFIX): $(lwcc_driver_objs) lwlib
103 @echo Linking $@
104 @$(CC) -o $@ $(lwcc_driver_objs) $(LDFLAGS)
105
96 #.PHONY: lwlib 106 #.PHONY: lwlib
97 .INTERMEDIATE: lwlib 107 .INTERMEDIATE: lwlib
98 lwlib: lwlib/liblw.a 108 lwlib: lwlib/liblw.a
99 109
100 lwlib/liblw.a: $(lwlib_objs) 110 lwlib/liblw.a: $(lwlib_objs)
101 @echo Linking $@ 111 @echo Linking $@
102 @$(AR) rc $@ $(lwlib_objs) 112 @$(AR) rc $@ $(lwlib_objs)
103 @$(RANLIB) $@ 113 @$(RANLIB) $@
104 114
105 alldeps := $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) ($lwobjdump_deps) 115 alldeps := $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) ($lwobjdump_deps) $(lwcc_deps)
106 116
107 -include $(alldeps) 117 -include $(alldeps)
108 118
109 extra_clean := $(extra_clean) *~ */*~ 119 extra_clean := $(extra_clean) *~ */*~
110 120
121 131
122 .PHONY: clean 132 .PHONY: clean
123 clean: $(cleantargs) 133 clean: $(cleantargs)
124 @echo "Cleaning up" 134 @echo "Cleaning up"
125 @rm -f lwlib/liblw.a lwasm/lwasm$(PROGSUFFIX) lwlink/lwlink$(PROGSUFFIX) lwlink/lwobjdump$(PROGSUFFIX) lwar/lwar$(PROGSUFFIX) 135 @rm -f lwlib/liblw.a lwasm/lwasm$(PROGSUFFIX) lwlink/lwlink$(PROGSUFFIX) lwlink/lwobjdump$(PROGSUFFIX) lwar/lwar$(PROGSUFFIX)
136 @rm -f lwcc/driver/lwcc$(PROGSUFFIX)
137 @rm -f $(lwcc_driver_ojbs)
126 @rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs) 138 @rm -f $(lwasm_objs) $(lwlink_objs) $(lwar_objs) $(lwlib_objs) $(lwobjdump_objs)
127 @rm -f $(extra_clean) 139 @rm -f $(extra_clean)
128 @rm -f */*.exe 140 @rm -f */*.exe
129 141
130 .PHONY: realclean 142 .PHONY: realclean
131 realclean: clean $(realcleantargs) 143 realclean: clean $(realcleantargs)
132 @echo "Cleaning up even more" 144 @echo "Cleaning up even more"
133 @rm -f $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) $(lwobjdump_deps) 145 @rm -f $(lwasm_deps) $(lwlink_deps) $(lwar_deps) $(lwlib_deps) $(lwobjdump_deps)
146 @rm -f $(lwcc_driver_deps)
134 @rm -f docs/manual/*.html docs/manual/*.pdf 147 @rm -f docs/manual/*.html docs/manual/*.pdf
135 148
136 print-%: 149 print-%:
137 @echo $* = $($*) 150 @echo $* = $($*)
138 151