| # Makefile.in for Cygwin. |
| # |
| # 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. |
| # configure_input: @configure_input@ |
| |
| # This makefile requires GNU make. |
| |
| srcdir:=@srcdir@ |
| target_builddir:=@target_builddir@ |
| winsup_srcdir:=@winsup_srcdir@ |
| configure_args=@configure_args@ |
| |
| export CC:=@CC@ |
| export CXX:=@CXX@ |
| |
| CFLAGS?=@CFLAGS@ |
| CXXFLAGS?=@CXXFLAGS@ |
| |
| include ${srcdir}/../Makefile.common |
| |
| # environment variables used by ccwrap |
| export CCWRAP_HEADERS:=. ${srcdir} |
| export CCWRAP_SYSTEM_HEADERS:=@cygwin_headers@ @newlib_headers@ |
| export CCWRAP_DIRAFTER_HEADERS:=@windows_headers@ |
| |
| VPATH+=$(srcdir)/regex $(srcdir)/lib $(srcdir)/libc $(srcdir)/math |
| |
| target_cpu:=@target_cpu@ |
| target_alias:=@target_alias@ |
| build_alias:=@build_alias@ |
| host_alias:=@host_alias@ |
| prefix:=@prefix@ |
| |
| program_transform_name:=@program_transform_name@ |
| exec_prefix:=@exec_prefix@ |
| bindir:=@bindir@ |
| libdir:=@libdir@ |
| mandir:=@mandir@ |
| sysconfdir:=@sysconfdir@ |
| datarootdir:=@datarootdir@ |
| 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@ |
| includedir:=@includedir@ |
| |
| override INSTALL:=@INSTALL@ |
| override INSTALL_PROGRAM:=@INSTALL_PROGRAM@ |
| override INSTALL_DATA:=@INSTALL_DATA@ |
| |
| WINDOWS_LIBDIR:=@windows_libdir@ |
| |
| cygserver_blddir:=${target_builddir}/winsup/cygserver |
| LIBSERVER:=${cygserver_blddir}/libcygserver.a |
| |
| LIBC:=$(newlib_build)/libc/libc.a |
| LIBM:=$(newlib_build)/libm/libm.a |
| CRT0:=$(cygwin_build)/crt0.o |
| |
| # |
| # --enable options from configure |
| # |
| MT_SAFE:=@MT_SAFE@ |
| CCEXTRA= |
| COMMON_CFLAGS=-MMD ${$(*F)_CFLAGS} -Werror -fmerge-constants -ftracer $(CCEXTRA) |
| ifeq ($(target_cpu),x86_64) |
| COMMON_CFLAGS+=-mcmodel=small |
| endif |
| COMPILE.cc+=${COMMON_CFLAGS} -std=gnu++98 |
| COMPILE.c+=${COMMON_CFLAGS} |
| |
| AR:=@AR@ |
| AR_FLAGS:=qv |
| RANLIB:=@RANLIB@ |
| LD:=@LD@ |
| DLLTOOL:=@DLLTOOL@ |
| WINDRES:=@WINDRES@ |
| AS:=@AS@ |
| NM:=@NM@ |
| OBJCOPY:=@OBJCOPY@ |
| OBJDUMP:=@OBJDUMP@ |
| STRIP:=@STRIP@ |
| LDSCRIPT:=cygwin.sc |
| MKDIRP:=$(INSTALL) -m 755 -d |
| |
| @SET_MAKE@ |
| |
| # Setup the testing framework, if you have one |
| EXPECT = `if [ -f $${rootme}/../../expect/expect$(EXEEXT) ] ; then \ |
| echo $${rootme}/../../expect/expect$(EXEEXT) ; \ |
| else echo expect ; fi` |
| |
| RUNTEST = `if [ -f $${srcdir}/../dejagnu/runtest ] ; then \ |
| echo $${srcdir}/../dejagnu/runtest ; \ |
| else echo runtest; fi` |
| RUNTESTFLAGS = |
| |
| # Parameters used in building the cygwin.dll. |
| # We build as cygwin0.dll and rename at install time to overcome |
| # native rebuilding issues (we don't want the build tools to see a partially |
| # built cygwin.dll and attempt to use it instead of the old one). |
| |
| DLL_NAME:=@DLL_NAME@ |
| TEST_DLL_NAME:=${patsubst %1.dll,%0.dll,@DLL_NAME@} |
| TEST_LIB_NAME:=libcygwin0.a |
| STATIC_LIB_NAME:=libcygwin_s.a |
| DIN_FILE=@DIN_FILE@ common.din |
| DEF_FILE:=cygwin.def |
| TLSOFFSETS_H:=@TLSOFFSETS_H@ |
| DLL_ENTRY:=@DLL_ENTRY@ |
| |
| LIBGMON_A:=libgmon.a |
| CYGWIN_START:=crt0.o |
| GMON_START:=gcrt0.o |
| |
| toolopts:=--cpu=${target_cpu} --ar=${AR} --as=${AS} --nm=${NM} --objcopy=${OBJCOPY} |
| speclib=\ |
| ${srcdir}/speclib ${toolopts} \ |
| --exclude='cygwin' \ |
| --exclude='(?i:dll)' \ |
| --exclude='reloc' \ |
| --exclude='^main$$' \ |
| --exclude='^_main$$' \ |
| $^ |
| |
| # Some things want these from libc, but they have their own static |
| # data which apps can get to, which is a pain in the dll, so we |
| # include them directly into the library. |
| |
| LIBCOS:=${sort ${addsuffix .o,${basename ${notdir ${wildcard $(srcdir)/lib/*.c}}}} \ |
| ${addsuffix .o,${basename ${notdir ${wildcard $(srcdir)/lib/*.cc}}}}} |
| |
| # Build all source files in the config directory |
| |
| EXTRA_OFILES:= |
| |
| MALLOC_OFILES:=malloc.o |
| |
| DLL_IMPORTS:=${shell $(CC) -print-file-name=w32api/libkernel32.a} ${shell $(CC) -print-file-name=w32api/libntdll.a} |
| |
| MT_SAFE_OBJECTS:= |
| # |
| MATH_OFILES:= \ |
| acoshl.o \ |
| acosl.o \ |
| asinhl.o \ |
| asinl.o \ |
| atan2l.o \ |
| atanhl.o \ |
| atanl.o \ |
| cabsl.o \ |
| cacosl.o \ |
| cargl.o \ |
| casinl.o \ |
| catanl.o \ |
| cbrtl.o \ |
| ccosl.o \ |
| ceill.o \ |
| cephes_emath.o \ |
| cexpl.o \ |
| cimagl.o \ |
| clog10l.o \ |
| clogl.o \ |
| conjl.o \ |
| copysignl.o \ |
| coshl.o \ |
| cosl.o \ |
| cosl_internal.o \ |
| cossin.o \ |
| cpowl.o \ |
| cprojl.o \ |
| creall.o \ |
| csinl.o \ |
| csqrtl.o \ |
| ctanl.o \ |
| erfl.o \ |
| exp10l.o \ |
| exp2l.o \ |
| expl.o \ |
| expm1l.o \ |
| fabsl.o \ |
| fdiml.o \ |
| finite.o \ |
| floorl.o \ |
| fmal.o \ |
| fmaxl.o \ |
| fminl.o \ |
| fmodl.o \ |
| frexpl.o \ |
| ilogbl.o \ |
| internal_logl.o \ |
| isinf.o \ |
| isnan.o \ |
| ldexpl.o \ |
| lgammal.o \ |
| llrint.o \ |
| llrintf.o \ |
| llrintl.o \ |
| llroundl.o \ |
| log10l.o \ |
| log1pl.o \ |
| log2l.o \ |
| logbl.o \ |
| logl.o \ |
| lrint.o \ |
| lrintf.o \ |
| lrintl.o \ |
| lroundl.o \ |
| modfl.o \ |
| nanl.o \ |
| nearbyint.o \ |
| nearbyintf.o \ |
| nearbyintl.o \ |
| nextafterl.o \ |
| nexttoward.o \ |
| nexttowardf.o \ |
| pow10l.o \ |
| powil.o \ |
| powl.o \ |
| remainder.o \ |
| remainderf.o \ |
| remainderl.o \ |
| remquol.o \ |
| rint.o \ |
| rintf.o \ |
| rintl.o \ |
| roundl.o \ |
| scalbl.o \ |
| scalbnl.o \ |
| sinhl.o \ |
| sinl.o \ |
| sinl_internal.o \ |
| sqrtl.o \ |
| tanhl.o \ |
| tanl.o \ |
| tgammal.o \ |
| truncl.o |
| |
| DLL_OFILES:= \ |
| advapi32.o \ |
| arc4random_stir.o \ |
| assert.o \ |
| autoload.o \ |
| base64.o \ |
| bsdlib.o \ |
| ctype.o \ |
| cxx.o \ |
| cygheap.o \ |
| cygthread.o \ |
| cygtls.o \ |
| cygwait.o \ |
| cygxdr.o \ |
| dcrt0.o \ |
| debug.o \ |
| devices.o \ |
| dir.o \ |
| dlfcn.o \ |
| dll_init.o \ |
| dtable.o \ |
| environ.o \ |
| errno.o \ |
| exceptions.o \ |
| exec.o \ |
| external.o \ |
| fcntl.o \ |
| fenv.o \ |
| fhandler.o \ |
| fhandler_clipboard.o \ |
| fhandler_console.o \ |
| fhandler_dev.o \ |
| fhandler_disk_file.o \ |
| fhandler_dsp.o \ |
| fhandler_fifo.o \ |
| fhandler_floppy.o \ |
| fhandler_mailslot.o \ |
| fhandler_netdrive.o \ |
| fhandler_nodevice.o \ |
| fhandler_proc.o \ |
| fhandler_process.o \ |
| fhandler_procnet.o \ |
| fhandler_procsys.o \ |
| fhandler_procsysvipc.o \ |
| fhandler_random.o \ |
| fhandler_raw.o \ |
| fhandler_registry.o \ |
| fhandler_serial.o \ |
| fhandler_socket.o \ |
| fhandler_tape.o \ |
| fhandler_termios.o \ |
| fhandler_tty.o \ |
| fhandler_virtual.o \ |
| fhandler_windows.o \ |
| fhandler_zero.o \ |
| flock.o \ |
| fnmatch.o \ |
| fork.o \ |
| fts.o \ |
| ftw.o \ |
| getentropy.o \ |
| getopt.o \ |
| glob.o \ |
| glob_pattern_p.o \ |
| globals.o \ |
| grp.o \ |
| heap.o \ |
| hookapi.o \ |
| inet_addr.o \ |
| inet_network.o \ |
| init.o \ |
| ioctl.o \ |
| ipc.o \ |
| kernel32.o \ |
| ldap.o \ |
| libstdcxx_wrapper.o \ |
| loadavg.o \ |
| localtime.o \ |
| lsearch.o \ |
| malloc_wrapper.o \ |
| minires-os-if.o \ |
| minires.o \ |
| miscfuncs.o \ |
| mktemp.o \ |
| mmap.o \ |
| msg.o \ |
| mount.o \ |
| net.o \ |
| netdb.o \ |
| nfs.o \ |
| nftw.o \ |
| nlsfuncs.o \ |
| ntea.o \ |
| passwd.o \ |
| path.o \ |
| pinfo.o \ |
| pipe.o \ |
| poll.o \ |
| posix_ipc.o \ |
| pseudo-reloc.o \ |
| pthread.o \ |
| quotactl.o \ |
| random.o \ |
| regcomp.o \ |
| regerror.o \ |
| regexec.o \ |
| regfree.o \ |
| registry.o \ |
| resource.o \ |
| rexec.o \ |
| rcmd.o \ |
| scandir.o \ |
| sched.o \ |
| sec_acl.o \ |
| sec_auth.o \ |
| sec_helper.o \ |
| sec_posixacl.o \ |
| security.o \ |
| select.o \ |
| sem.o \ |
| setlsapwd.o \ |
| shared.o \ |
| shm.o \ |
| sigfe.o \ |
| signal.o \ |
| sigproc.o \ |
| smallprint.o \ |
| spawn.o \ |
| strace.o \ |
| strfmon.o \ |
| strfuncs.o \ |
| strptime.o \ |
| strsep.o \ |
| strsig.o \ |
| sync.o \ |
| syscalls.o \ |
| sysconf.o \ |
| syslog.o \ |
| termios.o \ |
| thread.o \ |
| timer.o \ |
| times.o \ |
| tls_pbuf.o \ |
| tty.o \ |
| uinfo.o \ |
| uname.o \ |
| wait.o \ |
| wincap.o \ |
| window.o \ |
| winf.o \ |
| xsique.o \ |
| $(EXTRA_OFILES) \ |
| $(MALLOC_OFILES) \ |
| $(MATH_OFILES) \ |
| $(MT_SAFE_OBJECTS) |
| |
| EXCLUDE_STATIC_OFILES:=$(addprefix --exclude=,\ |
| cygtls.o \ |
| dcrt0.o \ |
| exceptions.o \ |
| fork.o \ |
| signal.o \ |
| spawn.o \ |
| ) |
| |
| VERSION_OFILES:=version.o winver.o |
| |
| ifdef PREPROCESS |
| override DLL_OFILES:=$(patsubst %.o,%_E,${DLL_OFILES}) |
| override EXCLUDE_STATIC_OFILES:=$(patsubst %.o,%_E,${EXCLUDE_STATIC_OFILES}) |
| override EXTRA_OFILES=$(patsubst %.o,%_E,${DLL_OFILES})) |
| override MALLOC_OFILES:=$(patsubst %.o,%.E,${MALLOC_OFILES}) |
| endif #PREPROCESS |
| |
| ifeq ($(target_cpu),x86_64) |
| # Needed by mcountFunc.S to choose the right code path and symbol names |
| ASFLAGS:=-D_WIN64 |
| endif |
| |
| GMON_OFILES:=gmon.o mcount.o profil.o mcountFunc.o |
| |
| NEW_FUNCTIONS:=$(addprefix --replace=,\ |
| atexit= \ |
| timezone= \ |
| __xdrrec_getrec= \ |
| __xdrrec_setnonblock= \ |
| xdr_array= \ |
| xdr_bool= \ |
| xdr_bytes= \ |
| xdr_char= \ |
| xdr_double= \ |
| xdr_enum= \ |
| xdr_float= \ |
| xdr_free= \ |
| xdr_hyper= \ |
| xdr_int= \ |
| xdr_int16_t= \ |
| xdr_int32_t= \ |
| xdr_int64_t= \ |
| xdr_int8_t= \ |
| xdr_long= \ |
| xdr_longlong_t= \ |
| xdr_netobj= \ |
| xdr_opaque= \ |
| xdr_pointer= \ |
| xdr_reference= \ |
| xdr_short= \ |
| xdr_sizeof= \ |
| xdr_string= \ |
| xdr_u_char= \ |
| xdr_u_hyper= \ |
| xdr_u_int= \ |
| xdr_u_int16_t= \ |
| xdr_u_int32_t= \ |
| xdr_u_int64_t= \ |
| xdr_u_int8_t= \ |
| xdr_u_long= \ |
| xdr_u_longlong_t= \ |
| xdr_u_short= \ |
| xdr_uint16_t= \ |
| xdr_uint32_t= \ |
| xdr_uint64_t= \ |
| xdr_uint8_t= \ |
| xdr_union= \ |
| xdr_vector= \ |
| xdr_void= \ |
| xdr_wrapstring= \ |
| xdrmem_create= \ |
| xdrrec_create= \ |
| xdrrec_endofrecord= \ |
| xdrrec_eof= \ |
| xdrrec_skiprecord= \ |
| xdrstdio_create= \ |
| ) |
| ifeq ($(target_cpu),x86_64) |
| NEW_FUNCTIONS+= |
| else |
| NEW_FUNCTIONS+=$(addprefix --replace=,\ |
| acl=_acl32 \ |
| aclcheck=_aclcheck32 \ |
| aclfrommode=_aclfrommode32 \ |
| aclfrompbits=_aclfrompbits32 \ |
| aclfromtext=_aclfromtext32 \ |
| aclsort=_aclsort32 \ |
| acltomode=_acltomode32 \ |
| acltopbits=_acltopbits32 \ |
| acltotext=_acltotext32 \ |
| chown=_chown32 \ |
| facl=_facl32 \ |
| fchown=_fchown32 \ |
| fcntl=_fcntl64 \ |
| fdopen=_fdopen64 \ |
| fgetpos=_fgetpos64 \ |
| fopen=_fopen64 \ |
| freopen=_freopen64 \ |
| fseeko=_fseeko64 \ |
| fsetpos=_fsetpos64 \ |
| fstat=_fstat64 \ |
| ftello=_ftello64 \ |
| ftruncate=_ftruncate64 \ |
| getegid=_getegid32 \ |
| geteuid=_geteuid32 \ |
| getgid=_getgid32 \ |
| getgrent=_getgrent32 \ |
| getgrgid=_getgrgid32 \ |
| getgrnam=_getgrnam32 \ |
| getgroups=_getgroups32 \ |
| getpwuid=_getpwuid32 \ |
| getpwuid_r=_getpwuid_r32 \ |
| getuid=_getuid32 \ |
| initgroups=_initgroups32 \ |
| lchown=_lchown32 \ |
| lseek=_lseek64 \ |
| lstat=_lstat64 \ |
| mknod=_mknod32 \ |
| mmap=_mmap64 \ |
| open=_open64 \ |
| setegid=_setegid32 \ |
| seteuid=_seteuid32 \ |
| setgid=_setgid32 \ |
| setgroups=_setgroups32 \ |
| setregid=_setregid32 \ |
| setreuid=_setreuid32 \ |
| setuid=_setuid32 \ |
| stat=_stat64 \ |
| tmpfile=_tmpfile64 \ |
| truncate=_truncate64 \ |
| ) |
| endif |
| |
| API_VER:=$(srcdir)/include/cygwin/version.h |
| |
| LIB_NAME:=libcygwin.a |
| SUBLIBS:=libpthread.a libutil.a ${CURDIR}/libm.a ${CURDIR}/libc.a libdl.a libresolv.a librt.a libacl.a |
| EXTRALIBS:=libautomode.a libbinmode.a libtextmode.a libtextreadmode.a |
| INSTOBJS:=automode.o binmode.o textmode.o textreadmode.o |
| TARGET_LIBS:=$(LIB_NAME) $(CYGWIN_START) $(GMON_START) $(LIBGMON_A) $(SUBLIBS) $(INSTOBJS) $(EXTRALIBS) |
| |
| ifneq "${filter -O%,$(CFLAGS)}" "" |
| dtable_CFLAGS:=-fcheck-new |
| localtime_CFLAGS:=-fwrapv |
| malloc_CFLAGS:=-O3 |
| sync_CFLAGS:=-O3 |
| ifeq ($(target_cpu),i686) |
| # on x86, exceptions.cc must be compiled with a frame-pointer as it uses RtlCaptureContext() |
| exceptions_CFLAGS:=-fno-omit-frame-pointer |
| endif |
| endif |
| |
| fhandler_proc_CFLAGS+=-DUSERNAME="\"$(USER)\"" -DHOSTNAME="\"$(HOSTNAME)\"" |
| fhandler_proc_CFLAGS+=-DGCC_VERSION="\"`$(CC) -v 2>&1 | tail -n 1`\"" |
| |
| _cygwin_crt0_common_STDINCFLAGS:=yes |
| libstdcxx_wrapper_STDINCFLAGS:=yes |
| cxx_STDINCFLAGS:=yes |
| |
| .PHONY: all force dll_ofiles install all_target install_target all_host \ |
| install_host install install-libs install-headers \ |
| clean distclean realclean maintainer-clean |
| |
| all_host=@all_host@ |
| install_host=@install_host@ |
| |
| all: all_target $(all_host) |
| |
| all_target: $(TARGET_LIBS) |
| |
| all_host: $(TEST_LIB_NAME) |
| |
| force: |
| |
| install: install-libs install-headers install-man install-ldif install_target \ |
| $(install_host) $(install_target) |
| |
| uninstall: uninstall-libs uninstall-headers uninstall-man |
| |
| install-libs: $(TARGET_LIBS) |
| @$(MKDIRP) $(DESTDIR)$(bindir) |
| $(INSTALL_PROGRAM) $(TEST_DLL_NAME) $(DESTDIR)$(bindir)/$(DLL_NAME); \ |
| for i in $^; do \ |
| $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/lib/`basename $$i` ; \ |
| done |
| cd $(DESTDIR)$(tooldir)/lib && ln -sf libcygwin.a libg.a |
| |
| install-headers: |
| cd $(srcdir); \ |
| for sub in `find include -name '[a-z]*' -type d -print | sort`; do \ |
| $(MKDIRP) $(DESTDIR)$(tooldir)/$$sub; \ |
| for i in $$sub/*.h ; do \ |
| $(INSTALL_DATA) $$i $(DESTDIR)$(tooldir)/$$sub/`basename $$i` ; \ |
| done ; \ |
| done ; \ |
| |
| install-man: |
| @$(MKDIRP) $(DESTDIR)$(mandir)/man2 $(DESTDIR)$(mandir)/man3 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man7 |
| cd $(srcdir); \ |
| for i in `find . -type f ! -path './release/*' -name '*.2'`; do \ |
| $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man2/`basename $$i` ; \ |
| done; \ |
| for i in `find . -type f ! -path './release/*' -name '*.3'`; do \ |
| $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man3/`basename $$i` ; \ |
| done; \ |
| for i in `find . -type f ! -path './release/*' -name '*.5'`; do \ |
| $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man5/`basename $$i` ; \ |
| done; \ |
| for i in `find . -type f ! -path './release/*' -name '*.7'`; do \ |
| $(INSTALL_DATA) $$i $(DESTDIR)$(mandir)/man7/`basename $$i` ; \ |
| done |
| |
| install-ldif: |
| @$(MKDIRP) $(DESTDIR)$(datarootdir)/cygwin |
| $(INSTALL_DATA) $(srcdir)/cygwin.ldif $(DESTDIR)$(datarootdir)/cygwin |
| |
| install_target: |
| |
| install_host: |
| |
| uninstall-libs: $(TARGET_LIBS) |
| rm -f $(bindir)/$(DLL_NAME); \ |
| for i in $^; do \ |
| rm -f $(tooldir)/lib/$$i ; \ |
| done |
| |
| uninstall-headers: |
| cd $(srcdir); \ |
| for sub in `find include -name '[a-z]*' -type d -print | sort`; do \ |
| for i in $$sub/*.h ; do \ |
| rm -f $(tooldir)/$$sub/`basename $$i` ; \ |
| done ; \ |
| done ; \ |
| |
| uninstall-man: |
| cd $(srcdir); \ |
| for i in `find . -type f -name '*.2'`; do \ |
| rm -f $(DESTDIR)$(mandir)/man2/`basename $$i` ; \ |
| done; \ |
| for i in `find . -type f -name '*.3'`; do \ |
| rm -f $(DESTDIR)$(mandir)/man3/`basename $$i` ; \ |
| done; \ |
| for i in `find . -type f -name '*.5'`; do \ |
| rm -f $(DESTDIR)$(mandir)/man5/`basename $$i` ; \ |
| done; \ |
| for i in `find . -type f -name '*.7'`; do \ |
| rm -f $(DESTDIR)$(mandir)/man7/`basename $$i` ; \ |
| done |
| |
| clean distclean realclean: |
| -rm -f *.o *.dll *.dbg *.a *.exp junk *.base version.cc *.exe *.d *stamp* *_magic.h sigfe.s cygwin.def globals.h |
| -@$(MAKE) -C ${cygserver_blddir} libclean |
| |
| maintainer-clean: clean |
| @echo "This command is intended for maintainers to use;" |
| @echo "it deletes files that may require special tools to rebuild." |
| -rm -fr configure |
| -rm -f $(srcdir)/$(TLSOFFSETS_H) $(srcdir)/devices.cc |
| |
| # Rule to build LDSCRIPT |
| $(LDSCRIPT): $(LDSCRIPT).in |
| $(CC) -E - -P < $^ -o $@ |
| |
| # Rule to build cygwin.dll |
| $(TEST_DLL_NAME): $(LDSCRIPT) dllfixdbg $(DLL_OFILES) $(LIBSERVER) $(LIBC) $(LIBM) $(API_VER) Makefile $(VERSION_OFILES) |
| $(CXX) $(CXXFLAGS) \ |
| -mno-use-libstdc-wrappers -L${WINDOWS_LIBDIR} \ |
| -Wl,--gc-sections $(nostdlib) -Wl,-T$(firstword $^) -static \ |
| -Wl,--heap=0 -Wl,--out-implib,cygdll.a -shared -o $@ \ |
| -e $(DLL_ENTRY) $(DEF_FILE) $(DLL_OFILES) $(VERSION_OFILES) \ |
| $(MALLOC_OBJ) $(LIBSERVER) $(LIBM) $(LIBC) \ |
| -lgcc $(DLL_IMPORTS) -Wl,-Map,cygwin.map |
| @$(word 2,$^) $(OBJDUMP) $(OBJCOPY) $@ ${patsubst %0.dll,%1.dbg,$@} |
| @ln -f $@ new-$(DLL_NAME) |
| |
| # Rule to build libcygwin.a |
| $(LIB_NAME): $(DEF_FILE) $(LIBCOS) | $(TEST_DLL_NAME) |
| ${srcdir}/mkimport ${toolopts} ${NEW_FUNCTIONS} $@ cygdll.a $(wordlist 2,99,$^) |
| |
| ${STATIC_LIB_NAME}: mkstatic ${TEST_DLL_NAME} |
| perl -d $< -x ${EXCLUDE_STATIC_OFILES} --library=${LIBC} --library=${LIBM} --ar=${AR} $@ cygwin.map |
| |
| # Rule to make stub library used by testsuite |
| # dependency set to $(LIB_NAME) to accommodate make -j2. |
| $(TEST_LIB_NAME): $(LIB_NAME) |
| perl -p -e 'BEGIN{binmode(STDIN); binmode(STDOUT);}; s/cygwin1/cygwin0/g' < $? > $@ |
| |
| $(LIBSERVER): ${cygserver_blddir}/Makefile |
| $(MAKE) -C ${cygserver_blddir} libcygserver.a |
| |
| ${cygserver_blddir}/Makefile: |
| /bin/mkdir -p ${@D} |
| cd ${@D} && exec /bin/sh $(dir ${srcdir})/cygserver/configure ${configure_args} |
| |
| dll_ofiles: $(DLL_OFILES) |
| |
| $(LIBGMON_A): $(GMON_OFILES) $(GMON_START) |
| $(AR) rcv $(LIBGMON_A) $(GMON_OFILES) |
| |
| globals.h: mkglobals_h globals.cc |
| $^ > $@ |
| |
| ${DLL_OFILES} ${LIBCOS}: globals.h $(srcdir)/$(TLSOFFSETS_H) |
| |
| shared_info_magic.h: cygmagic shared_info.h |
| /bin/sh $(word 1,$^) $@ "${COMPILE.cc} -E -x c++" $(word 2,$^) SHARED_MAGIC 'class shared_info' USER_MAGIC 'class user_info' |
| |
| child_info_magic.h: cygmagic child_info.h |
| /bin/sh $(word 1,$^) $@ "${COMPILE.cc} -E -x c++" $(word 2,$^) CHILD_INFO_MAGIC 'class child_info' |
| |
| dcrt0.o sigproc.o: child_info_magic.h |
| |
| shared.o: shared_info_magic.h |
| |
| $(srcdir)/devices.cc: gendevices devices.in devices.h |
| ${wordlist 1,2,$^} $@ |
| |
| ${CURDIR}/libc.a: ${LIB_NAME} ${CURDIR}/libm.a libpthread.a libutil.a |
| ${speclib} -v ${@F} |
| |
| ${CURDIR}/libm.a: ${LIB_NAME} $(LIBM) $(MATH_OFILES) |
| ${speclib} ${@F} |
| |
| libpthread.a: ${LIB_NAME} pthread.o thread.o |
| ${speclib} ${@F} |
| |
| libutil.a: ${LIB_NAME} bsdlib.o |
| ${speclib} ${@F} |
| |
| libdl.a: ${LIB_NAME} dlfcn.o |
| ${speclib} ${@F} |
| |
| libresolv.a: ${LIB_NAME} minires.o |
| ${speclib} ${@F} |
| |
| librt.a: ${LIB_NAME} posix_ipc.o |
| ${speclib} ${@F} |
| |
| libacl.a: ${LIB_NAME} sec_posixacl.o |
| ${speclib} ${@F} |
| |
| ${EXTRALIBS}: lib%.a: %.o |
| $(AR) cru $@ $? |
| |
| winver.o: mkvers.sh include/cygwin/version.h winver.rc $(DLL_OFILES) |
| @echo "Making version.cc and winver.o";\ |
| /bin/sh ${word 1,$^} ${word 2,$^} ${word 3,$^} $(WINDRES) ${CFLAGS} $(addprefix -I,${CCWRAP_SYSTEM_HEADERS} ${CCWRAP_DIRAFTER_HEADERS}) |
| |
| version.cc: winver.o |
| |
| Makefile: ${srcdir}/Makefile.in |
| /bin/sh ./config.status |
| |
| $(DEF_FILE): gendef $(srcdir)/$(TLSOFFSETS_H) $(DIN_FILE) |
| $(word 1,$^) --cpu=${target_cpu} --output-def=$@ --tlsoffsets=$(word 2,$^) $(wordlist 3,99,$^) |
| |
| $(srcdir)/$(TLSOFFSETS_H): gentls_offsets cygtls.h |
| $^ $@ $(target_cpu) $(COMPILE.cc) -c || rm $@ |
| |
| sigfe.s: $(DEF_FILE) |
| @[ -s $@ ] || \ |
| { rm -f $(DEF_FILE); $(MAKE) -s -j1 $(DEF_FILE); }; \ |
| [ -s $@ ] && touch $@ |
| |
| sigfe.o: sigfe.s $(srcdir)/$(TLSOFFSETS_H) |
| $(CC) ${CFLAGS} -c -o $@ $< |
| |
| ctags: CTAGS |
| tags: CTAGS |
| CTAGS: |
| -cd $(srcdir) && \ |
| ctags -R --c++-kinds=+p --fields=+iaS --extra=+q \ |
| --regex-C++='/EXPORT_ALIAS *\([a-zA-Z0-9_]*, *([a-zA-Z0-9_]*)\)/\1/' \ |
| --regex-C++='/_EXFUN *\(([a-zA-Z0-9_]+) ?[,\)]/\1/' \ |
| --regex-C++='/_EXFUN *\([^,]* ([a-zA-Z0-9_]+) ?[,\)]/\1/' \ |
| --regex-C++='/__ASMNAME *\("([a-zA-Z0-9_]+)"\)/\1/' \ |
| @newlib_headers@ . |
| |
| deps:=${wildcard *.d} |
| ifneq (,$(deps)) |
| include $(deps) |
| endif |
| |
| %: RCS/%,v |