]> git.saurik.com Git - cycript.git/blobdiff - Darwin.mk
Got true JS booleans working in GNUstep.
[cycript.git] / Darwin.mk
index a36cdb428431f2c5a989b700930baca8b5584231..af4bdc137445175826c8eb33427f33f943d45a80 100644 (file)
--- a/Darwin.mk
+++ b/Darwin.mk
@@ -1,15 +1,22 @@
 # XXX: objective-c exists on non-Darwin
 
 dll := dylib
-header += Struct.hpp ObjectiveC.hpp
-code += ObjectiveC.o Library.o
-filters += ObjC
-flags += -DCY_ATTACH -DCY_EXECUTE
-flags += -lobjc -framework CoreFoundation
-link += -framework Foundation
+flags += -DCY_EXECUTE
+link += -lobjc -framework CoreFoundation
+console += -framework Foundation
 library += -install_name /usr/lib/libcycript.$(dll)
-library += -framework Foundation -framework CFNetwork
-library += -framework JavaScriptCore -framework WebCore
+library += -framework Foundation
+library += -framework JavaScriptCore
+# XXX: do I just need WebCore?
+library += -framework WebKit
+library += -liconv
 
-Struct.hpp:
-       $$($(target)gcc -print-prog-name=cc1obj) -print-objc-runtime-info </dev/null >$@
+flags += -DCY_ATTACH
+code += Handler.o
+inject += Mach/Inject.o
+Mach/Inject.o: Trampoline.t.hpp Baton.hpp
+
+%.t.hpp: %.t.cpp
+       $(target)gcc -c -fno-exceptions -Iinclude -o $*.t.o $< && { file=($$($(target)otool -l $*.t.o | sed -e 'x; /^1/ { x; /^ *filesize / { s/^.* //; p; }; /^ *fileoff / { s/^.* //; p; }; x; }; x; /^ *cmd LC_SEGMENT$$/ { s/.*/1/; x; }; d;')); od -t x1 -j $${file[0]} -N $${file[1]} $*.t.o | sed -e 's/^[^ ]*//' | tr $$'\n' ' ' | sed -e 's/  */ /g;s/^ *//;s/ $$//;s/ /,/g;s/\([^,][^,]\)/0x\1/g' | sed -e 's/^/static const char $*_[] = {/;s/$$/};/' && echo && echo "/*" && $(target)otool -vVt $*.t.o && echo "*/"; } >$@ && rm -f $*.t.o
+
+include ObjectiveC.mk