Blame build/rules.mk.in

Packit 90a5c9
# Licensed to the Apache Software Foundation (ASF) under one or more
Packit 90a5c9
# contributor license agreements.  See the NOTICE file distributed with
Packit 90a5c9
# this work for additional information regarding copyright ownership.
Packit 90a5c9
# The ASF licenses this file to You under the Apache License, Version 2.0
Packit 90a5c9
# (the "License"); you may not use this file except in compliance with
Packit 90a5c9
# the License.  You may obtain a copy of the License at
Packit 90a5c9
#
Packit 90a5c9
#     http://www.apache.org/licenses/LICENSE-2.0
Packit 90a5c9
#
Packit 90a5c9
# Unless required by applicable law or agreed to in writing, software
Packit 90a5c9
# distributed under the License is distributed on an "AS IS" BASIS,
Packit 90a5c9
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 90a5c9
# See the License for the specific language governing permissions and
Packit 90a5c9
# limitations under the License.
Packit 90a5c9
#
Packit 90a5c9
#
Packit 90a5c9
# The build environment was originally provided by Sascha Schumann.
Packit 90a5c9
Packit 90a5c9
@ap_make_include@ @ap_make_delimiter@$(top_builddir)/build/config_vars.mk@ap_make_delimiter@
Packit 90a5c9
Packit 90a5c9
# Combine all of the flags together in the proper order so that
Packit 90a5c9
# the user-defined flags can always override the configure ones, if needed.
Packit 90a5c9
# Note that includes are listed after the flags because -I options have
Packit 90a5c9
# left-to-right precedence and CPPFLAGS may include user-defined overrides.
Packit 90a5c9
# The "MOD_" prefixed variable are provided to allow modules to insert their
Packit 90a5c9
# (per-subdirectory) settings through definitions in modules.mk, with highest
Packit 90a5c9
# precedence.
Packit 90a5c9
#
Packit 90a5c9
ALL_CFLAGS   = $(MOD_CFLAGS) $(EXTRA_CFLAGS) $(NOTEST_CFLAGS) $(CFLAGS)
Packit 90a5c9
ALL_CPPFLAGS = $(DEFS) $(INTERNAL_CPPFLAGS) $(MOD_CPPFLAGS) $(EXTRA_CPPFLAGS) $(NOTEST_CPPFLAGS) $(CPPFLAGS)
Packit 90a5c9
ALL_CXXFLAGS = $(MOD_CXXFLAGS) $(EXTRA_CXXFLAGS) $(NOTEST_CXXFLAGS) $(CXXFLAGS)
Packit 90a5c9
ALL_LDFLAGS  = $(MOD_LDFLAGS) $(EXTRA_LDFLAGS) $(NOTEST_LDFLAGS) $(LDFLAGS)
Packit 90a5c9
ALL_LIBS     = $(MOD_LIBS) $(EXTRA_LIBS) $(NOTEST_LIBS) $(LIBS)
Packit 90a5c9
ALL_INCLUDES = $(MOD_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES)
Packit 90a5c9
Packit 90a5c9
# Compile commands
Packit 90a5c9
Packit 90a5c9
BASE_CC  = $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
Packit 90a5c9
BASE_CXX = $(CXX) $(ALL_CXXFLAGS) $(ALL_CPPFLAGS) $(ALL_INCLUDES)
Packit 90a5c9
Packit 90a5c9
COMPILE      = $(BASE_CC) $(PICFLAGS)
Packit 90a5c9
CXX_COMPILE  = $(BASE_CXX) $(PICFLAGS)
Packit 90a5c9
Packit 90a5c9
SH_COMPILE     = $(LIBTOOL) --mode=compile $(BASE_CC) $(SHLTCFLAGS) -c $< && touch $@
Packit 90a5c9
SH_CXX_COMPILE = $(LIBTOOL) --mode=compile $(BASE_CXX) $(SHLTCFLAGS) -c $< && touch $@
Packit 90a5c9
Packit 90a5c9
LT_COMPILE     = $(LIBTOOL) --mode=compile $(COMPILE) $(LTCFLAGS) -c $< && touch $@
Packit 90a5c9
LT_CXX_COMPILE = $(LIBTOOL) --mode=compile $(CXX_COMPILE) $(LTCFLAGS) -c $< && touch $@
Packit 90a5c9
Packit 90a5c9
# Link-related commands
Packit 90a5c9
Packit 90a5c9
LINK     = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(PILDFLAGS) $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
Packit 90a5c9
SH_LINK  = $(SH_LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) $(LT_LDFLAGS) $(ALL_LDFLAGS) $(SH_LDFLAGS) $(CORE_IMPLIB) $(SH_LIBS) -o $@
Packit 90a5c9
MOD_LINK = $(LIBTOOL) --mode=link $(CC) $(ALL_CFLAGS) -static $(LT_LDFLAGS) $(ALL_LDFLAGS) -o $@
Packit 90a5c9
Packit 90a5c9
# Cross compile commands
Packit 90a5c9
Packit 90a5c9
# Helper programs
Packit 90a5c9
Packit 90a5c9
INSTALL_DATA = $(INSTALL) -m 644
Packit 90a5c9
INSTALL_PROGRAM = $(INSTALL) -m 755 $(INSTALL_PROG_FLAGS)
Packit 90a5c9
Packit 90a5c9
#
Packit 90a5c9
# Standard build rules
Packit 90a5c9
#
Packit 90a5c9
all: all-recursive
Packit 90a5c9
depend: depend-recursive
Packit 90a5c9
clean: clean-recursive
Packit 90a5c9
distclean: distclean-recursive
Packit 90a5c9
extraclean: extraclean-recursive
Packit 90a5c9
install: install-recursive
Packit 90a5c9
shared-build: shared-build-recursive
Packit 90a5c9
Packit 90a5c9
all-recursive install-recursive depend-recursive:
Packit 90a5c9
	@otarget=`echo $@|sed s/-recursive//`; \
