]> sourceware.org Git - newlib-cygwin.git/blame - winsup/cygwin/Makefile.in
Cygwin: Drop do-nothing install_host target
[newlib-cygwin.git] / winsup / cygwin / Makefile.in
CommitLineData
1fd5e000 1# Makefile.in for Cygwin.
1fd5e000
CF
2#
3# This file is part of Cygwin.
4#
5# This software is a copyrighted work licensed under the terms of the
6# Cygwin license. Please consult the file "CYGWIN_LICENSE" for
7# details.
4c36016b 8# configure_input: @configure_input@
1fd5e000
CF
9
10# This makefile requires GNU make.
4c36016b 11
3649c742 12srcdir:=@srcdir@
4c36016b
CF
13target_builddir:=@target_builddir@
14winsup_srcdir:=@winsup_srcdir@
15configure_args=@configure_args@
16
4c36016b
CF
17CFLAGS?=@CFLAGS@
18CXXFLAGS?=@CXXFLAGS@
b55e3f19 19INCLUDES?=@INCLUDES@
4c36016b 20
c416f16d 21include ${srcdir}/../Makefile.common
1fd5e000 22
c66f16b2 23VPATH+=$(srcdir)/regex $(srcdir)/lib $(srcdir)/libc $(srcdir)/math $(srcdir)/tzcode
14a3bc2f 24
61522196 25target_cpu:=@target_cpu@
1fd5e000
CF
26target_alias:=@target_alias@
27build_alias:=@build_alias@
28host_alias:=@host_alias@
29prefix:=@prefix@
30
31program_transform_name:=@program_transform_name@
32exec_prefix:=@exec_prefix@
33bindir:=@bindir@
34libdir:=@libdir@
d795119c 35mandir:=@mandir@
ac6f159c 36sysconfdir:=@sysconfdir@
4c36016b 37datarootdir:=@datarootdir@
1fd5e000
CF
38ifeq ($(target_alias),$(host_alias))
39ifeq ($(build_alias),$(host_alias))
40tooldir:=$(exec_prefix)
41else
42tooldir:=$(exec_prefix)/$(target_alias)
43endif
44else
45tooldir:=$(exec_prefix)/$(target_alias)
46endif
47datadir:=@datadir@
48infodir:=@infodir@
49includedir:=@includedir@
50
9ddd929f
CF
51override INSTALL:=@INSTALL@
52override INSTALL_PROGRAM:=@INSTALL_PROGRAM@
53override INSTALL_DATA:=@INSTALL_DATA@
1fd5e000 54
4c36016b
CF
55cygserver_blddir:=${target_builddir}/winsup/cygserver
56LIBSERVER:=${cygserver_blddir}/libcygserver.a
57
58LIBC:=$(newlib_build)/libc/libc.a
59LIBM:=$(newlib_build)/libm/libm.a
60CRT0:=$(cygwin_build)/crt0.o
61
1fd5e000
CF
62#
63# --enable options from configure
64#
4c36016b 65CCEXTRA=
50ad1980 66COMMON_CFLAGS=-MMD ${$(*F)_CFLAGS} -Wimplicit-fallthrough=5 -Werror -fmerge-constants -ftracer $(CCEXTRA)
61522196
CV
67ifeq ($(target_cpu),x86_64)
68COMMON_CFLAGS+=-mcmodel=small
69endif
d6242d87 70COMPILE.cc+=${COMMON_CFLAGS} # -std=gnu++14
4c36016b 71COMPILE.c+=${COMMON_CFLAGS}
1fd5e000 72
1fd5e000
CF
73AR:=@AR@
74AR_FLAGS:=qv
75RANLIB:=@RANLIB@
76LD:=@LD@
77DLLTOOL:=@DLLTOOL@
78WINDRES:=@WINDRES@
79AS:=@AS@
48beacf6 80NM:=@NM@
cbda22eb
CF
81OBJCOPY:=@OBJCOPY@
82OBJDUMP:=@OBJDUMP@
83STRIP:=@STRIP@
48beacf6 84LDSCRIPT:=cygwin.sc
0fa52a6c 85MKDIRP:=$(INSTALL) -m 755 -d
1fd5e000 86
1fd5e000
CF
87# Setup the testing framework, if you have one
88EXPECT = `if [ -f $${rootme}/../../expect/expect$(EXEEXT) ] ; then \
228f6b6e
CF
89 echo $${rootme}/../../expect/expect$(EXEEXT) ; \
90 else echo expect ; fi`
1fd5e000
CF
91
92RUNTEST = `if [ -f $${srcdir}/../dejagnu/runtest ] ; then \
93 echo $${srcdir}/../dejagnu/runtest ; \
94 else echo runtest; fi`
95RUNTESTFLAGS =
96
1fd5e000 97# Parameters used in building the cygwin.dll.
3a1d827f 98# We build as cygwin0.dll and rename at install time to overcome
1fd5e000
CF
99# native rebuilding issues (we don't want the build tools to see a partially
100# built cygwin.dll and attempt to use it instead of the old one).
101
61522196
CV
102DLL_NAME:=@DLL_NAME@
103TEST_DLL_NAME:=${patsubst %1.dll,%0.dll,@DLL_NAME@}
3a1d827f 104TEST_LIB_NAME:=libcygwin0.a
66a83f3e 105STATIC_LIB_NAME:=libcygwin_s.a
bfebe413 106DIN_FILE=@DIN_FILE@ common.din
1fd5e000 107DEF_FILE:=cygwin.def
61522196 108TLSOFFSETS_H:=@TLSOFFSETS_H@
1fd5e000
CF
109DLL_ENTRY:=@DLL_ENTRY@
110
111LIBGMON_A:=libgmon.a
194d9eb3 112CYGWIN_START:=crt0.o
1fd5e000
CF
113GMON_START:=gcrt0.o
114
61522196 115toolopts:=--cpu=${target_cpu} --ar=${AR} --as=${AS} --nm=${NM} --objcopy=${OBJCOPY}
edd090a2
CF
116speclib=\
117 ${srcdir}/speclib ${toolopts} \
118 --exclude='cygwin' \
119 --exclude='(?i:dll)' \
120 --exclude='reloc' \
61522196 121 --exclude='^main$$' \
edd090a2
CF
122 --exclude='^_main$$' \
123 $^
03905921 124
1fd5e000
CF
125# Some things want these from libc, but they have their own static
126# data which apps can get to, which is a pain in the dll, so we
127# include them directly into the library.
128
14a3bc2f
CF
129LIBCOS:=${sort ${addsuffix .o,${basename ${notdir ${wildcard $(srcdir)/lib/*.c}}}} \
130 ${addsuffix .o,${basename ${notdir ${wildcard $(srcdir)/lib/*.cc}}}}}
1fd5e000
CF
131
132# Build all source files in the config directory
133
b85bae86 134EXTRA_OFILES:=
1fd5e000 135
61522196 136MALLOC_OFILES:=malloc.o
8db71e01 137
478bb995 138DLL_IMPORTS:=${shell $(CC) -print-file-name=w32api/libkernel32.a} ${shell $(CC) -print-file-name=w32api/libntdll.a}
1fd5e000 139
9a4d574b 140#
75a66979
CV
141LIBC_OFILES:= \
142 arc4random_stir.o \
143 base64.o \
144 bsdlib.o \
145 call_once.o \
146 cnd.o \
147 fnmatch.o \
148 fts.o \
149 ftw.o \
150 getentropy.o \
151 getopt.o \
152 inet_addr.o \
153 inet_network.o \
154 minires-os-if.o \
155 minires.o \
156 msgcat.o \
157 mtx.o \
158 nftw.o \
159 rcmd.o \
160 rexec.o \
161 strfmon.o \
162 strptime.o \
163 thrd.o \
164 tss.o \
165 xsique.o
166
792e51b7
CV
167MATH_OFILES:= \
168 acoshl.o \
169 acosl.o \
170 asinhl.o \
171 asinl.o \
172 atan2l.o \
173 atanhl.o \
174 atanl.o \
175 cabsl.o \
176 cacosl.o \
177 cargl.o \
178 casinl.o \
179 catanl.o \
180 cbrtl.o \
181 ccosl.o \
182 ceill.o \
183 cephes_emath.o \
184 cexpl.o \
185 cimagl.o \
186 clog10l.o \
187 clogl.o \
188 conjl.o \
189 copysignl.o \
190 coshl.o \
191 cosl.o \
192 cosl_internal.o \
193 cossin.o \
194 cpowl.o \
195 cprojl.o \
196 creall.o \
197 csinl.o \
198 csqrtl.o \
199 ctanl.o \
200 erfl.o \
201 exp10l.o \
202 exp2l.o \
203 expl.o \
204 expm1l.o \
205 fabsl.o \
206 fdiml.o \
207 finite.o \
208 floorl.o \
209 fmal.o \
210 fmaxl.o \
211 fminl.o \
212 fmodl.o \
213 frexpl.o \
214 ilogbl.o \
215 internal_logl.o \
216 isinf.o \
217 isnan.o \
218 ldexpl.o \
219 lgammal.o \
220 llrint.o \
221 llrintf.o \
222 llrintl.o \
223 llroundl.o \
224 log10l.o \
225 log1pl.o \
226 log2l.o \
227 logbl.o \
228 logl.o \
229 lrint.o \
230 lrintf.o \
231 lrintl.o \
232 lroundl.o \
233 modfl.o \
234 nearbyint.o \
235 nearbyintf.o \
236 nearbyintl.o \
237 nextafterl.o \
238 nexttoward.o \
239 nexttowardf.o \
240 pow10l.o \
241 powil.o \
242 powl.o \
243 remainder.o \
244 remainderf.o \
245 remainderl.o \
246 remquol.o \
247 rint.o \
248 rintf.o \
249 rintl.o \
250 roundl.o \
251 scalbl.o \
252 scalbnl.o \
253 sinhl.o \
254 sinl.o \
255 sinl_internal.o \
256 sqrtl.o \
257 tanhl.o \
258 tanl.o \
259 tgammal.o \
260 truncl.o
261
c66f16b2
MG
262TZCODE_OFILES:=localtime.o
263
5fedfc22
CV
264DLL_OFILES:= \
265 advapi32.o \
7f32efbf 266 aio.o \
5fedfc22
CV
267 assert.o \
268 autoload.o \
c05df027 269 clock.o \
5fedfc22
CV
270 ctype.o \
271 cxx.o \
272 cygheap.o \
273 cygthread.o \
274 cygtls.o \
275 cygwait.o \
276 cygxdr.o \
277 dcrt0.o \
278 debug.o \
279 devices.o \
280 dir.o \
281 dlfcn.o \
282 dll_init.o \
283 dtable.o \
284 environ.o \
285 errno.o \
286 exceptions.o \
287 exec.o \
288 external.o \
289 fcntl.o \
290 fenv.o \
291 fhandler.o \
292 fhandler_clipboard.o \
293 fhandler_console.o \
9db7f4d1 294 fhandler_cygdrive.o \
5fedfc22
CV
295 fhandler_dev.o \
296 fhandler_disk_file.o \
297 fhandler_dsp.o \
298 fhandler_fifo.o \
299 fhandler_floppy.o \
5fedfc22
CV
300 fhandler_netdrive.o \
301 fhandler_nodevice.o \
91ca95ae 302 fhandler_pipe.o \
5fedfc22
CV
303 fhandler_proc.o \
304 fhandler_process.o \
7aca27b4 305 fhandler_process_fd.o \
5fedfc22
CV
306 fhandler_procnet.o \
307 fhandler_procsys.o \
308 fhandler_procsysvipc.o \
309 fhandler_random.o \
310 fhandler_raw.o \
311 fhandler_registry.o \
312 fhandler_serial.o \
9d13a299 313 fhandler_signalfd.o \
5fedfc22 314 fhandler_socket.o \
859d215b
CV
315 fhandler_socket_inet.o \
316 fhandler_socket_local.o \
7f7532fa 317 fhandler_socket_unix.o \
5fedfc22
CV
318 fhandler_tape.o \
319 fhandler_termios.o \
068182e2 320 fhandler_timerfd.o \
5fedfc22
CV
321 fhandler_tty.o \
322 fhandler_virtual.o \
323 fhandler_windows.o \
324 fhandler_zero.o \
325 flock.o \
5fedfc22 326 fork.o \
8ddb1f60 327 forkable.o \
5fedfc22
CV
328 glob.o \
329 glob_pattern_p.o \
330 globals.o \
331 grp.o \
332 heap.o \
333 hookapi.o \
5fedfc22
CV
334 init.o \
335 ioctl.o \
336 ipc.o \
337 kernel32.o \
338 ldap.o \
339 libstdcxx_wrapper.o \
d0a359f6 340 loadavg.o \
5fedfc22
CV
341 lsearch.o \
342 malloc_wrapper.o \
5fedfc22
CV
343 miscfuncs.o \
344 mktemp.o \
345 mmap.o \
1f34405f 346 mmap_alloc.o \
5fedfc22
CV
347 msg.o \
348 mount.o \
349 net.o \
350 netdb.o \
351 nfs.o \
5fedfc22
CV
352 nlsfuncs.o \
353 ntea.o \
354 passwd.o \
355 path.o \
356 pinfo.o \
5fedfc22
CV
357 poll.o \
358 posix_ipc.o \
229ea3f2 359 posix_timer.o \
5fedfc22
CV
360 pseudo-reloc.o \
361 pthread.o \
1db937e9 362 quotactl.o \
5fedfc22
CV
363 random.o \
364 regcomp.o \
365 regerror.o \
366 regexec.o \
367 regfree.o \
368 registry.o \
369 resource.o \
5fedfc22
CV
370 scandir.o \
371 sched.o \
372 sec_acl.o \
373 sec_auth.o \
374 sec_helper.o \
9ddf0639 375 sec_posixacl.o \
5fedfc22
CV
376 security.o \
377 select.o \
378 sem.o \
379 setlsapwd.o \
380 shared.o \
381 shm.o \
382 sigfe.o \
383 signal.o \
384 sigproc.o \
385 smallprint.o \
386 spawn.o \
387 strace.o \
5fedfc22 388 strfuncs.o \
5fedfc22
CV
389 strsep.o \
390 strsig.o \
391 sync.o \
392 syscalls.o \
393 sysconf.o \
394 syslog.o \
395 termios.o \
396 thread.o \
40481dba 397 timerfd.o \
5fedfc22
CV
398 times.o \
399 tls_pbuf.o \
400 tty.o \
401 uinfo.o \
402 uname.o \
403 wait.o \
404 wincap.o \
405 window.o \
406 winf.o \
5fedfc22
CV
407 $(EXTRA_OFILES) \
408 $(MALLOC_OFILES) \
75a66979 409 $(LIBC_OFILES) \
792e51b7 410 $(MATH_OFILES) \
e78a7f8f 411 $(TZCODE_OFILES)
1fd5e000 412
66a83f3e
CF
413EXCLUDE_STATIC_OFILES:=$(addprefix --exclude=,\
414 cygtls.o \
415 dcrt0.o \
416 exceptions.o \
417 fork.o \
418 signal.o \
419 spawn.o \
420)
421
6340d0ff
CV
422VERSION_OFILES:=version.o winver.o
423
4c36016b
CF
424ifdef PREPROCESS
425override DLL_OFILES:=$(patsubst %.o,%_E,${DLL_OFILES})
426override EXCLUDE_STATIC_OFILES:=$(patsubst %.o,%_E,${EXCLUDE_STATIC_OFILES})
427override EXTRA_OFILES=$(patsubst %.o,%_E,${DLL_OFILES}))
428override MALLOC_OFILES:=$(patsubst %.o,%.E,${MALLOC_OFILES})
429endif #PREPROCESS
430
943072f4
CV
431ifeq ($(target_cpu),x86_64)
432# Needed by mcountFunc.S to choose the right code path and symbol names
433ASFLAGS:=-D_WIN64
434endif
435
436GMON_OFILES:=gmon.o mcount.o profil.o mcountFunc.o
48beacf6 437
a2ba36a6 438NEW_FUNCTIONS:=$(addprefix --replace=,\
4d67bb49 439 atexit= \
a2ba36a6 440 timezone= \
84230b71 441 uname=uname_x \
a2ba36a6
CV
442 __xdrrec_getrec= \
443 __xdrrec_setnonblock= \
444 xdr_array= \
445 xdr_bool= \
446 xdr_bytes= \
447 xdr_char= \
448 xdr_double= \
449 xdr_enum= \
450 xdr_float= \
451 xdr_free= \
452 xdr_hyper= \
453 xdr_int= \
454 xdr_int16_t= \
455 xdr_int32_t= \
456 xdr_int64_t= \
457 xdr_int8_t= \
458 xdr_long= \
459 xdr_longlong_t= \
460 xdr_netobj= \
461 xdr_opaque= \
462 xdr_pointer= \
463 xdr_reference= \
464 xdr_short= \
465 xdr_sizeof= \
466 xdr_string= \
467 xdr_u_char= \
468 xdr_u_hyper= \
469 xdr_u_int= \
470 xdr_u_int16_t= \
471 xdr_u_int32_t= \
472 xdr_u_int64_t= \
473 xdr_u_int8_t= \
474 xdr_u_long= \
475 xdr_u_longlong_t= \
476 xdr_u_short= \
477 xdr_uint16_t= \
478 xdr_uint32_t= \
479 xdr_uint64_t= \
480 xdr_uint8_t= \
481 xdr_union= \
482 xdr_vector= \
483 xdr_void= \
484 xdr_wrapstring= \
485 xdrmem_create= \
486 xdrrec_create= \
487 xdrrec_endofrecord= \
488 xdrrec_eof= \
489 xdrrec_skiprecord= \
490 xdrstdio_create= \
491)
61522196 492ifeq ($(target_cpu),x86_64)
a2ba36a6 493NEW_FUNCTIONS+=
61522196 494else
a2ba36a6 495NEW_FUNCTIONS+=$(addprefix --replace=,\
edd090a2
CF
496 acl=_acl32 \
497 aclcheck=_aclcheck32 \
498 aclfrommode=_aclfrommode32 \
499 aclfrompbits=_aclfrompbits32 \
500 aclfromtext=_aclfromtext32 \
501 aclsort=_aclsort32 \
502 acltomode=_acltomode32 \
503 acltopbits=_acltopbits32 \
504 acltotext=_acltotext32 \
505 chown=_chown32 \
506 facl=_facl32 \
507 fchown=_fchown32 \
508 fcntl=_fcntl64 \
509 fdopen=_fdopen64 \
510 fgetpos=_fgetpos64 \
511 fopen=_fopen64 \
512 freopen=_freopen64 \
513 fseeko=_fseeko64 \
514 fsetpos=_fsetpos64 \
515 fstat=_fstat64 \
516 ftello=_ftello64 \
517 ftruncate=_ftruncate64 \
518 getegid=_getegid32 \
519 geteuid=_geteuid32 \
520 getgid=_getgid32 \
521 getgrent=_getgrent32 \
522 getgrgid=_getgrgid32 \
523 getgrnam=_getgrnam32 \
524 getgroups=_getgroups32 \
525 getpwuid=_getpwuid32 \
526 getpwuid_r=_getpwuid_r32 \
527 getuid=_getuid32 \
528 initgroups=_initgroups32 \
529 lchown=_lchown32 \
530 lseek=_lseek64 \
531 lstat=_lstat64 \
532 mknod=_mknod32 \
533 mmap=_mmap64 \
534 open=_open64 \
edd090a2
CF
535 setegid=_setegid32 \
536 seteuid=_seteuid32 \
537 setgid=_setgid32 \
538 setgroups=_setgroups32 \
539 setregid=_setregid32 \
540 setreuid=_setreuid32 \
541 setuid=_setuid32 \
542 stat=_stat64 \
edd090a2
CF
543 tmpfile=_tmpfile64 \
544 truncate=_truncate64 \
545)
61522196 546endif
1fd5e000 547
b9e8058d
ED
548API_VER:=$(srcdir)/include/cygwin/version.h
549
03905921 550LIB_NAME:=libcygwin.a
552a20ab 551SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a libssp.a
49294f00
CV
552EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a
553INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o
4b154cc1 554TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS)
7ac61736
CF
555
556ifneq "${filter -O%,$(CFLAGS)}" ""
4f28e8a0 557dtable_CFLAGS:=-fcheck-new
49a843b4 558localtime_CFLAGS:=-fwrapv
4f28e8a0
JT
559malloc_CFLAGS:=-O3
560sync_CFLAGS:=-O3
561ifeq ($(target_cpu),i686)
562# on x86, exceptions.cc must be compiled with a frame-pointer as it uses RtlCaptureContext()
563exceptions_CFLAGS:=-fno-omit-frame-pointer
564endif
7ac61736 565endif
5f66c2c7
CV
566# required since gcc 9.x
567exec_CFLAGS:=-fno-builtin-execve
7ac61736 568
a2ef34bf
YS
569fhandler_proc_CFLAGS+=-DUSERNAME="\"$(USER)\"" -DHOSTNAME="\"$(HOSTNAME)\""
570fhandler_proc_CFLAGS+=-DGCC_VERSION="\"`$(CC) -v 2>&1 | tail -n 1`\""
571
97349b78 572.PHONY: all force dll_ofiles install all_target install_target all_host \
c50e0d8b 573 install install-libs install-headers \
97349b78 574 clean distclean realclean maintainer-clean
1fd5e000 575
e94903eb 576all_host=@all_host@
e94903eb 577
74509af2 578all: all_target $(all_host)
e94903eb 579
3872e9a4 580all_target: $(TARGET_LIBS)
e94903eb 581
3a1d827f 582all_host: $(TEST_LIB_NAME)
1fd5e000
CF
583
584force:
585
93d15b36 586install: install-libs install-headers install-man install-ldif install_target \
c50e0d8b 587 $(install_target)
e13ea334 588
197f8077 589uninstall: uninstall-libs uninstall-headers uninstall-man
cbf7a9eb 590
e56f4d7f 591install-libs: $(TARGET_LIBS)
5d962bc7 592 @$(MKDIRP) $(DESTDIR)$(bindir) $(DESTDIR)$(tooldir)/lib
99fe2b78 593 $(INSTALL_PROGRAM) $(TEST_DLL_NAME) $(DESTDIR)$(bindir)/$(DLL_NAME); \
e56f4d7f 594 for i in $^; do \
99fe2b78 595 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/lib/`basename $$i` ; \
e13ea334 596 done
99fe2b78 597 cd $(DESTDIR)$(tooldir)/lib && ln -sf libcygwin.a libg.a
e13ea334
CF
598
599install-headers:
1fd5e000
CF
600 cd $(srcdir); \
601 for sub in `find include -name '[a-z]*' -type d -print | sort`; do \
99fe2b78 602 $(MKDIRP) $(DESTDIR)$(tooldir)/$$sub; \
1fd5e000 603 for i in $$sub/*.h ; do \
99fe2b78 604 $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/$$sub/`basename $$i` ; \
1fd5e000 605 done ; \
97f3429f 606 done ; \
48beacf6
CF
607
608install-man:
99fe2b78 609 @$(MKDIRP) $(DESTDIR)$(mandir)/man2 $(DESTDIR)$(mandir)/man3 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7
48beacf6 610 cd $(srcdir); \
0d3304af 611 for i in `find . -type f ! -path './release/*' -name '*.2'`; do \
99fe2b78 612 $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man2/`basename $$i` ; \
48beacf6 613 done; \
0d3304af 614 for i in `find . -type f ! -path './release/*' -name '*.3'`; do \
99fe2b78 615 $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man3/`basename $$i` ; \
48beacf6 616 done; \
0d3304af 617 for i in `find . -type f ! -path './release/*' -name '*.5'`; do \
99fe2b78 618 $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man5/`basename $$i` ; \
48beacf6 619 done; \
0d3304af 620 for i in `find . -type f ! -path './release/*' -name '*.7'`; do \
99fe2b78 621 $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man7/`basename $$i` ; \
48beacf6 622 done
1fd5e000 623
93d15b36
CV
624install-ldif:
625 @$(MKDIRP) $(DESTDIR)$(datarootdir)/cygwin
626 $(INSTALL_DATA) $(srcdir)/cygwin.ldif $(DESTDIR)$(datarootdir)/cygwin
627
3872e9a4 628install_target:
228f6b6e 629
cbf7a9eb
CF
630uninstall-libs: $(TARGET_LIBS)
631 rm -f $(bindir)/$(DLL_NAME); \
632 for i in $^; do \
633 rm -f $(tooldir)/lib/$$i ; \
634 done
635
636uninstall-headers:
637 cd $(srcdir); \
638 for sub in `find include -name '[a-z]*' -type d -print | sort`; do \
639 for i in $$sub/*.h ; do \
640 rm -f $(tooldir)/$$sub/`basename $$i` ; \
641 done ; \
642 done ; \
cbf7a9eb
CF
643
644uninstall-man:
645 cd $(srcdir); \
646 for i in `find . -type f -name '*.2'`; do \
61522196 647 rm -f $(DESTDIR)$(mandir)/man2/`basename $$i` ; \
cbf7a9eb
CF
648 done; \
649 for i in `find . -type f -name '*.3'`; do \
61522196 650 rm -f $(DESTDIR)$(mandir)/man3/`basename $$i` ; \
cbf7a9eb
CF
651 done; \
652 for i in `find . -type f -name '*.5'`; do \
61522196 653 rm -f $(DESTDIR)$(mandir)/man5/`basename $$i` ; \
cbf7a9eb
CF
654 done; \
655 for i in `find . -type f -name '*.7'`; do \
61522196 656 rm -f $(DESTDIR)$(mandir)/man7/`basename $$i` ; \
cbf7a9eb
CF
657 done
658
97349b78 659clean distclean realclean:
36b8811c
CV
660 -rm -f *.o *.dll *.dbg *.a *.exp junk *.base version.cc *.exe *.d \
661 *stamp* *_magic.h sigfe.s cygwin.def cygwin.map cygwin.sc \
662 globals.h localtime.patched.c
4c36016b 663 -@$(MAKE) -C ${cygserver_blddir} libclean
1fd5e000 664
97349b78 665maintainer-clean: clean
1fd5e000
CF
666 @echo "This command is intended for maintainers to use;"
667 @echo "it deletes files that may require special tools to rebuild."
668 -rm -fr configure
97349b78 669 -rm -f $(srcdir)/$(TLSOFFSETS_H) $(srcdir)/devices.cc
1fd5e000 670
61522196
CV
671# Rule to build LDSCRIPT
672$(LDSCRIPT): $(LDSCRIPT).in
673 $(CC) -E - -P < $^ -o $@
1fd5e000
CF
674
675# Rule to build cygwin.dll
6340d0ff 676$(TEST_DLL_NAME): $(LDSCRIPT) dllfixdbg $(DLL_OFILES) $(LIBSERVER) $(LIBC) $(LIBM) $(API_VER) Makefile $(VERSION_OFILES)
10ce3cd7 677 $(CXX) $(CXXFLAGS) \
78bfd7db 678 -mno-use-libstdc-wrappers \
08f5cc2e 679 -Wl,--gc-sections -nostdlib -Wl,-T$(firstword $^) -static \
88cbbd45 680 -Wl,--heap=0 -Wl,--out-implib,cygdll.a -shared -o $@ \
6340d0ff 681 -e $(DLL_ENTRY) $(DEF_FILE) $(DLL_OFILES) $(VERSION_OFILES) \
4392d36c 682 $(MALLOC_OBJ) $(LIBSERVER) $(LIBM) $(LIBC) \
66a83f3e 683 -lgcc $(DLL_IMPORTS) -Wl,-Map,cygwin.map
d3297c33 684 @$(word 2,$^) $(OBJDUMP) $(OBJCOPY) $@ ${patsubst %0.dll,%1.dbg,$@}
3a1d827f 685 @ln -f $@ new-$(DLL_NAME)
1fd5e000 686
48beacf6 687# Rule to build libcygwin.a
61522196
CV
688$(LIB_NAME): $(DEF_FILE) $(LIBCOS) | $(TEST_DLL_NAME)
689 ${srcdir}/mkimport ${toolopts} ${NEW_FUNCTIONS} $@ cygdll.a $(wordlist 2,99,$^)
32638384 690
66a83f3e
CF
691${STATIC_LIB_NAME}: mkstatic ${TEST_DLL_NAME}
692 perl -d $< -x ${EXCLUDE_STATIC_OFILES} --library=${LIBC} --library=${LIBM} --ar=${AR} $@ cygwin.map
693
48beacf6
CF
694# Rule to make stub library used by testsuite
695# dependency set to $(LIB_NAME) to accommodate make -j2.
3a1d827f
CF
696$(TEST_LIB_NAME): $(LIB_NAME)
697 perl -p -e 'BEGIN{binmode(STDIN); binmode(STDOUT);}; s/cygwin1/cygwin0/g' < $? > $@
bb6c3d58 698
4c36016b
CF
699$(LIBSERVER): ${cygserver_blddir}/Makefile
700 $(MAKE) -C ${cygserver_blddir} libcygserver.a
701
702${cygserver_blddir}/Makefile:
2e488e95 703 /bin/mkdir -p ${@D}
4c36016b 704 cd ${@D} && exec /bin/sh $(dir ${srcdir})/cygserver/configure ${configure_args}
e217832c 705
1fd5e000
CF
706dll_ofiles: $(DLL_OFILES)
707
708$(LIBGMON_A): $(GMON_OFILES) $(GMON_START)
709 $(AR) rcv $(LIBGMON_A) $(GMON_OFILES)
710
66a83f3e
CF
711globals.h: mkglobals_h globals.cc
712 $^ > $@
713
d6c65104 714${DLL_OFILES} ${LIBCOS}: globals.h $(srcdir)/$(TLSOFFSETS_H)
66a83f3e 715
77f4a250 716shared_info_magic.h: cygmagic shared_info.h
4c36016b 717 /bin/sh $(word 1,$^) $@ "${COMPILE.cc} -E -x c++" $(word 2,$^) SHARED_MAGIC 'class shared_info' USER_MAGIC 'class user_info'
77f4a250
CF
718
719child_info_magic.h: cygmagic child_info.h
4c36016b 720 /bin/sh $(word 1,$^) $@ "${COMPILE.cc} -E -x c++" $(word 2,$^) CHILD_INFO_MAGIC 'class child_info'
77f4a250
CF
721
722dcrt0.o sigproc.o: child_info_magic.h
723
724shared.o: shared_info_magic.h
725
4d5efe1e
CV
726localtime.patched.c: tzcode/localtime.c tzcode/localtime.c.patch
727 patch -u -o localtime.patched.c \
728 $(srcdir)/tzcode/localtime.c \
729 $(srcdir)/tzcode/localtime.c.patch
730
731localtime.o: tzcode/localtime_wrapper.c localtime.patched.c
49a843b4 732 $(CC) ${COMMON_CFLAGS} ${localtime_CFLAGS} \
2ce569ec
CV
733 -I$(target_builddir)/winsup/cygwin \
734 -I$(srcdir) -I$(srcdir)/tzcode -c -o $@ $<
735
0e1ba888 736$(srcdir)/devices.cc: gendevices devices.in devices.h
7ac61736
CF
737 ${wordlist 1,2,$^} $@
738
4c36016b 739${CURDIR}/libc.a: ${LIB_NAME} ${CURDIR}/libm.a libpthread.a libutil.a
03905921 740 ${speclib} -v ${@F}
e56f4d7f 741
792e51b7 742${CURDIR}/libm.a: ${LIB_NAME} $(LIBM) $(MATH_OFILES)
03905921 743 ${speclib} ${@F}
4875a4b6 744
7c4719f5
CV
745libpthread.a: ${LIB_NAME} pthread.o thread.o call_once.o cnd.o mtx.o \
746 thrd.o tss.o
03905921 747 ${speclib} ${@F}
e56f4d7f 748
edd090a2 749libutil.a: ${LIB_NAME} bsdlib.o
03905921 750 ${speclib} ${@F}
e56f4d7f 751
edd090a2 752libdl.a: ${LIB_NAME} dlfcn.o
03905921 753 ${speclib} ${@F}
bc78e8bc 754
edd090a2 755libresolv.a: ${LIB_NAME} minires.o
03905921 756 ${speclib} ${@F}
0c365c63 757
06391373
CV
758librt.a: ${LIB_NAME} posix_ipc.o
759 ${speclib} ${@F}
760
9ddf0639
CV
761libacl.a: ${LIB_NAME} sec_posixacl.o
762 ${speclib} ${@F}
763
552a20ab
YS
764libssp.a: ${LIB_NAME} $(newlib_build)/libc/ssp/lib.a
765 ${speclib} ${@F}
766
03905921 767${EXTRALIBS}: lib%.a: %.o
e56f4d7f
CF
768 $(AR) cru $@ $?
769
c86b2f54
CV
770# Every time we touch a source file, the version info has to be rebuilt
771# to maintain a correct build date, especially in uname release output
772find_src_files = $(wildcard $(dir)/*.[chS]) $(wildcard $(dir)/*.cc)
773src_files := $(foreach dir,$(VPATH),$(find_src_files))
774
2cd68296
CV
775# mkvers.sh creates version.cc in the first place, winver.o always
776# second, so version.cc is always older than winver.o
777version.cc: mkvers.sh include/cygwin/version.h winver.rc $(src_files)
6340d0ff 778 @echo "Making version.cc and winver.o";\
b55e3f19 779 /bin/sh ${word 1,$^} ${word 2,$^} ${word 3,$^} $(WINDRES) ${CFLAGS} -I${srcdir}/include
2cd68296 780$(VERSION_OFILES): version.cc
829aaa73 781
bfebe413 782Makefile: ${srcdir}/Makefile.in
4c36016b 783 /bin/sh ./config.status
1fd5e000 784
74a164f1
JT
785$(DEF_FILE) sigfe.s: gendef $(srcdir)/$(TLSOFFSETS_H) $(DIN_FILE)
786 $(word 1,$^) --cpu=${target_cpu} --output-def=$(DEF_FILE) --tlsoffsets=$(word 2,$^) $(wordlist 3,4,$^)
9a4d574b 787
61522196 788$(srcdir)/$(TLSOFFSETS_H): gentls_offsets cygtls.h
7abe6347 789 $^ $@ $(target_cpu) $(COMPILE.cc) -c || rm $@
9a4d574b
CF
790
791sigfe.s: $(DEF_FILE)
9a4d574b 792
d6c65104 793sigfe.o: sigfe.s $(srcdir)/$(TLSOFFSETS_H)
89a37499 794 $(CC) ${CFLAGS} -c -o $@ $<
d69257a1 795
1b52d127
CV
796ctags: CTAGS
797tags: CTAGS
798CTAGS:
bc14f1c1
CV
799 -cd $(srcdir) && \
800 ctags -R --c++-kinds=+p --fields=+iaS --extra=+q \
662740b3 801 --regex-C++='/EXPORT_ALIAS *\([a-zA-Z0-9_]*, *([a-zA-Z0-9_]*)\)/\1/' \
76bd5cab 802 --regex-C++='/__ASMNAME *\("([a-zA-Z0-9_]+)"\)/\1/' \
b55e3f19 803 .
1b52d127 804
7fbcbc95
CF
805deps:=${wildcard *.d}
806ifneq (,$(deps))
807include $(deps)
6d75cb08 808endif
4a42a258
CF
809
810%: RCS/%,v
This page took 0.521738 seconds and 5 git commands to generate.