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