-opset.o: ../adb/opset.c
- $(CC) $(CFLAGS) -c ../adb/opset.c
-optab.o: ../adb/optab.c ../adb/instrs.adb
- $(CC) $(CFLAGS) -c ../adb/optab.c
-../adb/instrs.adb: ../as/instrs
- (cd ../adb; make instrs.adb)
+#
+# An apparent bug in /lib/cpp prevents us from compiling
+# directly from $(SHARE)/{opset,optab}.c; the wrong
+# version of head.h is included (cpp gets $(SHARE)/head.h;
+# we want head.h). Consequently, the copy
+#
+opset.c: $(SHARE)/opset.c
+ cp $(SHARE)/opset.c opset.c
+optab.c: $(SHARE)/optab.c
+ cp $(SHARE)/optab.c optab.c
+instrs.adb: $(SHARE)/instrs.adb
+ cp $(SHARE)/instrs.adb instrs.adb
+#
+# Now, compile them
+#
+opset.o: opset.c
+ $(CC) -I. -I$(AS) $(CFLAGS) -c opset.c
+optab.o: optab.c instrs.adb
+ $(CC) -I. -I$(AS) $(CFLAGS) -c optab.c
+$(SHARE)/instrs.adb: $(AS)/instrs
+ cd $(SHARE); make instrs.adb