Support maximum field width in scanf() check.
[cparser] / .build_plugin
index bbd79f6..ad2efb5 100644 (file)
@@ -1,11 +1,35 @@
-DIRS = . adt driver wrappergen ;
+DIRS = "" adt driver wrappergen ;
 SOURCES = ;
 for d in $(DIRS) {
-       SOURCES += [ Wildcard $(d) : *.c *.h ] ;
+       SOURCES += [ Wildcard $(PLUGIN_DIR)/$(d) : *.c *.h ] ;
 }
+
+actions RunBuiltinGenerator bind GENERATOR {
+       $(GENERATOR) $(>) > $(<)
+}
+
+rule BuiltinGenerator {
+       local target = $(<) ;
+       local source = [ SearchSource $(>) ] ;
+       local generator = [ SearchSource $(3) ] ;
+       local header = $(target) ;
+       Depends $(target) : $(generator) ;
+       Depends $(target) : $(source) ;
+       RunBuiltinGenerator $(target) : $(source) ;
+       GENERATOR on $(target) = $(generator) ;
+
+       NP = $(header:D=) ;
+       Includes $(NP:G=) : $(header) ;
+
+       Clean clean : $(target) ;
+
+       return $(target) ;
+}
+BuiltinGenerator $(PLUGIN_DIR)/gen_builtins.h : $(PLUGIN_DIR)/builtins/builtins.c : $(PLUGIN_DIR)/create_builtins_h.sh ;
+
 Application cparser : $(SOURCES) ;
-CppFlags cparser : -DFIRM_BACKEND -I$(top_srcdir)/libfirm/include ;
-IncludeDir cparser : . ;
+IncludeDir cparser : libfirm/include libfirm/include/libfirm ;
+IncludeDir cparser : $(PLUGIN_DIR) ;
 CFlags cparser : -std=c99 ;
 LinkWith cparser : firm ;
 LFlags cparser : -lm ;