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
24CONFIGURATION_BUILD_DIR ?= .
25OUTPUT_DIR=$(CONFIGURATION_BUILD_DIR)
26
27WRAPPER_DIR=$(OUTPUT_DIR)/DerivedSources/DumpRenderTree
28WRAPPER=$(WRAPPER_DIR)/DumpRenderTreeSupport_wrap.c
29PERL_MODULE=$(OUTPUT_DIR)/DumpRenderTreeSupport.pm
30DYLIB=$(OUTPUT_DIR)/DumpRenderTreeSupport.dylib
31DUMPRENDERTREE=$(OUTPUT_DIR)/DumpRenderTree
32PERL=/usr/bin/perl
33
34OSX_VERSION = $(shell sw_vers -productVersion | cut -d. -f 2)
35ifeq "$(OSX_VERSION)" "4"
36GENERATE_WRAPPER = NO
37endif
38ifeq "$(OSX_VERSION)" "7"
39GENERATE_WRAPPER = NO
40endif
41
42ifneq "$(GENERATE_WRAPPER)" "NO"
43
44SWIG=/usr/bin/swig
45
46all: $(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
53else
54
55
56all: $(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
66endif
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
71clean:
72	rm -f $(WRAPPER) $(PERL_MODULE) $(DYLIB)
73
74installhdrs installsrc install:
75