]> sourceware.org Git - newlib-cygwin.git/blame - winsup/Makefile.common
* winlean.h: Add temporary define.
[newlib-cygwin.git] / winsup / Makefile.common
CommitLineData
1fd5e000
CF
1# Makefile.common - common definitions for the winsup directory
2#
c24d1592 3# Copyright 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
1fd5e000
CF
4#
5# This file is part of Cygwin.
6#
7# This software is a copyrighted work licensed under the terms of the
8# Cygwin license. Please consult the file "CYGWIN_LICENSE" for
9# details.
10
11# This makefile requires GNU make.
12
a5ac89cb 13CFLAGS_COMMON:=-Wall -Wstrict-aliasing -Wwrite-strings -fno-common -pipe -fbuiltin -fmessage-length=0# -finline-functions
de7ba863
CF
14MALLOC_DEBUG:=#-DMALLOC_DEBUG -I/cygnus/src/uberbaum/winsup/cygwin/dlmalloc
15MALLOC_OBJ:=#/cygnus/src/uberbaum/winsup/cygwin/dlmalloc/malloc.o
1fd5e000 16
2cf2f098 17override srcdir:=${shell cd $(srcdir); pwd}
ba87a619 18ifneq (,${filter-out /%,$(srcdir)})
1fd5e000
CF
19 updir:=$(srcdir)/..
20 updir1:=$(updir)/..
21else
22 updir:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(srcdir)):::}}
23ifneq (,${findstring /,$(updir)})
24 updir1:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(updir)):::}}
25else
26 updir1:=$(updir)/..
27endif
28endif
29
1fd5e000 30pwd:=${shell pwd}
f162ad82 31ifneq "${filter winsup%,${notdir $(pwd)}}" ""
f162ad82
CF
32 here:=${pwd}/cygwin
33else
f162ad82
CF
34 here:=${dir $(pwd)}cygwin
35endif
b13be6f6
CF
36bupdir:=${shell cd $(here)/..; pwd}
37ifneq (,${filter-out /%,$(bupdir)})
1fd5e000 38 bupdir1:=../..
5f3cb291 39 bupdir2:=../../..
1fd5e000 40else
1fd5e000
CF
41ifneq (,${findstring /,$(bupdir)})
42 bupdir1:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(bupdir)):::}}
43else
44 bupdir1:=$(bupdir)/..
45endif
5f3cb291
CF
46ifneq (,${findstring /,$(bupdir1)})
47 bupdir2:=${patsubst %:::,%,${patsubst %/:::,%,$(dir $(bupdir1)):::}}
48else
49 bupdir2:=$(bupdir1)/..
50endif
1fd5e000
CF
51endif
52
94597cd0
CF
53zlib_source:=$(updir)/zlib
54zlib_build:=$(bupdir)/zlib
55bz2lib_source:=$(updir)/bz2lib
56bz2lib_build:=$(bupdir)/bz2lib
1fd5e000
CF
57w32api_source:=$(updir)/w32api
58w32api_build:=$(bupdir)/w32api
1fd5e000
CF
59w32api_lib:=$(w32api_build)/lib
60newlib_source:=$(updir1)/newlib
61newlib_build:=$(bupdir1)/newlib
62cygwin_build:=$(bupdir)/cygwin
63cygwin_source:=$(updir)/cygwin
64mingw_build:=$(bupdir)/mingw
65mingw_source:=$(updir)/mingw
66utils_build:=$(bupdir)/utils
67utils_source:=$(updir)/utils
0055a6c6 68ifeq (,${findstring $(newlib_source)/libc/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)})
bc6aa7e1 69newlib_include:=-I$(newlib_source)/libc/include
0055a6c6 70endif
bc6aa7e1
CF
71ifeq (,${findstring $(cygwin_source)/include,$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)})
72cygwin_include:=-I$(cygwin_source)/include
73endif
1fd5e000 74
b128dd21
CF
75# Try to determine what directories are available in winsup.
76# Attempt to properly detect missing mingw or w32api and adjust command
77# line parameters appropriately
78
bade737e
CF
79# nostdinc:=${shell [ -d "$(updir)/w32api" ] && echo "-nostdinc"}
80# ifneq (,$(nostdinc))
c6f80f3e 81nostdincxx:=-nostdinc++
bade737e 82# ifeq (,${findstring $(w32api_source),$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)})
b128dd21 83w32api_include:=-I$(w32api_source)/include
bade737e
CF
84# endif
85# endif
b128dd21
CF
86
87mingw_include:=${shell [ -d "$(mingw_source)/include" ] && echo "-I$(mingw_source)/include"}
88ifneq (,$(mingw_include))
89nostdlib:=-nostdlib
90else
91nostdlib:=
92endif
93
94ifeq (,${nostdlib})
95nostdinc:=
96endif
97
01859fc4 98INCLUDES:=-I. $(cygwin_include) -I$(cygwin_source) $(newlib_include) $(w32api_include)
1fd5e000
CF
99ifdef CONFIG_DIR
100INCLUDES+=-I$(CONFIG_DIR)
101endif
102
b128dd21 103MINGW_INCLUDES:=${mingw_include} $(w32api_include)
9d6ac548
CF
104MINGW_CFLAGS:=-mno-cygwin $(MINGW_INCLUDES)
105MINGW_CXXFLAGS:=${filter-out $(newlib_source)/%,$(CXXFLAGS)} -mno-cygwin $(MINGW_INCLUDES)
df8c8e18 106MINGW_LDFLAGS:=-L${mingw_build} -L${mingw_build}/mingwex
1fd5e000
CF
107
108GCC_DEFAULT_OPTIONS:=$(CFLAGS_COMMON) $(CFLAGS_CONFIG) $(INCLUDES)
109
110# Link in libc and libm from newlib
111
112LIBC:=$(newlib_build)/libc/libc.a
113LIBM:=$(newlib_build)/libm/libm.a
01859fc4 114CRT0:=$(cygwin_build)/crt0.o
1fd5e000 115
0390476c 116ALL_CFLAGS=$(DEFS) $(MALLOC_DEBUG) $(CFLAGS) $(GCC_DEFAULT_OPTIONS)
b7f68d3e 117ALL_CXXFLAGS=$(DEFS) $(MALLOC_DEBUG) $(CXXFLAGS) $(GCC_DEFAULT_OPTIONS)
1fd5e000
CF
118
119ifndef PREPROCESS
120c=-c
121o=.o
122else
bade737e 123c=-E -dD
1fd5e000
CF
124o=.E
125endif
126
8494f61e 127libgcc:=${subst \,/,${shell $(CC_FOR_TARGET) -print-libgcc-file-name}}
bc6aa7e1
CF
128gcc_libdir:=${word 1,${dir $(libgcc)}}
129ifeq (,${findstring $(gcc_libdir),$(CFLAGS) $(CXXFLAGS) $(CXX) $(CC)})
cb837d41 130GCC_INCLUDE:=${subst //,/,-I$(gcc_libdir)/include}
bc6aa7e1 131endif
1fd5e000 132
b602bb90
DK
133COMPILE_CXX=$(CXX) $c $(if $($(*F)_STDINCFLAGS),,$(nostdincxx) $(nostdinc)) \
134 $(ALL_CXXFLAGS) $(GCC_INCLUDE) -fno-rtti -fno-exceptions
135COMPILE_CC=$(CC) $c $(if $($(*F)_STDINCFLAGS),,$(nostdinc)) $(ALL_CFLAGS) $(GCC_INCLUDE)
1fd5e000
CF
136
137vpath %.a $(cygwin_build):$(w32api_lib):$(newlib_build)/libc:$(newlib_build)/libm
138
7f363152
CF
139MAKEOVERRIDES_WORKAROUND=${wordlist 2,1,a b c}
140
141ifneq ($(MAKEOVERRIDES_WORKAROUND),)
142 override MAKE:=$(MAKE) $(MAKEOVERRIDES)
143 MAKEOVERRIDES:=
144 export MAKEOVERRIDES
145endif
1fd5e000 146
72be82da
CF
147ifdef RPATH_ENVVAR
148VERBOSE=1
149endif
150
0ce83ef6
CF
151ifneq "${findstring -B,$(COMPILE_CXX) $(COMPILE_CC)}" ""
152VERBOSE=1
153endif
154
1fd5e000
CF
155.PRECIOUS: %.o
156
157%.o: %.cc
158ifdef VERBOSE
159 $(COMPILE_CXX) -o $(@D)/$(*F)$o $<
160else
8494f61e 161 @echo $(CXX) $c $(CXXFLAGS) ... $(*F).cc
4b9f883e 162 @$(COMPILE_CXX) -o $(@D)/$(*F)$o $<
1fd5e000
CF
163endif
164
165%.o: %.c
166ifdef VERBOSE
167 $(COMPILE_CC) -o $(@D)/$(*F)$o $<
168else
4b9f883e
DD
169 @echo $(CC) $c $(CFLAGS) ... $(*F).c
170 @$(COMPILE_CC) -o $(@D)/$(*F)$o $<
1fd5e000
CF
171endif
172
173$(bupdir1)/libiberty/%.o: $(updir1)/libiberty/%.c
ba87a619 174 @$(MAKE) -C $(@D) $(@F)
1fd5e000
CF
175
176$(w32api_lib)/%.a: $(w32api_lib)/Makefile
ba87a619 177 @$(MAKE) --no-print-dir -C $(@D) $(@F)
1fd5e000 178
b6ddef77 179$(bz2lib)/%.a: $(bz2lib)/Makefile
94597cd0
CF
180 @$(MAKE) --no-print-dir -C $(@D) $(@F)
181
b6ddef77 182$(zlib)/%.a: $(zlib)/Makefile
94597cd0
CF
183 @$(MAKE) --no-print-dir -C $(@D) $(@F)
184
1fd5e000
CF
185all:
186
187# For auto-rebuilding the Makefile
188
189.PRECIOUS: Makefile
190
191Makefile: Makefile.in $(srcdir)/configure.in config.status
192 $(SHELL) config.status
193
194config.status: configure
195 $(SHELL) config.status --recheck
This page took 0.238098 seconds and 5 git commands to generate.