Mercurial > hg > index.cgi
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 |