1 # Hey Emacs, this is a -*- makefile -*-
12 CPPFLAGS := -I. -I$(topdir) -I$(srcdir) -I$(top_srcdir) @CPPFLAGS@
15 INCLUDEDIR = @includedir@
22 LD_R := @libfirm_cv_prog_ld_r@
25 ifeq (@enable_profile_libfirm@,yes)
35 AUTODOCDIR := $(topdir)/auto_doc
36 INDEXFILE := $(AUTODOCDIR)/index.html
37 GLOBALXREFFILE := $(AUTODOCDIR)/libfirm.html.xrefs
38 LOCALXREFSFILE := .xrefs
40 DISTFILES = $(SOURCES)
41 CFILES = $(filter %.c,$(SOURCES) $(GENFILES))
42 HFILES = $(filter %.h,$(SOURCES) $(GENFILES))
43 OFILES = $(CFILES:.c=.o)
44 XREFFILES = $(addsuffix .xref, $(filter %.c, $(SOURCES)) $(filter %.h, $(SOURCES)))
45 HTMLFILES = $(addprefix $(AUTODOCDIR)/, $(XREFFILES:.xref=.html))
47 GENFILES += $(LOCALXREFSFILE) $(XREFFILES)
49 TAGFILES = $(CFILES) $(HFILES)
51 LDLIBS=$(LIBS) -lm -lc
53 COMPILE.c = $(CC) -c $(DEFS) $(CPPFLAGS) $(CDEBUG) $(CFLAGS) $(XCFLAGS)
54 COMPILE.s = $(CC) -S $(DEFS) $(CPPFLAGS) $(CDEBUG) $(CFLAGS) $(XCFLAGS)
63 $(CPP) $(DEFS) $(CPPFLAGS) -o $@ $<
66 $(DT) $(DTFLAGS) <$^ >$@ || $(fail)
69 $(AUTODOC) $< $(@:.xref=.html) INTERNAL HTML GENXREF $@
71 $(AUTODOCDIR)/%.html: % $(GLOBALXREFFILE)
72 $(AUTODOC) $< $@ HTML INTERNAL XREF $(GLOBALXREFFILE)
74 $(LOCALXREFSFILE): $(XREFFILES)
75 ifeq ($(strip $(XREFSFILE)),)
87 # make target given by $@ recursively in $^ ...
88 ifeq (,$(findstring k,$(MAKEFLAGS)))
89 # ... and immediately stop on errors
91 +@for i in $^ ""; do if test $$i; then $(MAKE) -C $$i $(subst subdir_,,$@) || exit $$?; fi; done
94 # ... and keep going after errors
97 for i in $^ ""; do if test $$i; then $(MAKE) -C $$i $(subst subdir_,,$@) || fail=y; fi; done; \
102 targets = all clean depend echodist echogen echosrc realclean tags install autodoc autodoc_xref autodoc_html