# Makefile for Cygwin utilities # 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. srcdir:=@srcdir@ target_builddir:=@target_builddir@ winsup_srcdir:=@winsup_srcdir@ configure_args=@configure_args@ export CC:=@CC@ export CXX:=@CXX@ CFLAGS:=@CFLAGS@ CXXFLAGS:=@CXXFLAGS@ override CXXFLAGS+=-fno-exceptions -fno-rtti include ${srcdir}/../Makefile.common cygwin_build:=${target_builddir}/winsup/cygwin cygwin_headers:=@cygwin_headers@ # environment variables used by ccwrap export CCWRAP_HEADERS:=. ${srcdir} $(call justdir,${cygwin_headers}) export CCWRAP_SYSTEM_HEADERS:=${cygwin_headers} @newlib_headers@ export CCWRAP_DIRAFTER_HEADERS:=@windows_headers@ WINDOWS_LIBDIR:=@windows_libdir@ prefix:=@prefix@ exec_prefix:=@exec_prefix@ bindir:=@bindir@ program_transform_name:=@program_transform_name@ override INSTALL:=@INSTALL@ override INSTALL_PROGRAM:=@INSTALL_PROGRAM@ override INSTALL_DATA:=@INSTALL_DATA@ EXEEXT:=@EXEEXT@ EXEEXT_FOR_BUILD:=@EXEEXT_FOR_BUILD@ .PHONY: all install clean realclean warn_dumper warn_cygcheck_zlib LDLIBS := -lnetapi32 -ladvapi32 -lkernel32 -luser32 CYGWIN_LDFLAGS := -static -Wl,--enable-auto-import -L${WINDOWS_LIBDIR} $(LDLIBS) DEP_LDLIBS := $(cygwin_build)/libcygwin.a MINGW_CXX := @MINGW_CXX@ # List all binaries to be linked in Cygwin mode. Each binary on this list # must have a corresponding .o of the same name. CYGWIN_BINS := ${addsuffix .exe,chattr cygpath gencat getconf getfacl ldd locale lsattr kill minidumper mkgroup \ mkpasswd mount passwd pldd ps regtool setfacl setmetamode ssp tzset umount} # List all binaries to be linked in MinGW mode. Each binary on this list # must have a corresponding .o of the same name. MINGW_BINS := ${addsuffix .exe,cygcheck cygwin-console-helper ldh strace} # List all objects to be compiled in MinGW mode. Any object not on this # list will will be compiled in Cygwin mode implicitly, so there is no # need for a CYGWIN_OBJS. MINGW_OBJS := bloda.o cygcheck.o cygwin-console-helper.o dump_setup.o ldh.o path.o strace.o MINGW_LDFLAGS:=-static CYGCHECK_OBJS:=cygcheck.o bloda.o path.o dump_setup.o ZLIB:=-lz .PHONY: all all: # If a binary should link in any objects besides the .o with the same # name as the binary, then list those here. strace.exe: path.o cygcheck.exe: cygcheck.o bloda.o path.o dump_setup.o path-mount.o: path.cc ${COMPILE.cc} -c -DFSTAB_ONLY -o $@ $< mount.exe: path-mount.o .PHONY: tzmap tzmap: ${srcdir}/tzmap-from-unicode.org > ${srcdir}/$@.h tzmap.h: [ -f "${srcdir}/tzmap.h" ] || ${srcdir}/tzmap-from-unicode.org > ${srcdir}/$@ tzset.o: tzmap.h # Provide any necessary per-target variable overrides. cygcheck.exe: MINGW_LDFLAGS += ${ZLIB} -lwininet -lpsapi -lntdll cygcheck.exe: ${CYGCHECK_OBJS} cygpath.o: CXXFLAGS += -fno-threadsafe-statics cygpath.exe: CYGWIN_LDFLAGS += -lcygwin -luserenv -lntdll ps.exe: CYGWIN_LDFLAGS += -lcygwin -lpsapi -lntdll strace.exe: MINGW_LDFLAGS += -lntdll ldd.exe:CYGWIN_LDFLAGS += -lpsapi -lntdll pldd.exe: CYGWIN_LDFLAGS += -lpsapi minidumper.exe: CYGWIN_LDFLAGS += -ldbghelp ldh.exe: MINGW_LDFLAGS += -nostdlib -lkernel32 # Check for dumper's requirements and enable it if found. libbfd := $(call libname,libbfd.a) build_dumper := $(shell test -r "$(libbfd)" && echo 1) ifdef build_dumper CYGWIN_BINS += dumper.exe dumper.o module_info.o parse_pe.o: CXXFLAGS += -I$(top_srcdir)/include dumper.o parse_pe.o: dumper.h dumper.exe: module_info.o parse_pe.o dumper.exe: CYGWIN_LDFLAGS += -lpsapi -lbfd -lintl -liconv -liberty ${ZLIB} else all: warn_dumper endif all: Makefile $(CYGWIN_BINS) $(MINGW_BINS) # test harness support (note: the "MINGW_BINS +=" should come after the # "all:" above so that the testsuite is not run for "make" but only # "make check".) MINGW_BINS += testsuite.exe MINGW_OBJS += path-testsuite.o testsuite.o testsuite.exe: path-testsuite.o path-testsuite.cc: path.cc ; @test -L $@ || ln -sf ${filter %.cc,$^} $@ path-testsuite.o: MINGW_CXXFLAGS += -DTESTSUITE # this is necessary because this .c lives in the build dir instead of src path-testsuite.o: MINGW_CXX := ${patsubst -I.,-I$(utils_source),$(MINGW_CXX)} path-testsuite.cc path.cc testsuite.cc: testsuite.h check: testsuite.exe ; $(