1 # Hey Emacs, this is a -*- makefile -*-
10 LIBFIRM_VERSION = @PACKAGE_VERSION@
14 CPPFLAGS := -I. -I$(topdir) -I$(srcdir) -I$(top_srcdir) @CPPFLAGS@
16 exec_prefix?=@exec_prefix@
17 includedir?=@includedir@
20 PACKAGE_NAME = @PACKAGE_NAME@
21 INCLUDEDIR ?= ${includedir}/${PACKAGE_NAME}
28 LD_R := @libfirm_cv_prog_ld_r@
33 ifeq (@enable_profile_libfirm@,yes)
34 LDFLAGS += # -g -pg GL: geht bei mir nicht: unrecognised option
42 TARDIRNAME := libfirm-$(LIBFIRM_VERSION)
43 TARFILENAME := $(topdir)/$(TARDIRNAME).tar
44 TARFLAGS = -uhf $(TARFILENAME)
49 AUTODOCDIR := $(topdir)/auto_doc
50 INDEXFILE := $(AUTODOCDIR)/index.html
51 GLOBALXREFFILE := $(AUTODOCDIR)/libfirm.html.xrefs
52 LOCALXREFSFILE := .xrefs
54 DISTFILES += $(addprefix $(srcdir)/, $(SOURCES))
55 ARCHIVEDISTFILES += $(addprefix $(TARDIRNAME)/$(subdir)/, $(SOURCES))
56 CFILES = $(filter %.c,$(SOURCES) $(GENFILES))
57 HFILES = $(filter %.h,$(SOURCES) $(GENFILES))
58 OFILES = $(CFILES:.c=.o)
59 XREFFILES = $(addsuffix .xref, $(filter %.c, $(SOURCES)) $(filter %.h, $(SOURCES)))
60 HTMLFILES = $(addprefix $(AUTODOCDIR)/, $(XREFFILES:.xref=.html))
62 GENFILES += $(LOCALXREFSFILE) $(XREFFILES)
64 TAGFILES = $(CFILES) $(HFILES)
66 LDLIBS=$(LIBS) -lm -lc
68 COMPILE.c = $(CC) -c $(DEFS) $(CPPFLAGS) $(CDEBUG) $(CFLAGS) $(XCFLAGS)
69 COMPILE.s = $(CC) -S $(DEFS) $(CPPFLAGS) $(CDEBUG) $(CFLAGS) $(XCFLAGS)
78 $(CPP) $(DEFS) $(CPPFLAGS) -o $@ $<
81 $(DT) $(DTFLAGS) <$^ >$@ || $(fail)
84 $(AUTODOC) $< $(@:.xref=.html) INTERNAL HTML GENXREF $@
86 $(AUTODOCDIR)/%.html: % $(GLOBALXREFFILE)
87 $(AUTODOC) $< $@ HTML INTERNAL XREF $(GLOBALXREFFILE)
89 $(LOCALXREFSFILE): $(XREFFILES)
90 ifeq ($(strip $(XREFSFILE)),)
102 # make target given by $@ recursively in $^ ...
103 ifeq (,$(findstring k,$(MAKEFLAGS)))
104 # ... and immediately stop on errors
106 +@for i in $^ ""; do if test $$i; then $(MAKE) -C $$i $(subst subdir_,,$@) || exit $$?; fi; done
109 # ... and keep going after errors
112 for i in $^ ""; do if test $$i; then $(MAKE) -C $$i $(subst subdir_,,$@) || fail=y; fi; done; \
117 targets = all clean depend realclean tags install autodoc autodoc_xref autodoc_html dist distrib install_headers install_libs