all: cycript libcycript.dylib libcycript.plist
clean:
- rm -f libcycript.dylib cycript libcycript.plist Struct.hpp
+ rm -f libcycript.dylib cycript libcycript.plist Struct.hpp lex.cy.c Cycript.tab.c Cycript.tab.h
libcycript.plist: Bridge.def makefile
sed -e 's/^C/0/;s/^F/1/;s/^V/2/' Bridge.def | while read -r line; do \
echo "$$2 = ($$1, \"$$3\");"; \
done >$@
+Cycript.tab.c Cycript.tab.h: Cycript.y
+ bison $<
+
+lex.cy.c: Cycript.l
+ flex $<
+
Struct.hpp:
$$($(target)gcc -print-prog-name=cc1obj) -print-objc-runtime-info </dev/null >$@
-libcycript.dylib: Library.mm makefile $(menes)/mobilesubstrate/substrate.h sig/*.[ch]pp Struct.hpp
- $(target)g++ -dynamiclib -mthumb -g0 -O2 -Wall -Werror -o $@ $(filter %.cpp,$^) $(filter %.mm,$^) -lobjc -I$(menes)/mobilesubstrate $(link) $(flags)
+#Parser.hpp: Parser.py Parser.dat
+# ./Parser.py <Parser.dat >$@
+
+libcycript.dylib: Library.mm makefile $(menes)/mobilesubstrate/substrate.h sig/*.[ch]pp Struct.hpp Parser.hpp lex.cy.c Cycript.tab.c Cycript.tab.h
+ $(target)g++ -dynamiclib -mthumb -g0 -O2 -Wall -Werror -o $@ $(filter %.cpp,$^) $(filter %.c,$^) $(filter %.mm,$^) -lobjc -I$(menes)/mobilesubstrate $(link) $(flags) -DYYDEBUG=1
ldid -S $@
cycript: Application.mm libcycript.dylib