diff options
author | Christopher Faylor <me@cgf.cx> | 2012-11-23 17:22:47 +0400 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2012-11-23 17:22:47 +0400 |
commit | 4c36016b570670b75fa2f9f396fb297a04fd09bd (patch) | |
tree | 1708c166aba9c96b9e57be0d894a7bd46268e54d /winsup/Makefile.common | |
parent | 1cfd36169ccdb79e115c3a9fa4c5fa2e1372ba27 (diff) |
ChangeLog:
2012-11-12 Christopher Faylor <me.cygwin2012@cgf.cx>
* Makefile.common: Revamp for new configury. Add default compilation
targets, include .E processing. Add magic for allowing "CFLAGS" to
control optimization options in "CXXFLAGS".
* configure.cygwin: New include for Cygwin configure.in's.
* acinclude.m4: Delete old definitions. Implement AC_WINDOWS_HEADERS,
AC_WINDOWS_LIBS, AC_CYGWIN_INCLUDES, target_builddir, winsup_srcdir.
* aclocal.m4: Regenerate.
* autogen.sh: New file.
* ccwrap: New script.
* c++wrap: New script.
* config.guess: New script.
* config.sub: New script.
* configure: Regenerate.
* configure.in: Eliminate LIB_AC_PROG_* calls in favor of standard.
Delete ancient target test.
* install-sh: New script.
cygserver/ChangeLog:
2012-11-12 Christopher Faylor <me.cygwin2012@cgf.cx>
* Makefile.in: Revamp for new configury.
* configure.in: Revamp for new configury.
* aclocal.m4: Regenerate.
* configure: Ditto.
* autogen.sh: New script.
cygwin/ChangeLog:
2012-11-22 Christopher Faylor <me.cygwin2012@cgf.cx>
* select.cc (select): Don't return -1 when we've timed out after
looping.
2012-11-22 Christopher Faylor <me.cygwin2012@cgf.cx>
* Makefile.in: Revamp for new configury.
(datarootdir): Add variable setting.
(winver_stamp): Accommodate changes to mkvers.sh setting.
(libc.a): Fix race when libm.a might not have been built yet.
* configure.in: Revamp for new configury.
* aclocal.m4: Regenerate.
* configure: Ditto.
* autogen.sh: New script.
* mkvers.sh: Find include directives via CFLAGS and friends rather than
assuming that w32api lives nearby.
utils/ChangeLog:
2012-11-12 Christopher Faylor <me.cygwin2012@cgf.cx>
* aclocal.m4: Regenerate.
* configure: Ditto.
* autogen.sh: New script.
* configure.in: Revamp for new configury.
* Makefile.in: Revamp for new configury. Rename ALL_* to just *.
Always use "VERBOSE" setting.
(MINGW_CXX): Don't include CFLAGS in definition.
(all): Define target first, before everything else so that it is the
default.
(ps.exe): Don't add useless -lcygwin.
(ldh.exe): For consistency, add to existing MINGW_LDFLAGS rather than
redefining them.
(cygcheck.exe): Always include -lz for MINGW_LDFLAGS. Don't try to
figure out where to find it.
(dumper.exe): Simplify check. Assume libraries are installed rather
than trying to retrieve from source tree.
(install): Just use /bin/mkdir to create directories.
(Makefile): Regenerate when standard dependencies change.
* dump_setup.cc: Always include zlib.h. Remove accommodations for it
possibly not existing.
* parse_pe.cc: Add define which allows building with installed
binutils package.
* dumper.cc: Ditto.
Diffstat (limited to 'winsup/Makefile.common')
-rw-r--r-- | winsup/Makefile.common | 163 |
1 files changed, 27 insertions, 136 deletions
diff --git a/winsup/Makefile.common b/winsup/Makefile.common index 5bdcd79b2..8b0c1fd21 100644 --- a/winsup/Makefile.common +++ b/winsup/Makefile.common @@ -8,154 +8,45 @@ # Cygwin license. Please consult the file "CYGWIN_LICENSE" for # details. -# This makefile requires GNU make. +define justdir +$(patsubst %/,%,$(dir $1)) +endef -CFLAGS_COMMON:=-Wall -Wstrict-aliasing -Wwrite-strings -fno-common -pipe -fbuiltin -fmessage-length=0 -D_SDKDDKVER_H -MALLOC_DEBUG:=#-DMALLOC_DEBUG -I/cygnus/src/uberbaum/winsup/cygwin/dlmalloc -MALLOC_OBJ:=#/cygnus/src/uberbaum/winsup/cygwin/dlmalloc/malloc.o +define libname +$(realpath $(shell ${CC} --print-file-name=$1 $2)) +endef -override srcdir:=${shell cd $(srcdir); pwd} -ifneq (,${filter-out /%,$(srcdir)}) - updir:=$(srcdir)/.. - updir1:=$(updir)/.. -else - updir:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(srcdir)):::}} -ifneq (,${findstring /,$(updir)}) - updir1:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(updir)):::}} -else - updir1:=$(updir)/.. -endif -endif +export PATH:=${winsup_srcdir}:${PATH} -pwd:=${shell pwd} -ifneq "${filter winsup%,${notdir $(pwd)}}" "" - here:=${pwd}/cygwin -else - here:=${dir $(pwd)}cygwin -endif -bupdir:=${shell cd $(here)/..; pwd} -ifneq (,${filter-out /%,$(bupdir)}) - bupdir1:=../.. - bupdir2:=../../.. -else -ifneq (,${findstring /,$(bupdir)}) - bupdir1:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(bupdir)):::}} -else - bupdir1:=$(bupdir)/.. -endif -ifneq (,${findstring /,$(bupdir1)}) - bupdir2:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(bupdir1)):::}} -else - bupdir2:=$(bupdir1)/.. -endif -endif +# Allow CFLAGS=-O,-g to control CXXFLAGS too +opt=$(filter -O%,${CFLAGS}) $(filter -g,${CFLAGS}) +override CXXFLAGS:=${filter-out -g,$(filter-out -O%,${CXXFLAGS})} ${opt} -newlib_source:=$(updir1)/newlib -newlib_build:=$(bupdir1)/newlib -cygwin_build:=$(bupdir)/cygwin -cygwin_source:=$(updir)/cygwin -utils_build:=$(bupdir)/utils -utils_source:=$(updir)/utils -ifeq (,${findstring $(newlib_source)/libc/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -newlib_include:=-I$(newlib_source)/libc/include -endif -ifeq (,${findstring $(cygwin_source)/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -cygwin_include:=-I$(cygwin_source)/include -endif +cflags_common:=-Wall -Wstrict-aliasing -Wwrite-strings -fno-common -pipe -fbuiltin -fmessage-length=0 +COMPILE.cc=c++wrap ${CXXFLAGS} -fno-rtti -fno-exceptions ${cflags_common} +COMPILE.c=ccwrap ${CFLAGS} ${cflags_common} -nostdincxx:=-nostdinc++ +top_srcdir:=$(call justdir,${winsup_srcdir}) +top_builddir:=$(call justdir,${target_builddir}) -nostdlib:=-nostdlib - -ifeq (,${nostdlib}) -nostdinc:= -endif - -INCLUDES:=-I. $(cygwin_include) -I$(cygwin_source) $(newlib_include) -ifdef CONFIG_DIR -INCLUDES+=-I$(CONFIG_DIR) -endif - -MINGW_LDFLAGS:=-static -MINGW_CFLAGS:= -MINGW_CXXFLAGS:= - -GCC_DEFAULT_OPTIONS:=$(CFLAGS_COMMON) $(CFLAGS_CONFIG) $(INCLUDES) - -# Link in libc and libm from newlib - -LIBC:=$(newlib_build)/libc/libc.a -LIBM:=$(newlib_build)/libm/libm.a -CRT0:=$(cygwin_build)/crt0.o - -ALL_CFLAGS=$(DEFS) $(MALLOC_DEBUG) $(CFLAGS) $(GCC_DEFAULT_OPTIONS) -ALL_CXXFLAGS=$(DEFS) $(MALLOC_DEBUG) $(CXXFLAGS) $(GCC_DEFAULT_OPTIONS) - -ifndef PREPROCESS -c=-c -o=.o -else -c=-E -dD -o=.E -endif - -libgcc:=${subst \,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}} -gcc_libdir:=${word 1,${dir $(libgcc)}} -ifeq (,${findstring $(gcc_libdir),$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)}) -GCC_INCLUDE:=${subst //,/,-I$(gcc_libdir)/include} -endif +cygwin_build:=${target_builddir}/winsup/cygwin +newlib_build:=${target_builddir}/newlib -COMPILE_CXX=$(CXX) $c $(if $($(*F)_STDINCFLAGS),,$(nostdincxx) $(nostdinc)) \ - $(ALL_CXXFLAGS) $(GCC_INCLUDE) -fno-rtti -fno-exceptions -COMPILE_CC=$(CC) $c $(if $($(*F)_STDINCFLAGS),,$(nostdinc)) $(ALL_CFLAGS) $(GCC_INCLUDE) - -vpath %.a $(cygwin_build):$(newlib_build)/libc:$(newlib_build)/libm - -MAKEOVERRIDES_WORKAROUND=${wordlist 2,1,a b c} - -ifneq ($(MAKEOVERRIDES_WORKAROUND),) - override MAKE:=$(MAKE) $(MAKEOVERRIDES) - MAKEOVERRIDES:= - export MAKEOVERRIDES -endif - -ifdef RPATH_ENVVAR -VERBOSE=1 -endif +nostdlib:=-nostdlib -ifneq "${findstring -B,$(COMPILE_CXX) $(COMPILE_CC)}" "" -VERBOSE=1 -endif +VPATH:=${srcdir} -.PRECIOUS: %.o +.SUFFIXES: +.SUFFIXES: .c .cc .def .a .o .d .s .E %.o: %.cc -ifdef VERBOSE - $(COMPILE_CXX) -o $(@D)/$(*F)$o $< -else - @echo $(CXX) $c $(CXXFLAGS) ... $(*F).cc - @$(COMPILE_CXX) -o $(@D)/$(*F)$o $< -endif + $(strip ${COMPILE.cc} -c -o $@ $<) %.o: %.c -ifdef VERBOSE - $(COMPILE_CC) -o $(@D)/$(*F)$o $< -else - @echo $(CC) $c $(CFLAGS) ... $(*F).c - @$(COMPILE_CC) -o $(@D)/$(*F)$o $< -endif - -$(bupdir1)/libiberty/%.o: $(updir1)/libiberty/%.c - @$(MAKE) -C $(@D) $(@F) - -all: - -# For auto-rebuilding the Makefile - -.PRECIOUS: Makefile + $(strip ${COMPILE.c} -c -o $@ $<) -Makefile: Makefile.in $(srcdir)/configure.in config.status - $(SHELL) config.status +%.E: %.cc + $(strip ${COMPILE.cc} -E -dD -o $@ $<) -config.status: configure - $(SHELL) config.status --recheck +%.E: %.c + $(strip ${COMPILE.c} -E -dD -o $@ $<) |