newlib/winsup/utils/Makefile.in
Christopher Faylor 1b38471e5e * kill.c (main): Avoid skipping next argument when a signal number is
specified.
* Makefile.in: Always clean dumper.exe.
2000-08-29 01:58:00 +00:00

150 lines
4.4 KiB
Makefile

# Makefile for Cygwin utilities
# Copyright 1996, 1997, 1998, 1999, 2000 Cygnus Solutions.
# 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.
SHELL:=@SHELL@
srcdir:=@srcdir@
VPATH:=@srcdir@
prefix:=@prefix@
exec_prefix:=@exec_prefix@
bindir:=@bindir@
etcdir:=$(exec_prefix)/etc
program_transform_name:=@program_transform_name@
INSTALL:=@INSTALL@
INSTALL_PROGRAM:=@INSTALL_PROGRAM@
INSTALL_DATA:=@INSTALL_DATA@
EXEEXT:=@EXEEXT@
EXEEXT_FOR_BUILD:=@EXEEXT_FOR_BUILD@
CC:=@CC@
CC_FOR_TARGET:=$(CC)
CFLAGS:=@CFLAGS@
CXXFLAGS:=@CXXFLAGS@ -fno-exceptions -nostdinc++ -fno-rtti
include $(srcdir)/../Makefile.common
MINGW_INCLUDES:=-I$(mingw_source)/include -I$(cygwin_source)/include -I$(w32api_include)
libbfd:=$(bupdir2)/bfd/libbfd.a
libintl:=$(bupdir2)/intl/libintl.a
build_dumper:=${shell test -r $(libbfd) -a -r $(libintl) -a -d $(updir1)/include && echo 1}
DUMPER_INCLUDES:=-I$(bupdir2)/bfd -I$(updir1)/include
MINGW_CXXFLAGS:=$(CXXFLAGS) -mno-cygwin $(MINGW_INCLUDES)
MINGW_CFLAGS:=$(CFLAGS) -mno-cygwin $(MINGW_INCLUDES)
DUMPER_CFLAGS:=$(CFLAGS) $(INCLUDES) $(DUMPER_INCLUDES)
libcygwin:=$(cygwin_build)/libcygwin.a
libuser32:=$(w32api_lib)/libuser32.a
libkernel32:=$(w32api_lib)/libkernel32.a
ALL_DEP_LDLIBS:=$(libcygwin) $(w32api_lib)/libnetapi32.a \
$(w32api_lib)/libadvapi32.a $(w32api_lib)/libkernel32.a \
$(w32api_lib)/libuser32.a
ALL_LDLIBS:=${patsubst $(w32api_lib)/lib%.a,-l%,\
${filter-out $(libuser32),\
${filter-out $(libkernel32),\
${filter-out $(libcygwin), $(ALL_DEP_LDLIBS)}}}}
MINGW_LIB:=$(mingw_build)/libmingw32.a
DUMPER_LIB:=-L$(bupdir2)/bfd -lbfd -L$(bupdir1)/libiberty -liberty -L$(bupdir2)/intl -lintl
MINGW_LDLIBS:=$(ALL_LDLIBS) $(MINGW_LIB)
MINGW_DEP_LDLIBS:=${ALL_DEP_LDLIBS} ${MINGW_LIB}
ALL_LDFLAGS:=-B$(newlib_build)/libc/ -B$(newlib_build)/libm/ -B$(w32api_lib)/ \
$(LDFLAGS) $(ALL_LDLIBS)
MINGW_LDFLAGS:=$(ALL_LDFLAGS) $(MINGW_LIB)
DUMPER_LDFLAGS:=$(ALL_LDFLAGS) $(DUMPER_LIB)
PROGS:=mount$(EXEEXT) umount$(EXEEXT) ps$(EXEEXT) kill$(EXEEXT) \
mkpasswd$(EXEEXT) mkgroup$(EXEEXT) cygpath$(EXEEXT) cygcheck$(EXEEXT) \
passwd$(EXEEXT) getfacl$(EXEEXT) setfacl$(EXEEXT) strace$(EXEEXT) \
regtool$(EXEEXT)
CLEAN_PROGS:=$(PROGS)
ifdef build_dumper
PROGS+=dumper$(EXEEXT)
else
PROGS:=warn_dumper $(PROGS)
CLEAN_PROGS+=dumper.exe
endif
.SUFFIXES:
.NOEXPORT:
.PHONY: all install clean realclean warn_dumper
all: Makefile $(PROGS)
strace.exe: strace.cc mingw_getopt.o $(MINGW_DEP_LDLIBS)
ifdef VERBOSE
$(CC) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS)
else
@echo $(CC) -o $@ ${wordlist 1,2,$^} ${filter-out -B%, $(MINGW_CXXFLAGS) $(MINGW_LDFLAGS)};\
$(CC) $(MINGW_CXXFLAGS) -o $@ ${wordlist 1,2,$^} -B$(mingw_build)/ $(MINGW_LDFLAGS)
endif
dumper.o: dumper.cc dumper.h
$(CC) -c -o $@ $(DUMPER_CFLAGS) ${firstword $^}
module_info.o: module_info.cc
$(CC) -c -o $@ $(DUMPER_CFLAGS) $^
parse_pe.o: parse_pe.cc dumper.h
$(CC) -c -o $@ $(DUMPER_CFLAGS) ${firstword $^}
mingw_getopt.o: $(cygwin_source)/lib/getopt.c
$(CC) -c -o $@ $(MINGW_CFLAGS) $^
clean:
rm -f *.o $(CLEAN_PROGS)
realclean: clean
rm -f Makefile config.cache
install: all
$(SHELL) $(updir1)/mkinstalldirs $(bindir) $(etcdir)
for i in $(PROGS) ; do \
n=`echo $$i | sed '$(program_transform_name)'`; \
$(INSTALL_PROGRAM) $$i $(bindir)/$$n; \
done
$(cygwin_build)/libcygwin.a: $(cygwin_build)/Makefile
@$(MAKE) -C $(@D) $(@F)
$(mingw_build)/libmingw32.a: $(mingw_build)/Makefile
@$(MAKE) -C $(@D) $(@F)
warn_dumper:
@echo '*** Not building dumper.exe since some required libraries or headers'
@echo '*** are missing (libbfd.a, libintl.a, and include/).'
@echo '*** Check out and build these libraries from sources.redhat.com if you'
@echo '*** need dumper.exe. Otherwise, you can safely ignore this warning.'
dumper.exe: module_info.o parse_pe.o dumper.o $(ALL_DEP_LDLIBS)
ifdef VERBOSE
$(CC) -o $@ ${wordlist 1,3,$^} -B$(cygwin_build)/ $(DUMPER_LDFLAGS)
else
@echo $(CC) -o $@ ${wordlist 1,3,$^} ${filter-out -B%, $(DUMPER_LDFLAGS)};\
$(CC) -o $@ ${wordlist 1,3,$^} -B$(cygwin_build)/ $(DUMPER_LDFLAGS)
endif
%.exe: %.o $(ALL_DEP_LDLIBS)
ifdef VERBOSE
$(CC) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS)
else
@echo $(CC) -o $@ ${firstword $^} ${filter-out -B%, $(ALL_LDFLAGS)};\
$(CC) -o $@ ${firstword $^} -B$(cygwin_build)/ $(ALL_LDFLAGS)
endif