# # Rules.make: common makefile rules for oasys / DTN2 # # @configure_input@ # # Targets are "native", "arm" and "mips" # TARGET = @TARGET@ # # Name of the build system # BUILD_SYSTEM = @BUILD_SYSTEM@ # # Common settings extracted from the configure script # prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datarootdir = @datarootdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ includedir = @includedir@ oldincludedir = @oldincludedir@ docdir = @docdir@ infodir = @infodir@ htmldir = @htmldir@ dvidir = @dvidir@ pdfdir = @pdfdir@ psdir = @psdir@ libdir = @libdir@ localedir = @localedir@ mandir = @mandir@ srcdir = @srcdir@ CC = @CC@ CXX = @CXX@ AR = @AR@ RANLIB = @RANLIB@ DEPFLAGS = @DEPFLAGS@ DEBUG = @DEBUG@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ PYTHON = @PYTHON@ PYTHON_BUILD_EXT= @PYTHON_BUILD_EXT@ OPTIMIZE = @OPTIMIZE@ PROFILE = @PROFILE@ SHLIBS = @SHLIBS@ SHLIB_EXT = @SHLIB_EXT@ PICFLAGS = @PICFLAGS@ LFSDEFS = @LFSDEFS@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ CPPFLAGS = -I$(BUILDDIR) -I$(SRCDIR) @DEFS@ @LFSDEFS@ @CPPFLAGS@ WARN = -Wall -W -Wcast-align @OPTIMIZE_WARN@ CFLAGS_NOWARN = $(DEBUG) $(OPTIMIZE) $(PICFLAGS) $(DEPFLAGS) $(PROFILE) @CFLAGS@ CFLAGS = $(WARN) $(CFLAGS_NOWARN) $(EXTRA_CFLAGS) CXXFLAGS_NOWARN = $(DEBUG) $(OPTIMIZE) $(PICFLAGS) $(DEPFLAGS) $(PROFILE) @CXXFLAGS@ CXXFLAGS = $(WARN) $(CXXFLAGS_NOWARN) $(EXTRA_CFLAGS) LIBS = @LIBS@ OASYS_LIBS = @OASYS_LIBS@ LDFLAGS = @LDFLAGS@ @RPATH@ $(EXTRA_LDFLAGS) LDFLAGS_SHLIB = @LDFLAGS_SHLIB@ TCL_LDFLAGS = @TCL_LDFLAGS@ XSD_TOOL = @XSD_TOOL@ # # Add a phony rule to make sure this isn't included before the default # .PHONY: catchdefault catchdefault: @echo "Rules.make should be included after the default rule is set" @exit 1 # # Rule for generating a .o file from the corresponding .cc file; # automatically creates dependencies via the dependency flags. # %.o: %.cc @rm -f $@; mkdir -p $(@D) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ %.o: %.c @rm -f $@; mkdir -p $(@D) $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ # # Generate cpp output in .E files. # %.E: %.cc @rm -f $@; mkdir -p $(@D) $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -E -o $@ %.E: %.c @rm -f $@; mkdir -p $(@D) $(CC) $(CPPFLAGS) $(CFLAGS) -c $< -E -o $@ # # Make stripped binaries from debug binaries # %.stripped: %.exe cp $< $@ && strip $@ # # Always include all the .d files that we can find, based on all the # source files we can find (unless they're specified). # ifeq ($(ALLSRCS),) ALLSRCS := $(shell find . -name \*.cc -o -name \*.c) endif DEPFILES := $(ALLSRCS:%.cc=%.d) DEPFILES := $(DEPFILES:%.c=%.d) ifneq ($(DEPFILES),) -include $(DEPFILES) endif echosrcdir: @echo "srcdir: $(SRCDIR)" echodep: @echo "allsrcs: $(ALLSRCS)" @echo "depfiles: $(DEPFILES)" # # Some rules for cleaning object files # clean: $(SUBDIRS) objclean depclean genclean libclean binclean $(CLEAN_OTHER) .PHONY: $(SUBDIRS) $(SUBDIRS): $(MAKE) -w -C $@ $(MAKECMDGOALS) .PHONY: objclean objclean: @echo "removing object files..." @find . \( -name '*.[Eo]' \) -print | xargs rm -f .PHONY: depclean depclean: @test -z "$(DEPFILES)" || \ echo "removing dependency files..." && \ rm -f $(DEPFILES) .PHONY: genclean genclean: @test -z "$(GENFILES)" || \ echo "removing generated files: $(GENFILES)..." && \ rm -f $(GENFILES) .PHONY: libclean libclean: @test -z "$(LIBFILES)" || \ echo "removing library files: $(LIBFILES)..." && \ rm -f $(LIBFILES) .PHONY: binclean binclean: @test -z "$(BINFILES)" || \ echo "removing binary files: $(BINFILES)..." && \ rm -f $(BINFILES) .PHONY: distclean CFGFILES := Rules.make config.h config.cache distclean: clean @echo "removing configure generated files: $(CFGFILES)..." @test -z "$(CFGFILES)" || rm -f $(CFGFILES)