links :=
links += Cycript.lib/cynject
+links += Cycript.lib/libcycript.cy
links += Cycript.lib/libsubstrate.dylib
links += Cycript.lib/cycript0.9
sed -e 's/#/$(version)/' control.in >package/DEBIAN/control
mkdir -p package/usr/{bin,lib}
cp -a cycript0.9 package/usr/lib/cycript0.9
- $(lipo) -extract armv6 -output package/usr/bin/cycript Cycript.lib/cycript-apl
+ $(lipo) -extract armv6 -extract arm64 -output package/usr/bin/cycript Cycript.lib/cycript-apl
$(lipo) -extract armv6 -extract arm64 -output package/usr/lib/libcycript.dylib Cycript.lib/libcycript.dylib
ln -s libcycript.dylib package/usr/lib/libcycript.0.dylib
cp -a libcycript.cy package/usr/lib/libcycript.cy
# http://osdir.com/ml/help-make-gnu/2012-04/msg00008.html
define build_lar
-Cycript.lib/$(1).a: $(1).$(2)/.libs/$(1).a
+$(1).a: $(1).$(2)/.libs/$(1).a
endef
define build_any
@
endef
-$(foreach arch,armv6,$(eval $(call build_arm,$(arch))))
+$(foreach arch,armv6 arm64,$(eval $(call build_arm,$(arch))))
define build_arm
$(call build_lib,ios,$(1))
$(foreach arch,armeabi,$(eval $(call build_and,$(arch))))
-clean: $(clean)
- rm -rf cycript Cycript.lib libcycript*.o
-
-$(patsubst %,Cycript.lib/%.a,$(library)):
+clean += $(patsubst %,%.a,$(library))
+$(patsubst %,%.a,$(library)):
@mkdir -p $(dir $@)
$(lipo) -create -output $@ $^
+clean: $(clean)
+ rm -rf cycript Cycript.lib libcycript*.o
+
Cycript.lib/libcycript.dylib: build.osx-i386/.libs/libcycript.dylib build.osx-x86_64/.libs/libcycript.dylib build.ios-armv6/.libs/libcycript.dylib build.ios-arm64/.libs/libcycript.dylib
@mkdir -p $(dir $@)
$(lipo) -create -output $@ $^
install_name_tool -change /System/Library/{,Private}Frameworks/JavaScriptCore.framework/JavaScriptCore $@
codesign -s $(codesign) --entitlement cycript-$(word 2,$(subst ., ,$(subst -, ,$*))).xml $@
-Cycript.lib/cycript-apl: build.osx-i386/.libs/cycript_ build.osx-x86_64/.libs/cycript_ build.ios-armv6/.libs/cycript_
+Cycript.lib/cycript-apl: build.osx-i386/.libs/cycript_ build.osx-x86_64/.libs/cycript_ build.ios-armv6/.libs/cycript_ build.ios-arm64/.libs/cycript_
@mkdir -p $(dir $@)
$(lipo) -create -output $@ $^
$(lipo) -create -output $@ $^
codesign -s $(codesign) $@
-libcycript-%.o: build.%/.libs/libcycript.a $(patsubst %,Cycript.lib/%.a,$(library)) xcode.map
+libcycript-%.o: build.%/.libs/libcycript.a $(patsubst %,%.a,$(library)) xcode.map
@mkdir -p $(dir $@)
ld -r -arch $$($(lipo) -detailed_info $< | sed -e '/^Non-fat file: / ! d; s/.*: //') -o $@ -all_load -exported_symbols_list xcode.map -x $(filter %.a,$^)
DYLD_LIBRARY_PATH=Cycript.lib lldb Cycript.lib/cycript-apl
install: $(local)
- sudo cp -af $(filter-out %.dylib,$^) /usr/bin
- sudo cp -af $(filter %.dylib,$^) /usr/lib
+ sudo rm -vf /usr/bin/cycript /usr/lib/libcycript*
+ sudo cp -vfa Cycript.lib/cycript-apl /usr/bin/cycript
+ sudo cp -vfa $(filter %.dylib,$^) $(filter %.db,$^) $(filter %.jar,$^) /usr/lib
+ sudo cp -vfa libcycript.cy /usr/lib
push: cycript $(android)
adb push cycript /data/local/tmp/cycript
for x in $(android); do adb push $$x /data/local/tmp/$$x; done
cast: $(zip)
- appcast.sh cycript/mac $(monotonic) $(version) $< "$(CYCRIPT_CHANGES)"
+ appcast.sh cycript/mac $(monotonic) $(version) $< application/zip "$(CYCRIPT_CHANGES)"
.PHONY: all cast clean debug install zip