$(eval $(cfile-rule))
endef
+# --- Host preprocessor
+
+define cppfile-rule
+$o: $s
+ @echo CPP $o
+ @mkdir -p $(dir $o)
+ @$(CC) $(CFLAGS) $(cflags) -MM -MQ $o -o $d -x c $s
+ $(hide) $(CC) $(CFLAGS) $(cflags) -E -P -o $o -x c $s
+endef
+
+define cppfile
+ $(eval s := $1)
+ $(eval o := $(OBJDIR)/$(objdir)/$(1:=.m))
+ $(eval d := $(OBJDIR)/$(objdir)/$(1:=.d))
+ $(eval DEPENDS += $d)
+ $(eval CLEANABLES += $o $d)
+ $(eval q += $o)
+ $(eval $(cppfile-rule))
+endef
+
# --- ACK compiler
define ackfile-rule
$(call yacc, $(OBJDIR)/$D, $(OBJDIR)/$D/preprocessed-comm2.y)
-$(eval CLEANABLES += $(OBJDIR)/$D/preprocessed-comm2.y)
-$(OBJDIR)/$D/preprocessed-comm2.y: mach/proto/as/comm2.y $(CPPANSI) \
- mach/$(ARCH)/as/mach1.c \
- mach/$(ARCH)/as/mach2.c \
- mach/$(ARCH)/as/mach3.c \
- mach/$(ARCH)/as/mach4.c
- @echo PREPROCESS $$@
- @mkdir -p $$(dir $$@)
- $(hide) $(CPPANSI) -P \
- -Imach/$(ARCH)/as \
- -Imach/proto/as \
- -Ih \
- mach/proto/as/comm2.y > $$@
-
$(call rawfile, $(LIBOBJECT))
$(call cprogram, $(BINDIR)/$(PLATFORM)/as)
$(call installto, $(PLATDEP)/$(PLATFORM)/as)
+ $(call reset)
+ $(eval cflags += -Imach/$(ARCH)/as -I$(OBJDIR)/$D)
+ $(eval objdir := $(ARCH))
+ $(call cppfile, mach/proto/as/comm2.y)
+ $(call installto, $(OBJDIR)/$D/preprocessed-comm2.y)
+
$(call reset)
$(call rawfile, man/$(ARCH)_as.6)
$(call installto, $(INSDIR)/share/man/man6/$(ARCH)_as.6)