-name := CydgetLoader
-flags := -framework UIKit -framework AddressBook
-base := $(shell cd ~; pwd)/menes/tweaks
-include $(base)/tweak.mk
webcore := WebCore-514
jscore := JavaScriptCore-521
-all: WebCycriptLockScreen
+cycc = cycc -i2.0 -o$@ -- $(filter %.mm,$^) -Xarch_armv6 -marm -g0 -O2 -I. -F/System/Library/PrivateFrameworks
-WebCycriptLockScreen: LockScreen.mm makefile $(base)/../mobilesubstrate/substrate.h
- $(target)g++ -F. -bundle -mthumb -g0 -O2 -Wall -Werror -o $@ $(filter %.mm,$^) -lobjc -I$(base)/../mobilesubstrate $(link) $(flags) -framework CoreGraphics -framework QuartzCore -framework SpringBoardUI -framework WebCore -framework JavaScriptCore -framework GraphicsServices -framework TelephonyUI -I$(jscore) -iquote$(webcore)/{bindings/js,dom,loader,platform{,/animation,/cf,/network{,/cf},/text},/rendering/style} -iquote$(jscore)/{bytecode,debugger,interpreter,jit,parser,runtime}
+all := CydgetLoader.dylib WebCycript WebCycriptLockScreen CydgetSettings
+
+all: $(all)
+
+clean::
+ rm -f $(all)
+
+CydgetLoader.dylib: CydgetLoader.mm makefile
+ $(cycc) -dynamiclib -framework Foundation -framework UIKit -framework CydiaSubstrate
+
+CydgetSettings: CydgetSettings.mm makefile
+ $(cycc) -dynamiclib -framework Foundation -framework UIKit -framework Preferences
+
+WebCycript: WebCycript.mm yieldToSelector.mm makefile
+ $(cycc) -dynamiclib -isystem sysroot/usr/include \
+ -install_name /Library/Frameworks/WebCycript.framework/WebCycript \
+ -framework Foundation -framework UIKit \
+ -framework CydiaSubstrate -framework CFNetwork \
+ -framework JavaScriptCore -framework WebKit \
+ -Wl,-U,__ZN3JSC7UString3Rep7destroyEv \
+ -Wl,-U,__ZN3JSC7UStringC1EPKc \
+ -Wl,-U,__ZN3JSC7UStringC1EPKti \
+ -Wl,-U,__ZNK3JSC7UString6substrEii
+ install_name_tool -change /System/Library/{,Private}Frameworks/JavaScriptCore.framework/JavaScriptCore $@
ldid -S $@
-extra:
- mkdir -p package/System/Library/LockCydgets/CydgetCentral.cydget
- cp -a Index.{html,js} package/System/Library/LockCydgets/CydgetCentral.cydget
- cp -a CydgetCentral.plist package/System/Library/LockCydgets/CydgetCentral.cydget/Info.plist
+WebCycriptLockScreen: WebCycript LockScreen.mm makefile
+ $(cycc) -bundle -isystem sysroot/usr/include \
+ -framework Foundation -framework UIKit \
+ -framework CydiaSubstrate WebCycript \
+ -framework TelephonyUI -framework SpringBoardUI \
+ -Xarch_armv6 -Lsysroot/usr/lib -Xarch_armv6 -lpcre \
+ -Xarch_arm64 -DUSE_ICU_REGEX -Xarch_arm64 -licucore
+
+webcycript-deb: all
+ sudo rm -rf package
+ mkdir -p package/DEBIAN
+ mkdir -p package/Library/MobileSubstrate/DynamicLibraries
+ sed -e 's/%/$(shell cycc -V)/' webcycript.in >package/DEBIAN/control
+ mkdir -p package/Library/Frameworks/WebCycript.framework/Headers
+ cp -a WebCycript.plist package/Library/Frameworks/WebCycript.framework/Info.plist
+ cp -a WebCycript package/Library/Frameworks/WebCycript.framework
+ cp -a WebCycript.h package/Library/Frameworks/WebCycript.framework/Headers
+ sudo chown -R 0 package
+ sudo chgrp -R 0 package
+ deb=$$(grep ^Package: package/DEBIAN/control | cut -d ' ' -f 2-)_$$(grep ^Version: package/DEBIAN/control | cut -d ' ' -f 2)_iphoneos-arm.deb; dpkg-deb -b package "$$deb"; ln -sfv "$$deb" webcycript.deb
+
+cydget-deb: all
+ sudo rm -rf package
+ mkdir -p package/DEBIAN
+ mkdir -p package/Library/MobileSubstrate/DynamicLibraries
+ sed -e 's/%/$(shell cycc -V)/' cydget.in >package/DEBIAN/control
+ cp -a preinst package/DEBIAN
+ mkdir -p package/Library/PreferenceLoader/Preferences;
+ cp -a CydgetLoader.{dylib,plist} package/Library/MobileSubstrate/DynamicLibraries
+ mkdir -p package/System/Library/LockCydgets
+ cp -a Welcome.cydget package/System/Library/LockCydgets/Welcome.cydget
+ cp -a AwayView.cydget package/System/Library/LockCydgets/AwayView.cydget
+ cp -a PhotoExample.cydget package/System/Library/LockCydgets/PhotoExample.cydget
+ cp -a PhotoExamplePlus.cydget package/System/Library/LockCydgets/PhotoExamplePlus.cydget
mkdir -p package/System/Library/SpringBoardPlugins/WebCycriptLockScreen.bundle
- cp -a Info.plist package/System/Library/SpringBoardPlugins/WebCycriptLockScreen.bundle
+ cp -a WebCycriptLockScreen.plist package/System/Library/SpringBoardPlugins/WebCycriptLockScreen.bundle/Info.plist
cp -a WebCycriptLockScreen package/System/Library/SpringBoardPlugins/WebCycriptLockScreen.bundle
+ mkdir -p package/Library/PreferenceLoader/Preferences
+ mkdir -p package/System/Library/PreferenceBundles
+ cp -a CydgetSettings.plist package/Library/PreferenceLoader/Preferences
+ cp -a CydgetSettings.bundle package/System/Library/PreferenceBundles/CydgetSettings.bundle
+ cp -a Icon-Small.png package/System/Library/PreferenceBundles/CydgetSettings.bundle/icon.png
+ cp -a SearchResultsCheckmarkClear.png CydgetSettings package/System/Library/PreferenceBundles/CydgetSettings.bundle
+ sudo chown -R 0 package
+ sudo chgrp -R 0 package
+ deb=$$(grep ^Package: package/DEBIAN/control | cut -d ' ' -f 2-)_$$(grep ^Version: package/DEBIAN/control | cut -d ' ' -f 2)_iphoneos-arm.deb; dpkg-deb -b package "$$deb"; ln -sfv "$$deb" cydget.deb
+
+deb: webcycript-deb cydget-deb