Factor common code from subdirectory makefiles into Makefile.comm.in

This commit is contained in:
Keith Marshall
2011-12-13 20:46:53 +00:00
parent 5cc68751fd
commit f46fcfebd1
7 changed files with 290 additions and 351 deletions

View File

@ -1,3 +1,6 @@
# @configure_input@
#
#
# Makefile.in
#
# This file is part of a free library building Windows NT drivers.
@ -6,66 +9,18 @@
# but WITHOUT ANY WARANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# start config section
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
VPATH = @srcdir@
host_alias = @host@
build_alias = @build@
target_alias = @target@
with_cross_host = @with_cross_host@
prefix = @prefix@
includedir:=@includedir@
program_transform_name = @program_transform_name@
exec_prefix = @exec_prefix@
libdir:=@libdir@
bindir = @bindir@
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
datadir = @datadir@
infodir = @infodir@
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_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
mkinstalldirs = mkdir -p
CC = @CC@
CC_FOR_TARGET = $(CC)
DLLTOOL = @DLLTOOL@
DLLTOOL_FLAGS = --as=$(AS) -k
AS = @AS@
AS_FOR_TARGET = $(AS_FOR_TARGET)
WINDRES = @WINDRES@
include ${top_builddir}/Makefile.comm
# Depending on if we build as part of winsup or mingw we need to
# add additional include paths in order to get the correct headers
# from the C library.
#
BUILDENV = @BUILDENV@
ifeq ($(BUILDENV), cygwin)
@ -80,21 +35,12 @@ endif
INCLUDES = -I$(srcdir)/../include -I$(srcdir)/../include/directx $(EXTRA_INCLUDES)
CFLAGS = @CFLAGS@
ALL_CFLAGS = $(CFLAGS) $(INCLUDES)
RANLIB = @RANLIB@
AR = @AR@
LD = @LD@
# end config section
# headers
# Headers
#
HEADERS = $(notdir $(wildcard $(srcdir)/../../include/directx/*.h))
# libraries
# Libraries
#
DEF_FILES = $(notdir $(wildcard $(srcdir)/*.def))
DIST_C_FILES = $(notdir $(wildcard $(srcdir)/*.c))
DIST_H_FILES = $(notdir $(wildcard $(srcdir)/*.h))
@ -110,8 +56,11 @@ DISTFILES = Makefile.in $(DEF_FILES) $(DIST_C_FILES) $(DIST_H_FILES)
.NOTPARALLEL:
# targets
all: $(LIBS)
# Targets: (note that 'all-default' is a redirection from 'all',
# which is the primary default target identified in the included
# common makefile fragment, ${top_builddir}/Makefile.comm
#
all-default: $(LIBS)
TEST_OPTIONS = $(ALL_CFLAGS) -Wall -pedantic -Wsystem-headers -c $(srcdir)/test.c -o test.o
.PHONY: test
@ -129,13 +78,8 @@ test:
@$(WINDRES) --define UNICODE --include-dir $(INCDIR) -i $(srcdir)/res.rc -o test.o
@rm -f test.o
# make rules
.SUFFIXES: .c .o .def .a
.c.o:
$(CC) -c $(ALL_CFLAGS) -o $@ $<
# Rules
#
libdxerr8.a: dxerr8.o dxerr8w.o
$(AR) r $@ dxerr8.o dxerr8w.o
$(RANLIB) $@
@ -154,31 +98,8 @@ libdinput8.a: dinput8.def $(DINPUT_OBJS)
$(AR) r $@ $(DINPUT_OBJS)
$(RANLIB) $@
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) $@
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)
# install headers and libraries in a target specified directory.
# Install headers and libraries in a target specified directory.
#
install: install-libraries install-headers
install-libraries: all $(need-DESTDIR-compatibility)
@ -193,7 +114,8 @@ install-headers: $(need-DESTDIR-compatibility)
$(INSTALL_DATA) $(srcdir)/../../include/directx/$$i $(DESTDIR)$(inst_includedir)/$$i ; \
done
# uninstall headers and libraries from a target specified directory
# Uninstall headers and libraries from a target specified directory
#
uninstall: uninstall-libraries uninstall-headers
uninstall-libraries: $(need-DESTDIR-compatibility)
@ -208,7 +130,6 @@ uninstall-headers: $(need-DESTDIR-compatibility)
done
rmdir $(DESTDIR)$(inst_includedir)
dist:
mkdir $(distdir)/include/directx
chmod 755 $(distdir)/include/directx
@ -224,15 +145,4 @@ dist:
Makefile: Makefile.in ../../config.status ../../configure
cd ../..; $(SHELL) config.status
# clean
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
# Makefile.in: end of file