X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/b5dd57dc1e068c730142fb1007ce6c43a6ef7090..0226d428e0b3b0913a0c067f86cbf90339cd4c92:/makefile diff --git a/makefile b/makefile index 3fe6d9e..4240e51 100644 --- a/makefile +++ b/makefile @@ -29,10 +29,13 @@ code += Cycript.tab.o lex.cy.o code += Network.o Parser.o code += JavaScriptCore.o Library.o +inject := + filters := C #E4X ldid := true +entitle := $(ldid) dll := so -apr := $(shell apr-1-config --link-ld) +apr := -lapr-1 library := $(apr) -lffi -lsqlite3 console := $(apr) -lreadline depends := @@ -46,13 +49,13 @@ uname_p ?= $(shell uname -p) ifeq ($(filter ObjectiveC,$(filters)),) ifneq ($(shell which gnustep-config 2>/dev/null),) -#include GNUstep.mk +include GNUstep.mk endif endif flags += -Wall -Werror -Wno-parentheses #-Wno-unused flags += -fPIC -fno-common -flags += -I. -I$(shell apr-1-config --includedir) +flags += -I. -Iinclude -I$(shell apr-1-config --includedir) all += libcycript.$(dll) @@ -63,23 +66,29 @@ all: $(deb) extra: +ifeq ($(depends)$(dll),dylib) +control: control.in cycript libcycript.dylib + sed -e 's/&/'"$$(dpkg-query -S $$(otool -lah cycript *.dylib | grep dylib | grep -v ':$$' | sed -e 's/^ *name //;s/ (offset [0-9]*)$$//' | sort -u) 2>/dev/null | sed -e 's/:.*//; /^cycript$$/ d; s/$$/,/' | sort -u | tr '\n' ' ')"'/;s/, $$//;s/#/$(svn)/;s/%/$(arch)/' $< >$@ +else +ifeq ($(depends)$(dll),so) control: control.in cycript libcycript.so -ifeq ($(depends),) sed -e 's/&/'"$$(dpkg-query -S $$(ldd cycript libcycript.so | sed -e '/:$$/ d; s/^[ \t]*\([^ ]* => \)\?\([^ ]*\) .*/\2/' | sort -u) 2>/dev/null | sed -e 's/:.*//; /^cycript$$/ d; s/$$/,/' | sort -u | tr '\n' ' ')"'/;s/, $$//;s/#/$(svn)/;s/%/$(arch)/' $< >$@ else +control: control.in sed -e 's/&/$(foreach depend,$(depends),$(depend),)/;s/,$$//;s/#/$(svn)/;s/%/$(arch)/' $< >$@ endif +endif $(deb): $(all) control rm -rf package mkdir -p package/DEBIAN - cp -a control package/DEBIAN + cp -pR control package/DEBIAN $(restart) extra mkdir -p package/usr/{bin,lib,sbin} - cp -a libcycript.$(dll) package/usr/lib - cp -a cycript package/usr/bin - #cp -a cyrver package/usr/sbin - cp -a libcycript.db package/usr/lib + cp -pR libcycript.$(dll) package/usr/lib + cp -pR cycript package/usr/bin + #cp -pR cyrver package/usr/sbin + cp -pR libcycript.db package/usr/lib dpkg-deb -b package $(deb) endif @@ -129,9 +138,9 @@ libcycript.$(dll): $(code) $(target)g++ $(flags) -shared -dynamiclib -o $@ $(filter %.o,$^) $(library) $(link) $(ldid) $@ -cycript: Console.o libcycript.$(dll) +cycript: Console.o libcycript.$(dll) $(inject) $(target)g++ $(flags) -o $@ $(filter %.o,$^) -L. -lcycript $(console) $(link) - $(ldid) cycript + $(entitle) cycript package: $(deb)