blob: 74810472d1170de651afd89b6c65780562cbc125 [file] [log] [blame]
Jason Evansb7924f52009-06-23 19:01:18 -07001# Clear out all vpaths, then set just one (default vpath) for the main build
2# directory.
3vpath
4vpath % .
5
6# Clear the default suffixes, so that built-in rules are not used.
7.SUFFIXES :
8
9SHELL := /bin/sh
10
11CC := @CC@
12
13# Configuration parameters.
Jason Evanscfeccd32010-03-03 15:48:20 -080014DESTDIR =
Jason Evansa91f2102010-04-02 13:50:53 -070015BINDIR := $(DESTDIR)@BINDIR@
Jason Evanscfeccd32010-03-03 15:48:20 -080016INCLUDEDIR := $(DESTDIR)@INCLUDEDIR@
17LIBDIR := $(DESTDIR)@LIBDIR@
Jason Evansaee7fd22010-11-24 22:00:02 -080018DATADIR := $(DESTDIR)@DATADIR@
Jason Evanscfeccd32010-03-03 15:48:20 -080019MANDIR := $(DESTDIR)@MANDIR@
Mike Hommey2d04f5e2012-04-16 16:30:22 +020020srcroot := @srcroot@
21objroot := @objroot@
22abs_srcroot := @abs_srcroot@
23abs_objroot := @abs_objroot@
Jason Evansb7924f52009-06-23 19:01:18 -070024
25# Build parameters.
Mike Hommey2d04f5e2012-04-16 16:30:22 +020026CPPFLAGS := @CPPFLAGS@ -I$(srcroot)include -I$(objroot)include
Arun Sharmaaf5d6982011-02-15 14:13:38 -080027CFLAGS := @CFLAGS@
Jason Evansb7924f52009-06-23 19:01:18 -070028LDFLAGS := @LDFLAGS@
Mike Hommeyfd97b1d2012-04-30 12:38:31 +020029EXTRA_LDFLAGS := @EXTRA_LDFLAGS@
Jason Evansb7924f52009-06-23 19:01:18 -070030LIBS := @LIBS@
31RPATH_EXTRA := @RPATH_EXTRA@
Jason Evansf576c632011-11-01 22:27:41 -070032SO := @so@
Mike Hommeyfd97b1d2012-04-30 12:38:31 +020033IMPORTLIB := @importlib@
Mike Hommey5bee66d2012-04-16 16:30:24 +020034O := @o@
35A := @a@
36EXE := @exe@
Mike Hommeya19e87f2012-04-21 21:27:46 -070037LIBPREFIX := @libprefix@
Jason Evansf576c632011-11-01 22:27:41 -070038REV := @rev@
Mike Hommey2d04f5e2012-04-16 16:30:22 +020039install_suffix := @install_suffix@
40ABI := @abi@
41XSLTPROC := @XSLTPROC@
42AUTOCONF := @AUTOCONF@
Mike Hommeyfa08da72012-04-16 16:30:25 +020043_RPATH = @RPATH@
44RPATH = $(if $(1),$(call _RPATH,$(1)))
Mike Hommey2d04f5e2012-04-16 16:30:22 +020045cfghdrs_in := @cfghdrs_in@
46cfghdrs_out := @cfghdrs_out@
47cfgoutputs_in := @cfgoutputs_in@
48cfgoutputs_out := @cfgoutputs_out@
49enable_autogen := @enable_autogen@
50enable_experimental := @enable_experimental@
Mike Hommeyd0357f72012-11-26 18:52:41 +010051enable_zone_allocator := @enable_zone_allocator@
Mike Hommeyfa08da72012-04-16 16:30:25 +020052DSO_LDFLAGS = @DSO_LDFLAGS@
Mike Hommey85221d52012-04-18 18:29:40 +020053SOREV = @SOREV@
Mike Hommey188da7c2012-04-18 18:29:41 +020054PIC_CFLAGS = @PIC_CFLAGS@
Mike Hommeyfd97b1d2012-04-30 12:38:31 +020055CTARGET = @CTARGET@
56LDTARGET = @LDTARGET@
57MKLIB = @MKLIB@
Mike Hommey79c4bca2012-05-02 21:30:51 +020058CC_MM = @CC_MM@
Mike Hommey2d04f5e2012-04-16 16:30:22 +020059
60ifeq (macho, $(ABI))
Mike Hommeya19e87f2012-04-21 21:27:46 -070061TEST_LIBRARY_PATH := DYLD_FALLBACK_LIBRARY_PATH="$(objroot)lib"
62else
63ifeq (pecoff, $(ABI))
64TEST_LIBRARY_PATH := PATH="$(PATH):$(objroot)lib"
Jason Evans2dbecf12010-09-05 10:35:13 -070065else
66TEST_LIBRARY_PATH :=
67endif
Mike Hommeya19e87f2012-04-21 21:27:46 -070068endif
Jason Evansb7924f52009-06-23 19:01:18 -070069
Mike Hommeya19e87f2012-04-21 21:27:46 -070070LIBJEMALLOC := $(LIBPREFIX)jemalloc$(install_suffix)
Mike Hommey5bee66d2012-04-16 16:30:24 +020071
Jason Evansb0fd5012010-01-17 01:49:20 -080072# Lists of files.
Mike Hommey2d04f5e2012-04-16 16:30:22 +020073BINS := $(srcroot)bin/pprof $(objroot)bin/jemalloc.sh
74CHDRS := $(objroot)include/jemalloc/jemalloc$(install_suffix).h \
75 $(objroot)include/jemalloc/jemalloc_defs$(install_suffix).h
76CSRCS := $(srcroot)src/jemalloc.c $(srcroot)src/arena.c $(srcroot)src/atomic.c \
77 $(srcroot)src/base.c $(srcroot)src/bitmap.c $(srcroot)src/chunk.c \
78 $(srcroot)src/chunk_dss.c $(srcroot)src/chunk_mmap.c \
79 $(srcroot)src/ckh.c $(srcroot)src/ctl.c $(srcroot)src/extent.c \
80 $(srcroot)src/hash.c $(srcroot)src/huge.c $(srcroot)src/mb.c \
81 $(srcroot)src/mutex.c $(srcroot)src/prof.c $(srcroot)src/quarantine.c \
82 $(srcroot)src/rtree.c $(srcroot)src/stats.c $(srcroot)src/tcache.c \
83 $(srcroot)src/util.c $(srcroot)src/tsd.c
Mike Hommeyd0357f72012-11-26 18:52:41 +010084ifeq ($(enable_zone_allocator), 1)
Mike Hommey2d04f5e2012-04-16 16:30:22 +020085CSRCS += $(srcroot)src/zone.c
Jason Evans2dbecf12010-09-05 10:35:13 -070086endif
Mike Hommeyfd97b1d2012-04-30 12:38:31 +020087ifeq ($(IMPORTLIB),$(SO))
Mike Hommey5bee66d2012-04-16 16:30:24 +020088STATIC_LIBS := $(objroot)lib/$(LIBJEMALLOC).$(A)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +020089endif
Mike Hommey188da7c2012-04-18 18:29:41 +020090ifdef PIC_CFLAGS
91STATIC_LIBS += $(objroot)lib/$(LIBJEMALLOC)_pic.$(A)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +020092else
93STATIC_LIBS += $(objroot)lib/$(LIBJEMALLOC)_s.$(A)
Mike Hommey188da7c2012-04-18 18:29:41 +020094endif
95DSOS := $(objroot)lib/$(LIBJEMALLOC).$(SOREV)
Mike Hommey85221d52012-04-18 18:29:40 +020096ifneq ($(SOREV),$(SO))
97DSOS += $(objroot)lib/$(LIBJEMALLOC).$(SO)
98endif
Mike Hommey2d04f5e2012-04-16 16:30:22 +020099MAN3 := $(objroot)doc/jemalloc$(install_suffix).3
100DOCS_XML := $(objroot)doc/jemalloc$(install_suffix).xml
101DOCS_HTML := $(DOCS_XML:$(objroot)%.xml=$(srcroot)%.html)
102DOCS_MAN3 := $(DOCS_XML:$(objroot)%.xml=$(srcroot)%.3)
Jason Evansaee7fd22010-11-24 22:00:02 -0800103DOCS := $(DOCS_HTML) $(DOCS_MAN3)
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200104CTESTS := $(srcroot)test/aligned_alloc.c $(srcroot)test/allocated.c \
Jason Evans609ae592012-10-11 13:53:15 -0700105 $(srcroot)test/ALLOCM_ARENA.c $(srcroot)test/bitmap.c \
106 $(srcroot)test/mremap.c $(srcroot)test/posix_memalign.c \
107 $(srcroot)test/thread_arena.c $(srcroot)test/thread_tcache_enabled.c
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200108ifeq ($(enable_experimental), 1)
109CTESTS += $(srcroot)test/allocm.c $(srcroot)test/rallocm.c
Jason Evans7e77eaf2012-03-02 17:47:37 -0800110endif
Jason Evansb7924f52009-06-23 19:01:18 -0700111
Mike Hommey188da7c2012-04-18 18:29:41 +0200112COBJS := $(CSRCS:$(srcroot)%.c=$(objroot)%.$(O))
113CPICOBJS := $(CSRCS:$(srcroot)%.c=$(objroot)%.pic.$(O))
114CTESTOBJS := $(CTESTS:$(srcroot)%.c=$(objroot)%.$(O))
115
Jason Evans42ba90e2013-01-22 12:55:42 -0800116.PHONY: all dist build_doc_html build_doc_man build_doc
Jason Evansaee7fd22010-11-24 22:00:02 -0800117.PHONY: install_bin install_include install_lib
Jason Evans42ba90e2013-01-22 12:55:42 -0800118.PHONY: install_doc_html install_doc_man install_doc install
Jason Evansaee7fd22010-11-24 22:00:02 -0800119.PHONY: tests check clean distclean relclean
Jason Evansb7924f52009-06-23 19:01:18 -0700120
Mike Hommey188da7c2012-04-18 18:29:41 +0200121.SECONDARY : $(CTESTOBJS)
Jason Evans9dcad2d2011-02-13 18:11:54 -0800122
Jason Evansb7924f52009-06-23 19:01:18 -0700123# Default target.
Jason Evans7b398ac2012-03-02 16:38:37 -0800124all: build
Jason Evansb7924f52009-06-23 19:01:18 -0700125
Jason Evans7b398ac2012-03-02 16:38:37 -0800126dist: build_doc
Jason Evansaee7fd22010-11-24 22:00:02 -0800127
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200128$(srcroot)doc/%.html : $(objroot)doc/%.xml $(srcroot)doc/stylesheet.xsl $(objroot)doc/html.xsl
129 $(XSLTPROC) -o $@ $(objroot)doc/html.xsl $<
Jason Evansaee7fd22010-11-24 22:00:02 -0800130
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200131$(srcroot)doc/%.3 : $(objroot)doc/%.xml $(srcroot)doc/stylesheet.xsl $(objroot)doc/manpages.xsl
132 $(XSLTPROC) -o $@ $(objroot)doc/manpages.xsl $<
Jason Evansaee7fd22010-11-24 22:00:02 -0800133
Jason Evans7b398ac2012-03-02 16:38:37 -0800134build_doc_html: $(DOCS_HTML)
135build_doc_man: $(DOCS_MAN3)
136build_doc: $(DOCS)
Jason Evansaee7fd22010-11-24 22:00:02 -0800137
Jason Evanse476f8a2010-01-16 09:53:50 -0800138#
139# Include generated dependency files.
140#
Mike Hommey79c4bca2012-05-02 21:30:51 +0200141ifdef CC_MM
Mike Hommey188da7c2012-04-18 18:29:41 +0200142-include $(COBJS:%.$(O)=%.d)
143-include $(CPICOBJS:%.$(O)=%.d)
144-include $(CTESTOBJS:%.$(O)=%.d)
Mike Hommey79c4bca2012-05-02 21:30:51 +0200145endif
Jason Evanse476f8a2010-01-16 09:53:50 -0800146
Mike Hommey188da7c2012-04-18 18:29:41 +0200147$(COBJS): $(objroot)src/%.$(O): $(srcroot)src/%.c
148$(CPICOBJS): $(objroot)src/%.pic.$(O): $(srcroot)src/%.c
149$(CPICOBJS): CFLAGS += $(PIC_CFLAGS)
150$(CTESTOBJS): $(objroot)test/%.$(O): $(srcroot)test/%.c
151$(CTESTOBJS): CPPFLAGS += -I$(objroot)test
Mike Hommeyfd97b1d2012-04-30 12:38:31 +0200152ifneq ($(IMPORTLIB),$(SO))
153$(COBJS): CPPFLAGS += -DDLLEXPORT
154endif
Mike Hommey188da7c2012-04-18 18:29:41 +0200155
Mike Hommey79c4bca2012-05-02 21:30:51 +0200156ifndef CC_MM
157# Dependencies
158HEADER_DIRS = $(srcroot)include/jemalloc/internal \
159 $(objroot)include/jemalloc $(objroot)include/jemalloc/internal
160HEADERS = $(wildcard $(foreach dir,$(HEADER_DIRS),$(dir)/*.h))
161$(COBJS) $(CPICOBJS) $(CTESTOBJS): $(HEADERS)
162$(CTESTOBJS): $(objroot)test/jemalloc_test.h
163endif
164
Mike Hommey188da7c2012-04-18 18:29:41 +0200165$(COBJS) $(CPICOBJS) $(CTESTOBJS): %.$(O):
Jason Evans376b1522010-02-11 14:45:59 -0800166 @mkdir -p $(@D)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +0200167 $(CC) $(CFLAGS) -c $(CPPFLAGS) $(CTARGET) $<
Mike Hommey79c4bca2012-05-02 21:30:51 +0200168ifdef CC_MM
Mike Hommey5bee66d2012-04-16 16:30:24 +0200169 @$(CC) -MM $(CPPFLAGS) -MT $@ -o $(@:%.$(O)=%.d) $<
Mike Hommey79c4bca2012-05-02 21:30:51 +0200170endif
Jason Evansb7924f52009-06-23 19:01:18 -0700171
Mike Hommey85221d52012-04-18 18:29:40 +0200172ifneq ($(SOREV),$(SO))
173%.$(SO) : %.$(SOREV)
Jason Evansb7924f52009-06-23 19:01:18 -0700174 @mkdir -p $(@D)
Jason Evans0656ec02010-04-07 23:37:35 -0700175 ln -sf $(<F) $@
Mike Hommey85221d52012-04-18 18:29:40 +0200176endif
Jason Evans0656ec02010-04-07 23:37:35 -0700177
Mike Hommey188da7c2012-04-18 18:29:41 +0200178$(objroot)lib/$(LIBJEMALLOC).$(SOREV) : $(if $(PIC_CFLAGS),$(CPICOBJS),$(COBJS))
Jason Evans0656ec02010-04-07 23:37:35 -0700179 @mkdir -p $(@D)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +0200180 $(CC) $(DSO_LDFLAGS) $(call RPATH,$(RPATH_EXTRA)) $(LDTARGET) $+ $(LDFLAGS) $(LIBS) $(EXTRA_LDFLAGS)
Jason Evans0656ec02010-04-07 23:37:35 -0700181
Mike Hommey188da7c2012-04-18 18:29:41 +0200182$(objroot)lib/$(LIBJEMALLOC)_pic.$(A) : $(CPICOBJS)
183$(objroot)lib/$(LIBJEMALLOC).$(A) : $(COBJS)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +0200184$(objroot)lib/$(LIBJEMALLOC)_s.$(A) : $(COBJS)
Mike Hommey188da7c2012-04-18 18:29:41 +0200185
186$(STATIC_LIBS):
Arun Sharmaaf5d6982011-02-15 14:13:38 -0800187 @mkdir -p $(@D)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +0200188 $(MKLIB) $+
Arun Sharmaaf5d6982011-02-15 14:13:38 -0800189
Mike Hommey45f208e2012-04-16 16:30:26 +0200190$(objroot)test/bitmap$(EXE): $(objroot)src/bitmap.$(O)
191
Mike Hommey188da7c2012-04-18 18:29:41 +0200192$(objroot)test/%$(EXE): $(objroot)test/%.$(O) $(objroot)src/util.$(O) $(DSOS)
Jason Evansb267d0f2010-08-13 15:42:29 -0700193 @mkdir -p $(@D)
Mike Hommeyfd97b1d2012-04-30 12:38:31 +0200194 $(CC) $(LDTARGET) $(filter %.$(O),$^) $(call RPATH,$(objroot)lib) $(objroot)lib/$(LIBJEMALLOC).$(IMPORTLIB) $(filter -lpthread,$(LIBS)) $(EXTRA_LDFLAGS)
Jason Evansb267d0f2010-08-13 15:42:29 -0700195
Jason Evans7b398ac2012-03-02 16:38:37 -0800196build_lib_shared: $(DSOS)
197build_lib_static: $(STATIC_LIBS)
198build: build_lib_shared build_lib_static
199
Jason Evansa91f2102010-04-02 13:50:53 -0700200install_bin:
201 install -d $(BINDIR)
202 @for b in $(BINS); do \
203 echo "install -m 755 $$b $(BINDIR)"; \
204 install -m 755 $$b $(BINDIR); \
205done
206
Jason Evanscfeccd32010-03-03 15:48:20 -0800207install_include:
Jason Evans376b1522010-02-11 14:45:59 -0800208 install -d $(INCLUDEDIR)/jemalloc
Jason Evansb7924f52009-06-23 19:01:18 -0700209 @for h in $(CHDRS); do \
Jason Evans376b1522010-02-11 14:45:59 -0800210 echo "install -m 644 $$h $(INCLUDEDIR)/jemalloc"; \
211 install -m 644 $$h $(INCLUDEDIR)/jemalloc; \
Jason Evansb7924f52009-06-23 19:01:18 -0700212done
Jason Evanscfeccd32010-03-03 15:48:20 -0800213
Jason Evans7b398ac2012-03-02 16:38:37 -0800214install_lib_shared: $(DSOS)
Jason Evansb7924f52009-06-23 19:01:18 -0700215 install -d $(LIBDIR)
Mike Hommey85221d52012-04-18 18:29:40 +0200216 install -m 755 $(objroot)lib/$(LIBJEMALLOC).$(SOREV) $(LIBDIR)
217ifneq ($(SOREV),$(SO))
218 ln -sf $(LIBJEMALLOC).$(SOREV) $(LIBDIR)/$(LIBJEMALLOC).$(SO)
219endif
Jason Evans7b398ac2012-03-02 16:38:37 -0800220
Mike Hommey188da7c2012-04-18 18:29:41 +0200221install_lib_static: $(STATIC_LIBS)
Jason Evans7b398ac2012-03-02 16:38:37 -0800222 install -d $(LIBDIR)
Mike Hommey188da7c2012-04-18 18:29:41 +0200223 @for l in $(STATIC_LIBS); do \
224 echo "install -m 755 $$l $(LIBDIR)"; \
225 install -m 755 $$l $(LIBDIR); \
226done
Jason Evanscfeccd32010-03-03 15:48:20 -0800227
Jason Evans7b398ac2012-03-02 16:38:37 -0800228install_lib: install_lib_shared install_lib_static
229
230install_doc_html:
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200231 install -d $(DATADIR)/doc/jemalloc$(install_suffix)
Jason Evansaee7fd22010-11-24 22:00:02 -0800232 @for d in $(DOCS_HTML); do \
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200233 echo "install -m 644 $$d $(DATADIR)/doc/jemalloc$(install_suffix)"; \
234 install -m 644 $$d $(DATADIR)/doc/jemalloc$(install_suffix); \
Jason Evansb7924f52009-06-23 19:01:18 -0700235done
236
Jason Evans7b398ac2012-03-02 16:38:37 -0800237install_doc_man:
Jason Evansaee7fd22010-11-24 22:00:02 -0800238 install -d $(MANDIR)/man3
239 @for d in $(DOCS_MAN3); do \
240 echo "install -m 644 $$d $(MANDIR)/man3"; \
241 install -m 644 $$d $(MANDIR)/man3; \
242done
243
Jason Evans7b398ac2012-03-02 16:38:37 -0800244install_doc: install_doc_html install_doc_man
Jason Evansaee7fd22010-11-24 22:00:02 -0800245
246install: install_bin install_include install_lib install_doc
Jason Evanscfeccd32010-03-03 15:48:20 -0800247
Mike Hommey5bee66d2012-04-16 16:30:24 +0200248tests: $(CTESTS:$(srcroot)%.c=$(objroot)%$(EXE))
Jason Evansb267d0f2010-08-13 15:42:29 -0700249
250check: tests
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200251 @mkdir -p $(objroot)test
Jason Evansb267d0f2010-08-13 15:42:29 -0700252 @$(SHELL) -c 'total=0; \
253 failures=0; \
254 echo "========================================="; \
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200255 for t in $(CTESTS:$(srcroot)%.c=$(objroot)%); do \
Jason Evansb267d0f2010-08-13 15:42:29 -0700256 total=`expr $$total + 1`; \
257 /bin/echo -n "$${t} ... "; \
Jason Evans079687b2012-04-23 12:49:23 -0700258 $(TEST_LIBRARY_PATH) $${t}$(EXE) $(abs_srcroot) \
259 $(abs_objroot) > $(objroot)$${t}.out 2>&1; \
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200260 if test -e "$(srcroot)$${t}.exp"; then \
261 diff -w -u $(srcroot)$${t}.exp \
262 $(objroot)$${t}.out >/dev/null 2>&1; \
Jason Evansb267d0f2010-08-13 15:42:29 -0700263 fail=$$?; \
264 if test "$${fail}" -eq "1" ; then \
265 failures=`expr $${failures} + 1`; \
266 echo "*** FAIL ***"; \
267 else \
268 echo "pass"; \
269 fi; \
270 else \
271 echo "*** FAIL *** (.exp file is missing)"; \
272 failures=`expr $${failures} + 1`; \
273 fi; \
274 done; \
275 echo "========================================="; \
276 echo "Failures: $${failures}/$${total}"'
Jason Evansb7924f52009-06-23 19:01:18 -0700277
278clean:
Mike Hommey188da7c2012-04-18 18:29:41 +0200279 rm -f $(COBJS)
280 rm -f $(CPICOBJS)
281 rm -f $(COBJS:%.$(O)=%.d)
282 rm -f $(CPICOBJS:%.$(O)=%.d)
283 rm -f $(CTESTOBJS:%.$(O)=%$(EXE))
284 rm -f $(CTESTOBJS)
285 rm -f $(CTESTOBJS:%.$(O)=%.d)
286 rm -f $(CTESTOBJS:%.$(O)=%.out)
Arun Sharmaaf5d6982011-02-15 14:13:38 -0800287 rm -f $(DSOS) $(STATIC_LIBS)
Jason Evansb7924f52009-06-23 19:01:18 -0700288
289distclean: clean
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200290 rm -rf $(objroot)autom4te.cache
291 rm -f $(objroot)config.log
292 rm -f $(objroot)config.status
293 rm -f $(objroot)config.stamp
294 rm -f $(cfghdrs_out)
295 rm -f $(cfgoutputs_out)
Jason Evansb7924f52009-06-23 19:01:18 -0700296
297relclean: distclean
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200298 rm -f $(objroot)configure
299 rm -f $(srcroot)VERSION
Jason Evansaee7fd22010-11-24 22:00:02 -0800300 rm -f $(DOCS_HTML)
301 rm -f $(DOCS_MAN3)
Jason Evansb7924f52009-06-23 19:01:18 -0700302
303#===============================================================================
304# Re-configuration rules.
305
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200306ifeq ($(enable_autogen), 1)
307$(srcroot)configure : $(srcroot)configure.ac
308 cd ./$(srcroot) && $(AUTOCONF)
Jason Evansb7924f52009-06-23 19:01:18 -0700309
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200310$(objroot)config.status : $(srcroot)configure
311 ./$(objroot)config.status --recheck
Jason Evansb7924f52009-06-23 19:01:18 -0700312
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200313$(srcroot)config.stamp.in : $(srcroot)configure.ac
314 echo stamp > $(srcroot)config.stamp.in
Jason Evansb7924f52009-06-23 19:01:18 -0700315
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200316$(objroot)config.stamp : $(cfgoutputs_in) $(cfghdrs_in) $(srcroot)configure
317 ./$(objroot)config.status
Jason Evansb7924f52009-06-23 19:01:18 -0700318 @touch $@
319
320# There must be some action in order for make to re-read Makefile when it is
321# out of date.
Mike Hommey2d04f5e2012-04-16 16:30:22 +0200322$(cfgoutputs_out) $(cfghdrs_out) : $(objroot)config.stamp
Jason Evansb7924f52009-06-23 19:01:18 -0700323 @true
324endif