-$(name).dylib: Tweak.mm makefile $(menes)/mobilesubstrate/substrate.h sig/*.[ch]pp Struct.hpp
- $(target)g++ -save-temps -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 >$@
+
+%.o: sig/%.cpp
+ $(target)g++ $(flags) -c -o $@ $<
+
+Cycript.tab.o: Cycript.tab.cc Cycript.tab.hh Parser.hpp Pooling.hpp
+ $(target)g++ $(flags) -c -o $@ $<
+
+lex.cy.o: lex.cy.c Cycript.tab.hh Parser.hpp Pooling.hpp
+ $(target)g++ $(flags) -c -o $@ $<
+
+%.o: %.cpp $(header)
+ $(target)g++ $(flags) -c -o $@ $<
+
+%.o: %.mm $(header)
+ $(target)g++ $(flags) -c -o $@ $<
+
+Cycript.dylib: Connector.o
+ $(target)g++ $(flags) -dynamiclib -o $@ $(filter %.o,$^) \
+ -lobjc -lapr-1 -lsubstrate \
+ -framework CoreFoundation
+ ldid -S $@
+
+libcycript.dylib: ffi_type.o parse.o Output.o Cycript.tab.o lex.cy.o Library.o
+ $(target)g++ $(flags) -dynamiclib -o $@ $(filter %.o,$^) \
+ -install_name /usr/lib/libcycript.dylib \
+ -lobjc -lapr-1 -lffi -lsubstrate \
+ -framework CoreFoundation -framework Foundation \
+ -framework CFNetwork \
+ -framework JavaScriptCore -framework WebCore