fehler41
[libfirm] / MakeRules.in
1 #
2 # Project:     libFIRM
3 # File name:   MakeRules.in
4 # Purpose:
5 # Author:      nicht Till Riedel, das waren andere!
6 # Modified by:
7 # Created:
8 # CVS-ID:      $Id$
9 # Copyright:   (c) 2002-2003 Universität Karlsruhe
10 # Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
11 #
12
13 VPATH = $(srcdir)
14
15 LIBFIRM_VERSION = @PACKAGE_VERSION@
16
17 CC = @CC@
18 CFLAGS := -Wall -Wstrict-prototypes @CFLAGS@
19 CPPFLAGS := -I. -I$(topdir) -I$(top_srcdir)/include/libfirm -I$(top_srcdir)/include/libfirm/adt -I$(srcdir) -I$(top_srcdir) @CPPFLAGS@ @LIBCORE_CFLAGS@
20 prefix?=@prefix@
21 exec_prefix?=@exec_prefix@
22 includedir?=@includedir@
23 libdir?=@libdir@
24 INSTALL = @INSTALL@
25 INCLUDEDIR ?= ${includedir}/${PACKAGE_NAME}
26 LIBDIR ?= ${libdir}
27 PACKAGE_NAME = @PACKAGE_NAME@
28 INCLUDEDIR ?= ${includedir}/${PACKAGE_NAME}
29 LIBDIR ?= ${libdir}
30
31 DEFS = @DEFS@
32
33 LD := @LD@
34 LDFLAGS := @LDFLAGS@
35 LD_R := @libfirm_cv_prog_ld_r@
36
37 LN_S := @LN_S@
38
39 # profiling enabled?
40 ifeq (@enable_profile_libfirm@,yes)
41 LDFLAGS += # -g -pg GL: geht bei mir nicht: unrecognised option
42 CFLAGS += -g -pg
43 endif
44
45 AR := @AR@
46 ARFLAGS := rc
47
48 TAR := @TAR@
49 TARDIRNAME := libfirm-$(LIBFIRM_VERSION)
50 TARFILENAME := $(topdir)/$(TARDIRNAME).tar
51 TARFLAGS = -uhf $(TARFILENAME)
52
53 RANLIB := @RANLIB@
54
55 AUTODOC := @DOXYGEN@
56 AUTODOCFILE := libfirm.doxygen
57 AUTODOCDIR := doc/html
58 AUTODOCINDEXFILE := $(AUTODOCDIR)/index.html
59
60 DISTFILES += $(addprefix $(srcdir)/, $(SOURCES))
61 ARCHIVEDISTFILES += $(addprefix $(TARDIRNAME)/$(subdir)/, $(SOURCES))
62 CFILES = $(filter %.c,$(SOURCES) $(GENFILES))
63 HFILES = $(filter %.h,$(SOURCES) $(GENFILES))
64 OFILES = $(CFILES:.c=.o)
65 TAGFILES = $(CFILES) $(HFILES)
66
67 LDLIBS=$(LIBS) -lm -lc
68
69 COMPILE.c = $(CC) -c $(DEFS) $(CPPFLAGS) $(CDEBUG) $(CFLAGS) $(XCFLAGS)
70 COMPILE.s = $(CC) -S $(DEFS) $(CPPFLAGS) $(CDEBUG) $(CFLAGS) $(XCFLAGS)
71
72 %.o: %.c
73         $(COMPILE.c) -o $@ $<
74
75 %.s: %.c
76         $(COMPILE.s) -o $@ $<
77
78 %.i: %.c
79         $(CPP) $(DEFS) $(CPPFLAGS) -o $@ $<
80
81 %.c: %.dot
82         $(DT) $(DTFLAGS) <$^ >$@ || $(fail)
83
84 define fail
85 { $(RM) $@; false; }
86 endef
87
88 # make target given by $@ recursively in $^ ...
89 ifeq (,$(findstring k,$(MAKEFLAGS)))
90 # ... and immediately stop on errors
91 define recurse
92 +@for i in $^ ""; do if test $$i; then $(MAKE) -C $$i $(subst subdir_,,$@) || exit $$?; fi; done
93 endef
94 else
95 # ... and keep going after errors
96 define recurse
97 +@fail=; \
98 for i in $^ ""; do if test $$i; then $(MAKE) -C $$i $(subst subdir_,,$@) || fail=y; fi; done; \
99 test -z "$$fail"
100 endef
101 endif
102
103 targets = all clean depend realclean tags install autodoc dist distrib install_headers install_libs