Packit 90a5c9
	list=' $(BUILD_SUBDIRS) $(SUBDIRS)'; \
Packit 90a5c9
	for i in $$list; do \
Packit 90a5c9
	    if test -d "$$i"; then \
Packit 90a5c9
		target="$$otarget"; \
Packit 90a5c9
		echo "Making $$target in $$i"; \
Packit 90a5c9
		if test "$$i" = "."; then \
Packit 90a5c9
			made_local=yes; \
Packit 90a5c9
			target="local-$$target"; \
Packit 90a5c9
		fi; \
Packit 90a5c9
		(cd $$i && $(MAKE) $$target) || exit 1; \
Packit 90a5c9
	    fi; \
Packit 90a5c9
	done; \
Packit 90a5c9
	if test "$$otarget" = "all" && test -z '$(TARGETS)'; then \
Packit 90a5c9
	    made_local=yes; \
Packit 90a5c9
	fi; \
Packit 90a5c9
	if test "$$made_local" != "yes"; then \
Packit 90a5c9
	    $(MAKE) "local-$$otarget" || exit 1; \
Packit 90a5c9
	fi
Packit 90a5c9
Packit 90a5c9
clean-recursive distclean-recursive extraclean-recursive:
Packit 90a5c9
	@otarget=`echo $@|sed s/-recursive//`; \
Packit 90a5c9
	list='$(CLEAN_SUBDIRS) $(SUBDIRS)'; \
Packit 90a5c9
	for i in $$list; do \
Packit 90a5c9
	    if test -d "$$i"; then \
Packit 90a5c9
		target="$$otarget"; \
Packit 90a5c9
		echo "Making $$target in $$i"; \
Packit 90a5c9
		if test "$$i" = "."; then \
Packit 90a5c9
			made_local=yes; \
Packit 90a5c9
			target="local-$$target"; \
Packit 90a5c9
		fi; \
Packit 90a5c9
		(cd $$i && $(MAKE) $$target); \
Packit 90a5c9
	    fi; \
Packit 90a5c9
	done; \
Packit 90a5c9
	if test "$$otarget" = "all" && test -z '$(TARGETS)'; then \
Packit 90a5c9
	    made_local=yes; \
Packit 90a5c9
	fi; \
Packit 90a5c9
	if test "$$made_local" != "yes"; then \
Packit 90a5c9
	    $(MAKE) "local-$$otarget"; \
