Files
apfstests/include/buildrules
T

135 lines
3.5 KiB
Plaintext
Raw Normal View History

2018-06-20 12:04:13 +10:00
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 1999, 2001-2003 Silicon Graphics, Inc. All Rights Reserved.
#
2001-01-16 04:10:42 +00:00
ifndef _BUILDRULES_INCLUDED_
_BUILDRULES_INCLUDED_ = 1
include $(TOPDIR)/include/builddefs
2011-03-04 19:37:41 +00:00
depend: $(addsuffix -depend,$(SUBDIRS))
%-depend:
$(Q)$(MAKE) $(MAKEOPTS) -q -C $* depend || \
$(MAKE) $(MAKEOPTS) -C $* depend
clean clobber : $(addsuffix -clean,$(SUBDIRS))
2010-01-20 10:26:01 +11:00
$(Q)rm -f $(DIRT)
2010-07-30 21:49:48 +00:00
$(Q)rm -fr .libs .ltdep .dep
%-clean:
2010-01-20 10:26:01 +11:00
@echo "Cleaning $*"
2011-03-04 19:37:41 +00:00
$(Q)$(MAKE) $(MAKEOPTS) -q -C $* clean || \
$(MAKE) $(MAKEOPTS) -C $* clean
2001-01-16 04:10:42 +00:00
# Never blow away subdirs
ifdef SUBDIRS
.PRECIOUS: $(SUBDIRS)
.PHONY: $(SUBDIRS)
2001-01-16 04:10:42 +00:00
$(SUBDIRS):
2010-01-20 10:26:01 +11:00
@echo "Building $@"
$(Q)$(MAKE) $(MAKEOPTS) -q -C $@ || $(MAKE) $(MAKEOPTS) -C $@
2001-01-16 04:10:42 +00:00
endif
#
# Standard targets
#
ifdef LTCOMMAND
$(LTCOMMAND) : $(SUBDIRS) $(OBJECTS) $(LTDEPENDENCIES)
2010-01-20 10:26:01 +11:00
@echo " [LD] $*"
$(Q)$(LTLINK) -o $@ $(LDFLAGS) $(OBJECTS) $(LDLIBS)
endif
ifdef LTLIBRARY
$(LTLIBRARY) : $(SUBDIRS) $(LTOBJECTS)
2010-01-20 10:26:01 +11:00
@echo " [LD] $*"
$(Q)$(LTLINK) $(LTLDFLAGS) -o $(LTLIBRARY) $(LTOBJECTS) $(LTLIBS)
%.lo: %.c
2010-01-20 10:26:01 +11:00
@echo " [CC] $@"
$(Q)$(LTCOMPILE) -c $<
else
%.o: %.c
@echo " [CC] $@"
$(Q)$(CC) $(CFLAGS) -c $<
endif
2006-07-14 15:34:37 +00:00
ifdef POTHEAD
%.pot: $(XGETTEXTFILES)
2006-07-14 15:34:37 +00:00
$(XGETTEXT) --language=C --keyword=_ -o $@ $(XGETTEXTFILES)
2006-07-14 15:34:37 +00:00
# Generate temp .po files, to check whether translations need updating.
# Not by default, due to gettext output differences between versions.
%.po: $(POTHEAD)
# $(MSGMERGE) -o $@.tmpo $@ $(POTHEAD)
# if ! diff $@.tmpo $@ >/dev/null; then echo "$@ dated, see $@.tmpo"; fi
%.mo: %.po
$(MSGFMT) -o $@ $<
endif
2001-01-16 04:10:42 +00:00
source :
$(SOURCE_MAKERULE)
endif # _BUILDRULES_INCLUDED_
2001-01-16 04:10:42 +00:00
$(_FORCE):
# dependency build is automatic, relies on gcc -MM to generate.
2011-03-04 19:37:41 +00:00
.PHONY : depend
2001-01-16 04:10:42 +00:00
MAKEDEP := $(MAKEDEPEND) $(CFLAGS)
2006-07-14 15:34:37 +00:00
2010-07-30 21:49:48 +00:00
.ltdep: $(CFILES) $(HFILES)
@echo " [LTDEP]"
2011-03-04 19:37:41 +00:00
$(Q)if [ -n "$$( echo $(CFILES))" ]; then \
$(MAKEDEP) $(CFILES) | \
$(SED) -e 's,^\([^:]*\)\.o,\1.lo,' > .ltdep; \
else \
cp /dev/null .ltdep; \
fi
2010-07-30 21:49:48 +00:00
.dep: $(CFILES) $(HFILES)
@echo " [DEP]"
2011-03-04 19:37:41 +00:00
$(Q)if [ -n "$$( echo $(CFILES))" ]; then \
$(MAKEDEP) $(CFILES) | \
$(SED) -e 's,^\([^:]*\)\.o,\1,' > .dep; \
else \
cp /dev/null .dep; \
fi
2001-01-16 04:10:42 +00:00
2016-07-11 11:26:06 +02:00
# Gather files for installing into two lists:
# TESTS with executable scripts and OUTFILES with all the test outputs.
# Makefile has a very small matching, so we have to go this long way.
# Start with all test related files:
ALLFILES = $(wildcard [0-9]??*)
# Now build a list of known output files. Unfortunately, the
# multiple output test files are poorly handled as makefiles don't
# handle wildcarded multi-suffix matching. Hence we separate the
# processing of these right now.
EXTENDED_OUTFILES = $(wildcard [0-9]??*.out.*)
EXTENDED_OUTFILE_CFGS = $(wildcard [0-9]??.cfg)
BASIC_OUTFILES = $(wildcard [0-9]??*.out)
OUTFILES = $(EXTENDED_OUTFILES) $(EXTENDED_OUTFILE_CFGS) $(BASIC_OUTFILES)
# Strip suffix to get matching tests. We want to strip from the
# first "." to the end, but makefiles don't have a built in
# operative for that. So:
#
# Hack: strip the multiple segments after .out with repeated basename calls.
EXTFILTER1 = $(basename $(EXTENDED_OUTFILES))
EXTFILTER2 = $(basename $(EXTFILTER1))
EXTFILTER3 = $(basename $(EXTFILTER2))
EXTFILTER4 = $(basename $(EXTFILTER3))
# final filter list
FILTER = $(basename $(EXTFILTER4) $(BASIC_OUTFILES))
# finally, select the test files by filtering against against the
# stripped output files and sort them to remove duplicates.
TESTS = $(sort $(filter $(ALLFILES), $(FILTER)))