1# Skeleton Makefile for the GNU malloc code
2#
3#
4# Copyright (C) 1996-2005 Free Software Foundation, Inc.
5
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with this program; if not, write to the Free Software
18# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
19
20srcdir = @srcdir@
21VPATH = .:@srcdir@
22topdir = @top_srcdir@
23BUILD_DIR = @BUILD_DIR@
24
25INSTALL = @INSTALL@
26INSTALL_PROGRAM = @INSTALL_PROGRAM@
27INSTALL_DATA = @INSTALL_DATA@
28
29CC = @CC@
30RANLIB = @RANLIB@
31AR = @AR@
32ARFLAGS = @ARFLAGS@
33RM = rm -f
34CP = cp
35MV = mv
36
37SHELL = @MAKE_SHELL@
38
39PROFILE_FLAGS = @PROFILE_FLAGS@
40
41CFLAGS = @CFLAGS@
42LOCAL_CFLAGS = @LOCAL_CFLAGS@
43CPPFLAGS = @CPPFLAGS@
44LDFLAGS = @LDFLAGS@
45
46DEFS = @DEFS@
47LOCAL_DEFS = @LOCAL_DEFS@
48
49LIBBUILD = ${BUILD_DIR}/lib
50
51BASHINCDIR = ${topdir}/include
52
53INTL_LIBSRC = ${topdir}/lib/intl
54INTL_BUILDDIR = ${LIBBUILD}/intl
55INTL_INC = @INTL_INC@
56LIBINTL_H = @LIBINTL_H@
57
58INCLUDES = -I. -I../.. -I$(topdir) -I$(BASHINCDIR) -I$(topdir)/lib $(INTL_INC)
59
60CCFLAGS = ${PROFILE_FLAGS} ${INCLUDES} $(DEFS) $(LOCAL_DEFS) $(LOCAL_CFLAGS) \
61	  $(CFLAGS) $(MALLOC_CFLAGS) $(CPPFLAGS)
62
63.c.o:
64	$(CC) $(CCFLAGS) -c $<
65
66.s.o:
67	$(CC) $(CCFLAGS) -c $<
68
69MALLOC_SOURCE = malloc.c
70STUB_SOURCE = stub.c
71
72ALLOCA_SOURCE = alloca.c
73ALLOCA_OBJECT = alloca.o
74
75MALLOC_SRC = @MALLOC_SRC@
76MALLOC = @MALLOC@
77ALLOCA = @ALLOCA@
78
79MALLOC_OBJS = malloc.o $(ALLOCA) trace.o stats.o table.o watch.o
80STUB_OBJS = $(ALLOCA) stub.o
81
82.PHONY:		malloc stubmalloc
83
84all:		malloc
85
86malloc: ${MALLOC_OBJS}
87	${RM} libmalloc.a
88	${AR} ${ARFLAGS} libmalloc.a ${MALLOC_OBJS}
89	-test -n "$(RANLIB)" && $(RANLIB) libmalloc.a
90
91stubmalloc: ${STUB_OBJS}
92	${RM} libmalloc.a
93	${AR} ${ARFLAGS} libmalloc.a ${STUB_OBJS}
94	-test -n "$(RANLIB)" && $(RANLIB) libmalloc.a
95
96alloca: ${ALLOCA}
97	${RM} libmalloc.a
98	${AR} ${ARFLAGS} libmalloc.a ${ALLOCA}
99	-test -n "$(RANLIB)" && $(RANLIB) libmalloc.a
100
101alloca.o:	$(srcdir)/$(ALLOCA_SOURCE)
102	$(CC) $(CCFLAGS) -c $(srcdir)/$(ALLOCA_SOURCE)
103	@- if test "$(ALLOCA_OBJECT)" != alloca.o ; then \
104		mv $(ALLOCA_OBJECT) alloca.o >/dev/null 2>&1 ; \
105	fi
106
107mostlyclean clean:
108	$(RM) *.o libmalloc.a
109
110distclean realclean maintainer-clean: clean
111	$(RM) Makefile
112
113alloca.o: $(BUILD_DIR)/config.h
114malloc.o: $(BUILD_DIR)/config.h $(topdir)/bashtypes.h getpagesize.h
115xmalloc.o: $(BUILD_DIR)/config.h $(BASHINCDIR)/ansi_stdlib.h
116trace.o: ${BUILD_DIR}/config.h
117table.o: ${BUILD_DIR}/config.h
118watch.o: ${BUILD_DIR}/config.h
119
120malloc.o: ${srcdir}/imalloc.h ${srcdir}/mstats.h
121malloc.o: ${srcdir}/table.h ${srcdir}/watch.h
122stats.o: ${srcdir}/imalloc.h ${srcdir}/mstats.h
123trace.o: ${srcdir}/imalloc.h
124table.o: ${srcdir}/imalloc.h ${srcdir}/table.h
125watch.o: ${srcdir}/imalloc.h ${srcdir}/watch.h
126
127malloc.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
128stats.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
129trace.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
130table.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
131watch.o: ${topdir}/bashintl.h ${LIBINTL_H} ${BASHINCDIR}/gettext.h
132
133# Rules for deficient makes, like SunOS and Solaris
134stub.o: stub.c
135malloc.o: malloc.c
136table.o: table.c
137trace.o: trace.c
138stats.o: stats.c
139watch.o: watch.c
140