# @configure_input@
#
#
# Makefile.comm.in
#
# This file is part of a free library for the Win32 API.
# 
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
#
# Establish the default build rule early, to ensure it is not
# hijacked by any other common rule defined herein; note that
# this requires us to specify the real default rule using the
# alternative name, 'all-default'.
#
all: all-default

SHELL = @SHELL@

host_alias = @host@
build_alias = @build@
target_alias = @target@
with_cross_host = @with_cross_host@

# Identify the tools required to build the package.
# Note that we don't specify associated option flags here,
# since different settings may be required in individual
# makefiles which include this common fragment.
#
CC = @CC@
AS = @AS@
LD = @LD@

CFLAGS = @CFLAGS@
ALL_CFLAGS = $(CFLAGS) $(INCLUDES)
EXTRA_INCLUDES = -nostdinc -iwithprefix include @EXTRA_INCLUDES@
INCLUDES = -I ${top_srcdir}/include $(EXTRA_INCLUDES)

DLLTOOL = @DLLTOOL@
DLLTOOL_FLAGS = --as=$(AS) -k
WINDRES = @WINDRES@

RANLIB = @RANLIB@
AR = @AR@

# In spite of its general unsuitability for use on MS-Windows hosts,
# Cygwin is able to, and likes to support the $(DESTDIR) capability;
# provide a graceful rejection mechanism, for any (non-Cygwin) cases
# where it cannot be used.
#
need-DESTDIR-compatibility = prefix libdir includedir
.PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility

$(need-DESTDIR-compatibility):
	@test -z "$(DESTDIR)" || case "$($@)" in ?:*) \
	  $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \
	esac

fail-DESTDIR-compatibility:
	$(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \
	try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead)

# Define the set of generic build rules, which are common to
# the build processes for all subdirectories.
#
%.o: %.c
	$(CC) -c $(ALL_CFLAGS) -o $@ $<

lib%.a : %.def %.o
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-lib $@ --def ${srcdir}/$*.def
	$(AR) r $@ $*.o
	$(RANLIB) $@

lib%.a: %.def
	$(DLLTOOL) $(DLLTOOL_FLAGS) --output-lib $@ --def $<

lib%.a: %.o
	$(AR) rc $@ $*.o
	$(RANLIB) $@

# Install headers and libraries in a target specified directory.
#
mkinstalldirs = @MKDIR_P@

prefix = @prefix@
exec_prefix = @exec_prefix@

ifeq ($(target_alias),$(host_alias))
  ifeq ($(build_alias),$(host_alias))
    tooldir = ${exec_prefix}
  else
    tooldir = ${exec_prefix}/$(target_alias)
  endif
else
  tooldir = ${exec_prefix}/$(target_alias)
endif
ifneq (,$(findstring cygwin,$(target_alias)))
  inst_includedir = $(tooldir)/include/w32api
  inst_libdir = $(tooldir)/lib/w32api
else
  ifneq (,$(with_cross_host))
    inst_includedir = $(tooldir)/include/w32api
    inst_libdir = $(tooldir)/lib
  else
    inst_includedir = @includedir@
    inst_libdir = @libdir@
  endif
endif

INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@

# The "clean" class of rules is common to all subdirs.
#
mostlyclean:
	rm -f *~ *.o *.s

clean:
	rm -f *.o *.a *.s *~

distclean: clean
	rm -f config.cache config.status config.log Makefile

maintainer-clean: distclean

# Rules for rebuilding makefiles in sub-directories:
#
# Each of these should be rebuilt when its own Makefile.in is modified,
# or when ${top_builddir}/config.status is updated.  Rebuilding is achieved
# by running ${top_builddir}/config.status, with ${top_builddir} as CWD; as
# a side effect this also rebuilds all other makefiles in the package tree.
# In particular, it causes ${top_builddir}/Makefile.comm.in to be rebuilt,
# BEFORE any sub-directory specific Makefile is updated.
#
# Since ${top_builddir}/Makefile.comm is also required by each individual
# sub-directory Makefile, and since all sub-directory makefiles are ALWAYS
# updated along with ${top_builddir}/Makefile.comm, we may simply declare
# the dependency...
#
Makefile: ${top_builddir}/Makefile.comm

# ...then by adding Makefile.in as an artificial prerequisite of this,
# together with its own real dependence on ${top_builddir}/config.status
# and ${top_srcdir}/Makefile.comm.in, we can simply rely on the mutually
# effective rebuilding side effects to update both the subdirectory's own
# Makefile, and ${top_builddir}/Makefile.comm, in a single operation.
#
${top_builddir}/Makefile.comm: ${top_builddir}/config.status
${top_builddir}/Makefile.comm: Makefile.in ${top_srcdir}/Makefile.comm.in
	cd ${top_builddir} && $(SHELL) config.status

# ${top_builddir}/config.status must itself be updated, at any time when
# ${top_srcdir}/configure has been modified; this is a distinct operation
# from the rebuilding of makefiles.
#
${top_builddir}/config.status: ${top_srcdir}/configure
	cd ${top_builddir} && $(SHELL) config.status --recheck

# Makefile.comm.in: end of file