4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-01 12:00:35 +08:00
Jon Turney dc93f7ef2d
Cygwin: Remove recursive configure
There's doesn't seem to be much use in independently distributing these
subdirectories, so allowing them to be independently configured seems
pointless and overcomplicated.

The order in which the subdirectories are built is still a little odd,
as cygwin is linked with libcygserver, and cygserver is then linked with
cygwin. So, we build the cygwin directory first, which invokes a build
of libcygserver in the cygserver directory, and then build in the
cygserver directory to build the cygserver executable.

Drop AC_CONFIGURE_ARGS, since we don't need to recursively call
configure with the same arguments anymore.

Slightly refine when we build utils: Previously we didn't build any
utils if MinGW compiler use was avoided, now we just avoid building
those utils which require that compiler.

Greatly simplify how winsup_srcdir and target_builddir are set, since
we're only configuring from one directory.  (These are still kept
absolute, since we don't adjust them where used for being used in a
subdirectory).

Remove configure.cygwin and put it's (greatly reduced) contents inline
in the one place it's used now.

Remove generated configure and aclocal.m4 in subdirectories.
2020-11-20 15:56:11 +00:00

173 lines
4.5 KiB
Makefile
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Makefile.in for Cygwin's testsuite.
#
# This file is part of Cygwin.
#
# This software is a copyrighted work licensed under the terms of the
# Cygwin license. Please consult the file "CYGWIN_LICENSE" for
# details.
# This makefile requires GNU make.
SHELL:=@SHELL@
srcdir:=@srcdir@
objdir:=.
libltp_srcdir=$(srcdir)/libltp
target_builddir:=@target_builddir@
target_alias:=@target_alias@
build_alias:=@build_alias@
host_alias:=@host_alias@
DESTDIR=
prefix:=${DESTDIR}@prefix@
program_transform_name:=@program_transform_name@
exec_prefix:=${DESTDIR}@exec_prefix@
bindir:=${DESTDIR}@bindir@
libdir:=${DESTDIR}@libdir@
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
datarootdir:=@datarootdir@
datadir:=${DESTDIR}@datadir@
infodir:=${DESTDIR}@infodir@
includedir:=${DESTDIR}@includedir@
TESTSUP_INCLUDES:=-I$(libltp_srcdir)/include
#
# --enable options from configure
#
CC:=@CC@
ifneq (,$(CFLAGS))
override CFLAGS+= -MD $(TESTSUP_INCLUDES)
else
CFLAGS:=@CFLAGS@ -MD $(TESTSUP_INCLUDES)
endif
AR:=@AR@
AR_FLAGS:=qv
MINGW_CC:= @MINGW_CC@
MINGW_CXX:= @MINGW_CXX@
#
# Include common definitions for winsup directory
#
include $(srcdir)/../Makefile.common
VPATH+=$(libltp_srcdir)/lib
RUNTESTFLAGS =
ifdef VERBOSE
RUNTESTFLAGS = -v
endif
RUNTIME=$(cygwin_build)/cygwin0.dll $(cygwin_build)/libcygwin0.a
TESTSUP_LIB_NAME:=libltp.a
TESTSUP_OFILES:=${sort ${addsuffix .o,${basename ${notdir ${wildcard $(libltp_srcdir)/lib/*.c}}}}}
override COMPILE_CC:=${filter-out -O%,$(COMPILE_CC)}
override CFLAGS:=${filter-out -O%,$(CFLAGS)}
.PHONY: all install
.SUFFIXES:
.SUFFIXES: .c .cc .def .a .o .d
all: $(TESTSUP_LIB_NAME)
install:
clean:
-rm -f *.o *.dll *.a *.exp junk *.bak *.base *.exe *.d *.dat
-rm -rf testsuite
maintainer-clean realclean: clean
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
-rm -fr configure
# Rule to build libltp.a
$(TESTSUP_LIB_NAME): $(TESTSUP_OFILES)
$(AR) rcv temp.a $(TESTSUP_OFILES)
mv temp.a $(TESTSUP_LIB_NAME)
$(RUNTIME) : $(cygwin_build)/Makefile
@$(MAKE) --no-print-dir -C $(@D) $(@F)
#
# These targets are for the dejagnu testsuites. The file site.exp
# contains global variables that all the testsuites will use.
# Set to $(target_alias)/ for cross.
target_subdir = @target_subdir@
# a temporary directory, to be used for files created by tests
tmpdir = $(abspath $(objdir)/testsuite/tmp/)
# the same temporary directory, as an absolute, /cygdrive path (so it can be
# understood by the test DLL, which will have a different mount table)
testdll_tmpdir = $(shell cygpath -ma $(tmpdir) | sed -e 's#^\([A-Z]\):#/cygdrive/\L\1#')
site.exp: ../config.status Makefile
@echo "Making a new config file..."
-@rm -f ./tmp?
@touch site.exp
-@mv site.exp site.bak
@echo "## these variables are automatically generated by make ##" > ./tmp0
@echo "# Do not edit here. If you wish to override these values" >> ./tmp0
@echo "# add them to the last section" >> ./tmp0
@echo "set rootme \"`pwd`\"" >> ./tmp0
@echo "set runtime_root \"\$$rootme/../cygwin\"" >> ./tmp0
@echo "set srcdir \"`cd ${srcdir}; pwd`\"" >> ./tmp0
@echo "set host_triplet $(host_canonical)" >> ./tmp0
@echo "set build_triplet $(build_canonical)" >> ./tmp0
@echo "set target_triplet $(target)" >> ./tmp0
@echo "set target_alias $(target_alias)" >> ./tmp0
@echo "set CC \"$(CC)\"" >> ./tmp0
# CFLAGS is set even though it's empty to show we reserve the right to set it.
@echo "set CFLAGS \"\"" >> ./tmp0
@echo "set MINGW_CXX \"$(MINGW_CXX)\"" >> ./tmp0
@echo "set tmpdir $(tmpdir)" >> ./tmp0
@echo "set testdll_tmpdir $(testdll_tmpdir)" >> ./tmp0
@echo "set ltp_includes \"$(realpath $(libltp_srcdir))/include\"" >> ./tmp0
@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
@cat ./tmp0 > site.exp
@cat site.bak | sed \
-e '1,/^## All variables above are.*##/ d' >> site.exp
-@rm -f ./tmp?
testsuite/site.exp: site.exp
if [ -d testsuite ]; then \
true; \
else \
mkdir testsuite; \
fi
rm -rf testsuite/site.exp
cp site.exp testsuite/site.exp
# Note: we set the PATH so that we can pick up cygwin0.dll
check: $(TESTSUP_LIB_NAME) $(RUNTIME) cygrun.exe testsuite/site.exp
rootme=`pwd` ;\
PATH=$$rootme/../cygwin:$${PATH} ;\
cd testsuite; runtest --tool winsup $(RUNTESTFLAGS)
ifdef MINGW_CC
cygrun.o: cygrun.c
$(MINGW_CC) $(MINGW_CFLAGS) -o $@ -c $<
cygrun.exe : cygrun.o
$(MINGW_CC) $(MINGW_LDFLAGS) -o $@ $<
endif