1 # Copyright (C) 2009 Apple Inc. All rights reserved. 2 # 3 # Redistribution and use in source and binary forms, with or without 4 # modification, are permitted provided that the following conditions 5 # are met: 6 # 1. Redistributions of source code must retain the above copyright 7 # notice, this list of conditions and the following disclaimer. 8 # 2. Redistributions in binary form must reproduce the above copyright 9 # notice, this list of conditions and the following disclaimer in the 10 # documentation and/or other materials provided with the distribution. 11 # 12 # THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 13 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 16 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 # PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 24 CONFIGURATION_BUILD_DIR ?= . 25 OUTPUT_DIR=$(CONFIGURATION_BUILD_DIR) 26 27 WRAPPER_DIR=$(OUTPUT_DIR)/DerivedSources/DumpRenderTree 28 WRAPPER=$(WRAPPER_DIR)/DumpRenderTreeSupport_wrap.c 29 PERL_MODULE=$(OUTPUT_DIR)/DumpRenderTreeSupport.pm 30 DYLIB=$(OUTPUT_DIR)/DumpRenderTreeSupport.dylib 31 DUMPRENDERTREE=$(OUTPUT_DIR)/DumpRenderTree 32 PERL=/usr/bin/perl 33 34 OSX_VERSION = $(shell sw_vers -productVersion | cut -d. -f 2) 35 ifeq "$(OSX_VERSION)" "4" 36 GENERATE_WRAPPER = NO 37 endif 38 ifeq "$(OSX_VERSION)" "7" 39 GENERATE_WRAPPER = NO 40 endif 41 42 ifneq "$(GENERATE_WRAPPER)" "NO" 43 44 SWIG=/usr/bin/swig 45 46 all: $(DYLIB) $(PERL_MODULE) 47 48 $(WRAPPER) $(PERL_MODULE): DumpRenderTreeSupport.c $(DUMPRENDERTREE) 49 mkdir -p $(WRAPPER_DIR) 50 $(SWIG) -o $(WRAPPER) -outdir $(OUTPUT_DIR) -perl -module DumpRenderTreeSupport $< 51 52 53 else 54 55 56 all: $(DYLIB) $(PERL_MODULE) 57 58 $(WRAPPER): DumpRenderTreeSupport_wrapPregenerated.c $(DUMPRENDERTREE) 59 mkdir -p $(WRAPPER_DIR) 60 cp DumpRenderTreeSupport_wrapPregenerated.c $(WRAPPER) 61 62 $(PERL_MODULE): DumpRenderTreeSupportPregenerated.pm $(DUMPRENDERTREE) 63 cp DumpRenderTreeSupportPregenerated.pm $(PERL_MODULE) 64 65 66 endif 67 68 $(DYLIB): DumpRenderTreeSupport.c $(WRAPPER) 69 gcc -g -dynamiclib -o $(DYLIB) `$(PERL) -MExtUtils::Embed -eperl_inc` `$(PERL) -MExtUtils::Embed -e'my $$opts = ldopts(0); $$opts =~ s/-arch [^ ]*( |$$)//g; print $$opts, " -arch ", join(" -arch ", split(" ",$$ENV{ARCHS}))'` $^ 70 71 clean: 72 rm -f $(WRAPPER) $(PERL_MODULE) $(DYLIB) 73 74 installhdrs installsrc install: 75