1##
2# Makefile for RubyCocoa
3##
4
5Project = RubyCocoa
6ProjectVersion = trunk
7FullProjectVersion = $(ProjectVersion)
8
9include $(MAKEFILEPATH)/CoreOS/ReleaseControl/Common.make
10
11OSV = $(DSTROOT)/usr/local/OpenSourceVersions
12OSL = $(DSTROOT)/usr/local/OpenSourceLicenses
13
14RUBYHOSTUSR = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr
15RUBYUSR = $(DSTROOT)/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr
16DSTRUBYDIR = $(RUBYUSR)/lib/ruby
17
18RUN_TESTS = 0
19
20build::
21	(cd $(SRCROOT)/$(Project) \
22	&& $(RUBYHOSTUSR)/bin/ruby install.rb config --sdkroot=$(SDKROOT) --prefix=$(RUBYUSR) --site-ruby=$(DSTRUBYDIR)/1.8 --so-dir=$(DSTRUBYDIR)/1.8/universal-darwin`uname -r | cut -d. -f1-2` --frameworks="$(DSTROOT)/System/Library/Frameworks" --xcode-extras="$(DSTROOT)/unmaintained_templates" --examples="$(DSTROOT)/Developer/Examples/Ruby" --documentation="$(DSTROOT)/Developer/Documentation" --gen-bridge-support=false --build-as-embeddable=false \
23	&& $(RUBYHOSTUSR)/bin/ruby install.rb setup \
24	&& (if [ $(RUN_TESTS)"" = "1" ]; then (cd tests && (DYLD_FRAMEWORK_PATH=../framework/build /usr/bin/ruby -I../lib -I../ext/rubycocoa testall.rb || exit 1)); fi) \
25	&& $(RUBYHOSTUSR)/bin/ruby install.rb install)
26	rm -rf $(DSTROOT)/unmaintained_templates
27	rm -rf $(DSTROOT)/Developer
28	find $(RUBYUSR)/lib -name "*.bundle" -exec cp '{}' $(SYMROOT) \;
29	cp $(DSTROOT)/System/Library/Frameworks/RubyCocoa.framework/RubyCocoa $(SYMROOT)
30	for f in $(SYMROOT)/*; do dsymutil $$f; done
31	$(STRIP) -x `find $(RUBYUSR)/lib -name "*.bundle"` 
32	$(MKDIR) $(OSV)
33	$(INSTALL_FILE) $(SRCROOT)/$(Project).plist $(OSV)/$(Project).plist
34	$(MKDIR) $(OSL)
35	$(INSTALL_FILE) $(SRCROOT)/$(Project)/COPYING $(OSL)/$(Project).txt
36
37installhdrs::
38	@echo Nothing to be done for installhdrs
39
40sync:
41	sync_out="RubyCocoa-trunk"; \
42	rm -rf $$sync_out; \
43	svn co --ignore-externals -q https://rubycocoa.svn.sourceforge.net/svnroot/rubycocoa/trunk/src $$sync_out; \
44	(find $$sync_out -name ".svn" -exec rm -rf {} \; >& /dev/null || true); \
45	(cd $$sync_out && rm -f misc/bridge-support-tiger.tar.gz misc/libruby.1.dylib-tiger.tar.gz); \
46	rm -f $$sync_out.tgz; \
47	tar -czf $$sync_out.tgz $$sync_out; \
48	rm -rf $$sync_out; \
49	echo "done"
50
51# Automatic Extract & Patch
52AEP_Project    = $(Project)
53AEP_Version    = $(FullProjectVersion)
54AEP_ProjVers   = $(AEP_Project)-$(AEP_Version)
55AEP_Filename   = $(AEP_ProjVers).tgz
56AEP_ExtractDir = $(AEP_ProjVers)
57AEP_Patches    = fix_install.rb.diff fix_ext_rubycocoa_extconf.rb.diff disable_threading_hacks.diff fix_metaconfig.diff
58
59# Extract the source.
60install_source::
61	$(TAR) -C $(SRCROOT) -zxf $(SRCROOT)/$(AEP_Filename)
62	$(RMDIR) $(SRCROOT)/$(Project)
63	$(MV) $(SRCROOT)/$(AEP_ExtractDir) $(SRCROOT)/$(Project)
64	for patchfile in $(AEP_Patches); do \
65		echo $$patchfile; \
66		patch -d $(SRCROOT)/$(Project) -p0 < $(SRCROOT)/patches/$$patchfile || exit 1; \
67	done
68	sed -i -e 's:-I/usr/include/:-I$(SDKROOT)/usr/include/:' $(SRCROOT)/$(Project)/pre-config.rb
69