# # Makefile.in # # This file is part of a free library for the Win32 API. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # start config section SHELL = @SHELL@ srcdir = @srcdir@ VPATH = @srcdir@ SUBDIRS := ddk directx subdirs := ddk directx host_alias = @host@ build_alias = @build@ target_alias = @target@ with_cross_host = @with_cross_host@ prefix = @prefix@ includedir:=@includedir@ program_transform_name = @program_transform_name@ exec_prefix = @exec_prefix@ libdir:=@libdir@ bindir = @bindir@ 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@ ifneq (,$(findstring cygwin,$(target_alias))) inst_includedir:=$(tooldir)/include/w32api inst_libdir:=$(tooldir)/lib/w32api else ifneq (,$(with_cross_host)) inst_includedir:=$(tooldir)/include/w32api inst_libdir:=$(tooldir)/lib else inst_includedir:=$(includedir) inst_libdir:=$(libdir) endif endif INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ mkinstalldirs = mkdir -p CC = @CC@ CC_FOR_TARGET = $(CC) DLLTOOL = @DLLTOOL@ DLLTOOL_FLAGS = --as=$(AS) -k AS = @AS@ AS_FOR_TARGET = $(AS_FOR_TARGET) WINDRES = @WINDRES@ # Depending on if we build as part of winsup or mingw we need to # add additional include paths in order to get the correct headers # from the C library. BUILDENV = @BUILDENV@ ifeq ($(BUILDENV), cygwin) # winsup/include # winsup/../newlib/libc/include # winsup/../newlib/libc/sys/cygwin EXTRA_INCLUDES = -I$(srcdir)/../../include -I$(srcdir)/../../../newlib/libc/include -I$(srcdir)/../../../newlib/libc/sys/cygwin endif ifeq ($(BUILDENV), mingw) EXTRA_INCLUDES = -I$(srcdir)/../../mingw/include endif INCLUDES = -I$(srcdir)/../include $(EXTRA_INCLUDES) CFLAGS = @CFLAGS@ ALL_CFLAGS = $(CFLAGS) $(INCLUDES) RANLIB = @RANLIB@ AR = @AR@ LD = @LD@ FLAGS_TO_PASS = \ AS="$(AS)" \ CC="$(CC)" \ CPPFLAGS="$(CPPFLAGS)" \ CFLAGS="$(CFLAGS)" \ CXXFLAGS="$(CXXFLAGS)" \ AR="$(AR)" \ RANLIB="$(RANLIB)" \ LD="$(LD)" \ DLLTOOL="$(DLLTOOL)" \ TAR="$(TAR)" \ TARFLAGS="$(TARFLAGS)" \ TARFILEEXT="$(TARFILEEXT)" \ WINDRES="$(WINDRES)" # end config section # headers HEADERS = $(notdir $(wildcard $(srcdir)/../include/*.h)) GL_HEADERS = $(notdir $(wildcard $(srcdir)/../include/GL/*.h)) GDIPLUS_HEADERS = $(notdir $(wildcard $(srcdir)/../include/gdiplus/*.h)) # libraries DEF_FILES = $(notdir $(wildcard $(srcdir)/*.def)) MRI_FILES = $(notdir $(wildcard $(srcdir)/*.mri)) IMPLIBS = $(addprefix lib,$(subst .def,.a,$(DEF_FILES))) MIMPLIBS = $(addprefix lib,$(subst .mri,.a,$(MRI_FILES))) EXTRA_LIBS=libuuid.a libscrnsave.a libscrnsavw.a liblargeint.a LIBS = $(IMPLIBS) $(MIMPLIBS) $(EXTRA_LIBS) UUID_OBJS = mshtml-uuid.o msxml-uuid.o unknwn-uuid.o \ servprov-uuid.o oleidl-uuid.o oleacc-uuid.o ocidl-uuid.o \ objsafe-uuid.o oaidl-uuid.o docobj-uuid.o comcat-uuid.o \ exdisp-uuid.o mlang-uuid.o objidl-uuid.o cguid-uuid.o \ olectlid-uuid.o ativscp-uuid.o urlmon-uuid.o hlink-uuid.o \ hlguids-uuid.o extras-uuid.o devguid.o power-uuid.o EXTRA_OBJS = shell32.o scrnsave.o scrnsavw.o largeint.o gdiplus.o \ $(UUID_OBJS) ws2_32.o UUID_SOURCES = mshtml-uuid.c msxml-uuid.c unknwn-uuid.c \ servprov-uuid.c oleidl-uuid.c oleacc-uuid.c ocidl-uuid.c \ objsafe-uuid.c oaidl-uuid.c docobj-uuid.c comcat-uuid.c \ exdisp-uuid.c mlang-uuid.c objidl-uuid.c cguid-uuid.c \ olectlid-uuid.c ativscp-uuid.c urlmon-uuid.c hlink-uuid.c \ hlguids-uuid.c extras-uuid.c devguid.c power-uuid.c SOURCES = scrnsave.c shell32.c largeint.c gdiplus.c $(UUID_SOURCES) \ res.rc test.c ws2_32.c DISTFILES = Makefile.in $(DEF_FILES) $(MRI_FILES) $(SOURCES) .NOTPARALLEL: # targets all: $(EXTRA_OBJS) $(LIBS) ddk directx %-subdirs: for i in $(SUBDIRS); do \ $(MAKE) $(FLAGS_TO_PASS) -C $$i $*; \ done ddk: $(MAKE) $(FLAGS_TO_PASS) -C $@ directx: $(MAKE) $(FLAGS_TO_PASS) -C $@ TEST_OPTIONS = $(ALL_CFLAGS) -DWINVER=0x0666 \ -Wall -pedantic -Wsystem-headers -c $(srcdir)/test.c -o test.o .PHONY: test ddk directx test: @echo "Testing w32api..." @for lang in c c++ objective-c ; do \ echo "$$lang..."; \ $(CC) -x$$lang $(TEST_OPTIONS) ; \ echo "$$lang UNICODE..."; \ $(CC) -x$$lang -DUNICODE $(TEST_OPTIONS) ; \ done @echo "windres..." @$(WINDRES) --include-dir $(INCDIR) -i $(srcdir)/res.rc -o test.o @echo "windres UNICODE..." @$(WINDRES) --define UNICODE --include-dir $(INCDIR) -i $(srcdir)/res.rc -o test.o @rm -f test.o scrnsavw.o: scrnsave.c $(CC) -c $(ALL_CFLAGS) -DUNICODE -o $@ $< # make rules .SUFFIXES: .c .o .def .a .c.o: $(CC) -c $(ALL_CFLAGS) -o $@ $< libuuid.a : $(UUID_OBJS) $(AR) rc $@ $(UUID_OBJS) $(RANLIB) $@ # libvfw32.a contains import stubs for 3 dll's. Using an MRI script # seems to be the simplest way to combine them into one archive. # NB: With older dlltool, the object file members will not have unique # names. libvfw32.a : vfw32.mri libmsvfw32.a libavifil32.a libavicap32.a rm -f $@ $(AR) -M < ${word 1,$^} $(RANLIB) $@ lib%.a : %.def %.o $(DLLTOOL) $(DLLTOOL_FLAGS) --output-lib $@ --def $(srcdir)/$*.def $(AR) r $@ $*.o $(RANLIB) $@ lib%.a: %.def $(DLLTOOL) $(DLLTOOL_FLAGS) --output-lib $@ --def $< lib%.a: %.o $(AR) rc $@ $*.o $(RANLIB) $@ need-DESTDIR-compatibility = prefix libdir includedir .PHONY: $(need-DESTDIR-compatibility) fail-DESTDIR-compatibility $(need-DESTDIR-compatibility): @test -z "$(DESTDIR)" || case "$($@)" in ?:*) \ $(MAKE) --no-print-directory reject="$@" fail-DESTDIR-compatibility ;; \ esac fail-DESTDIR-compatibility: $(error DESTDIR is not supported when $(reject) contains Win32 path `$($(reject))'; \ try `make install $(reject)=$(shell echo '$($(reject))' | sed s,:,:$(DESTDIR),) ...' instead) .PHONY: install install-libraries install-headers install-ddk # install headers and libraries in a target specified directory. install: install-libraries install-headers install-ddk install-directx install-libraries: all $(need-DESTDIR-compatibility) $(mkinstalldirs) $(DESTDIR)$(inst_libdir) for i in $(LIBS); do \ $(INSTALL_DATA) $$i $(DESTDIR)$(inst_libdir)/$$i ; \ done install-headers: $(need-DESTDIR-compatibility) $(mkinstalldirs) $(DESTDIR)$(inst_includedir) for i in $(HEADERS); do \ $(INSTALL_DATA) $(srcdir)/../include/$$i $(DESTDIR)$(inst_includedir)/$$i ; \ done $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/GL for i in $(GL_HEADERS); do \ $(INSTALL_DATA) $(srcdir)/../include/GL/$$i $(DESTDIR)$(inst_includedir)/GL/$$i ; \ done $(mkinstalldirs) $(DESTDIR)$(inst_includedir)/gdiplus for i in $(GDIPLUS_HEADERS); do \ $(INSTALL_DATA) $(srcdir)/../include/gdiplus/$$i $(DESTDIR)$(inst_includedir)/gdiplus/$$i ; \ done install-ddk: install-libraries install-headers cd ddk && $(MAKE) install $(FLAGS_TO_PASS) install-directx: install-libraries install-headers cd directx && $(MAKE) install $(FLAGS_TO_PASS) # uninstall headers and libraries from a target specified directory uninstall: uninstall-ddk uninstall-directx uninstall-libraries uninstall-headers uninstall-libraries: $(need-DESTDIR-compatibility) @for i in $(LIBS); do \ rm -f $(DESTDIR)$(inst_libdir)/$$i ; \ done rmdir $(DESTDIR)$(inst_libdir) uninstall-headers: $(need-DESTDIR-compatibility) @for i in $(HEADERS); do \ rm -r $(DESTDIR)$(inst_includedir)/$$i ; \ done rmdir $(DESTDIR)$(inst_includedir) uninstall-ddk: cd ddk && $(MAKE) -C uninstall $(FLAGS_TO_PASS) uninstall-directx: cd directx && $(MAKE) -C uninstall $(FLAGS_TO_PASS) dist: mkdir $(distdir)/include chmod 755 $(distdir)/include @for i in $(HEADERS); do \ cp -p $(srcdir)/../include/$$i $(distdir)/include/$$i ; \ done mkdir $(distdir)/include/GL @for i in $(GL_HEADERS); do \ cp -p $(srcdir)/../include/GL/$$i $(distdir)/include/GL/$$i ; \ done mkdir $(distdir)/include/gdiplus @for i in $(GDIPLUS_HEADERS); do \ cp -p $(srcdir)/../include/gdiplus/$$i $(distdir)/include/gdiplus/$$i ; \ done mkdir $(distdir)/lib chmod 755 $(distdir)/lib @for i in $(DISTFILES); do \ cp -p $(srcdir)/$$i $(distdir)/lib/$$i ; \ done for i in $(SUBDIRS); do \ (cd $$i; $(MAKE) distdir=../$(distdir) dist); \ done Makefile: Makefile.in ../config.status ../configure cd ..; $(SHELL) config.status # clean mostlyclean: rm -f *~ *.o *.s clean: rm -f *.o *.a *.s *~ distclean: clean rm -f config.cache config.status config.log Makefile maintainer-clean: distclean