Packit 90a5c9
	fi
Packit 90a5c9
Packit 90a5c9
shared-build-recursive:
Packit 90a5c9
	@if test `pwd` = "$(top_builddir)"; then \
Packit 90a5c9
	    $(PRE_SHARED_CMDS) ; \
Packit 90a5c9
	fi; \
Packit 90a5c9
	list='$(SUBDIRS)'; for i in $$list; do \
Packit 90a5c9
	    target="shared-build"; \
Packit 90a5c9
	    if test "$$i" = "."; then \
Packit 90a5c9
		made_local=yes; \
Packit 90a5c9
		target="local-shared-build"; \
Packit 90a5c9
	    fi; \
Packit 90a5c9
	    if test "$$i" != "srclib"; then \
Packit 90a5c9
		(cd $$i && $(MAKE) $$target) || exit 1; \
Packit 90a5c9
	    fi; \
Packit 90a5c9
	done; \
Packit 90a5c9
	if test -f 'modules.mk'; then \
Packit 90a5c9
	    if test -n '$(SHARED_TARGETS)'; then \
Packit 90a5c9
		echo "Building shared: $(SHARED_TARGETS)"; \
Packit 90a5c9
		if test "$$made_local" != "yes"; then \
Packit 90a5c9
			$(MAKE) "local-shared-build" || exit 1; \
Packit 90a5c9
		fi; \
Packit 90a5c9
	    fi; \
Packit 90a5c9
	fi; \
Packit 90a5c9
	if test `pwd` = "$(top_builddir)"; then \
Packit 90a5c9
		$(POST_SHARED_CMDS) ; \
Packit 90a5c9
	fi
Packit 90a5c9
Packit 90a5c9
local-all: $(TARGETS)
Packit 90a5c9
Packit 90a5c9
local-shared-build: $(SHARED_TARGETS)
Packit 90a5c9
Packit 90a5c9
local-depend: x-local-depend
Packit 90a5c9
	@if test -n "`ls $(srcdir)/*.c 2> /dev/null`"; then \
Packit 90a5c9
		rm -f .deps; \
Packit 90a5c9
		list='$(srcdir)/*.c'; \
Packit 90a5c9
		for i in $$list; do \
Packit 90a5c9
			$(MKDEP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) $$i | sed 's/\.o:/.lo:/' >> .deps; \
Packit 90a5c9
		done; \
Packit 90a5c9
		sed 's/\.lo:/.slo:/' < .deps > .deps.$$; \
Packit 90a5c9
		cat .deps.$$ >> .deps; \
Packit 90a5c9
		rm -f .deps.$$; \
Packit 90a5c9
	fi
Packit 90a5c9
Packit 90a5c9
local-clean: x-local-clean
Packit 90a5c9
	rm -f *.o *.lo *.slo *.obj *.a *.la $(CLEAN_TARGETS) $(TARGETS)
Packit 90a5c9
	rm -rf .libs
Packit 90a5c9
Packit 90a5c9
local-distclean: local-clean x-local-distclean
Packit 90a5c9
	rm -f .deps Makefile $(DISTCLEAN_TARGETS)
Packit 90a5c9
Packit 90a5c9
local-extraclean: local-distclean x-local-extraclean
Packit 90a5c9
	@if test -n "$(EXTRACLEAN_TARGETS)"; then \
Packit 90a5c9
	    echo "rm -f $(EXTRACLEAN_TARGETS)"; \
Packit 90a5c9
	    rm -f $(EXTRACLEAN_TARGETS) ; \
Packit 90a5c9
	fi
Packit 90a5c9
Packit 90a5c9
program-install: $(TARGETS) $(SHARED_TARGETS)
Packit 90a5c9
	@if test -n '$(bin_PROGRAMS)'; then \
Packit 90a5c9
	    test -d $(DESTDIR)$(bindir) || $(MKINSTALLDIRS) $(DESTDIR)$(bindir); \
Packit 90a5c9
	    list='$(bin_PROGRAMS)'; for i in $$list; do \
Packit 90a5c9
	        $(INSTALL_PROGRAM) $$i $(DESTDIR)$(bindir); \
