1
# Licensed to the Apache Software Foundation (ASF) under one or more
2
# contributor license agreements. See the NOTICE file distributed with
3
# this work for additional information regarding copyright ownership.
4
# The ASF licenses this file to You under the Apache License, Version 2.0
5
# (the "License"); you may not use this file except in compliance with
6
# the License. You may obtain a copy of the License at
8
# http://www.apache.org/licenses/LICENSE-2.0
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
17
# The build environment was originally provided by Sascha Schumann.
19
@ap_make_include@ @ap_make_delimiter@$(top_builddir)/build/config_vars.mk@ap_make_delimiter@
21
# Combine all of the flags together in the proper order so that
22
# the user-defined flags can always override the configure ones, if needed.
23
# Note that includes are listed after the flags because -I options have
24
# left-to-right precedence and CPPFLAGS may include user-defined overrides.
26
ALL_CFLAGS = $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS)
27
ALL_CPPFLAGS = $(DEFS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS)
28
ALL_CXXFLAGS = $(EXTRA_CXXFLAGS) $(NOTEST_CXXFLAGS) $(CXXFLAGS)
29
ALL_LDFLAGS = $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS)
30
ALL_LIBS = $(EXTRA_LIBS) $(NOTEST_LIBS) $(LIBS)
31
ALL_INCLUDES = $(INCLUDES) $(EXTRA_INCLUDES)
35
BASE_CC = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
36
BASE_CXX = $(CXX) $(ALL_CXXFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
38
COMPILE = $(BASE_CC) @PICFLAGS@
39
CXX_COMPILE = $(BASE_CXX) @PICFLAGS@
41
SH_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CC) @SHLTCFLAGS@ -c $< && touch $@
42
SH_CXX_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CXX) @SHLTCFLAGS@ -c $< && touch $@
44
LT_COMPILE = $(LIBTOOL) --mode=compile $(COMPILE) @LTCFLAGS@ -c $< && touch $@
45
LT_CXX_COMPILE = $(LIBTOOL) --mode=compile $(CXX_COMPILE) @LTCFLAGS@ -c $< && touch $@
47
# Link-related commands
49
LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) @PILDFLAGS@ $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
50
SH_LINK = $(SH_LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(LT_LDFLAGS) $(ALL_LDFLAGS) $(SH_LDFLAGS) $(CORE_IMPLIB) $(SH_LIBS) -o $@
51
MOD_LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) -static $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
53
# Cross compile commands
57
INSTALL_DATA = $(INSTALL) -m 644
58
INSTALL_PROGRAM = $(INSTALL) -m 755 $(INSTALL_PROG_FLAGS)
61
# Standard build rules
64
depend: depend-recursive
65
clean: clean-recursive
66
distclean: distclean-recursive
67
extraclean: extraclean-recursive
68
install: install-recursive
69
shared-build: shared-build-recursive
71
all-recursive install-recursive depend-recursive:
72
@otarget=`echo $@|sed s/-recursive//`; \
73
list=' $(BUILD_SUBDIRS) $(SUBDIRS)'; \
75
if test -d "$$i"; then \
77
echo "Making $$target in $$i"; \
78
if test "$$i" = "."; then \
80
target="local-$$target"; \
82
(cd $$i && $(MAKE) $$target) || exit 1; \
85
if test "$$otarget" = "all" && test -z '$(TARGETS)'; then \
88
if test "$$made_local" != "yes"; then \
89
$(MAKE) "local-$$otarget" || exit 1; \
92
clean-recursive distclean-recursive extraclean-recursive:
93
@otarget=`echo $@|sed s/-recursive//`; \
94
list='$(CLEAN_SUBDIRS) $(SUBDIRS)'; \
96
if test -d "$$i"; then \
98
echo "Making $$target in $$i"; \
99
if test "$$i" = "."; then \
101
target="local-$$target"; \
103
(cd $$i && $(MAKE) $$target); \
106
if test "$$otarget" = "all" && test -z '$(TARGETS)'; then \
109
if test "$$made_local" != "yes"; then \
110
$(MAKE) "local-$$otarget"; \
113
shared-build-recursive:
114
@if test `pwd` = "$(top_builddir)"; then \
115
$(PRE_SHARED_CMDS) ; \
117
list='$(SUBDIRS)'; for i in $$list; do \
118
target="shared-build"; \
119
if test "$$i" = "."; then \
121
target="local-shared-build"; \
123
if test "$$i" != "srclib"; then \
124
(cd $$i && $(MAKE) $$target) || exit 1; \
127
if test -f 'modules.mk'; then \
128
if test -n '$(SHARED_TARGETS)'; then \
129
echo "Building shared: $(SHARED_TARGETS)"; \
130
if test "$$made_local" != "yes"; then \
131
$(MAKE) "local-shared-build" || exit 1; \
135
if test `pwd` = "$(top_builddir)"; then \
136
$(POST_SHARED_CMDS) ; \
139
local-all: $(TARGETS)
141
local-shared-build: $(SHARED_TARGETS)
143
local-depend: x-local-depend
144
@if test -n "`ls $(srcdir)/*.c 2> /dev/null`"; then \
146
list='$(srcdir)/*.c'; \
147
for i in $$list; do \
148
$(MKDEP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) $$i | sed 's/\.o:/.lo:/' >> .deps; \
152
local-clean: x-local-clean
153
rm -f *.o *.lo *.slo *.obj *.a *.la $(CLEAN_TARGETS) $(TARGETS)
156
local-distclean: local-clean x-local-distclean
157
rm -f .deps Makefile $(DISTCLEAN_TARGETS)
159
local-extraclean: local-distclean x-local-extraclean
160
@if test -n "$(EXTRACLEAN_TARGETS)"; then \
161
echo "rm -f $(EXTRACLEAN_TARGETS)"; \
162
rm -f $(EXTRACLEAN_TARGETS) ; \
165
program-install: $(TARGETS) $(SHARED_TARGETS)
166
@if test -n '$(PROGRAMS)'; then \
167
test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \
168
list='$(PROGRAMS)'; for i in $$list; do \
169
$(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir); \
173
local-install: program-install $(INSTALL_TARGETS)
175
# to be filled in by the actual Makefile if extra commands are needed
176
x-local-depend x-local-clean x-local-distclean x-local-extraclean:
179
# Implicit rules for creating outputs from input files
185
.SUFFIXES: .S .c .$(CXX_SUFFIX) .lo .o .s .y .l .slo .def .la
209
$(YACC) $(YFLAGS) $< && mv y.tab.c $*.c
210
if test -f y.tab.h; then \
211
if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
215
$(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
217
# Makes an import library from a def file
219
$(LIBTOOL) --mode=compile $(MK_IMPLIB) -o $@ $<
224
@ap_make_include@ @ap_make_delimiter@$(builddir)/.deps@ap_make_delimiter@
226
.PHONY: all all-recursive install-recursive local-all $(PHONY_TARGETS) \
227
shared-build shared-build-recursive local-shared-build \
228
depend depend-recursive local-depend x-local-depend \
229
clean clean-recursive local-clean x-local-clean \
230
distclean distclean-recursive local-distclean x-local-distclean \
231
extraclean extraclean-recursive local-extraclean x-local-extraclean \
232
install local-install docs $(INSTALL_TARGETS)