Packit 90a5c9
	    done; \
Packit 90a5c9
	fi
Packit 90a5c9
	@if test -n '$(sbin_PROGRAMS)'; then \
Packit 90a5c9
	    test -d $(DESTDIR)$(sbindir) || $(MKINSTALLDIRS) $(DESTDIR)$(sbindir); \
Packit 90a5c9
	    list='$(sbin_PROGRAMS)'; for i in $$list; do \
Packit 90a5c9
	        $(INSTALL_PROGRAM) $$i $(DESTDIR)$(sbindir); \
Packit 90a5c9
	    done; \
Packit 90a5c9
	fi
Packit 90a5c9
Packit 90a5c9
local-install: program-install $(INSTALL_TARGETS)
Packit 90a5c9
Packit 90a5c9
# to be filled in by the actual Makefile if extra commands are needed
Packit 90a5c9
x-local-depend x-local-clean x-local-distclean x-local-extraclean:
Packit 90a5c9
Packit 90a5c9
#
Packit 90a5c9
# Implicit rules for creating outputs from input files
Packit 90a5c9
#
Packit 90a5c9
CXX_SUFFIX = cpp
Packit 90a5c9
SHLIB_SUFFIX = so
Packit 90a5c9
Packit 90a5c9
.SUFFIXES:
Packit 90a5c9
.SUFFIXES: .S .c .$(CXX_SUFFIX) .lo .o .s .y .l .slo .def .la
Packit 90a5c9
Packit 90a5c9
.c.o:
Packit 90a5c9
	$(COMPILE) -c $<
Packit 90a5c9
Packit 90a5c9
.s.o:
Packit 90a5c9
	$(COMPILE) -c $<
Packit 90a5c9
Packit 90a5c9
.c.lo:
Packit 90a5c9
	$(LT_COMPILE)
Packit 90a5c9
Packit 90a5c9
.s.lo:
Packit 90a5c9
	$(LT_COMPILE)
Packit 90a5c9
Packit 90a5c9
.c.slo:
Packit 90a5c9
	$(SH_COMPILE)
Packit 90a5c9
Packit 90a5c9
.$(CXX_SUFFIX).lo:
Packit 90a5c9
	$(LT_CXX_COMPILE)
Packit 90a5c9
Packit 90a5c9
.$(CXX_SUFFIX).slo:
Packit 90a5c9
	$(SH_CXX_COMPILE)
Packit 90a5c9
Packit 90a5c9
.y.c:
Packit 90a5c9
	$(YACC) $(YFLAGS) $< && mv y.tab.c $*.c
Packit 90a5c9
	if test -f y.tab.h; then \
Packit 90a5c9
	if cmp -s y.tab.h $*.h; then rm -f y.tab.h; else mv y.tab.h $*.h; fi; \
Packit 90a5c9
	else :; fi
Packit 90a5c9
Packit 90a5c9
.l.c:
Packit 90a5c9
	$(LEX) $(LFLAGS) $< && mv $(LEX_OUTPUT_ROOT).c $@
Packit 90a5c9
Packit 90a5c9
# Makes an import library from a def file
Packit 90a5c9
.def.la:
Packit 90a5c9
	$(LIBTOOL) --mode=compile $(MK_IMPLIB) -o $@ $<
Packit 90a5c9
Packit 90a5c9
#
Packit 90a5c9
# Dependencies
Packit 90a5c9
#
Packit 90a5c9
@ap_make_include@ @ap_make_delimiter@$(builddir)/.deps@ap_make_delimiter@
Packit 90a5c9
Packit 90a5c9
.PHONY: all all-recursive install-recursive local-all $(PHONY_TARGETS) \
Packit 90a5c9
	shared-build shared-build-recursive local-shared-build \
Packit 90a5c9
	depend depend-recursive local-depend x-local-depend \
Packit 90a5c9
	clean clean-recursive local-clean x-local-clean \
Packit 90a5c9
	distclean distclean-recursive local-distclean x-local-distclean \
Packit 90a5c9
	extraclean extraclean-recursive local-extraclean x-local-extraclean \
Packit 90a5c9
	install local-install docs $(INSTALL_TARGETS)
Packit 90a5c9